Add 7 more auxinfo types to support RTLD upgrade
I submitted a substantial upgrade to rtld-elf (140k patch) to Sascha
last week which adds functions like dl_iterate_phdr, dlvsym, and
ktraces. With the exception of libmap functionality, that patch will
bring up Dragonfly's RTLD to about level with cerca 2007 FreeBSD.
Sascha intends to commit the patch this weekend.
There's been a lot of neat additions added to FreeBSD's rtld in the last
two years, and I've already made significant progress on a second
rtld-elf upgrade. My goal is that this second patch submission will
bring DragonFly's rtld-elf on par with FreeBSD's rtld-elf as it stands
The new code is using auxinfo elements that don't currently exist on
DragonFly. The attached patch will add the following Auxinfo types:
(FreeBSD also defines 23 STACKPROT which I've ignored for now)
Please review the following patch that adds these auxinfo types and a
new sysctl and incorporate if deemed error-free so I may continue with
my rtld-elf upgrade project.
#1 Updated by dillon about 6 years ago
Ok, I'm going to let Sascha handle this submission too. I
talked with John a bit about it and here is my position:
* For the sake of making the porting easier I'm O.K. with
the userland side being implemented, with the exception
of the PAGESIZES stuff.
* I am very much <against> implementing any of the kernel side.
I don't see any point whatsoever in these 'features' other than
adding unnecessary complexity to the system just to replace
a few system calls that already only take ~200ns to run or less.
* Plus we also have our 'resident' utility. I guess people might
have forgotten that we have that. It removes nearly all of the
overhead of loading a complex dynamically linked program. We
don't need these added features in DFly to make things go faster.
So, in summary, The #define's are ok, but the kernel shouldn't
implement any of them (no kernel code or in-kernel structural
changes). The userland code support is ok, with the exception of
the PAGESIZES sysctl stuff because I don't think we should implement
any kernel side support for that, at least not the way they've got
#3 Updated by marino about 6 years ago
Implemented in 2.11 (Duplicate issue 2005)
The elf headers that define AT_EXECPATH were updated in the previous commit.