On Mon, Jan 31, 2022 at 4:58 PM Samuel Thibault <samuel.thiba...@gnu.org> wrote: > > H.J. Lu via Libc-alpha, le lun. 31 janv. 2022 16:53:19 -0800, a ecrit: > > On Mon, Jan 31, 2022 at 4:49 PM Samuel Thibault <samuel.thiba...@gnu.org> > > wrote: > > > H.J. Lu, le lun. 31 janv. 2022 16:14:59 -0800, a ecrit: > > > > > +#define SET_RELHOOK(NAME, HOOK) \ > > > > > + asm(".section " #NAME",\"aR\"\n" \ > > > > > + ".quad "#HOOK" - .\n" \ > > > > > + ".section .text"); > > > > > + > > > > > +#endif /* set_hooks_arch.h */ > > > > > > > > SET_RELHOOK is used only for hurd which doesn't support x86-64. > > > > > > We plan to support x86-64 relatively soon. > > > > > > > Then please put it under the x86-64 directory for hurd. It doesn't > > belong to sysdeps/x86_64. > > Why not? The problem is the same for all x86-64 ports, it's not > specific to the Hurd port. It happens that DEFINE_HOOK is not widely > used in the glibc, and notably not for initialization steps that are > before the csu relocation. But that's still something that could happen > someday. Why hiding this solution behind a hurd/ directory?
1. We don't need separate files for i386 and x86-64. #define SET_RELHOOK(NAME, HOOK) \ asm(".section " #NAME",\"aR\"\n" \ ".dc.a "#HOOK" - .\n" \ ".section .text"); works for both. 2. If Linux needs it, it can be put in sysdeps/generic/set-hooks-arch.h Please create sysdeps/mach/hurd/x86/set-hooks-arch.h with SET_RELHOOK. -- H.J.