diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-12-29 02:36:43 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-12-29 02:36:43 +0100 |
commit | 381347c2696be2c486644685df85ed3aaec87dd5 (patch) | |
tree | 7d73076c57f86dac173b9097f23dde5205fed050 | |
parent | 2eba3d670589ba7bd25c77600c61052589732d05 (diff) |
We should avoid GCC trampolines
-rw-r--r-- | contributing.mdwn | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/contributing.mdwn b/contributing.mdwn index 27128d12..29d60228 100644 --- a/contributing.mdwn +++ b/contributing.mdwn @@ -91,6 +91,7 @@ with". * Teach rsync to use `*getxattr` and friends on GNU/Hurd too, to enable the -X option, so as to preserve translator entries. * Add a `name` field to `thread` structure in Mach, and `thread_set_name` (like `task_set_name`), and use it to add `pthread_setname_np` to glibc. +* Avoid GCC trampolines: as discussed in <https://gcc.gnu.org/onlinedocs/gccint/Trampolines.html> these happen when we pass the address of a local function to another function. This can be seen by running `readelf -S file.o | grep GNU-stack | grep X`, for instance that happens in libdiskfs/file-exec.c, libdiskfs/io-revoke.c. We can't really use -fno-trampoline, we should instead add `void *data` parameters to iterators such as `ports_class_iterate` or `fshelp_exec_reauth`. * Implement `pthread_setschedparam` and `sched_setscheduler` in glibc by calling mach's `thread_policy` and `thread_priority`. * Strengthen httpfs: it should append '/' to URL automatically, it should not fallback index.html itself, etc. probably a lot more small easy issues. * Create a Wiki page with all presentations about the Hurd. Many are referenced here in the Wiki, but they are not easy to find. |