summaryrefslogtreecommitdiff
path: root/open_issues/glibc.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'open_issues/glibc.mdwn')
-rw-r--r--open_issues/glibc.mdwn127
1 files changed, 85 insertions, 42 deletions
diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn
index e7c8a0ba..0130aceb 100644
--- a/open_issues/glibc.mdwn
+++ b/open_issues/glibc.mdwn
@@ -27,8 +27,8 @@ Here's what's to be done for maintaining glibc.
# Configuration
-Last reviewed up to the [[Git mirror's 5a31b2836d55bcc0c5b6f90f1e89245118e7f508
-(2011-06-07) sources|source_repositories/glibc]].
+Last reviewed up to the [[Git mirror's 16292eddd77f66002e2104848e75a0fb4d316692
+(2011-08-04) sources|source_repositories/glibc]].
* t/dup3
@@ -51,6 +51,14 @@ Last reviewed up to the [[Git mirror's 5a31b2836d55bcc0c5b6f90f1e89245118e7f508
* `TLS_INIT_TP_EXPENSIVE` is unused; Hurd def. can be removed.
+ * t/verify.h
+
+ People didn't like this too much.
+
+ Other examples:
+
+ * 11988f8f9656042c3dfd9002ac85dff33173b9bd -- `static_assert`
+
* [[toolchain/cross-gnu]], without `--disable-multi-arch`
i686-pc-gnu-gcc ../sysdeps/i386/i686/multiarch/strcmp.S -c [...]
@@ -134,10 +142,12 @@ Last reviewed up to the [[Git mirror's 5a31b2836d55bcc0c5b6f90f1e89245118e7f508
something to work on, here's a list.
`AT_EMPTY_PATH`, `CLOCK_BOOTTIME`, `CLOCK_BOOTTIME_ALARM`,
- `CLOCK_REALTIME_ALARM`, `O_PATH`, `RLIMIT_RTTIME`, `clock_adjtime`,
- `fallocate`, `fallocate64`, `getcontext` (and `setcontext`),
- `name_to_handle_at`, `open_by_handle_at`, `sendmmsg`, `setns`,
- `sync_file_range`
+ `CLOCK_REALTIME_ALARM`, `O_PATH`,
+ `PTRACE_*` (for example, cbff0d9689c4d68578b6a4f0a17807232506ea27),
+ `RLIMIT_RTTIME`, `SEEK_DATA` (`unistd.h`), `SEEK_HOLE` (`unistd.h`)
+ `clock_adjtime`, `fallocate`, `fallocate64`, `getcontext` (and
+ `setcontext`), `name_to_handle_at`, `open_by_handle_at`, `sendmmsg`,
+ `setns`, `sync_file_range`
* `syncfs`
@@ -153,12 +163,38 @@ Last reviewed up to the [[Git mirror's 5a31b2836d55bcc0c5b6f90f1e89245118e7f508
Do we support `AT_FDCWD` et al.?
+ * `MAP_POPULATE` (`mmap`, `sys/mman.h`)
+
+ Is only advisory, so can worked around with `#define 0`.
+
* Building with GCC 4.5, 4.6, trunk will cause different kinds of faults.
* Create `t/cleanup_kernel-features.h`.
* Add tests from Linux kernel commit messages for `t/dup3` et al.
+ * In `sysdeps/unix/sysv/linux/Makefile`, there are a bunch of
+ `-DHAVE_SENDFILE` -- but we do have `sendfile`, too.
+
+ * `/usr/include/pthread.h` overwrite issue
+
+ `make`, after editing `nss/nss_db/db-initgroups.c`:
+
+ [...]
+ make[2]: Leaving directory `/media/erich/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker/resolv'
+ make subdir=nss -C nss ..=../ others
+ make[2]: Entering directory `/media/erich/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker/nss'
+ /usr/bin/install -c -m 644 ../include/pthread.h /usr/include/pthread.h
+ /usr/bin/install: cannot remove `/usr/include/pthread.h': Permission denied
+ make[2]: *** [/usr/include/pthread.h] Error 1
+ make[2]: Leaving directory `/media/erich/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker/nss'
+ make[1]: *** [nss/others] Error 2
+ make[1]: Leaving directory `/media/erich/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker'
+ make: *** [all] Error 2
+
+ See `id:"871uv99c59.fsf@kepler.schwinge.homeip.net"`. Passing
+ `install_root=/INVALID` to `make`/`make check` is a cheap cure.
+
* Verify baseline changes, if we need any follow-up changes:
* a11ec63713ea3903c482dc907a108be404191a02
@@ -249,26 +285,58 @@ Last reviewed up to the [[Git mirror's 5a31b2836d55bcc0c5b6f90f1e89245118e7f508
80e2212d8e59933a1641f029ebd360526ff0e074 +
4997db742946d08be4378cf91221f558f928bc73 -- `Don't document si_code
used for raise()`. Also for `bits/siginfo.h`?
- * 01f16ab0a581838d44ad79e82c0c3e1691d8506e -- `Prevent loader from
- loading itself`
+ * 11988f8f9656042c3dfd9002ac85dff33173b9bd -- pldd, Does it work?
+ Probably not: needs `/proc/[PID]/auxv`, `/proc/[PID]/exe`,
+ `/proc/[PID]/mem` ([[!tag open_issue_hurd]],
+ [[hurd/translator/procfs]]).
+ * 78a7eee7fab0802addf500c481335ed6e9899bda +
+ 62bede1313c3a1fa477a092006d64436de6821b1 +
+ 113ddea44742d006d7a910a0707106c7defcfd9b -- `.ctors/.dtors`. Watch
+ what happens. `AC_TRY_LINK` vs. cross compiling/bootstrapping? Native
+ build: `checking whether to use .ctors/.dtors header and
+ trailer... no`; results in `#define NO_CTORS_DTORS_SECTIONS 1`: OK (as
+ before).
+ * 9113ea1f3f29b3aee710efc829e85a9772bcb836 -- `--experimental-malloc`.
+ Watch what happens.
+ * 4e34ac6a1e256f40ab0d8eeed37aa1ea83440e76 -- `-defsym=_begin=0`. Watch
+ what happens. Native build: apparently OK.
+ * f781ef4015504e8a1da649c266584976238aa079 (`--with-default-link`) +
+ 1b74661a6b93a892ecb1c717dedeedba5c2a976c +
+ fd5e21c75d8e9221d766f4bc922a237265514ec2. Watch what happens. Native
+ build: `use-default-link = no`.
+ * de283087c74f720cf8a7171972e72b5fa2b45e79 (`Handle Lustre filesystem`),
+ 4e5f31c847982997c856f03bbc35134e9fd0f61f (`Handle ext4 in
+ {,f}pathconf`). What about stuff like that for us?
+ * d30cf5bb00bfb286ff14d931fb69f5b53724bcdc (`Find readelf with
+ AC_CHECK_TOOL`). Aren't there more in other configure.in and Makefile
+ files?
+ * 574920b446870648623a85e00dd8f3ca9f482c0e (`Rewrite -z relro configure
+ check`) + defe906180bad4e356bb55b60b10abd41b7ee3a1 +
+ 9fa2c03227e159050e9dc4ec1e315e5909901580. Watch what happens. Native
+ build: OK, `yes` (as before).
+ * 5c55070081c27168d27145afdf6a92cd56c9abb3 (`linker
+ --print-output-format`). Watch what happens. Native build: OK,
+ `elf32-i386`.
+ * 7a03a9c8c4b37b88ac5e82b557d974f3161ddaf9 (`Add read barriers in
+ cancellation initialization`). Is this needed in other places, too?
# Build
Here's a log of a glibc build run; this is from our [[Git repository's
-d97df6798c8f0fd8e21c2610a1cfac2e3272b5f1 (2011-09-19; 2011-06-07)
+946cceff76422cedd8ca2f50bced0a672e64a9a9 (2011-09-22; 2011-08-04)
sources|source_repositories/glibc]], run on coulomb.SCHWINGE.
$ export LC_ALL=C
- $ ../Roger_Whittaker/configure --without-cvs --prefix=/usr --disable-profile --disable-multi-arch --build=i486-gnu --host=i486-gnu CC=gcc-4.4 CXX=g++-4.4 2>&1 | tee log_build
+ $ ../Roger_Whittaker/configure AUTOCONF=: --without-cvs --prefix=/usr --disable-profile --disable-multi-arch --build=i486-gnu --host=i486-gnu CC=gcc-4.4 CXX=g++-4.4 2>&1 | tee log_build
[...]
- $ make 2>&1 | tee log_build_
+ $ make install_root=/INVALID 2>&1 | tee log_build_
[...]
This takes up around 400 MiB and needs roughly 120 min on coulomb.SCHWINGE.
<!--
- $ (make && touch .go-check) 2>&1 | tee log_build_ && test -f .go-check && make -k check 2>&1 | tee log_check
+ $ (make install_root=/INVALID && touch .go-check) 2>&1 | tee log_build_ && test -f .go-check && make -k install_root=/INVALID check 2>&1 | tee log_check
$ find ./ -name \*.o -o -name \*.os -o -name \*.oS | while read f; do ~/tmp/gcc/git/contrib/compare-debug --preserve ../Roger_Whittaker.build-gcc-4.4-486.O/"$f" "$f"; done 2>&1 | less
$ while read f; do (readelf -a "$f" && objdump -xDrtw "$f") > N && (cd ../Roger_Whittaker.build-gcc-4.4-486.O/ && readelf -a "$f" && objdump -xDrtw "$f") > O && diff -u O N | less; done
$ find ./ -name \*.o -o -name \*.os -o -name \*.oS | while read f; do readelf -h "$f" | grep OS/ABI | (read a b && [ x"$b" != x'UNIX - System V' ] && echo "### $f: $b"); done
@@ -310,7 +378,7 @@ TODO.
# Testsuite
- $ make -k check 2>&1 | tee log_check
+ $ make -k install_root=/INVALID check 2>&1 | tee log_check
[...]
This needs roughly 50 min on coulomb.SCHWINGE.
@@ -416,10 +484,6 @@ There is quite a baseline of failures.
/media/erich/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker/string/test-strnlen.c:87: undefined reference to `MIN'
- * `assert/test-assert.out` (not seen anymore 1 of 1)
-
- Out of ten manual invocations, got one successful.
-
* `stdlib/bug-getcontext.out`
getcontext failed, errno: 1073741902.
@@ -430,6 +494,10 @@ There is quite a baseline of failures.
/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486/elf/tst-unique3lib.os:(.data.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to `__gxx_personality_v0'
+ * `stdio-common/tst-rndseek.out`
+
+ Timeout.
+
## OLD
@@ -498,28 +566,3 @@ New failures:
* posix/bug-glob3.out (SEGFAULT; but also on Linux)
* wctype/bug-wctypeh.o (compile error; but also on Linux)
-
-Other things noticed:
-
- * Running `make -k check` for the second time:
-
- -i486-gnu-gcc tst-timer2.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -g -Wno-parentheses -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build -I../sysdeps/i386/elf -I../sysdeps/mach/hurd/i386 -I../sysdeps/mach/hurd -I../sysdeps/gnu -I../sysdeps/unix/bsd/bsd4.4 -I../sysdeps/unix/mman -I../sysdeps/mach/i386 -I../sysdeps/mach -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/unix/bsd -I../sysdeps/unix/common -I../sysdeps/unix/inet -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../hurd -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/hurd/ -I../mach -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/mach/ -I.. -I../libio -I. -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DNOT_IN_libc=1 -o /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt/tst-timer2.o -MD -MP -MF /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt/tst-timer2.o.dt -MT /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt/tst-timer2.o
- -tst-timer2.c: In function ‘do_test’:
- -tst-timer2.c:33: error: ‘SIGRTMIN’ undeclared (first use in this function)
- -tst-timer2.c:33: error: (Each undeclared identifier is reported only once
- -tst-timer2.c:33: error: for each function it appears in.)
- -make[2]: *** [/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt/tst-timer2.o] Error 1
- +/usr/bin/install -c -m 644 ../include/pthread.h /usr/include/pthread.h
- +/usr/bin/install: cannot remove `/usr/include/pthread.h': Permission denied
- +make[2]: *** [/usr/include/pthread.h] Error 1
-
- -i486-gnu-gcc tst-thrlock.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -g -Wno-parentheses -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build -I../sysdeps/i386/elf -I../sysdeps/mach/hurd/i386 -I../sysdeps/mach/hurd -I../sysdeps/gnu -I../sysdeps/unix/bsd/bsd4.4 -I../sysdeps/unix/mman -I../sysdeps/mach/i386 -I../sysdeps/mach -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/unix/bsd -I../sysdeps/unix/common -I../sysdeps/unix/inet -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../hurd -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/hurd/ -I../mach -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/mach/ -I.. -I../libio -I. -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DNOT_IN_libc=1 -o /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock.o -MD -MP -MF /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock.o.dt -MT /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock.o
- -i486-gnu-gcc -nostdlib -nostartfiles -o /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock -Wl,-dynamic-linker=/usr/lib/ld.so.1 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/csu/crt1.o /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/csu/crti.o `i486-gnu-gcc --print-file-name=crtbegin.o` /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock.o /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/dlfcn/libdl.so.2 -Wl,-rpath-link=/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/math:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/dlfcn:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/nss:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/nis:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/resolv:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/crypt:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/mach:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/hurd /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/libc.so.0.3 /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/libc_nonshared.a -lgcc -Wl,--as-needed -lgcc_s -Wl,--no-as-needed `i486-gnu-gcc --print-file-name=crtend.o` /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/csu/crtn.o
- -/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock.o: In function `do_test':
- -/media/data/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker/elf/tst-thrlock.c:38: undefined reference to `pthread_create'
- -/media/data/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker/elf/tst-thrlock.c:48: undefined reference to `pthread_join'
- -collect2: ld returned 1 exit status
- -make[2]: *** [/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock] Error 1
- +/usr/bin/install -c -m 644 ../include/pthread.h /usr/include/pthread.h
- +/usr/bin/install: cannot remove `/usr/include/pthread.h': Permission denied
- +make[2]: *** [/usr/include/pthread.h] Error 1