Project

General

Profile

Actions

Bug #1992

closed

Add 7 more auxinfo types to support RTLD upgrade

Added by dragonflybsd1 about 13 years ago. Updated almost 13 years ago.

Status:
Closed
Priority:
Low
Assignee:
Category:
-
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:

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


Files

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

Updated by dillon about 13 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
Actions #2

Updated by swildner about 13 years ago

grab

Actions #3

Updated by marino almost 13 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.

Actions

Also available in: Atom PDF