diff options
-rw-r--r-- | contributing.mdwn | 3 | ||||
-rw-r--r-- | open_issues/glibc.mdwn | 114 | ||||
-rw-r--r-- | user/tlecarrour/porting_guide_for_dummies.mdwn | 6 |
3 files changed, 63 insertions, 60 deletions
diff --git a/contributing.mdwn b/contributing.mdwn index c81766c3..95bf2441 100644 --- a/contributing.mdwn +++ b/contributing.mdwn @@ -112,7 +112,8 @@ basic port could be small. * Use libz and libbz2 in libstore. See `hurd/libstore/unzip.c` etc., they should be replaced by mere calls to libraries, [[!GNU_Savannah_task 6990]] See also the discussions on [[open_issues/exec]]. * Add `/proc/$pid/maps`. `vminfo` already has this kind of information, it's a matter of making procfs do the same. [[!GNU_Savannah_bug 32770]] - +* Move the mount/umount logic from utils/{,u}mount.c into libshouldbeinlibc. +* Fix /proc/self. Look at the file hurd/lookup-retry.c in the glibc source code for how FS_RETRY_MAGICAL lookups work. <a name="porting"></a> ## Porting Packages diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn index e72b59d3..4dad229f 100644 --- a/open_issues/glibc.mdwn +++ b/open_issues/glibc.mdwn @@ -24,7 +24,7 @@ Here's what's to be done for maintaining glibc. # [[Sources|source_repositories/glibc]] -# [[Debian]] Cheat Sheet +# [[Debian Cheat Sheet|debian]] # Configuration @@ -41,24 +41,24 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -b -p -C Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 (2013-12-19) sources|source_repositories/glibc]]. - * `t/hurdsig-fixes` + * <a id=t_hurdsig-fixes>`t/hurdsig-fixes`</a> 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/host-independency` + * <a id=t_host-independency>`t/host-independency`</a> [[!message-id "87bougerfb.fsf@kepler.schwinge.homeip.net"]], [[!message-id "20120525202732.GA31088@intel.com"]], commit 918b56067a444572f1c71b02f18255ae4540b043. [[!GCC_PR 53183]], GCC commit c05436a7e361b8040ee899266e15bea817212c37. - * `t/pie-sbrk` + * <a id=t_pie-sbrk>`t/pie-sbrk`</a> [[gcc/PIE]]. - * `t/sysvshm` + * <a id=t_sysvshm>`t/sysvshm`</a> ../sysdeps/mach/hurd/shmat.c: In function '__shmat': ../sysdeps/mach/hurd/shmat.c:57:7: warning: implicit declaration of function '__close' [-Wimplicit-function-declaration] @@ -67,11 +67,11 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 ../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]] + * <a id=t_tls>[[`t/tls`|t/tls]]</a> - * [[`t/tls-threadvar`|t/tls-threadvar]] + * <a id=t_tls-threadvar>[[`t/tls-threadvar`|t/tls-threadvar]]</a> - * t/verify.h + * <a id=t_verify.h>`t/verify.h`</a> People didn't like this too much. @@ -79,7 +79,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 * 11988f8f9656042c3dfd9002ac85dff33173b9bd -- `static_assert` - * [[toolchain/cross-gnu]], without `--disable-multi-arch` + * <a id=toolchain_cross-gnu>[[toolchain/cross-gnu]], without `--disable-multi-arch`</a> i686-pc-gnu-gcc ../sysdeps/i386/i686/multiarch/strcmp.S -c [...] ../sysdeps/i386/i686/multiarch/../strcmp.S: Assembler messages: @@ -89,7 +89,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 Might simply be a missing patch(es) from master. - * `--disable-multi-arch` + * <a id=disable-multi-arch>`--disable-multi-arch`</a> IRC, freenode, #hurd, 2012-11-22 @@ -118,12 +118,12 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 <tschwinge> Ah, I probably have been thinking about open_issues/ifunc and open_issues/libc_variant_selection. - * --build=X + * <a id=buildX>--build=X</a> `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: + * <a id=check>Check what all these are:</a> running configure fragment for sysdeps/mach/hurd checking Hurd header version... ok @@ -159,19 +159,19 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 checking for i386_set_gdt in mach_i386.defs... yes checking whether i586-pc-gnu-mig supports the retcode keyword... yes - * `sysdeps/i386/stackguard-macros.h` + * <a id=stackguard>`sysdeps/i386/stackguard-macros.h`</a> See [[t/tls|t/tls]]. - * Verify 77c84aeb81808c3109665949448dba59965c391e against - `~/shared/glibc/make_TAGS.patch`. + * <a id=77c84aeb81808c3109665949448dba59965c391e>Verify 77c84aeb81808c3109665949448dba59965c391e against + `~/shared/glibc/make_TAGS.patch`.</a> - * `HP_SMALL_TIMING_AVAIL` not defined anywhere. + * <a id=HP_SMALL_TIMING_AVAIL>`HP_SMALL_TIMING_AVAIL` not defined anywhere.</a> - * Unify `CPUCLOCK_WHICH` stuff in `clock_*` files. + * <a id=CPUCLOCK_WHICH>Unify `CPUCLOCK_WHICH` stuff in `clock_*` files.</a> - * Not all tests are re-run in a `make -k tests; make tests-clean; make -k - tests` cycle. For example, after `make tests-clean`: + * <a id=tests-clean>Not all tests are re-run in a `make -k tests; make tests-clean; make -k + tests` cycle. For example, after `make tests-clean`:</a> $ find ./ -name \*.out ./localedata/tst-locale.out @@ -198,7 +198,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 ./check-local-headers.out ./begin-end-check.out - * `CPUCLOCK_WHICH`, `t/cpuclock` + * <a id=t_cpuclock>`CPUCLOCK_WHICH`, `t/cpuclock`</a> /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' @@ -210,7 +210,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 make[1]: Leaving directory `/media/boole-data/thomas/tmp/gnu-0/src/glibc' make: *** [all] Error 2 - * Missing interfaces, amongst many more. + * <a id=missing>Missing interfaces, amongst many more.</a> IRC, freenode, #hurd, 2014-02-25: @@ -243,7 +243,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 Check also the content of `gnu/stubs.h`, which lists all the functions marked as stub which only return `ENOSYS`. - * `chflags` + * <a id=chflags>`chflags`</a> Patch sent, [[!message-id "20120427012130.GZ19431@type.famille.thibault.fr"]]. @@ -274,9 +274,9 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 <youpi> so I'd say ignore the error for now, we'll add the declaration - * [[t/tls-threadvar]] + * <a id=t_tls-threadvar>[[t/tls-threadvar]]</a> - * `futimesat` + * <a id=futimesat>`futimesat`</a> If we have all of 'em (check Linux kernel), `#define __ASSUME_ATFCTS`. @@ -294,19 +294,19 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 <youpi> but perhaps a bug report would be good for the kfreebsd case - * `bits/stat.h [__USE_ATFILE]`: `UTIME_NOW`, `UTIME_OMIT` + * <a id=bits_stat.h>`bits/stat.h [__USE_ATFILE]`: `UTIME_NOW`, `UTIME_OMIT`</a> - * `io/fcntl.h [__USE_ATFILE]` + * <a id=__USE_ATFILE>`io/fcntl.h [__USE_ATFILE]`</a> Do we support `AT_FDCWD` et al.? (80b4e5f3ef231702b24d44c33e8dceb70abb3a06.) - * `t/opendirat`: `opendirat` (`scandirat`, `scandirat64`) + * <a id=t_opendirat>`t/opendirat`: `opendirat` (`scandirat`, `scandirat64`)</a> Need changes equivalent to c55fbd1ea768f9fdef34a01377702c0d72cbc213 + 14d96785125abee5e9a49a1c3037f35a581750bd. - * `madvise`, `MADV_DONTNEED`, `MADV_DONTDUMP`, `MADV_DODUMP` + * <a id=madvise>`madvise`, `MADV_DONTNEED`, `MADV_DONTDUMP`, `MADV_DODUMP`</a> [[glibc_madvise_vs_static_linking]]. @@ -332,11 +332,11 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 [...] - Disable jemalloc on hurd and kfreebsd-*. No longer disabled upstream. - * `msync` + * <a id=msync>`msync`</a> Then define `_POSIX_MAPPED_FILES`, `_POSIX_SYNCHRONIZED_IO`. - * `epoll`, `sys/epoll.h` + * <a id=epoll>`epoll`, `sys/epoll.h`</a> Used by [[wayland]], for example. @@ -754,18 +754,18 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 <braunr> kernels provide a monotonic clock, and realtime is merely shifted from it - * `sys/eventfd.h` + * <a id=sys_eventfd.h>`sys/eventfd.h`</a> - * `sys/inotify.h` + * <a id=sys_inotify.h>`sys/inotify.h`</a> - * `sys/signalfd.h` + * <a id=sys_signalfd.h>`sys/signalfd.h`</a> - * `sys/timerfd.h` + * <a id=sys_timerfd.h>`sys/timerfd.h`</a> - * `timespec_get` (74033a2507841cf077e31221de2481ff30b43d51, - 87f51853ce3671f4ba9a9953de1fff952c5f7e52) + * <a id=timespec_get>`timespec_get` (74033a2507841cf077e31221de2481ff30b43d51, + 87f51853ce3671f4ba9a9953de1fff952c5f7e52)</a> - * `waitflags.h` (`WEXITED`, `WNOWAIT`, `WSTOPPED`, `WCONTINUED`) + * <a id=waitflags.h>`waitflags.h` (`WEXITED`, `WNOWAIT`, `WSTOPPED`, `WCONTINUED`)</a> IRC, freenode, #hurd, 2012-04-20: @@ -792,9 +792,9 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 See `posix/tst-waitid.out` failure below. - * `getconf` things (see below the results of `tst-getconf.out`) + * <a id=getconf>`getconf` things (see below the results of `tst-getconf.out`)</a> - * `getsockopt`, `setsockopt` + * <a id=getsockopt>`getsockopt`, `setsockopt`</a> IRC, freenode, #hurd, 2013-02-14 @@ -839,7 +839,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 <braunr> no, linux is more permissive <braunr> (at least, on this matter) - * `getcontext`/`makecontext`/`setcontext`/`swapcontext` + * <a id=getcontext>`getcontext`/`makecontext`/`setcontext`/`swapcontext`</a> Support for these functions within the Hurd threadvar environment has been added, but for multi-threaded applications ([[libpthread]]), it is @@ -1646,7 +1646,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 <braunr> gnu_srs1: use break on the address <gnu_srs1> how do i get the address of where the assembly starts? - * `recvmmsg`/`sendmmsg` (`t/sendmmsg`) + * <a id=recvmmsg>`recvmmsg`/`sendmmsg` (`t/sendmmsg`)</a> From [[!message-id "20120625233206.C000A2C06F@topped-with-meat.com"]], Roland McGrath: *They are generally useful interfaces and there is @@ -1657,7 +1657,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 Then perhaps the Linux fallback case should be that instead of stubs, too.* - * `SOCK_CLOEXEC` + * <a id=SOCK_CLOEXEC>`SOCK_CLOEXEC`</a> IRC, freenode, #hurd, 2013-09-02: @@ -1857,19 +1857,19 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 For specific packages: - * [[octave]] + * <a id=octave>[[octave]]</a> - * Create `t/cleanup_kernel-features.h`. + * <a id=t_cleanup_kernel-features.h>Create `t/cleanup_kernel-features.h`.</a> - * [[Secure_file_descriptor_handling]]. + * <a id=Secure_file_descriptor_handling>[[Secure_file_descriptor_handling]].</a> - * In `sysdeps/unix/sysv/linux/Makefile`, there are a bunch of - `-DHAVE_SENDFILE` -- but we do have `sendfile`, too. + * <a id=sendfile>In `sysdeps/unix/sysv/linux/Makefile`, there are a bunch of + `-DHAVE_SENDFILE` -- but we do have `sendfile`, too.</a> Define `__ASSUME_SENDFILE` to 1 in `kernel-features.h`, if `sendfile` works. - * `/usr/include/pthread.h` overwrite issue + * <a id=pthreadoverwrite>`/usr/include/pthread.h` overwrite issue</a> `make`, after editing `nss/nss_db/db-initgroups.c`: @@ -1890,9 +1890,9 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 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` + * <a id=syslog.c>`sysdeps/unix/sysv/linux/syslog.c`</a> - * `fsync` on a pipe + * <a id=fsync>`fsync` on a pipe</a> IRC, freenode, #hurd, 2012-08-21: @@ -2066,7 +2066,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 [[!message-id "1351231423.8019.19.camel@hp.my.own.domain"]]. - * `t/no-hp-timing` + * <a id=t_no-hp-timing>`t/no-hp-timing`</a> IRC, freenode, #hurd, 2012-11-16 @@ -2074,7 +2074,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 couldn't that file be just replaced by #include <sysdeps/generic/hp-timing.h>? - * `flockfile`/`ftrylockfile`/`funlockfile` + * <a id=flockfile>`flockfile`/`ftrylockfile`/`funlockfile`</a> IRC, freenode, #hurd, 2012-11-16 @@ -2213,7 +2213,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 <pinotree> provides a EXEC_PAGESIZE define in libio, so it makes it use mmap (like on linux) instead of malloc - `t/pagesize`. + * <a id=t_pagesize>`t/pagesize`.</a> <braunr> yes, the stub is used instead of the libpthreads code <braunr> tschwinge: ^ @@ -2331,7 +2331,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 <youpi> ok, so all god <youpi> +o - * `t/pagesize` + * <a id=t_pagesize2>`t/pagesize`</a> IRC, freenode, #hurd, 2012-11-16 @@ -2372,7 +2372,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 size <braunr> well they have to - * `LD_DEBUG` + * <a id=LD_DEBUG>`LD_DEBUG`</a> IRC, freenode, #hurd, 2012-11-22 @@ -2386,7 +2386,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 <pinotree> http://paste.debian.net/25934/ ← _hurd_thread_sigstate calls malloc, boom - * `conformtest` + * <a id=conformtest>`conformtest`</a> IRC, OFTC, #debian-hurd, 2013-09-22: @@ -2480,7 +2480,7 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 support.` may help to find all the places that need to be touched when adding support. - * Verify baseline changes, if we need any follow-up changes: + * <a id=baselinechanges>Verify baseline changes, if we need any follow-up changes:</a> * a11ec63713ea3903c482dc907a108be404191a02 * 7e2b0c8562b35155820f87b5ff02a8b6850344cc diff --git a/user/tlecarrour/porting_guide_for_dummies.mdwn b/user/tlecarrour/porting_guide_for_dummies.mdwn index 64f0ba0d..f43119bd 100644 --- a/user/tlecarrour/porting_guide_for_dummies.mdwn +++ b/user/tlecarrour/porting_guide_for_dummies.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2012 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2012, 2013 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 @@ -217,8 +217,10 @@ The code comes from [[https://buildsecurityin.us-cert.gov/bsi/articles/knowledge if (buff == NULL) return NULL; int nchars = readlink(filename, buff, size); - if (nchars < 0) + if (nchars < 0) { + free(buff); return NULL; + } if (nchars < size) { buff[nchars] = '\0'; return buff; |