using different lib version
Der Herr Hofrat
der.herr@hofr.at
Tue Apr 17 06:05:00 GMT 2001
Hi !
I already once posted the question of how to compile glibc 2.0.7 apps on
a box running 2.1.X . What I was told is to use -nostdlib and pass the
path to glibc-2.0.7 with -L and then list all libs explicidly (-lc etc.)
this works for many apps, but always generates errors durinc copilation
and in some cases results in apps not working corectly .
on the glibc 2.1.3 box:
--snip of Makefile --
reserve: reserve.c reserve.h
$(CC) -g -ggdb -O2 -Wall -nostdlib ${INCLUDE} -L../../glibc-2.0.7/lib/ -L../../glibc-2.0.7/gcc/ -lc reserve.c -o reserve1
make reserve output
gcc -g -ggdb -O2 -Wall -nostdlib -I/home/rtl3.0/minirtl-3.0/linux/include -I/home/rtl3.0/minirtl-3.0/include -I/home/rtl3.0/minirtl-3.0/include/compat -L../../glibc-2.0.7/lib/ -lc reserve.c -o reserve1
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 08048960
here is what the output looks like on a glibc 2.0.7 box
--snip of Makefile --
reserve: reserve.c reserve.h
$(CC) -g -ggdb -O2 -Wall ${INCLUDE} reserve.c -o reserve1
gcc -v -g -ggdb -O2 -Wall -I/minirtl/rtlinux-3.0/minirtl-3.0/linux/include -I/minirtl/rtlinux-3.0/minirtl-3.0/include -I/minirtl/rtlinux-3.0/minirtl-3.0/include/compat reserve.c -o reserve1
Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
/usr/lib/gcc-lib/i486-linux/egcs-2.91.66/cpp -lang-c -v -I/minirtl/rtlinux-3.0/minirtl-3.0/linux/include -I/minirtl/rtlinux-3.0/minirtl-3.0/include -I/minirtl/rtlinux-3.0/minirtl-3.0/include/compat -undef -D__GNUC__=2 -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__OPTIMIZE__ -g -ggdb -Wall -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di486 -D__i486 -D__i486__ reserve.c /tmp/ccdjvCny.i
GNU CPP version egcs-2.91.66 19990314 (egcs-1.1.2 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/minirtl/rtlinux-3.0/minirtl-3.0/linux/include
/minirtl/rtlinux-3.0/minirtl-3.0/include
/minirtl/rtlinux-3.0/minirtl-3.0/include/compat
/usr/local/include
/usr/i486-linux/include
/usr/lib/gcc-lib/i486-linux/egcs-2.91.66/include
/usr/include
End of search list.
/usr/lib/gcc-lib/i486-linux/egcs-2.91.66/cc1 /tmp/ccdjvCny.i -quiet -dumpbase reserve.c -g -ggdb -O2 -Wall -version -o /tmp/ccHlLmgS.s
GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release) (i486-linux) compiled by GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release).
/usr/i486-linux/bin/as -V -Qy -o /tmp/ccJK5SuT.o /tmp/ccHlLmgS.s
GNU assembler version 2.9.1 (i486-linux), using BFD version 2.9.1.0.22
/usr/lib/gcc-lib/i486-linux/egcs-2.91.66/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o reserve1 /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/crtbegin.o -L/usr/lib/gcc-lib/i486-linux/egcs-2.91.66 -L/usr/i486-linux/lib /tmp/ccJK5SuT.o -lgcc -warn-common -lc -lgcc /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/crtend.o /usr/lib/crtn.o
the apps compiled directly on the glibc 2.0.7 box all work fine , the ones compiles on the glibc 2.1.3 kind of work, but some core dump on exit , some simply don't work at all.
Can anybody point to a doc describing a clean multilib setup ?? , that is actually multiple gcc versions AND multiple libs on one box.
thx !
hofrat
More information about the Gcc-help
mailing list