Date: Mon, 1 Apr 2019 18:59:56 -0700 From: bob prohaska <fbsd@www.zefox.net> To: John F Carr <jfc@mit.edu> Cc: "freebsd-ports@freebsd.org" <freebsd-ports@freebsd.org>, "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org> Subject: Re: RPI3, error: invalid operand in inline asm: 'rev16 ${0:w}, ${1:w}' Message-ID: <20190402015956.GA27268@www.zefox.net> In-Reply-To: <236A3D25-0B4D-46DA-95BA-71DA505CC2E0@exchange.mit.edu> References: <20190330152327.GA11933@www.zefox.net> <236A3D25-0B4D-46DA-95BA-71DA505CC2E0@exchange.mit.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 30, 2019 at 05:50:35PM +0000, John F Carr wrote: > > > > On Mar 30, 2019, at 11:23 , bob prohaska <fbsd@www.zefox.net> wrote: > > > > In a recent attempt to compile www/chromium on an RPI3 running r345516 > > compilation stopped with repeated reports of > > > > /usr/include/machine/endian.h:89:19: error: invalid operand in inline asm: 'rev16 ${0:w}, ${1:w}' > > > > Chromium compiled on the same host a couple of months ago, but the > > executable failed on a runtime library error. Now attempts to upgrade > > stop during compilation. Ports are presently at revision 496949. > > > > Thanks for reading, and any guidance. > > > > bob prohaska > > The swap function at that line in sys/arm64/include/endian.h doesn't look right to me. I think it should read > > __asm("rev16 %w0, %w1\n" : "=r" (ret) : "r" (w)); > > instead of > > __asm __volatile("rev16 %w0, %w1\n" : "=&r" (ret), "+r" (v)); > > Two changes: (1) it doesn't need to be volatile because it has no side effects and (2) the constraints and lack of explicit input operand are wrong. The other swap functions should have similar changes. > Apologies for being obtuse, but is that suggestive of a problem with the host system, or a problem with the port? Thanks for reading! bob prohaska
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190402015956.GA27268>