martin
d977618dcf
Backout -DDEBUG that I accidently commited with the last change
2005-01-11 07:47:37 +00:00
martin
0a1196da3e
Add LD_BIND_NOW support for sparc and remove some relocation types that
...
are not supposed to happen in 32bit code.
From Nick Hudson.
2005-01-09 14:58:15 +00:00
simonb
c364c98f98
Don't process DT_DEBUG on MIPS as the dynamic section is mapped
...
read-only. DT_MIPS_RLD_MAP is used instead.
Patch from Nick Hudson.
2005-01-09 12:43:23 +00:00
martin
995d8a8e4b
Add support for unaligned relocs on sparc, from PR 26858.
...
Should also fix PR 25901 and PR 18296.
2005-01-05 09:18:53 +00:00
martin
35130888e4
Add LD_BIND_NOW support for sparc64.
2005-01-05 09:16:03 +00:00
mycroft
ac7236712a
ELF32_ST_TYPE -> ELF_ST_TYPE
2004-12-17 10:53:27 +00:00
skrll
38fb01be3a
Apply fixes from Charles:
...
- Fix how _rtld_relocate_nonplt_self deals with REL32 relocations.
- Change the assert so that it is correct for binutils 2.14 and 2.15.
There are still problems with the libraries generated with binutils 2.15,
but at least ld.elf_so doesn't crash.
2004-12-15 10:26:29 +00:00
skrll
2728318e3c
Add __RCSIDs.
...
OK'd by mycroft.
2004-10-22 05:39:56 +00:00
uwe
255de8f40e
Preserve r2 in _rtld_bind_start - in r2 functions that return
...
aggregate types are passed the address of the memory area to store the
returned result to.
Fixes PR port-sh3/26949.
2004-09-14 21:34:01 +00:00
rearnsha
3fa803b523
Check the type of symbols; if it's a Thumb function, then set the Thumb
...
bit in the relocated value (JUMP_SLOT, ABS32 & GLOB_DAT).
2004-08-21 11:14:07 +00:00
rearnsha
c3e148044f
Use BX if available.
2004-08-21 11:12:03 +00:00
thorpej
2a63e04007
- Change the strong dlfcn names in libc to ___name, and make the __name
...
versions used by others in libc weak, so that we have:
name: weak
__name: weak
___name: strong
- Add __name strong aliases of the dlfcn names in ld.elf_so, so that we have:
name: strong
__name: strong
This allows ld.elf_so to self-resolve both the name and __name variants
of the dlfcn functions, the former being required for dlfcn support in
applications, the latter being required for dlfcn support in libc.
Fixes the problem described in:
http://mail-index.netbsd.org/tech-toolchain/2004/07/17/0000.html
Reviewed by Nick.
2004-07-18 17:26:19 +00:00
petrov
1ee4832b70
Don't print relocated content (in DEBUG mode) as it can cause
...
misaligned access. It needs to be done differently if needed at all.
Fix PR port-sparc64/20907.
2004-07-17 05:03:33 +00:00
cube
d1b3d841ee
Make ld.elf_so use the new sysctl API. That allows the user to give any
...
sysctl variable name in /etc/ld.so.conf. It also makes the ld.elf_so
binary slightly smaller (at least on i386), and has no impact on
performance.
Fixes PR 26100.
2004-07-05 11:50:07 +00:00
skrll
701ae47cdf
Fix the dynamic linker for hppa using ELF.
...
Lazy binding doesn't work 100% of the time so force immediate binding.
One possible reason is that the PLT stub blows away r20 which the
compiler might not take into account.
2004-05-17 13:16:02 +00:00
skrll
e88c851d08
Test before commit.
2004-05-17 11:00:01 +00:00
skrll
0556cd7d3c
Re-arrange/correct some asserts.
2004-05-17 10:23:58 +00:00
skrll
8431fb3c4c
Wrap a couple of lines to <80 columns
2004-05-14 11:59:14 +00:00
skrll
c788a1a535
Whitespace.
2004-05-14 11:11:02 +00:00
skrll
212b905081
Garbage collect the RTLD_RELOCATE_SELF error.
2004-05-12 20:23:29 +00:00
skrll
c0148a0dfe
Add a debug message.
2004-05-12 20:12:37 +00:00
mhitch
b6825b1e42
The -symbolic flag in gcc 2.95.3 is not passed to the linker, which is
...
required. Restore the -Bsymbolic option in LDFLAGS on the vax. Fixes
the problem with ld.elf_so mentioned on port-vax.
2004-04-28 02:04:56 +00:00
skrll
236df38503
Be more pedantic about where we use -shared, etc.
2004-03-24 08:01:26 +00:00
atatat
1de60baa7c
The <sys/sysctl.h> header already provides a perfectly good struct for
...
this purpose, so...uh...use it.
2004-03-16 05:25:12 +00:00
enami
76eaac1d6f
Whitespace.
2004-02-26 21:45:59 +00:00
skrll
52581467e2
Whitespace.
2004-02-23 21:27:20 +00:00
skrll
4d30716d36
Remove the millicode hack - its not needed anymore.
...
Get the entry point right.
2004-02-23 21:20:40 +00:00
uwe
8eb5ba6d09
Use CC instead of LD to link the ld.elf_so. This will correctly link
...
"millicode" from libgcc_pic.a on platforms that need it.
From Nick Hudson <skrll@netbsd>.
2004-02-22 01:39:43 +00:00
skrll
b5330c98c7
Add the standard XXX about CPPFLAGS and -fpic here.
2004-02-21 16:02:06 +00:00
skrll
d93f13855a
Move common LDFLAGS into Makefile from arch/*/Makefile.inc
2004-02-21 15:56:03 +00:00
skrll
151426159b
Whitespace.
2004-02-20 20:58:24 +00:00
enami
074a9e8fee
Salvage the instruction to save the pointer to ps_strings for later use
...
so that setproctitle() works again. The problem reported by Naoki Fukaumi
on japanese mailing list.
Approved by: Ross Harvey
2004-02-18 23:04:49 +00:00
enami
f1740378ad
Don't assume past the mmaped region is accessible.
2004-02-15 02:59:04 +00:00
enami
63fcb5a042
Fix warning message: the failed operation is not fstat but mmap.
2004-02-15 02:56:53 +00:00
mrauch
f06ab72b6e
Change the symbol lookup order to search RTLD_GLOBAL objects
...
before referencing object's DAG. This makes it possible for
C++ exceptions to work across shared libraries.
Patch taken from FreeBSD: src/libexec/rtld-elf/rtld.c: 1.67 -> 1.68,
committed there by kan@FreeBSD.org .
2003-12-07 09:36:06 +00:00
christos
1a2b5965a9
Don't try to preload an empty string.
2003-11-25 14:36:49 +00:00
simonb
28817edd35
Restore handling of reloc entries that point to unaligned locations
...
that seems to have disappeared in rev 1.34.
Thanks to Jason Thorpe for suggesting where to look.
Fixes the simple test case in PR port-mips/23366.
2003-11-19 19:41:57 +00:00
lukem
130ab7336b
Rework how MAKEVERBOSE operates:
...
* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.
* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.
2003-10-21 10:01:19 +00:00
fvdl
d83c6c4294
Don't use NULL for integers.
2003-10-21 01:19:10 +00:00
lukem
ddff99b7f4
rework to use the newer _MKMSGCREATE (et al) macros
2003-10-19 04:45:01 +00:00
lukem
6cf0d872cd
support MAKEVERBOSE
2003-10-19 01:19:10 +00:00
matt
fd1caff7c2
Update to new reality. XXX _rtld_bind still needs to be written.
2003-10-06 16:08:35 +00:00
mycroft
65ed3bdcdd
Make the effect of the hack clearer.
2003-09-24 10:25:26 +00:00
mycroft
7242c1114c
One more tweak...
2003-09-24 10:18:52 +00:00
mycroft
7b234fd232
Make the comment a little more accurate.
2003-09-24 09:59:45 +00:00
mycroft
89ea37c60a
Temporary workaround for some binutils/ld lossage. See the comment for more
...
information.
2003-09-24 09:55:35 +00:00
mycroft
5fb0b88880
Some notes...
2003-09-24 06:20:33 +00:00
enami
9c2e06fe24
Space after the keyword `if'.
2003-09-22 14:37:57 +00:00
mycroft
5bd33bcad6
Back out revision 1.100. There is something screwier going on.
2003-09-07 22:17:43 +00:00
mycroft
323a574dc3
dlsym() should not leave an error set. It confuses programs that check
...
dlerror() (such as pkgsrc/graphics/transcode).
2003-08-31 21:52:01 +00:00
skrll
d900731978
Resolve dlsym(3) and friends directly so that dlsym(RTLD_NEXT,...) works.
...
Previously dlsym resolved to the version in crt0.o or libc which would
mean that the caller's shared object couldn't be determined correctly
using __builtin_return_address(0).
Mainly from FreeBSD, but adapted by me. Benefits of this solutions are:
- backward comptibility maintained
- existing broken binaries are fixed with a new ld.elf_so
- __mainprog_obj can be removed from crt0.o
- we do the same thing as FreeBSD
Fixes PR 22067.
OKed by Jason and Christos.
2003-08-12 09:18:38 +00:00
agc
8e6ab8837d
Move UCB-licensed code from 4-clause to 3-clause licence.
...
Patches provided by Joel Baker in PR 22284, verified by myself.
2003-08-07 09:46:37 +00:00
skrll
59b0f10729
KNF
2003-08-05 19:41:53 +00:00
salo
99410184e7
netbsd.org->NetBSD.org
2003-07-26 19:24:24 +00:00
mrg
88bb1d9b3b
include <string.h> or <stdlib.h> for all prototypes
2003-07-26 15:04:38 +00:00
skrll
5f573ab68d
ANSIfy and de-__P().
2003-07-24 10:12:25 +00:00
skrll
ddc9322f3b
Support immediate binding on arm.
2003-07-21 15:34:35 +00:00
skrll
b2695e5a1f
arm and sh5 also have bogus DT_TEXTRELs. sh5 was already covered so just
...
update the comment.
2003-07-21 15:17:55 +00:00
skrll
619dee76f6
Correct the in_plt parameter of a couple of _rtld_find_symdef calls.
...
The mips_reloc.c case is a no-op as _rtld_symlook_obj ignores in_plt for
MIPS.
OK'ed by Charles.
2003-07-17 13:56:32 +00:00
skrll
d4cfd1c666
s/_rltd_obj_rtld/_rtld_objself/ in #ifdef notyet code.
2003-07-15 07:39:55 +00:00
skrll
9192c2eed4
Whitespace
2003-07-15 07:38:29 +00:00
marcus
fae2567c9b
Removed unused function.
2003-07-05 20:48:39 +00:00
tsutsui
0e65101f60
Add function prototype declarations.
2003-07-05 18:18:51 +00:00
marcus
a4878b4349
Bugfix: Don't pick addend both from reloc and contents at the same time.
2003-07-02 15:29:34 +00:00
marcus
6aeeb40d4a
Updated to work with current rtld code.
2003-06-30 00:50:46 +00:00
marcus
5404577abf
SH also has a bogus DT_TEXTREL, it seems.
2003-06-30 00:49:25 +00:00
simonb
a9f5b3f871
KNF- blank lines before code at start of functions.
2003-06-05 10:41:32 +00:00
christos
683092605c
Add RTLD_FIRST, RTLD_NEXT, RTLD_DEFAULT, from FreeBSD
2003-05-30 15:43:33 +00:00
petrov
458dbd70ac
Fix alignment problem in debug output.
...
Happens only under RTLD_DEBUG_RELOC.
2003-05-23 20:13:50 +00:00
mycroft
f57f7ac072
Back out previous change for now -- it needs more work.
2003-04-24 16:55:29 +00:00
mycroft
8826c5e475
Attempt to give dlsym() the same symbol-searching semantics as _rtld_bind().
...
Tested in a handful of cases.
Reviewed by: a dead silence
2003-04-23 17:40:25 +00:00
scw
0b8f02edad
Handle unaligned relocations, and RELATIVE relocs with non-zero addends.
...
This gets binaries linked against libstdc++ working (FSVO "working").
2003-04-21 11:54:46 +00:00
scw
e6b13790fa
SH5 needs __HAVE_FUNCTION_DESCRIPTORS defined in order for ld.elf_so
...
to resolve SHmedia function pointers correctly.
2003-03-26 14:46:32 +00:00
scw
d174ad2eab
Add support for shared libraries/dynamically linked binaries on sh5.
...
With the latest SuperH toolchain, NetBSD/evbsh5 can now
run with a fully dynamic userland (modulo a few remaining
gremlins affecting a couple of binaries).
2003-03-25 13:11:53 +00:00
taca
28d2056e12
make it compile in /usr/src/rescue directory.
2003-03-06 17:01:27 +00:00
matt
7b28c56025
Align psections to their specified alignment (if possible). Use
...
mmap(2) MAP_ALIGNED.
2003-03-06 07:34:56 +00:00
mycroft
7cbba1750d
Shorten rtld_start() by 2 instructions or 8 bytes, and make it not use GOT
...
entries.
2003-03-02 22:56:14 +00:00
mycroft
d2fd5f837d
Shorten rtld_start() slightly -- there's a base-relative _DYNAMIC pointer at
...
the beginning of the GOT, so we don't need an extra one here. Also, remove a
bogus comment -- we do in fact have to do fixups, because there are pointers in
ld.elf_so's data segment that need to be relocated.
2003-03-02 22:03:40 +00:00
mycroft
33131cb294
Update copyright.
2003-03-01 15:14:59 +00:00
christos
861ff9be73
we have constants for all this crap. don't hard-code things.
2003-02-28 23:05:24 +00:00
mycroft
9939b38056
Eliminate GOT usage in rtld_start() on this platform, too.
2003-02-28 22:37:35 +00:00
thorpej
527c1efca7
Use the "__NetBSD_Version__" constant rather than the "NetBSD" constant
...
in the NetBSD version note. The old "NetBSD" constant was stuck in stone,
and thus didn't really convey any useful information.
2003-02-28 18:20:33 +00:00
mycroft
9cb7d16b11
Similar to other rela platforms, do not use any GOT entries (other than the
...
first entry, which is a special case) in rtld_start, because they could be
all 0s. Instead we use the difference between the real _DYNAMIC address
(which we can determine on 68k with a "lea (%pc,_DYNAMIC),..." and the
base-relative one (at the beginning of the GOT) to figure out the relocation
offset.
Not needed for binutils-current, but I might as well fix it now.
2003-02-28 07:06:16 +00:00
mycroft
eea1001a73
Adjust for the fact that the GOT is all 0s in new binutils -- do the trick of
...
disassembling a call to _DYNAMIC to determine its real address, and using the
first entry of the GOT as its base-relative address.
It's evil, but it works.
2003-02-27 05:39:42 +00:00
uwe
6a4d4259ae
Do not add ${LIBC_PIC} to DPADD if MKPICINSTALL is "no".
2003-02-26 06:03:40 +00:00
wiz
990562bfef
.Nm does not need a dummy argument ("") before punctuation or
...
for correct formatting of the SYNOPSIS any longer.
2003-02-25 10:34:36 +00:00
mycroft
c42fd7b479
Revert previous change.
2003-02-21 01:12:56 +00:00
fvdl
c8ba6436ed
If fstat info was passed, and from it it can be seen that the file size
...
is smaller than an ELF header, don't even bother to try to look at it.
Avoids coredumps with zero-sized files.
2003-02-06 12:38:17 +00:00
matt
0655a07988
Fix bug where only 2/3 of the PLT was being synched with the icache.
...
PLT entries are 12 bytes. Add a #define for that and replace the
explicit values with the PLT_ENTRY_SIZE. This bug can cause random
SIGILL signals to happen.
2003-01-11 01:33:56 +00:00
junyoung
8707cd2a36
Gracefully exit when invoked directly. Use of assert() here caused a segfault.
...
Address PR#11785.
2002-12-14 15:37:57 +00:00
junyoung
9e11602ee9
Remove comment which is not true any more. alpha and i386 support
...
R_xxx_COPY relocations.
2002-12-14 09:13:00 +00:00
junyoung
fd1f5e8f1b
A bit speedup: in _rtld_load_object(), save the number of calls to
...
strcmp() by performing path name length comparison first. In the test
with Mozilla, the number was reduced to 1068 from 7182 (yes, we saved
6114 strcmp()!).
2002-12-05 04:56:56 +00:00
thorpej
044aeabaad
Bintuils-current initializes the GOT entries to 0 (instead of the
...
base-relative offsets that were placed there previously), so we
must use a different mechanism to compute our reloc base.
Patch from Charles Hannum.
2002-12-04 01:19:37 +00:00
mycroft
be3692c5a7
Back out the last two changes. They were misguided, and the code worked
...
correctly before.
2002-11-25 19:49:25 +00:00
fvdl
100e201ec6
Replace return -1 in rtld_bind with _rtld_die() call.
2002-11-24 18:19:23 +00:00
fvdl
d93db1cfce
Implement self-relocation as is required now.
2002-11-24 18:16:45 +00:00
fvdl
5505734fa9
For the debug case, print relocbase as well at the start of _rtld().
2002-11-24 18:13:30 +00:00
junyoung
2cc0cde8f5
Now _rtld_relocate_objects() returns with error as soon as any of
...
subsequent calls in it fails.
Spotted by wiz and enami.
2002-11-22 04:39:37 +00:00
junyoung
b5ffe4c33c
Simplify code a bit.
2002-11-21 19:09:56 +00:00
nathanw
15f633fbd3
In _rtld_load_library(), ensure that the old _rtld_error state (a message from
...
a previous error, or NULL) is preserved if the search eventually succeeds.
Addresses the problem pointed out in PR pkg/19024.
2002-11-14 21:07:46 +00:00
nathanw
6c24ccfd1f
Remove "extern const chat *_rtld_error_message;". There is no such
...
variable, and never has been.
2002-11-14 20:11:48 +00:00
matt
01ba93bc3c
Convert to register prefixes.
2002-10-31 20:23:25 +00:00
thorpej
b777dba640
_rtld_bind(): Don't use "rela" until after we've (potentially) adjusted
...
it.
2002-10-18 20:35:25 +00:00
junyoung
d0c512001c
Embedded whitespace in dirname is supported again.
2002-10-06 01:36:36 +00:00
junyoung
2036ad0c3f
A line whose length is 0 always begins with '#'.
2002-10-05 16:26:37 +00:00
junyoung
e4d4608a8b
Minor cleanup.
2002-10-05 16:13:31 +00:00
junyoung
1b5e50eb7b
Disable DEBUG again.
2002-10-05 15:52:15 +00:00
junyoung
2e85345237
Better fix of parser bug.
2002-10-05 15:43:56 +00:00
junyoung
89342b95bb
Don't call _rtld_process_mapping() with null string.
2002-10-05 15:04:49 +00:00
mycroft
80b0665a93
Simplify the hint file parser a bit.
2002-10-05 12:23:39 +00:00
mycroft
ad8ccd6290
Minor cleanup.
2002-10-05 11:59:03 +00:00
mycroft
5d4bc1adf5
Make this work for ldd again.
2002-10-05 00:13:27 +00:00
mycroft
2a88686d7a
Recode _rtld_elf_hash() so it compiles better (at least on i386 and arm).
...
Still could be better on i386, but only written in assembler...
2002-10-04 20:34:10 +00:00
mycroft
6f56cdc91f
Rearrange _rtld_map_object() a little, so that we don't have to have the first
...
page of the object double-mapped. Not that it matters much, but someone was
whinging about it.
While I'm at it, nuke obj->phdr and obj->phsize; they're unused.
2002-10-04 18:50:43 +00:00
mycroft
0a519951b5
Pull out some objlist functions in ldd.
2002-10-04 04:04:26 +00:00
mycroft
3c57a33db5
Don't actually bother maintaining _rtld_list_main and _rtld_list_global in
...
ldd.
2002-10-04 04:01:13 +00:00
mycroft
dfaba15604
Move the definition of _rtld_list_main so ldd builds again.
2002-10-04 03:59:40 +00:00
mycroft
4172074119
Skip the lazy PLT relocation if relocbase==0 (useful if libraries are loaded
...
at their VMA address).
2002-10-03 20:39:22 +00:00
mycroft
7a48cdb883
As seen on tech-userlevel...
...
There are several optimizations here:
1) Objects on _rtld_list_main do not participate in the DAG structures
at all. This is okay because all symbols must be resolvable at
link/load time, and _rtld_list_main is always searched first, so
any references from those objects must necessarily be resolved to
other objects on _rtld_list_main.
(Making this work completely required setting obj->main a bit
earlier; hence the RTLD_MAIN hack.)
2) Objects on _rtld_list_main are not put on _rtld_list_global,
preventing an extra search.
3) A bit is used to keep track of whether an object is on
_rtld_list_global, so we don't have to do a silly linear search.
4) A small attempt is made to prevent objects being put on the DAG
lists multiple times (using a silly linear search).
The sum of this appears to be a ~10% (.3s) reduction in Mozilla's
startup time on my 800MHz box.
Also, make sure _rtld_objmain->path is always set, just to make the
debug output nicer.
2002-10-03 20:35:19 +00:00
mycroft
f66c66a92c
Do not put objects on _rtld_list_main on any DAG member list -- any symbol we
...
will have already been found during the _rtld_list_main walk, so there's no
point in doing it again.
2002-10-03 01:09:21 +00:00
junyoung
a189aa3eba
Store pathnames of shared objects not found in search paths in cache
...
and utilize it. This greatly reduces the number of calls to open(2) and
malloc(3) for programs like mozilla that depend on many shared objects
while it doesn't affect performance of small programs.
2002-10-01 14:16:53 +00:00
wiz
d6285bbf1d
Begin new sentences on new lines.
...
Patch from Robert Elz (kre at munnari oz au).
2002-09-29 14:05:52 +00:00
junyoung
b615e15549
Call NEW() rather than CNEW().
2002-09-28 05:00:27 +00:00
thorpej
09a0767aa9
Only use the MKDYNAMICROOT semantics (i.e. -rpath=/lib,/usr/lib and
...
-dynamic-linker=/libexec/ld.elf_so) if the BINDIR of the program being
built is /bin or /sbin.
The reason we do this is because now all programs *except* those in
/bin and /sbin (i.e. the "special cases") match the default the compiler
uses, which is what is used for things in e.g. xsrc, pkgsrc, and other
random 3rd party programs.
This is done by decoupling where a shlib is installed from how it
is located. Two new variables, SHLIBINSTALLDIR and SHLINKINSTALLDIR,
contain the former information, and key off MKDYNAMICROOT only. SHLIBDIR
and SHLINKDIR contain the latter, and key off MKDYNAMICROOT and BINDIR.
The SHLIBINSTALLDIR, SHLIBDIR, _LIBSODIR, SHLINKINSTALLDIR, and
SHLINKDIR parameters are moved to a new <bsd.shlib.mk>; see bsd.README
for usage details.
2002-09-27 21:37:50 +00:00
mycroft
c5739d43db
Change the munmap() of the text-data gap to mprotect(PROT_NONE). This avoids
...
having scattered little mappings, although it's probably not the best way...
2002-09-27 19:48:24 +00:00
mycroft
0a20e1e977
We don't need to save r7, either...
2002-09-27 03:46:12 +00:00
mycroft
b95736d94a
Put back the short-circuiting code -- Matt claims there are functions that rely
...
on it.
OTOH, don't bother saving r6 a second time.
2002-09-27 03:34:22 +00:00
mycroft
6d8d08304c
1) There is no reason to flush the I$ here, given that we do not modify any
...
instructions. Function calls use GOT indirection, and we only patch the
GOT.
2) The mask-comparison optimization always fails, because the saved mask
always has 0x2000 set, and the PLT stub mask never does. So, remove it.
2002-09-27 02:46:05 +00:00
mycroft
42fb5b53c2
Save one more instruction.
2002-09-27 02:14:38 +00:00
mycroft
06f9fa98b0
Save relocbase in %r10, not %r1.
...
Also, save one instruction.
2002-09-26 23:28:52 +00:00
mycroft
d437f6520b
Implement a self-relocate function for the VAX.
2002-09-26 22:26:26 +00:00
mycroft
1c495430dd
Remove the `self' args to _rtld_relocate_objects() and
...
_rtld_relocate_nonplt_objects().
2002-09-26 20:42:10 +00:00
mycroft
7d4bbc7f4e
Add an iffy heuristic that allows us to do lazy binding with new objects, but
...
detect old objects and deal with them.
2002-09-26 20:41:34 +00:00
mycroft
73a80999b7
Clean up _rtld_init() -- there is no need to avoid globals.
...
Remove the call to _rtld_relocate_objects() completely -- except on VAX, where
we TEMPORARILY call _rtld_relocate_nonplt_objects() directly.
Also add more assertions -- ld.elf_so should never have PLT relocations.
2002-09-26 20:35:56 +00:00
mycroft
5f24ee89f3
Don't bogusly set obj->pltrela{,lim} if there is no DT_PLTREL.
2002-09-26 20:27:50 +00:00
mycroft
a217e118cd
*poof*
...
-fomit-frame-pointer works on 68k.
2002-09-26 14:30:47 +00:00
mycroft
3e9c6b1044
-vomit-frame-pointer is buggy on 68k. *sigh*
2002-09-26 13:56:01 +00:00
mycroft
273d2b19b4
Hm, the const isn't going to work.
2002-09-26 13:43:52 +00:00
mycroft
00088c228c
Do not attempt to free(_rtld_objself.path) -- it's a pointer into our data
...
segment.
2002-09-26 13:42:05 +00:00
mycroft
f4f740de3a
By default, compile without DEBUG, and with -fomit-frame-pointer.
2002-09-26 12:59:29 +00:00
mycroft
15025431b4
Update a comment.
2002-09-26 03:25:29 +00:00
mycroft
fd7e0d92f3
Add a rdbg() in _rtld_bind().
2002-09-26 02:52:05 +00:00
mycroft
723a5f8a50
Remove a meaningless bit from a rdbg().
2002-09-26 02:51:27 +00:00
mycroft
ee398b4d07
Remove vestigal comments about _rtld_bind_start_0() -- it works now.
2002-09-26 02:25:57 +00:00
mycroft
26043b23b0
Make room for the argument save area in _rtld_start(). The PLT stub already
...
made room from _rtld_bind_start(), but add a comment explaining the instruction
it uses.
2002-09-26 02:14:10 +00:00
mycroft
f1c792d648
Make the stack frame 96 bytes, like GCC does.
2002-09-26 02:05:41 +00:00
mycroft
bde7a965da
Tweak the save instruction in the PLT stub rather than adding an instruction
...
to the binder entry stub...
2002-09-26 01:59:16 +00:00
mycroft
d314d82b47
Allocate space for the argument space area in both _rtld_start() and
...
_rtld_bind_start(). Not needed normally, but if we compile ld.elf_so with
-g, it blows up without this.
2002-09-26 01:54:52 +00:00
mycroft
6bff9ffc3d
For consistency, use Elf_Word* to point to code, not Elf_Addr*.
2002-09-25 22:33:54 +00:00
mycroft
0079455251
Add a comment explaining some of the magick.
2002-09-25 22:29:12 +00:00