dietlibc broken on i386 since Feb 2018?
Frank Bergmann <[email protected]> Sat, 14 Sep 2019 16:15:35 +0200
| Newsgroups | gmane.linux.lib.dietlibc |
|---|---|
| Message-ID | <[email protected]> |
Hi, dietlibc (cvs) is broken for me on i386 since 2018-02-01 (2018-01-31 was fine). On x86_64 it still works. A small change in lib/stackgap-common.h makes it work again. Any suggestions? Frank victim:~ frank 16:02:15$ rm -rf dietlibc; cvs -d :pserver:[email protected]:/cvs -z9 co dietlibc &>/dev/null victim:~ frank 16:02:25$ cd dietlibc victim:dietlibc frank 16:02:27$ make clean &>/dev/null;make 2>&1 |tail -n 3 strip -R .comment -R .note bin-i386/diet-i bin-i386/diet gcc -D__dietlibc__ -pipe -nostdinc -D_REENTRANT -ffunction-sections -fdata-sections -Os -fomit-frame-pointer -falign-functions=1 -falign-jumps=1 -falign-loops=1 -mpreferred-stack-boundary=4 -W -Wall -Wextra -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wno-switch -Wno-unused -Wredundant-decls -Wshadow -o bin-i386/elftrunc contrib/elftrunc.c -Wl,--gc-sections -Wl,-z,noseparate-code make: *** [bin-i386/elftrunc] Segmentation fault victim:dietlibc frank 16:03:11$ patch -p1 <../1007_diff-20180131-20180201-01-02-cvs.patch patching file lib/stackgap-common.h victim:dietlibc frank 16:03:21$ make clean &>/dev/null;make 2>&1 |tail -n 3 strip -R .comment -R .note bin-i386/diet-i bin-i386/diet gcc -D__dietlibc__ -pipe -nostdinc -D_REENTRANT -ffunction-sections -fdata-sections -Os -fomit-frame-pointer -falign-functions=1 -falign-jumps=1 -falign-loops=1 -mpreferred-stack-boundary=4 -W -Wall -Wextra -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wno-switch -Wno-unused -Wredundant-decls -Wshadow -o bin-i386/elftrunc contrib/elftrunc.c -Wl,--gc-sections -Wl,-z,noseparate-code bin-i386/diet gcc -D__dietlibc__ -pipe -nostdinc -D_REENTRANT -ffunction-sections -fdata-sections -Os -fomit-frame-pointer -falign-functions=1 -falign-jumps=1 -falign-loops=1 -mpreferred-stack-boundary=4 -W -Wall -Wextra -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wno-switch -Wno-unused -Wredundant-decls -Wshadow -o bin-i386/dnsd contrib/dnsd.c -Wl,--gc-sections -Wl,-z,noseparate-code victim:dietlibc frank 16:04:04$ cat ../1007_diff-20180131-20180201-01-02-cvs.patch --- dietlibc/lib/stackgap-common.h.orig 2019-03-14 13:42:19.000000000 +0100 +++ dietlibc/lib/stackgap-common.h 2019-09-14 16:00:37.000000000 +0200 @@ -513,7 +513,6 @@ #if defined(WANT_STACKGAP) || defined(WANT_SSP) volatile char* gap; rand=(char*)getauxval(25); -#ifdef WANT_URANDOM_SSP if (!rand) { rand=alloca(10); int fd=open("/dev/urandom",O_RDONLY); // If this fails, there is not much we can do. Limp on. @@ -521,7 +520,6 @@ close(fd); } #endif -#endif #ifdef WANT_STACKGAP #ifdef __UNALIGNED_MEMORY_ACCESS_OK s=*(unsigned short*)(rand+8); victim:dietlibc frank 16:04:19$ gcc -v Using built-in specs. Target: i386-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --disable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux Thread model: posix gcc version 4.1.2 20080704 (Red Hat 4.1.2-55)