RPI3, error: invalid operand in inline asm: 'rev16 ${0:w}, ${1:w}'
John F Carr
jfc at mit.edu
Tue Apr 2 20:36:49 UTC 2019
>
> On Apr 2, 2019, at 14:09 , bob prohaska <fbsd at www.zefox.net> wrote:
>
> On Tue, Apr 02, 2019 at 09:17:13AM -0700, bob prohaska wrote:
>> On Tue, Apr 02, 2019 at 10:39:42AM +0000, John F Carr wrote:
>>>
>>> The problem I mentioned is with the system. I filed a bug:
>>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236920
>>>
>>> If you change the system header /usr/include/machine/endian.h
>>> according to the path in that bug report, does chromium compile?
>>
>> The patch applied without difficulty and I've restarted the make
>> process using portmaster-devel.
>>
>
> The compile stopped again, seemingly with the same error, unchanged.
>
> Oddly, there's also an error immediately before, which has been seen
> before but I thought has been fixed at some point,
>
> In file included from ../../base/third_party/libevent/event.c:49:
> In file included from /usr/include/signal.h:42:
> /usr/include/machine/ucontext.h:46:2: error: unknown type name '__uint128_t'
> __uint128_t fp_q[32];
> ^
> 1 error generated.
>
> The relevant parts of the console output are at
>
> http://www.zefox.net/~fbsd/rpi3/portmaster/chromium/r345516/console.txt
>
> in case anybody's willing to take a look.
>
> Thanks for reading,
>
> bob prohaska
I looked a little closer and figured out why it's failing. The chromium port compiles with options "--target=arm-linux-gnueabihf -march=armv7-a". That means it's using a Linux ABI on 32 bit ARM v7. The byte reverse functions in machine/endian.h do not work with that target. I think the rev* instructions don't exist in ARM v7.
Does chromium come with object files built for ARM7a on Linux, so that target has to be used?
More information about the freebsd-arm
mailing list