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
Alexander Kabaev
3ddc66d863
Rethink the way we count module references. Simply following
...
DT_NEEDED links is not flexible enough for cases where dynamically
loaded modules form a dependency cycle.
This should fix an infinite recursion problem encountered by Yahoo.
Approved by: re (jhb)
2003-05-08 01:31:36 +00:00
David E. O'Brien
78af18bd24
Fix signed/unsigned comparison warnings.
2003-05-04 00:56:00 +00:00
Peter Wemm
7c1622ff28
Remove 80386 bandaids from code repocopied from i386. rtld_start.S still
...
todo.
2003-04-30 21:09:06 +00:00
Alexander Kabaev
486089f00c
Remove redundant strlen checks, do not check the same
...
symbol twice.
2003-04-30 19:05:53 +00:00
Matthew N. Dodd
623b6bd2f9
Code cleanups and sanity checking for config file parser.
2003-04-10 01:44:19 +00:00
Matthew N. Dodd
29ade36225
Dynamic object dependency mapping: libmap.
...
This is an optional feature, disabled by default.
This will be useful to people testing the various POSIX threading
libraries under -CURRENT but can easily serve other needs.
2003-04-07 16:21:26 +00:00
Arun Sharma
35522a0aa1
Fix for ia64/48024 - ensure function pointer equality across elf
...
objects.
Programs such as sshd depend on two pointers to the same function being
equal in a given process. However, the current ia64 implementation
ensures that they're equal when both the pointers are instantiated in
the same ELF object. The attached patch ensures that they're equal
irrespective of where they're instantiated.
Reviewed by marcel@ (mentor) and kan@
2003-03-19 21:38:27 +00:00
Alexander Kabaev
63c1e7cb8d
Free obj->priv field in obj_free functions. This field is NULL
...
on all architectures except ia64, which uses it to keep function
description table.
2003-03-14 21:11:28 +00:00
Alexander Kabaev
605f36fc1e
No need to zero fill memory, mmapped anonymously. Kernel will
...
return pre-zeroed pages itself.
Noticed by: jake
2003-03-14 21:10:13 +00:00
Alexander Kabaev
fa4a502e77
Do not remove object from the lists at the unref_dag() stage.
...
Introduce a new unlink_object() function and call it in
unload_object() instead. Removing the object in unref_dag() is
too early, rtld calls _fini() function after that and shared
objects might fail resolve their own symbols.
2003-02-17 20:58:27 +00:00
Alexey Zelkin
d9943f166b
Advertize rtld(1) as ld.so(1) in manual pages world
2003-02-13 23:07:28 +00:00
Alexander Kabaev
2542b742f1
Fix a typo in rtld_dirname.
2003-02-13 22:47:41 +00:00