On 6/30/2011 4:22 AM, Hans Petter Selasky wrote:
Hi,

Trying to cross build ARM fails in the following way on 8-stable:

8.2-STABLE FreeBSD 8.2-STABLE #1: Wed Jun 29 13:09:23 UTC 2011

make toolchain TARGET=arm

Is this perhaps also an issue in 9-current?

Any clues?

cc -O -pipe  -ffreestanding -Wformat -I/usr/src/lib/libstand -msoft-float -
D_STANDALONE -DBZ_NO_STDIO -DBZ_NO_COMPRESS -DHAVE_MEMCPY -
I/usr/src/lib/libstand/../libz -std=gnu99  -c
/usr/src/lib/libstand/../libc/net/ntoh.c
{standard input}: Assembler messages:
{standard input}:27: Error: bad instruction `bswap r0'
{standard input}:53: Error: bad instruction `bswap r0'


and you also said:

Tracing down the issue:

/usr/include/machine/endian.h

#define __byte_swap_int_var(x) \
__extension__ ({ register __uint32_t __X = (x); \
    __asm ("bswap %0" : "+r" (__X)); \
    __X; })

r0 looks like an ARM register passed to a non-arm assembler. I'm going to try:


Looks like you have an ARM compiler/assembler because the assembler rejects the i386/amd64 "bswap" assembly command.

Does anyone remember if the cross compiler has the cross include paths compiled into them or should there be a "-I" in the compile command to correctly expand the "#include <machine/endian.h>" ? I thought the cross path was compiled into the cross compiler.

You manually test the "cc" command with the included "-I" option.

--Mark
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to