[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!tag open_issue_glibc]] Here's what's to be done for maintaining glibc. [[!toc levels=2]] # [[General information|/glibc]] # [[Sources|source_repositories/glibc]] # [[Debian]] Cheat Sheet # Configuration Last reviewed up to the [[Git mirror's d40c5d54cb551acba4ef1617464760c5b3d41a14 (2012-02-28) sources|source_repositories/glibc]]. * t/dup3 [[tschwinge]] is not convinced that 22542dcc89805af8d9bd9209129259d2737372b5 (and then also ff3f3a789ba08b656dbaa3901091b6410bb883f8) are correct. * 94b7cc3711b0b74c1d3ae18b9a2e019e51a8e0bf -- dup3 changes; relevant for `t/dup3`: hidden def. ed690b2f24bbc4d9c541fc81a7c67e6dc5678a96 -- why not for dup3, too? Because it is a syscall (that is always inlined)? * `t/hurdsig-fixes` hurdsig.c: In function '_hurd_internal_post_signal': hurdsig.c:1188:26: warning: 'pending' may be used uninitialized in this function [-Wmaybe-uninitialized] hurdsig.c:1168:12: note: 'pending' was declared here * `t/init-first.c` Follow up here: [[!message-id "20070722171859.GN25744@fencepost.gnu.org"]] or [[!message-id "87mxe4kwws.fsf@gnu.org"]]. Close [[!GNU_Savannah_bug 17647]]. Debian: [[!message-id "E1Qup1U-0006Zc-39@vasks.debian.org"]] (part of Ludo's patch; the part that is not harmful to GCC 4.4). * `t/kernel-features.h_includes` Before running `tg update`, review for additional changes: $ git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -p -C --cc -S__ASSUME_ top-bases/t/kernel-features.h_includes..baseline * `t/sysvshm` ../sysdeps/mach/hurd/shmat.c: In function '__shmat': ../sysdeps/mach/hurd/shmat.c:57:7: warning: implicit declaration of function '__close' [-Wimplicit-function-declaration] ../sysdeps/mach/hurd/shmget.c: In function 'get_exclusive': ../sysdeps/mach/hurd/shmget.c:85:8: warning: variable 'is_private' set but not used [-Wunused-but-set-variable] ../sysdeps/mach/hurd/shmget.c:102:8: warning: 'dir' may be used uninitialized in this function [-Wmaybe-uninitialized] ../sysdeps/mach/hurd/shmget.c:102:8: warning: 'file' may be used uninitialized in this function [-Wmaybe-uninitialized] * [[`t/tls`|t/tls]] * [[`t/tls-threadvar`|t/tls-threadvar]] * 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 [...] ../sysdeps/i386/i686/multiarch/../strcmp.S: Assembler messages: ../sysdeps/i386/i686/multiarch/../strcmp.S:31: Error: symbol `strcmp' is already defined make[2]: *** [/media/boole-data/thomas/tmp/gnu-0/src/glibc.obj/string/strcmp.o] Error 1 make[2]: Leaving directory `/media/boole-data/thomas/tmp/gnu-0/src/glibc/string' Might simply be a missing patch(es) from master. * --build=X `long double` test: due to `cross_compiling = maybe` wants to execute a file, which fails. Thus `--build=X` has to be set. * Check what all these are: running configure fragment for sysdeps/mach/hurd checking Hurd header version... ok running configure fragment for sysdeps/mach checking for i586-pc-gnu-mig... i586-pc-gnu-mig checking for mach/mach_types.h... yes checking for mach/mach_types.defs... yes checking for task_t in mach/mach_types.h... task_t checking for thread_t in mach/mach_types.h... thread_t checking for creation_time in task_basic_info... yes checking for mach/mach.defs... yes checking for mach/mach4.defs... yes checking for mach/clock.defs... no checking for mach/clock_priv.defs... no checking for mach/host_priv.defs... no checking for mach/host_security.defs... no checking for mach/ledger.defs... no checking for mach/lock_set.defs... no checking for mach/processor.defs... no checking for mach/processor_set.defs... no checking for mach/task.defs... no checking for mach/thread_act.defs... no checking for mach/vm_map.defs... no checking for mach/memory_object.defs... yes checking for mach/memory_object_default.defs... yes checking for mach/default_pager.defs... yes checking for mach/i386/mach_i386.defs... yes checking for egrep... grep -E checking for host_page_size in mach_host.defs... no checking for mach/machine/ndr_def.h... no checking for machine/ndr_def.h... no checking for i386_io_perm_modify in mach_i386.defs... yes checking for i386_set_gdt in mach_i386.defs... yes checking whether i586-pc-gnu-mig supports the retcode keyword... yes * `elf/stackguard-macros.h` See [[t/tls|t/tls]]. * Verify 77c84aeb81808c3109665949448dba59965c391e against `~/shared/glibc/make_TAGS.patch`. * `HP_SMALL_TIMING_AVAIL` not defined anywhere. * Unify `CPUCLOCK_WHICH` stuff in `clock_*` files. * Not all tests are re-run in a `make -k tests; make tests-clean; make -k tests` cycle. For example, after `make tests-clean`: $ find ./ -name \*.out ./localedata/tst-locale.out ./localedata/sort-test.out ./localedata/de_DE.out ./localedata/en_US.out ./localedata/da_DK.out ./localedata/hr_HR.out ./localedata/sv_SE.out ./localedata/tr_TR.out ./localedata/fr_FR.out ./localedata/si_LK.out ./localedata/tst-mbswcs.out ./iconvdata/iconv-test.out ./iconvdata/tst-tables.out ./stdlib/isomac.out ./posix/wordexp-tst.out ./posix/annexc.out ./posix/tst-getconf.out ./elf/check-textrel.out ./elf/check-execstack.out ./elf/check-localplt.out ./c++-types-check.out ./check-local-headers.out ./begin-end-check.out * `CPUCLOCK_WHICH`, `t/cpuclock` /media/boole-data/thomas/tmp/gnu-0/src/glibc.obj/rt/librt_pic.a(clock_settime.os): In function `clock_settime': /media/boole-data/thomas/tmp/gnu-0/src/glibc/rt/../sysdeps/unix/clock_settime.c:113: undefined reference to `CPUCLOCK_WHICH' /media/boole-data/thomas/tmp/gnu-0/src/glibc/rt/../sysdeps/unix/clock_settime.c:114: undefined reference to `CPUCLOCK_WHICH' collect2: error: ld returned 1 exit status make[2]: *** [/media/boole-data/thomas/tmp/gnu-0/src/glibc.obj/rt/librt.so] Error 1 make[2]: Leaving directory `/media/boole-data/thomas/tmp/gnu-0/src/glibc/rt' make[1]: *** [rt/others] Error 2 make[1]: Leaving directory `/media/boole-data/thomas/tmp/gnu-0/src/glibc' make: *** [all] Error 2 * Missing interfaces, amongst many more. Many more are missing, some of which have been announced in `NEWS`, others typically haven't (like new flags to existing functions). Typically, porters will notice missing functionaly. But in case you're looking for something to work on, here's a list. `AT_EMPTY_PATH`, `CLOCK_BOOTTIME`, `CLOCK_BOOTTIME_ALARM`, `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`, `process_vm_readv`, `process_vm_writev`, `sendmmsg`, `setns`, `sync_file_range` * `syncfs` We should be easily able to implement that one. * `futimesat`, `readlinkat`, `renameat` If we have all of 'em (check Linux kernel), `#define __ASSUME_ATFCTS`. * `bits/stat.h [__USE_ATFILE]`: `UTIME_NOW`, `UTIME_OMIT` * `io/fcntl.h [__USE_ATFILE]` Do we support `AT_FDCWD` et al.? * `MAP_POPULATE` (`mmap`, `sys/mman.h`) -- *Populate (prefault) pagetables.* Some Linux kernel version, `mm/mmap.c`: if (vm_flags & VM_LOCKED) { if (!mlock_vma_pages_range(vma, addr, addr + len)) mm->locked_vm += (len >> PAGE_SHIFT); } else if ((flags & MAP_POPULATE) && !(flags & MAP_NONBLOCK)) make_pages_present(addr, addr + len); return addr; `t/mmap`. Is only advisory, so can worked around with `#define 0`. * `t/opendirat`: `opendirat` (`scandirat`, `scandirat64`) Need changes equivalent to c55fbd1ea768f9fdef34a01377702c0d72cbc213 + 14d96785125abee5e9a49a1c3037f35a581750bd. * `madvise`, `MADV_DONTNEED` [[glibc_madvise_vs_static_linking]]. * `msync` Then define `_POSIX_MAPPED_FILES`, `_POSIX_SYNCHRONIZED_IO`. * `sys/epoll.h` Used by [[wayland]], for example. * `sys/eventfd.h` * `sys/inotify.h` * `sys/signalfd.h` * `sys/timerfd.h` * 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 [[!message-id "871uv99c59.fsf@kepler.schwinge.homeip.net"]]. Passing `install_root=/INVALID` to `make`/`make check` is a cheap cure. For `make install`, prepending an additional slash to `install_root` (that is, `install_root=//[...]`) is enough to obfuscate the Makefile rules. * `sysdeps/unix/sysv/linux/syslog.c` * Verify baseline changes, if we need any follow-up changes: * a11ec63713ea3903c482dc907a108be404191a02 * 7e2b0c8562b35155820f87b5ff02a8b6850344cc * 8c0677fe5d91b7269364ca08fa08ed09e4c2d8c9 * 5a2a1d75043138e696222ced4560de2fb90b8024 * 5ae958d74180e2572d198bd7872c86f391de6da7 * 5b08ac571ff8e94fe96511a532f0d20997de5f52 * 3d04ff3a5d3ce3616837e1d15e03b6e1b360cf26 * b2ef2c014b9c66995a3eb4f310ae7c5c510279bf * 63c4ed22b5048c8701d8806026c23cc95f0df756 * ac2b484c02b01307ab6bbe5d45ddbf16d64edf8c * e35fcef8b739ed24e083ff8a3078ac14e101cf67 * 6fb8cbcb58a29fff73eb2101b34caa19a7f88eba * 8a492a675e566dc1e666df0a86cbf541442cb179 * 5dbc3b6cc0b759bf4b22d851ccb9cbf3e3cbc6ef * c86434ccb576a3ce35b5a74f72b9f03bd45b522a * d22e4cc9397ed41534c9422d0b0ffef8c77bfa53 * 15bac72bac03faeb3b725b1d208c62160f0c3ad7 * c08fb0d7bba4015078406b28d3906ccc5fda9d5a * 10b3bedcb03386cc280113f552479793e4bac35f * 754f7da38b0904b4b989d3500cc8dd5be625cf6a * 3cdaa6adb113a088fdfb87aa6d7747557eccc58d * 962dba7828cf251a9025ccb43bc6effa30379b72 * 3162f12e58c3a848db883916843b332b9f8c9d39 * 1c06ba3100847da6bd1f2e011dc24fa8debd9615 * 84b9230c404aed4fd3a7bb3d045ca367043dde8c * 090555538d4347a52807ba9f08cf20ed13206afe * 817328eea788c746131cf151b64fd250200da333 * c3758feebf7c8786231465da664743c6f0ec79cc * 1ac7a2c7b448c851eb8976fcc290a906a4075203 * c21cc9bcb38a87ff638d1099ca871d94a2192b31 * 6484ba5ef092b62b7d2112c0d976dbd6d1a40fde * b8b4863d78bf26b39918fc753b03ed98ef262903 * b76b818e6fe2061e778b3a9bbe63c554c3f9b3c1 * 8e9f92e9d5d7737afdacf79b76d98c4c42980508 -- `_dl_map_object` in `sysdeps/mach/hurd/dl-sysdep.c` * 0e516e0e14f2f9783a21cd1727bc53776341f857 * a1fb5e3ebe9d38b5ae6c5bfbfaa04882d52355bc * cf7c9078a5acdbb435498ace92cd81009637a971 * db753e2cfb2051ebf20dc089f87c5b1297cc2cff * 4a531bb0b3b582cb693de9f76d2d97d970f9a5d5 -- looks good. * 5bd6dc5c2c68fe98691db9b40f87d9b68ea9565b * 451f001b50870604e1f2daef12f04f9f460d3997 + a85b5cb4d4a5fc56e2b38638d270bf2daa67eb6c -- BZ10484. `nptl/Versions [libc] (GLIBC_PRIVATE): Export __libc_alloca_cutoff`. We don't even define it yet. Also see [[glibc___libc_alloca_cutoff_should_be_lowered]]. * 1086d70d916fd0eb969b3d89ff88abd35f6a5c34 * cfa28e560ef69372b9e15e9a2d924a0fbcfc7bca * 8cf8ce1702c354a8266e3cfa6ab54c2467d1873f * 68dc949774cb651d53541df4abdc60327f7e096b * 70181fddf1467996bea393d13294ffe76b8a0853 * a77e8cbc394ab098aa1fc3f0a6645a38348d21ca * 32465c3ea007065acd8ca8199f130cdf4068130d * 18ba70a559c52719fd94a713cc380514d9d19125 * 620a05296fe3380b7441ba7720e8b25c48a8c28c * [low] e6c61494125126d2ba77e5d99f83887a2ed49783 -- `Fix memory leak in TLS of loaded objects.` Do we need to replicate `nptl/allocatestack.c` hunk? * 6e04cbbe79f5965809fdbf1f28d7ae8b4af74d31 + 1bfbe0d335d3fc44a492648b974a0db19975f6d8 -- `Fix pathconf(_PC_BUF_SIZE).` * 28377d1bf58625172a1734b92e835591d4d23a18 -- `Optimize fdopendir a bit.` * 7fb90fb89bbdf273ab7ab96517fe1b156cd7aee1 + 6fb2dde3f1aa3a1419cb6c2dfa53dd1d506722a4 -- `Fix Linux getcwd for long paths` * [low] [[!taglink open_issue_libpthread]] 5bdcc10322c488f53557440acf71623d8b313ab5 -- return `EAGAIN` instead of `ENOMEM`. * f574184a0e4b6ed69a5d9a3234543fba6d2a7367 -- `Fix sched_setscheduler call in spawn implementation` * 3b85df27870a47ed1db84e948e37a5a50a178a92 + f50ef8f1efdd1f2b040acbb8324604f168e8832a -- sysconf * 68a3f91fcad464c4737c1eaed4ae0bf539801fb2 -- `Fix reporting of invalid timeouts in emulated pselect` * ea389b12b3b65c4a7fa91fa76f8c99867eb37865 -- `strndup -> __strndup`; strndupa? * 7e4afad5bcf49e03c3b987399c6a8f66a9018660 -- `Nicer output for negative error numbers in strerror_r`. Change needed for `sysdeps/mach/_strerror.c`? * 7ea72f99966a65a56aedba817ee2413ff9b1f23c + adcd5c15d2a37794d021104160b425ff61f88219 -- `Always fill output buffer in XPG strerror function`. Change needed for `sysdeps/mach/xpg-strerror.c`? * a91710475294c66d0005bdaae0919d36ef8ce3d2 -- sotruss. Does it work? * b1ebd700c5295a449f8d114740f0d1fb6e6b2eb5 + 80e2212d8e59933a1641f029ebd360526ff0e074 + 4997db742946d08be4378cf91221f558f928bc73 -- `Don't document si_code used for raise()`. Also for `bits/siginfo.h`? * 11988f8f9656042c3dfd9002ac85dff33173b9bd -- pldd, Does it work? Probably not: needs `/proc/[PID]/auxv`, `/proc/[PID]/exe`, `/proc/[PID]/mem` ([[!tag open_issue_hurd]], [[hurd/translator/procfs]]). * 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? * 7a03a9c8c4b37b88ac5e82b557d974f3161ddaf9 (`Add read barriers in cancellation initialization`). Is this needed in other places, too? * [low] 5744c68d78f6ca6c6500e2c8d3d85b3a31f4ed2a (`Align x86 TCB to 64 bytes`). Probably we have hidden somewhere such a constant, too (in libpthread). * d96de9634a334af16c0ac711074c15ac1762b23c + ecb1482ffd85fd3279642b1dc045aa867ad4d415 (`Try shell in posix_spawn* only in compat mode`). Change looks good, but what about `SPAWN_XFLAGS_TRY_SHELL` for us? * 3ce1f2959437e952b9db4eaeed2407424f11a4d1 (`Make several tool features mandatory and simplify the code.`). Generally looks good. * `locale/global-locale.c`: Apparently, no one is using `_HURD_THREADVAR_LOCALE`. But it is exported via `hurd/threadvar.h`. * `mach/devstream.c`: reversed. Fixed in `t/repair-mach_devstream.c`. * `malloc/arena.c`: should be OK. * `Remove support for !USE___THREAD`. d063d164335938d557460bebaa7cfe388157b627 (generally looks good; `csu/errno-loc.c` (should be OK); `include/errno.h` (fixed)) + (de82006d43e198fd162807c9adc720c7ebd728a3 + 037e9fe21c92216ef7032ea2796781ec27ca182a) + 995a80dfbcb443ead5aa22682c884ec5c827a2ea (discussing) + bc7e1c3667b577ad418f7520df2a7dbccea04ee9 (should be ok). * [OK] 22a89187139a9083ca73989bfd11597e0f85cb61 (`malloc: Remove all kinds of unused configuration options and dead code.`). `NO_STARTER` changes (should be OK). * [high] `pagesize`, 02d46fc4b969e25e4ba0c54aa95fa98d7279bd05 (`Simplify malloc initialization`); aebae0537dcb408100b88c6b7647a7e858c43237, `BZ 11929`. Is this all kosher for us? See [[!message-id "87mxd9hl2n.fsf@kepler.schwinge.homeip.net"]]. * [OK] 83cd14204559abbb52635006832eaf4d2f42514a (`Remove --wth-tls option, TLS support is required`). * a7c8e6a1478de9f990b11e5e853318ccbe4330f2 (`Fix invalid conversion in __cmsg_nxthdr`). Probably just a C++ thing and not relevant for us; see [[!message-id "87r52nk1kx.fsf@kepler.schwinge.homeip.net"]]. * [low] `mmap`, 110946e473b38fc3896212e416d9d7064fecd5b7. Kosher with respect to our [[glibc/mmap]] peculiarities? * [OK] `__attribute__ ((__leaf__))`, `BZ #13344`, aa78043a4aafe5db1a1a76d544a833b63b4c5f5c + 49a43d80ec5c97cf6136b1ee2687414773b2d5aa + 3871f58f065dac3917eb18220a479e9591769c8c + 9beb2334930db81ceada5aa6051fe5ac0554db32 + 0ffc4f3ebaace42cd545db55a2ac50b6e0cc7d89 + edc5984d4d18296d7aa3d8f4ed8f7336a743170e + 57769839788e2c62b68d9dfbf4b35052321278ba. . * *baseline* * [low] implement `timespec_get`, 74033a2507841cf077e31221de2481ff30b43d51. * [low] `__volatile`, `BZ #13553`, a784e502472fb3a1afa4d01a47c66b52d23e00f6: `sysdeps/mach/i386/machine-lock.h:typedef __volatile int __spin_lock_t;`, `sysdeps/mach/powerpc/machine-lock.h:typedef __volatile long int __spin_lock_t;` * [high] 6ee65ed6ddbf04402fad0bec6aa9c73b9d982ae4, hopefully OK. * [high] `crti`/`crtn`, 3add8e1353d62d77fdd9b4ca363cdfe7006b0efb, 0e7dfaef514bbb3ec08934c6f7f42953bc149257, should just work. * 7638c0fda568726f52ee5a88e1eadcddcd9fa290, `EHWPOISON`, does [[!message-id "Pine.LNX.4.64.1202191652540.3253@digraph.polyomino.org.uk"]] apply for us? * [low] `conformtest`, 3134156779108fe8b46e0f4cd60d837572faaa93 + 4efeffc1d583597e4f52985b9747269e47b754e2 + d94a4670800de6e8f088b8630ad5142866127980 -- what does it do for us? # Build Here's a log of a glibc build run; this is from our [[Git repository's 53c567c28dd36d213af2ef604c4ed7b782e639bf (2012-04-03; 2011-12-30) sources|source_repositories/glibc]], run on coulomb.SCHWINGE. $ export LC_ALL=C $ ../Roger_Whittaker/configure AUTOCONF=: --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 install_root=/INVALID 2>&1 | tee log_build_ [...] This takes up around 500 MiB and needs roughly X min on kepler.SCHWINGE and 110 min on coulomb.SCHWINGE (GCC 4.4/4.5/4.6). ## Analysis TODO. * With GCC 4.5, there's a ton of these warnings: hurd/hurd.h: In function '__hurd_fail': hurd/hurd.h:73: warning: case value '0' not in enumerated type 'error_t' ... as well as a few individual instances: hurdselect.c: In function '_hurd_select': hurdselect.c:265: warning: case value '0' not in enumerated type 'error_t' get-host.c: In function '_hurd_get_host_config': get-host.c:38: warning: case value '0' not in enumerated type 'error_t' hurdmsg.c: In function '_S_msg_get_init_ints': hurdmsg.c:186: warning: case value '0' not in enumerated type 'error_t' hurdmsg.c: In function '_S_msg_set_init_ints': hurdmsg.c:273: warning: case value '0' not in enumerated type 'error_t' intr-msg.c: In function '_hurd_intr_rpc_mach_msg': intr-msg.c:363: warning: case value '0' not in enumerated type 'error_t' sysdeps/mach/hurd/setitimer.c: In function 'timer_thread': sysdeps/mach/hurd/setitimer.c:117: warning: case value '0' not in enumerated type 'error_t' sysdeps/mach/hurd/wait4.c: In function '__wait4': sysdeps/mach/hurd/wait4.c:40: warning: case value '0' not in enumerated type 'error_t' sysdeps/mach/hurd/fork.c: In function '__fork': sysdeps/mach/hurd/fork.c:423: warning: case value '0' not in enumerated type 'error_t' sysdeps/mach/hurd/spawni.c: In function '__spawni': sysdeps/mach/hurd/spawni.c:600: warning: case value '0' not in enumerated type 'error_t' sysdeps/mach/hurd/setpriority.c: In function 'setonepriority': sysdeps/mach/hurd/setpriority.c:66: warning: case value '0' not in enumerated type 'error_t' sysdeps/mach/hurd/ioctl.c: In function 'send_rpc': sysdeps/mach/hurd/ioctl.c:177: warning: case value '0' not in enumerated type 'error_t' sysdeps/mach/hurd/ioctl.c: In function '__ioctl': sysdeps/mach/hurd/ioctl.c:306: warning: case value '0' not in enumerated type 'error_t' * baseline fd5bdc0924e0cfd1688b632068c1b26f3b0c88da..2ba92745c36eb3c3f3af0ce1b0aebd255c63a13b introduces: genops.c: In function '_IO_flush_all_lockp': genops.c:869:3: warning: passing argument 1 of '__save_FCT' makes pointer from integer without a cast [enabled by default] genops.c:869:3: note: expected 'void *' but argument is of type 'int' A similar warning has already been (and still is) seen here: dl-iteratephdr.c:83:3: warning: passing argument 1 of '__save_FCT' makes pointer from integer without a cast [enabled by default] dl-iteratephdr.c:83:3: note: expected 'void *' but argument is of type 'int' * baseline fd5bdc0924e0cfd1688b632068c1b26f3b0c88da..2ba92745c36eb3c3f3af0ce1b0aebd255c63a13b (or probably Samuel's mmap backport) introduces: ../sysdeps/mach/hurd/mmap.c: In function '__mmap': ../sysdeps/mach/hurd/mmap.c:54:15: warning: comparison between pointer and integer [enabled by default] ../sysdeps/mach/hurd/mmap.c:66:21: warning: comparison between pointer and integer [enabled by default] ../sysdeps/mach/hurd/mmap.c:143:13: warning: comparison between pointer and integer [enabled by default] ../sysdeps/mach/hurd/mmap.c:165:24: warning: comparison between pointer and integer [enabled by default] * baseline fd5bdc0924e0cfd1688b632068c1b26f3b0c88da..2ba92745c36eb3c3f3af0ce1b0aebd255c63a13b introduces: ../sysdeps/i386/fpu/bits/fenv.h: Assembler messages: ../sysdeps/i386/fpu/bits/fenv.h:125: Warning: translating to `fdivp %st,%st(1)' * baseline fd5bdc0924e0cfd1688b632068c1b26f3b0c88da..2ba92745c36eb3c3f3af0ce1b0aebd255c63a13b introduces: nscd_gethst_r.c: In function '__nscd_get_nl_timestamp': nscd_gethst_r.c:112:4: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration] This was already present before: nscd_gethst_r.c: In function 'nscd_gethst_r': nscd_gethst_r.c:426:5: warning: implicit declaration of function '__close' [-Wimplicit-function-declaration] * baseline fd5bdc0924e0cfd1688b632068c1b26f3b0c88da..2ba92745c36eb3c3f3af0ce1b0aebd255c63a13b introduces: In file included from test-wcscpy.c:2:0: ../string/test-strcpy.c: In function 'do_one_test': ../string/test-strcpy.c:84:7: warning: format '%s' expects argument of type 'char *', but argument 5 has type 'wchar_t *' [-Wformat] ../string/test-strcpy.c:84:7: warning: format '%s' expects argument of type 'char *', but argument 6 has type 'const wchar_t *' [-Wformat] # Install TODO. $ make install_root="$PWD".install install 2>&1 | tee log_install [...] This takes up around 100 MiB, and needs roughly X min on kepler.SCHWINGE and 18 min on coulomb.SCHWINGE. ## Analysis TODO. # Testsuite $ make -k install_root=/INVALID check 2>&1 | tee log_check [...] This needs roughly 60 min on coulomb.SCHWINGE. ## Analysis There is quite a baseline of failures. ### Additional Failures Compared to Debian $ bash ~/tmp/glibc/debian/eglibc-2.13/debian/testsuite-checking/convertlog.sh log_check > log_check.filtered $ bash ~/tmp/glibc/debian/eglibc-2.13/debian/testsuite-checking/compare.sh ~/tmp/glibc/debian/eglibc-2.13/debian/testsuite-checking/expected-results-i486-gnu-libc log_check.filtered * `bug-atexit3.out`, `debug/tst-chk4`, `debug/tst-chk5`, `debug/tst-chk6`, `debug/tst-lfschk4`, `debug/tst-lfschk5`, `debug/tst-lfschk6` dlopen failed: libstdc++.so.6: cannot open shared object file: No such file or directory See [[!message-id "20090420002344.11798.qmail@s461.sureserver.com"]]. Hacked around with `ln -s /usr/lib/i386-*gnu/libstdc++.so.6 /lib/i386-*gnu/libpthread-stubs.so.0 /lib/i386-*gnu/libgcc_s.so.1 ./`. This is a bug in the glibc test harness. Should probably use some `configure` magic akin to the `fixincludes` stuff (`gcc-4.4 -print-file-name=libstdc++.so.6`, etc.). * `debug/tst-chk4`, `debug/tst-chk5`, `debug/tst-chk6`, `debug/tst-lfschk4`, `debug/tst-lfschk5`, `debug/tst-lfschk6` Fail in the same way as the C ones, `tst-chk1..3`. * `io/ftwtest`, `posix/globtest`, `iconvdata/iconv-test`, `intl/tst-gettext`, `malloc/tst-mtrace`, `elf/tst-pathopt`, `iconvdata/tst-tables`, `grp/tst_fgetgrent`, `dlfcn/tststatic`, `dlfcn/tststatic2`, `posix/wordexp-tst`, `localedata/bug-setlocale1.out`, `posix/tst-getconf` /home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486.O/io/ftwtest: error while loading shared libraries: libmachuser.so.1: cannot open shared object file: No such file or directory Looking into `localedata/bug-setlocale1.c`, it is clear what it going on: only the root of the build directory is added for `--library-path`, but none of the other directories that are additionally used. This is a bug in the glibc test harness. Hacked around by `ln -s mach/libmachuser.so.1 hurd/libhurduser.so.0.3 ./`. Hopefully the other instances are similar. * `posix/tst-getconf` Ends with: getconf POSIX_ALLOC_SIZE_MIN /: /home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486/posix/getconf: pathconf: /: Invalid argument * `dlfcn/tststatic`, `dlfcn/tststatic2` No output, SEGFAULT. * `math/test-idouble`, `math/test-ifloat`, `math/test-ildoubl`, `math/test-ldouble` SIGSEGV. * `rt/tst-aio10`, `rt/tst-aio9` /home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486.O/rt/tst-aio10.o: In function `do_test': tst-aio10.c:(.text+0x1b): undefined reference to `pthread_self' tst-aio10.c:(.text+0x78): undefined reference to `pthread_barrier_init' tst-aio10.c:(.text+0xf7): undefined reference to `pthread_create' tst-aio10.c:(.text+0x10b): undefined reference to `pthread_barrier_wait' /home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486.O/rt/tst-aio10.o: In function `tf': tst-aio10.c:(.text+0x5ae): undefined reference to `pthread_barrier_wait' tst-aio10.c:(.text+0x5ef): undefined reference to `pthread_kill' collect2: ld returned 1 exit status make[2]: *** [/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486.O/rt/tst-aio10] Error 1 * `rt-tst-aio2`, `rt-tst-aio3`, `rt/tst-mqueue3`, `rt/tst-mqueue6`, `rt/tst-mqueue8`, `elf/tst-thrlock`, `rt/tst-timer3`, `nss//libnss_test1.so` Compilation: missing `pthread_attr_init`, `pthread_barrier_init`, `pthread_create`, etc. * `elf/tst-audit1`, `elf/tst-audit2` SIGKILL. * `inet/tst-ether_line` tst-ether_line.c:19: error: 'ETH_ALEN' undeclared (first use in this function) Will either need a `hurd/netinet/if_ether.h` that includes ``, or can do that in the generic `netinet/if_ether.h`? See also [[!sourceware_bug 11142]]. * `gmon/tst-sprofil` Floating point exception * `posix/bug-regex31-mem`, `posix/tst-fnmatch-mem` *output* files: some memory not freed. * `assert/test-assert.out` Fails sometimes... * `stdlib/bug-getcontext.out` getcontext failed, errno: 1073741902. Is not implemented; see above. * `elf/tst-unique3lib.so`, `elf/tst-unique3lib2.so`, `elf/tst-unique4lib.so` Only with GCC 4.4; no longer with 4.5 or 4.6: /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' * `math/test-fenv.out` Used to fail (is listed in Debian eglibc-2.13-21's `expected-results-i486-gnu-libc`), but something between 22bcba37dd3b782b1a1ec7bf51da468e48f4d2eb and 005b7594ffe209639dd1ef2b9ed9a4c22307dec1 causes it to passe -- very likely Jérémie's signaling work. * `posix/tst-waitid.out` Fails sometimes (is listed in Debian eglibc-2.13-21's `expected-results-i486-gnu-libc`). ## OLD `configure --without-cvs --prefix= --disable-profile --build=i486-gnu --host=i486-gnu` `make -k check` changes from 538603af899057a9ef9583cc447804ec602a45e5 to c9fd33ef070def49c078c94f8d9bc9f8a8e267f7. Configured with `--prefix=/usr` instead of `--prefix=`. Resolved failures: * localedata/tst_mblen.out * localedata/tst_mbrlen.out * localedata/tst_mbrtowc.out * localedata/tst_mbsrtowcs.out * localedata/tst_mbstowcs.out * localedata/tst_mbtowc.out * localedata/tst_swscanf.out * localedata/tst_wcrtomb.out * localedata/tst_wcsrtombs.out * localedata/tst_wcstombs.out * localedata/tst_wctob.out * localedata/tst_wctomb.out * localedata/bug-iconv-trans.out * localedata/tst-wctype.out * math/test-float.out * math/test-double.out * posix/tst-vfork3-mem * io/tst-mkdirat.out New: * A lot of `error while loading shared libraries: libmachuser.so.1: cannot open shared object file: No such file or directory`. Is it perhaps picking that library up from `$prefix/lib/`? New failures; likely due to that: * iconvdata/iconv-test.out * iconvdata/tst-tables.out * malloc/tst-mtrace.out * grp/tst_fgetgrent.out * posix/globtest.out * posix/wordexp-tst.out * io/ftwtest.out * elf/tst-pathopt.out Changed failures; likely due to that: * debug/tst-chk4.out / debug/tst-chk5.out -error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory +error while loading shared libraries: libpthread-stubs.so.0: cannot open shared object file: No such file or directory --- Changes to b367d4f996512af6841c3cefdb943cb0a826a6a1: nothing interesting. --- Changes to b85c54a1f7e5241c1ef99dfeaecbd1bf4117564f: nothing interesting. New failures: * posix/bug-glob3.out (SEGFAULT; but also on Linux) * wctype/bug-wctypeh.o (compile error; but also on Linux)