Hello, Thanks for this!
Did you try to run make check? Sergey Bugaev via Libc-alpha, le mer. 22 févr. 2023 00:19:29 +0300, a ecrit: > This drops all of the return address rewriting kludges. The only > remaining hack is the jump out of a call stack while adjusting the > stack pointer. Is this hack really still needed? Since we don't switch stack any more, we could as well just return normally? > --- a/sysdeps/mach/hurd/dl-sysdep.c > +++ b/sysdeps/mach/hurd/dl-sysdep.c > @@ -207,6 +207,9 @@ _dl_sysdep_start (void **start_argptr, > } > } > > + extern void _dl_init_first (void *data); Please put extern function declaration into a header, dl-sysdep.h for instance. > diff --git a/sysdeps/mach/hurd/i386/init-first.c > b/sysdeps/mach/hurd/i386/init-first.c > index a558da16..34e8dcc0 100644 > --- a/sysdeps/mach/hurd/i386/init-first.c > +++ b/sysdeps/mach/hurd/i386/init-first.c > + { > + /* Check if the stack we are now on is different from > + the one described by _hurd_stack_{base,size}. */ > > + char dummy; > + const vm_address_t newsp = (vm_address_t) &dummy; > + > + if (d->stack_size != 0 && (newsp < d->stack_base > + || newsp - d->stack_base > d->stack_size)) > + /* The new stack pointer does not intersect with the > + stack the exec server set up for us, so free that stack. */ > + __vm_deallocate (__mach_task_self (), d->stack_base, d->stack_size); > + } Again, I don't think this is needed any more since we don't switch stack any more? Samuel