hurd: break relocation loop between libc.so and lib{mach,hurd}user.so
commit56010b73e81e2cb1082e418699f98353598fe671
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Fri, 13 Nov 2020 15:56:51 +0000 (13 15:56 +0000)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Fri, 13 Nov 2020 23:52:52 +0000 (14 00:52 +0100)
treee6e4b6e7a05b77e9de56b6c15b2d4997d5ad76eb
parenta24f414ba11a7acdf3c5ccec3fb327fc72166556
hurd: break relocation loop between libc.so and lib{mach,hurd}user.so

See
https://sourceware.org/pipermail/libc-alpha/2020-November/119575.html

lib{mach,hurd}user.so gets relocated before libc.so, but its references
to strpcpy and memcpy would need an ifunc decision, which e.g. on
x86 relies on cpu_features, but libc.so's _rtld_global_ro is not
relocated yet.

We can however just make lib{mach,hurd}user.so only call non-ifunc
functions, which can be relocated before libc.so is relocated.
mach/Makefile
mach/Versions
mach/mach/mig_support.h
mach/mig_memcpy.c [new file with mode: 0644]
sysdeps/mach/include/mach/mig_support.h