Olivier Houchard
45ab3f5350
This comment should have been removed in the previous commit.
...
Spotted out by: marcus, simon
2004-06-17 19:01:53 +00:00
Olivier Houchard
f77d42ce5c
Woohoo !
...
the latest binutils import mades this gross hack useless, so just remove it.
2004-06-17 17:53:16 +00:00
Oliver Eikemeier
0a16eb8341
give out a little more information in case of a missing dependency
...
PR: 56549
Submitted by: edwin
Reviewed by: joerg, ru
Approved by: joerg
MFC after: 2 weeks
2004-05-28 00:05:28 +00:00
Matthew N. Dodd
966efcc767
Support basename and path based constrained matches.
...
eg:
[foo]
...
matches any executable 'foo'
[/usr/bin/foo/]
...
matches any executable under the directory /usr/bin/foo/
Exact matches continue to function as before.
PR: bin/66769
Submitted-by: Dan Nelson
2004-05-24 01:24:13 +00:00
Olivier Houchard
3088daddf3
Work around a problem somewhere with binutils (?) on arm, hopefully without
...
breaking any other arch this time.
2004-05-15 00:13:14 +00:00
Stefan Eßer
55a4ccf3e8
Fix breakage caused by alphabetically sorting SRCS: rtld_start.S must come first!
...
The previous version made all shared binaries dump core.
2004-05-14 21:01:52 +00:00
Olivier Houchard
e659267f1e
Import arm bits for rtld-elf.
...
Obtained from: NetBSD
2004-05-14 12:15:51 +00:00
Doug Rabson
f88e6caca2
If we change obj_rtld.path after initialising __progname, make sure we
...
change __progname to point at the new storage otherwise it ends up
pointing at freed memory which leads to confusing garbled error messages.
2004-03-29 18:37:37 +00:00
Peter Wemm
c707fea10b
More stack alignment fixes. Arrange so we call _rtld() in ld-elf.so.1
...
with the correct alignment. This is important because this calls to
library static constructors are made from here. The bug in the old crt*.s
files hid this because in this case, two wrongs do indeed make a right.
Also, call _rtld_bind() with the correct alignment, because it calls back
into the pthread library locking functions. If things happen just
the wrong way, we get a SIG10 due to the broken stack alignment.
2004-03-21 01:43:39 +00:00
Peter Wemm
c905e45dc0
Add initial support for compiling a special 32 bit version of
...
ld-elf.so.1 on 64 bit systems. Most of this involves using alternate
paths, environment variables and diagnostic messages.
The build glue is seperate.
2004-03-21 01:21:26 +00:00
Mark Murray
16fc3635f7
Make NULL a (void*)0 whereever possible, and fix the warnings(-Werror)
...
that this provokes. "Wherever possible" means "In the kernel OR NOT
C++" (implying C).
There are places where (void *) pointers are not valid, such as for
function pointers, but in the special case of (void *)0, agreement
settles on it being OK.
Most of the fixes were NULL where an integer zero was needed; many
of the fixes were NULL where ascii <nul> ('\0') was needed, and a
few were just "other".
Tested on: i386 sparc64
2004-03-05 08:10:19 +00:00
Alexander Kabaev
2627f3570d
Do not depend on existence of _end symbol in obj_from_addr, use
...
obj->mapbase and obj->mapsize instead.
Prompted by: OpenOffice debugging session at last BSDCon.
2004-02-25 17:06:16 +00:00
Max Khon
6e918a4d5e
Fix "warning: value computed is not used".
...
Found by: gcc 2.95.4 [FreeBSD]
2004-02-03 18:53:40 +00:00
Doug Rabson
ae59481b1a
Initialise some uninitialised variables.
...
Thanks to: valgrind
2003-12-31 15:10:41 +00:00
Peter Wemm
6143d8ba5f
Fix dynamic linking a bit more.. enough that mozilla-firebird works if you
...
dig up the patches for amd64 support for it.
Note to self: do not put a 64 bit value in a 32 bit space.
2003-12-12 01:12:41 +00:00
Peter Wemm
080f5381b7
Revert last change. ../rtld.c uses CACHE_LINE_SIZE too.
...
Change it to 64 while here.
Reported by: ps
2003-12-11 18:42:51 +00:00
Peter Wemm
165d50f626
Only define CACHE_LINE_SIZE in one place..
2003-12-11 04:49:37 +00:00
Peter Wemm
40a7c81112
CACHE_LINE_SIZE is 64 on athlon and amd64 chips, not 32. This should
...
probably be 128 since that is what the hardware prefetch fill size is
on both the p3, p4 and athlon* cpus.
2003-12-11 04:47:53 +00:00
Anton Berezin
4893027ac4
Sync comment with code's reality.
...
MFC after: 1 week
2003-11-14 12:56:56 +00:00
Matthew N. Dodd
5515f48ce3
Retire the WITH_LIBMAP compile knob; libmap is now a standard feature.
2003-09-13 21:50:36 +00:00
Matthew N. Dodd
4402996dea
Change libmap.c:lm_init() to return a status value; 0 for success
...
(libmap available) and 1 for failure. Assign this return to the
global 'libmap_disable' variable in rtld.c.
This totally prevents any libmap functions from being called after
lm_init() if no config file is present.
2003-09-13 21:43:08 +00:00
Warner Losh
566ef09073
Very minor style nit: sort include files alphabetically.
2003-08-22 02:22:59 +00:00
Gordon Tetlow
df7bdd0ae9
Forgot one instance of ld-elf.so.1. Convert to ${PROG}
...
Pointed out by: obrien
2003-08-17 22:12:26 +00:00
Gordon Tetlow
dbbcd515ff
Don't forget to honor DESTDIR. Also switch over to using PROG instead of
...
the binary name directly.
2003-08-17 18:59:30 +00:00
Gordon Tetlow
a857d9305c
Don't forget to chflags noschg the existing binary so we can symlink
...
over it safely.
Pointed out by: yosimoto@waishi.jp
2003-08-17 18:50:56 +00:00
Gordon Tetlow
df7c0368c1
As long threatened, stage 2 of making a dynamically-linked root a reality.
...
Install rtld into /libexec.
2003-08-17 08:06:00 +00:00
Gordon Tetlow
7b73593acd
Prepend /lib to the builtin library search path in rtld.
2003-08-17 07:55:17 +00:00
Jake Burkholder
d037213487
Avoid using the global offset table to get the address of _DYNAMIC in
...
rtld. When _DYNAMIC is referenced normally from C the global offset
table is used implicitly, but newer versions of binutils don't initialize
it statically in the binary, so this doesn't work until rtld is relocated,
which _DYNAMIC is needed for... So, as on other systems with the same
problem, we disassemble a call instruction to _DYNAMIC in order to get
its address.
2003-07-04 00:05:15 +00:00
Matthew N. Dodd
e2a474429e
Fix warnings on 64 bit platforms.
...
Noticed by: jake
2003-06-19 16:09:18 +00:00
Matthew N. Dodd
5407dd5b82
Add function prototypes.
2003-06-19 05:28:26 +00:00
Matthew N. Dodd
ded0e52363
LD_DUMP_REL_PRE and LD_DUMP_REL_POST don't output to stderr; don't
...
claim that they do.
2003-06-19 04:34:09 +00:00
Matthew N. Dodd
c5d061c17a
Provide a mechanism for dumping relocation information.
...
Setting the LD_DUMP_REL_PRE or LD_DUMP_REL_POST environment variables
cause rtld-elf to output a table of all relocations.
This is useful for debugging.
2003-06-19 03:55:38 +00:00
Matthew N. Dodd
94040887ee
Move MD function prototypes together.
2003-06-19 02:42:04 +00:00
Matthew N. Dodd
2c297acb7a
Fix warnings; no parameters in function prototypes.
2003-06-19 02:39:37 +00:00
Matthew N. Dodd
5952de4b1b
Avoid a NULL pointer dereference.
2003-06-18 16:17:13 +00:00
Matthew N. Dodd
7227105f74
Include libmap.h for prototypes.
2003-06-18 05:31:08 +00:00
Matthew N. Dodd
da9f245470
- Add support for DT_FLAGS.
...
- Define various things from the most recent ELF spec.
2003-06-18 03:34:29 +00:00
Marcel Moolenaar
b615f6d2b1
Don't fail if we encounter a relocation of type "none". Just ignore
...
it. It's a no-op relocation.
Trigger case: ports/x11-toolkits/pango
2003-06-07 07:52:17 +00:00
David E. O'Brien
8f17707c61
Set CSTD to gnu99. We can only use on of the gnu?9 C languages.
...
We can't use c89 due to use of 'inline', and c99 produces bad code.
2003-06-04 05:42:04 +00:00
Ruslan Ermilov
09f84dd1d3
Assorted mdoc(7) fixes.
2003-06-02 15:02:06 +00:00
Matthew N. Dodd
c930fec7a2
- use issetugid()
...
- be paranoid about honoring LD_LIBMAP_DISABLE.
Suggested by: rwatson
2003-05-31 15:24:29 +00:00
Matthew N. Dodd
341b3de62b
Simplify map_object() by breaking out the ELF header validation bits
...
into a separate function.
2003-05-31 14:48:59 +00:00
Matthew N. Dodd
1aac1ed634
Provide function entry debugging messages.
2003-05-31 14:46:38 +00:00
Matthew N. Dodd
4df60d1cac
Use the environment variable LD_LIBMAP_DISABLE to disable
...
libmap.conf(5) functionality.
2003-05-31 14:45:11 +00:00
Matthew N. Dodd
1340fc1015
Don't post-increment pointers inside a loop conditional.
...
While I'm here:
- Let lm_add() call strdup() on its own behalf.
- Use a temporary pointer when parsing constraints; only set the
constraint pointer on a totally successful match.
PR: bin/52783
Submitted by: David P. Reese Jr. <daver@gomerbud.com>
Approved by: re (rwatson)
2003-05-30 00:49:16 +00:00
Alexander Kabaev
6d5d786f80
Allow threading libraries to register their own locking
...
implementation in case default one provided by rtld is
not suitable.
Consolidate various identical MD lock implementation into
a single file using appropriate machine/atomic.h.
Approved by: re (scottl)
2003-05-29 22:58:26 +00:00
Peter Wemm
9783a12b34
Initial pass at supporting shared libraries on amd64. There are still
...
a few missing relocation types in amd64/reloc.c, but I have not found
any of them in use yet. :-)
Approved by: re (amd64/* blanket)
2003-05-24 17:37:51 +00:00
Matthew N. Dodd
3467e8b8a0
- Use xmalloc() and xstrdup() instead of malloc() and strdup().
...
- Add a global mapping if we have a successful constrained match.
Approved by: re
2003-05-19 07:10:12 +00:00
Robert Watson
94deb3f034
Since libmap.conf is referenced in rtld.1, include it in the references
...
section.
Approved by: re (scottl)
2003-05-17 19:46:49 +00:00
Ruslan Ermilov
60cdf2f1a0
mdoc(7) police: Normalize the FILES section.
...
Approved by: re (blanket)
2003-05-16 21:34:21 +00:00