Commit 6625518cd6 broke cross compiling?

Denys Vlasenko vda.linux at googlemail.com
Sat Sep 5 18:45:21 UTC 2009


On Friday 04 September 2009 22:07, Rob Landley wrote:
> Before the August 25 commit "default ?conf to native arch", I could do this:
> 
> make KCONFIG_ALLCONFIG=miniconfig-uClibc.$ARCH allnoconfig &&
> make KERNEL_HEADERS="${STAGE_DIR}/include" PREFIX="${STAGE_DIR}/" \
>   CROSS="${ARCH}-" RUNTIME_PREFIX=/ DEVEL_PREFIX=/ -j $CPUS \
>   install hostutils
> 
> The KCONFIG_ALLCONFIG file would specify the architecture it was building for, 
> and CROSS= would specified the appropriate cross compiler prefix.  (This is how 
> uCLibc has worked for many years now.
> 
...
 
> Before that commit, it didn't do that.  It seems like a new redundant symbol 
> showed up, but there's no way to set it in menuconfig!  Here's the start of the 
> resulting .config:
> 
> TARGET_ARCH="x86_64"
> # TARGET_alpha is not set
> TARGET_arm=y
> # TARGET_avr32 is not set
> # TARGET_bfin is not set

Just got bitten by the same thing. In my case, simple "make" with no
fancy varibles doesn't  work.

My old .config starts like this:

#
# Automatically generated make config: don't edit
# Version: 0.9.30-svn
# Thu Mar 12 03:41:25 2009
#
# TARGET_alpha is not set
# TARGET_arm is not set
# TARGET_avr32 is not set
# TARGET_bfin is not set
# TARGET_cris is not set
# TARGET_e1 is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
TARGET_i386=y
...
CROSS_COMPILER_PREFIX="i486-linux-uclibc-"
...

uClibc was compilable with just "make".

And in the current git, make oldconfig munches it into

#
# Automatically generated make config: don't edit
# Version: 0.9.30-git
# Sat Sep  5 20:40:20 2009
#
TARGET_ARCH="x86_64"
# TARGET_alpha is not set
# TARGET_arm is not set
# TARGET_avr32 is not set
# TARGET_bfin is not set
# TARGET_cris is not set
# TARGET_e1 is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
TARGET_i386=y
...
CROSS_COMPILER_PREFIX="i486-linux-uclibc-"
...

and make stops with:

  AS lib/crt1.o
libc/sysdeps/linux/x86_64/crt1.S: Assembler messages:
libc/sysdeps/linux/x86_64/crt1.S:96: Error: bad register name `%rdx'
libc/sysdeps/linux/x86_64/crt1.S:97: Error: bad register name `%rsi'
libc/sysdeps/linux/x86_64/crt1.S:98: Error: bad register name `%rsp'
libc/sysdeps/linux/x86_64/crt1.S:101: Error: bad register name `%rsp'
libc/sysdeps/linux/x86_64/crt1.S:103: Error: bad register name `%rax'
libc/sysdeps/linux/x86_64/crt1.S:107: Error: bad register name `%rsp'
libc/sysdeps/linux/x86_64/crt1.S:121: Error: bad register name `%rdi'
libc/sysdeps/linux/x86_64/crt1.S:124: Error: bad register name `%rcx'
libc/sysdeps/linux/x86_64/crt1.S:125: Error: bad register name `%r8'
make: *** [lib/crt1.o] Error 1

--
vda


More information about the uClibc mailing list