This is the mail archive of the
glibc-linux@ricardo.ecn.wfu.edu
mailing list for the glibc project.
Re: test-installation.pl problem
- To: A Hung <a2hung at engmail dot uwaterloo dot ca>
- Subject: Re: test-installation.pl problem
- From: Andreas Jaeger <aj at suse dot de>
- Date: 24 Jul 2000 14:10:02 +0200
- Cc: glibc-linux at ricardo dot ecn dot wfu dot edu
- References: <Pine.GSO.4.05.10007162326110.301-100000@engmail.uwaterloo.ca>
- Reply-To: glibc-linux at ricardo dot ecn dot wfu dot edu
>>>>> A Hung writes:
A> Hi,
A> I'm installing glibc 2.1.3 as the main library on a minimal system
A> (minimal, as in only what is necessary to get things to compile).
A> GNU binutils 2.10
A> GNU diffutils 2.7
A> GNU fileutils 4.0
A> GNU GCC 2.95.2 (C, C++ only)
A> GNU make 3.79
A> GNU bash 2.04
A> GNU texinfo 4.0
A> GNU gettext 0.10.35
A> Old libc5.4.44 libraries (from Slakware 3.5)
A> Perl 5
A> - this is my procedure: (in /usr/local/src/glibc-build)
A> * Changes all "full-config-sysdirs" references to "full_config_sysdirs"
A> for bash 2.04 POSIX compliance.
A> * ../glibc-2.1.3/configure --enable-add-ons --prefix=/usr
A> * make
A> * make check
A> * moved all the old include files and libraries
A> * make install
A> No problems (with the exception of an ignored segfault in the posix
A> directory, but I understand this is an unresolved issue) until make
A> install, which runs fine until it runs test-installation.pl. At first, I
A> got the compile error, but that was covered in the FAQ, so I renamed
A> _G_Config.h. For the command
A> CC="gcc" /usr/bin/perl scripts/test-installation.pl
A> /usr/local/src/glibc-build/
A> I get the error
A> "Execution of test program failed at scripts/test-installation.pl line
A> 196."
A> which would be the following lines:
---> system ("/tmp/test-prg$$") == 0
---> or die ("Execution of test program failed");
A> As you can see, the test program compiles fine (the compilation command is
---> gcc /tmp/test-prg9378.c -lpthread -lpthread -lm -lc -ldl -lutil
A> -lresolv -lnss_files -lnss_dns -lnss_db -lnss_compat -lnss_nis
A> -lnss_nisplus -lnss_hesiod -lnsl -ldb -lcrypt -lBrokenLocale -lrt -o
A> /tmp/test-prg9378 2>&1 |
A> ). The output to the ldd is as follows: (ldd /tmp/test-prg9378 |)
A> libpthread.so.0 => /lib/libpthread.so.0 (0x40009000)
A> libm.so.6 => /lib/libm.so.6 (0x4001c000)
A> libc.so.6 => /lib/libc.so.6 (0x40039000)
A> libdl.so.2 => /lib/libdl.so.2 (0x4011a000)
A> libutil.so.1 => /lib/libutil.so.1 (0x4011e000)
A> libresolv.so.2 => /lib/libresolv.so.2 (0x40121000)
A> libnss_files.so.2 => /lib/libnss_files.so.2 (0x40130000)
A> libnss_dns.so.2 => /lib/libnss_dns.so.2 (0x40139000)
A> libnss_db.so.2 => /lib/libnss_db.so.2 (0x4013d000)
A> libnss_compat.so.2 => /lib/libnss_compat.so.2 (0x40143000)
A> libnss_nis.so.2 => /lib/libnss_nis.so.2 (0x4014f000)
A> libnss_nisplus.so.2 => /lib/libnss_nisplus.so.2 (0x40159000)
A> libnss_hesiod.so.2 => /lib/libnss_hesiod.so.2 (0x40164000)
A> libnsl.so.1 => /lib/libnsl.so.1 (0x40169000)
A> libdb.so.3 => /lib/libdb.so.3 (0x40180000)
A> libcrypt.so.1 => /lib/libcrypt.so.1 (0x401bd000)
A> libBrokenLocale.so.1 => /lib/libBrokenLocale.so.1 (0x401ea000)
A> librt.so.1 => /lib/librt.so.1 (0x401ec000)
A> ld-linux.so.2 => /lib/ld-linux.so.2 (0x401f0000)
A> If I run the program myself (/tmp/test-prg9378), it segfaults ("make
A> install" says make[1]: *** [install] Error 29).
A> This confounds the heck out of me, because I don't understand how
A> #include <stdio.h>
A> #include <stdlib.h>
A> int main(void) {
A> printf ("Your new glibc installation seems to be ok.\n");
A> exit (0);
A> }
A> Could possibly segfault. I tried removing the printf statement, and it
A> still segfaults. So, correct me if I'm wrong, but wouldn't this indicate a
A> problem with either stdio or stdlib? Anybody have any ideas on how to
A> correct this?
The libraries have initialization functions which might get called.
The program is linked against each and every lib! It could be a bug
in the dynamic linker or in one of these initialization functions.
Debug with LD_DEBUG set in the environment (LD_DEBUG=help ls gives
options).
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de