[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[issues] Help: Build errors in eglibc 2.8 with OPTION_POSIX_C_LANG_WIDE_CHAR = n



My apologies if this is not the correct forum for this question... feel
free to point me to the correct one.

I am attempting to build glibc-2.8 with LOCALE and WIDE_CHAR disabled. I
am getting undefined reference errors. Any help with this problem would
be appreciated.

The option-groups.config file I am using (and I believe I have all the
dependencies correct) is:

OPTION_EGLIBC_ADVANCED_INET6 = y
OPTION_EGLIBC_BACKTRACE = y
OPTION_EGLIBC_BSD = y
OPTION_EGLIBC_CXX_TESTS = n
OPTION_EGLIBC_CATGETS = n
OPTION_EGLIBC_CHARSETS = y
OPTION_EGLIBC_DB_ALIASES = y
OPTION_EGLIBC_ENVZ = y
OPTION_EGLIBC_FSTAB = y
OPTION_EGLIBC_GETLOGIN = y
OPTION_EGLIBC_INET = y
OPTION_EGLIBC_LIBM = y
OPTION_EGLIBC_LOCALES = n
OPTION_EGLIBC_LOCALE_CODE = n
OPTION_EGLIBC_NIS = y
OPTION_EGLIBC_NSSWITCH = y
OPTION_EGLIBC_RCMD = y
OPTION_EGLIBC_SPAWN = y
OPTION_EGLIBC_STREAMS = y
OPTION_EGLIBC_SUNRPC = y
OPTION_EGLIBC_UTMP = y
OPTION_EGLIBC_UTMPX = y
OPTION_EGLIBC_WORDEXP = y
OPTION_POSIX_C_LANG_WIDE_CHAR = n
OPTION_POSIX_REGEXP = y
OPTION_POSIX_WIDE_CHAR_DEVICE_IO = n

The failing command is:

i586-wrs-linux-gnu-gcc    -shared -static-libgcc -Wl,-O1  -Wl,-z,defs
-Wl,-dynam
ic-linker=/lib/ld-linux.so.2
-B/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2
.8_build/default/csu/
-Wl,--version-script=/yow-lpggp15/kjames0/builds/eglibc/b
uild/glibc-2.8_build/default/libc.map -Wl,-soname=libc.so.6
-Wl,-z,combreloc -Wl
,-z,relro -Wl,--hash-style=both -nostdlib -nostartfiles -e __libc_main
-L/yow-lp
ggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default
-L/yow-lpggp15/kjames0
/builds/eglibc/build/glibc-2.8_build/default/math
-L/yow-lpggp15/kjames0/builds/
eglibc/build/glibc-2.8_build/default/elf
-L/yow-lpggp15/kjames0/builds/eglibc/bu
ild/glibc-2.8_build/default/dlfcn
-L/yow-lpggp15/kjames0/builds/eglibc/build/gli
bc-2.8_build/default/nss
-L/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_bu
ild/default/nis
-L/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/defau
lt/rt
-L/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/resol
v 
-L/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/crypt
-L/yow-
lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/nptl
-Wl,-rpath-link
=/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default:/yow-l
pggp15/k
james0/builds/eglibc/build/glibc-2.8_build/default/math:/yow-lpggp15/kja
mes0/bui
lds/eglibc/build/glibc-2.8_build/default/elf:/yow-lpggp15/kjames0/builds
/eglibc/
build/glibc-2.8_build/default/dlfcn:/yow-lpggp15/kjames0/builds/eglibc/b
uild/gli
bc-2.8_build/default/nss:/yow-lpggp15/kjames0/builds/eglibc/build/glibc-
2.8_buil
d/default/nis:/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/d
efault/r
t:/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/resol
v:/yow-l
pggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/crypt:/yow-lp
ggp15/kj
ames0/builds/eglibc/build/glibc-2.8_build/default/nptl -o
/yow-lpggp15/kjames0/b
uilds/eglibc/build/glibc-2.8_build/default/libc.so -T
/yow-lpggp15/kjames0/build
s/eglibc/build/glibc-2.8_build/default/shlib.lds
/yow-lpggp15/kjames0/builds/egl
ibc/build/glibc-2.8_build/default/csu/abi-note.o
/yow-lpggp15/kjames0/builds/egl
ibc/build/glibc-2.8_build/default/elf/soinit.os
/yow-lpggp15/kjames0/builds/egli
bc/build/glibc-2.8_build/default/libc_pic.os
/yow-lpggp15/kjames0/builds/eglibc/
build/glibc-2.8_build/default/elf/sofini.os
/yow-lpggp15/kjames0/builds/eglibc/b
uild/glibc-2.8_build/default/elf/interp.os
/yow-lpggp15/kjames0/builds/eglibc/bu
ild/glibc-2.8_build/default/elf/ld.so -lgcc
/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/libc_pi
c.os: In
 function `__dcigettext':
(.text+0xbf40): undefined reference to `__libc_setlocale_lock'
/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/libc_pi
c.os: In
 function `__dcigettext':
(.text+0xc1b1): undefined reference to `__libc_setlocale_lock'
/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/libc_pi
c.os: In
 function `__dcigettext':
(.text+0xc311): undefined reference to `__libc_setlocale_lock'
/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/libc_pi
c.os: In
 function `__dcigettext':
(.text+0xc356): undefined reference to `__libc_setlocale_lock'
/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/libc_pi
c.os: In
 function `__dcigettext':
(.text+0xc3fe): undefined reference to `__libc_setlocale_lock'
/yow-lpggp15/kjames0/repos/wrlinux-master/layers/wrll-toolchain-4.3a-264
/i586/to
olchain/x86-linux2/bin/../lib/gcc/i586-wrs-linux-gnu/4.3.2/../../../../i
586-wrs-
linux-gnu/bin/ld:
/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/defau
lt/libc.so: hidden symbol `__libc_setlocale_lock' isn't defined
/yow-lpggp15/kjames0/repos/wrlinux-master/layers/wrll-toolchain-4.3a-264
/i586/to
olchain/x86-linux2/bin/../lib/gcc/i586-wrs-linux-gnu/4.3.2/../../../../i
586-wrs-
linux-gnu/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status

Looking at the first unresolved symbol error...

/yow-lpggp15/kjames0/builds/eglibc/build/glibc-2.8_build/default/libc_pi
c.os: In
 function `__dcigettext':
(.text+0xbf40): undefined reference to `__libc_setlocale_lock'

The function __dcigettext is implemented in intl/dcigettext.c (as
DCIGETTEXT) and contains calls to __libc_setlocale_lock as follows:

#ifdef _LIBC
  __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden)
  __libc_rwlock_rdlock (__libc_setlocale_lock);
#endif

I do not see any obvious #ifdefs that would remove this code due to the
deselection of the WIDE_CHAR option-group. The intl/Makefile includes
the source file (dcigettext) unconditionally in the routines variable.

What do I need to do to remove this build problem? I assume I am missing
something obvious because I am seeing the same issue with oher
option-groups. Any help would be appreciated

Ken.