On 3/11/12 9:38 AM, Matthew Farkas-Dyck wrote: > Hello. > > I am trying to build bash against uClibc. Build fails thus: > > $ make > ... > x86_64-linux-gcc -L./builtins -L./lib/readline -L./lib/readline > -L./lib/glob -L./lib/tilde -L./lib/malloc -L./lib/sh -rdynamic -g > -O2 -o bash shell.o eval.o y.tab.o general.o make_cmd.o print_cmd.o > dispose_cmd.o execute_cmd.o variables.o copy_cmd.o error.o expr.o > flags.o jobs.o subst.o hashcmd.o hashlib.o mailcheck.o trap.o input.o > unwind_prot.o pathexp.o sig.o test.o version.o alias.o array.o > arrayfunc.o assoc.o braces.o bracecomp.o bashhist.o bashline.o list.o > stringlib.o locale.o findcmd.o redir.o pcomplete.o pcomplib.o syntax.o > xmalloc.o -lbuiltins -lglob -lsh -lreadline -lhistory -lcurses > -ltilde -lmalloc lib/intl/libintl.a > /home/strake/buildroot-2011.11/output/host/usr/x86_64-unknown-linux-uclibc/sysroot/usr/lib/libc.a(getenv.os): > In function `getenv': > getenv.c:(.text+0x0): multiple definition of `getenv' > ./lib/sh/libsh.a(getenv.o):/home/strake/bash-4.1/lib/sh/getenv.c:52: > first defined here > collect2: ld returned 1 exit status > make: *** [bash] Error 1 > $ > > It fails thus, whether built within or without buildroot. > > uClibc configuration here: http://hpaste.org/64419 > > Linkage against glibc works. > > I searched, but the query "bash getenv" or the like yields much about, > well, bash getenv, rather than the c function. > > How can I link it?
Bash wants to use its own version of getenv so library functions that use it can look in the shell's variable table instead of the export environment. To that end, configure runs a test to see whether or not getenv() can be redefined. You probably configured bash against glibc, for which the test succeeds. You can either re-run configure and make sure it's using uclibc, look at config.log to figure out why the getenv replacement test succeeded if you're already doing that, or force the issue by editing config.cache to set the value of `bash_cv_getenv_redef' to 0 and rerun `configure -C'. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/