Bug #1992

Add 7 more auxinfo types to support RTLD upgrade

Added by dragonflybsd1 almost 4 years ago. Updated over 3 years ago.

Status:ClosedStart date:
Priority:LowDue date:
Assignee:swildner% Done:

0%

Category:-
Target version:-

Description

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
today.

The new code is using auxinfo elements that don't currently exist on
DragonFly. The attached patch will add the following Auxinfo types:

15 EXECPATH
16 CANARY
17 CANARYLEN
18 OSRELDATE
19 NCPUS
20 PAGESIZES
21 PAGESIZESLEN

(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.

Regards,

John

auxinfo.patch Magnifier (10.5 KB) dragonflybsd1, 02/17/2011 07:58 PM

History

#1 Updated by dillon almost 4 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
it setup.

-Matt

#2 Updated by swildner almost 4 years ago

grab

#3 Updated by marino over 3 years ago

Implemented in 2.11 (Duplicate issue 2005)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/
adc42cf35b64fcc5e902e062955772f363e1ec58

The elf headers that define AT_EXECPATH were updated in the previous commit.

Also available in: Atom PDF