[oe] Compile eglibc for x86 failed.

Guo Hongruan camelguo at gmail.com
Tue Dec 15 09:28:43 UTC 2009


Hi guys,
   I tried to use eglibc as system library for my x86 box, so I modified  
the conf/distro/minimal-eglibc.conf (see below for my changes). But  
compiling eglibc failed with the message "undefined reference to  
`__i686.get_pc_thunk.bx", The following is the raw error information. Who  
can give me some hint.

ccache i586-oe-linux-gcc -march=i586   -nostdlib -nostartfiles -shared  \
                   -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both  
-Wl,-z,defs -Wl,--verbose 2>&1 |  \
                   LC_ALL=C \
                   sed -e '/^=========/,/^=========/!d;/^=========/d'    \
                       -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . -  
SIZEOF_HEADERS;/' \
                   >  
/media/work-disk/workdir/oe-mini/work/i586-oe-linux/eglibc-2.9-r4/build-i586-oe-linux/elf/ld.so.lds
ccache i586-oe-linux-gcc -march=i586   -nostdlib -nostartfiles -shared -o  
/media/work-disk/workdir/oe-mini/work/i586-oe-linux/eglibc-2.9-r4/build-i586-oe-linux/elf/ld.so                        
\
                   -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both  
-Wl,-z,defs       \
                   /media/work-disk/workdir/oe-mini/work/i586-oe-linux/eglibc-2.9-r4/build-i586-oe-linux/elf/librtld.os  
-Wl,--version-script=/media/work-disk/workdir/oe-mini/work/i586-oe-linux/eglibc-2.9-r4/build-i586-oe-linux/ld.map                 
\                   -Wl,-soname=ld-linux.so.2 -T  
/media/work-disk/workdir/oe-mini/work/i586-oe-linux/eglibc-2.9-r4/build-i586-oe-linux/elf/ld.so.lds
/media/work-disk/workdir/oe-mini/work/i586-oe-linux/eglibc-2.9-r4/build-i586-oe-linux/elf/librtld.os:  
In function `_dl_tlsdesc_dynamic':
(.text+0x141f5): undefined reference to `__i686.get_pc_thunk.bx'
collect2: ld returned 1 exit status
make[2]: ***  
[/media/work-disk/workdir/oe-mini/work/i586-oe-linux/eglibc-2.9-r4/build-i586-oe-linux/elf/ld.so]  
Error 1
make[2]: Leaving directory  
`/media/work-disk/workdir/oe-mini/work/i586-oe-linux/eglibc-2.9-r4/eglibc-2_9/libc/elf'
make[1]: *** [elf/subdir_lib] Error 2
make[1]: Leaving directory  
`/media/work-disk/workdir/oe-mini/work/i586-oe-linux/eglibc-2.9-r4/eglibc-2_9/libc'
make: *** [all] Error 2
FATAL: oe_runmake failed


--- minimal-eglibc.conf	2009-12-15 13:44:17.000000000 +0800
+++ minimal-uclibc.conf	2009-12-10 15:00:31.000000000 +0800
@@ -13,17 +13,26 @@
  #
  # Header
  #
-DISTRO_NAME = "minimal-eglibc"
+DISTRO_NAME = "minimal-uclibc"

  #
  # Target OS & FPU system
  #
-TARGET_OS = "linux"
-#TARGET_FPU_arm = "soft"
-#TARGET_FPU_armeb = "soft"
-PREFERRED_PROVIDER_virtual/libc = "eglibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "eglibc"
+TARGET_OS = "linux-uclibc"
+TARGET_FPU_arm = "soft"
+TARGET_FPU_armeb = "soft"
+PREFERRED_PROVIDER_virtual/libc = "uclibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
  PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
  PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
-PREFERRED_PROVIDER_virtual/libiconv = "eglibc"
-PREFERRED_PROVIDER_virtual/libintl = "eglibc"
+PREFERRED_PROVIDER_virtual/libiconv = "libiconv"
+PREFERRED_PROVIDER_virtual/libintl = "proxy-libintl"
+
+USE_NLS ?= "no"
+USE_NLS_glib-2.0 = "yes"
+USE_NLS_glib-2.0-native = "yes"
+USE_NLS_gcc-cross = "no"
+
+PREFERRED_VERSION_uclibc = "0.9.30"
+PREFERRED_VERSION_uclibc-initial = "0.9.30"
+



-- 
Guo Hongruan, Embedded Linux Consultant
Mobile: +86-0-13484056007
Skype: camelguo
Twitter: camelguo
http://www.gulessoft.com




More information about the Openembedded-devel mailing list