From 381347c2696be2c486644685df85ed3aaec87dd5 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 29 Dec 2020 02:36:43 +0100 Subject: We should avoid GCC trampolines --- contributing.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'contributing.mdwn') 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 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. -- cgit v1.2.3