summaryrefslogtreecommitdiff
path: root/open_issues/prelink.mdwn
blob: ad85b9e279d9a7331510197c94b9a576733ff0d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]

[[!tag open_issue_porting]]

The *prelink* package, as distributed via Debian unstable, does build on
GNU/Hurd.  After installing the satisfiable dependencies, use
`dpkg-buildpackage -b -uc -d` to ignore SELinux and libc6-dev dependencies.

It is unclear whether it also does work.  The testsuite (run manually) does
*FAIL* on all tests, which is due to the prelinker doing something to the
copied `ld.so.1` so that it faults on every invocation.  This does not happen
on GNU/Linux.

Not much in the prelinker is Linux-specific.  `src/get.c`'s `is_ldso_soname`
should already cover our `ld.so.1` case (and what about `ld.so`?).  At the end
of `src/arch-i386.c`, `.dynamic_linker` has to be set properly.  And, in that
file there are some Linux process VM constants, of which `REG2S` and `REG2E`
are the only relevant in the `!exec_shield` case.  Probably these need to be
adjusted.  What else?