56010b73e8
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.
21 lines
547 B
C
21 lines
547 B
C
#ifndef _MACH_MIG_SUPPORT_H
|
|
#include_next <mach/mig_support.h>
|
|
#ifndef _ISOMAC
|
|
libc_hidden_proto (__mig_get_reply_port)
|
|
libc_hidden_proto (__mig_dealloc_reply_port)
|
|
libc_hidden_proto (__mig_init)
|
|
|
|
#ifdef _LIBC
|
|
# include <libc-symbols.h>
|
|
|
|
# if defined USE_MULTIARCH && (IS_IN (libmachuser) || IS_IN (libhurduser))
|
|
/* Avoid directly calling ifunc-enabled memcpy or strpcpy,
|
|
because they would introduce a relocation loop between lib*user and
|
|
libc.so. */
|
|
# define memcpy(dest, src, n) __mig_memcpy(dest, src, n)
|
|
# endif
|
|
#endif
|
|
|
|
#endif
|
|
#endif
|