summaryrefslogtreecommitdiff
path: root/contributing.mdwn
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-12-29 02:36:43 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-12-29 02:36:43 +0100
commit381347c2696be2c486644685df85ed3aaec87dd5 (patch)
tree7d73076c57f86dac173b9097f23dde5205fed050 /contributing.mdwn
parent2eba3d670589ba7bd25c77600c61052589732d05 (diff)
We should avoid GCC trampolines
Diffstat (limited to 'contributing.mdwn')
-rw-r--r--contributing.mdwn1
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.