matt
483a1c95a2
Fix problem with bss-plt objects which a reloc index, not offset.
...
(secure-plt uses an offset (index*sizeof(rela), bss-plt uses an index)
secure-plt will now take the offset and divide by 12 for an index.
2011-02-10 02:28:20 +00:00
skrll
3770380428
Unbreak gdb by ensuring _rtld_debug_state is in the dynamic symbol table.
...
mmm 1 line diffs
mmm not breaking backwards compatibility for anything known/unknown or
public/private.
2011-01-25 12:25:43 +00:00
matt
709c8a2f01
Move powerpc gotptr to the end to preserve binary compatibility.
2011-01-16 15:56:37 +00:00
matt
b094d98191
Warn about DT_TEXTRELs
2011-01-16 02:36:05 +00:00
matt
d31dbd7578
Add secure-plt support for powerpc to ld.elf_so. As part of this, we have to
...
stop calling into the GOT/_DYNAMIC since they are no longer executable.
2011-01-16 01:22:29 +00:00
skrll
f1d73a2c94
Add support for DF_1_BIND_NOW, DF_1_NODELETE and DF_1_NOOPEN marked
...
objects, and the RTLD_NODELETE and RTLD_NOLOAD flags to dlopen(3).
Mark libpthread as DF_1_NOOPEN and use it to test the functionality.
Somewhat taken from FreeBSD.
Fixes PR 42029.
OK from christos and joerg.
2010-12-24 12:41:42 +00:00
skrll
1f45aab781
Sprinkle some KNF.
2010-12-19 17:26:51 +00:00
skrll
ad7786ec8b
Remove unnecessary #ifdef RTLD_DEBUG
2010-12-19 17:17:50 +00:00
wiz
617acddc41
Remove superfluous Pp.
2010-12-17 08:50:26 +00:00
skrll
1ee8ff33ba
Remove implementation detail.
...
Bump date.
2010-12-17 07:04:52 +00:00
joerg
c4120e324e
Replace use of errlist with a single concatenated version and an offset
...
array. This requires less storage and avoids one runtime relocation per
errno value.
2010-12-16 22:52:32 +00:00
joerg
67cc8c0871
Don't use normal environment handling functions from libc, but iterate
...
once over the array and clean out entries as needed.
2010-12-16 22:47:27 +00:00
skrll
126c589398
s/rdbg/dbg/ in a few places.
2010-12-16 19:59:39 +00:00
skrll
76d5f138f4
Remove incorrect comment.
2010-12-16 19:35:38 +00:00
wiz
fbc697a1ed
Note that $ORIGIN kernel support (in kern/kern_exec.c) is currently disabled.
...
Info from skrll@.
Bump date.
2010-12-16 19:25:41 +00:00
joerg
67e01e0a99
Build ld.elf_so with -fvisibility=hidden. Exploit this for i386/x86_64
...
to simplify the assembler code.
2010-12-05 00:56:06 +00:00
joerg
91118529e4
ANSIfy
2010-12-03 23:07:49 +00:00
joerg
239c31f883
Add comment about the unusual stack alignment in .rtld_bind_start.
2010-12-03 22:48:25 +00:00
tron
1fbd900608
Don't use internal libc function __findenv().
2010-11-14 22:09:16 +00:00
christos
acfd35dad9
PR/44010: YAMAMOTO Takashi: sbrk: grow 0xb3ba2000 failed, error = 12"
...
(due to setenv changes?)
Provide a mini unsetenv that does not allocate/free memory and does not
bother about locking.
2010-10-29 15:08:17 +00:00
skrll
8b916d603d
Add cast so that usr.bin/ldd/elf32 builds.
2010-10-16 17:48:12 +00:00
skrll
e6cdac9c4b
Implement dl_iterate_phdr.
...
Somewhat taken from FreeBSD. Manual page from OpenBSD.
2010-10-16 10:27:06 +00:00
skrll
0a77584d8f
Revert previous for now. It's part of a larger commit which will arrive
...
soon.
2010-10-15 15:08:05 +00:00
skrll
a048346afd
Be more tolerant to the location of PT_PHDR in the segment list.
2010-10-15 07:22:44 +00:00
christos
45bdf1678c
restore binary compatibility for pre-2.0 binaries, requested by skrll and core.
2010-10-10 21:27:16 +00:00
skrll
a108583dc7
Oops. Remove trailing whitespace in previous.
2010-09-30 19:45:24 +00:00
skrll
d965c46816
Improve debug output.
2010-09-30 19:43:11 +00:00
skrll
0e07ba7138
Add the magic branch instruction that is used by GCC's
...
__canonicalize_funcptr_for_compare() function to fixup relocations in
order to do function pointer comparisons.
From OpenBSD.
2010-09-30 19:32:40 +00:00
skrll
06acf46b03
Introduce a new type Elf_Symindx for use in decoding the symbol hash table
...
section and allow this type to be overridden.
The ELF specification says it should always be uint32_t (Elf_Word), but
alpha decided to be different (not sure why). Define Elf_Symindx to be
uint64_t on alpha.
Alpha no longer uses non-standard definitions of Elf64_Sword and
Elf64_Word. Remove the ability to override these types.
Fixes ld.elf_so after Herculean effort from me and martin.
2010-09-30 09:11:18 +00:00
matt
af56990d0c
Make the GOT1_MASK 64-bit clean.
2010-09-24 15:20:52 +00:00
skrll
8f77c5159b
Comment reformat.
2010-09-24 12:00:10 +00:00
skrll
2c56298dd9
Wrap long line.
2010-09-24 11:59:28 +00:00
skrll
09601c884f
Whitespace.
2010-09-24 11:57:11 +00:00
skrll
6229c56fea
Wrap long lines
...
Reformat comments.
2010-09-24 11:41:46 +00:00
joerg
11fdf81f84
Avoid casting from d_val to plttype of different signedness.
...
Just two booleans for the same purpose.
2010-09-23 13:03:35 +00:00
skrll
07666b6356
Wrap long line.
2010-09-11 11:11:52 +00:00
joerg
6972211664
Stricter matching for _rtld_invalid_paths by ensuring separator.
...
Use mem* functions instead of str* for strings of known size.
2010-08-07 19:47:34 +00:00
joerg
f40b256f09
Reduce header pollution for mdreloc.c. Make Obj_Entry argument of
...
_rtld_relocate_nonplt_objects non-const in preparation for TLS support.
2010-08-06 16:33:17 +00:00
mrg
c8cf27943d
make sure to look in CFLAGS, COPTS and CPPFLAGS for abi options.
...
fixes sgimips64 build of n64 ld.elf_so.
2010-07-11 07:43:12 +00:00
mrg
4c92852a80
remove almost all the ability to build netbsd with an a.out target.
...
we're ELF now, and there are many missing checks against OBJECT_FMT.
if we ever consider switching, the we can figure out what new ones
we need but for now it's just clutter.
this doesn't remove any of the support for exec_aout or any actually
required-for-boot a.out support, only the ability to build a netbsd
release in a.out format. ie, most of this code has been dead for
over a decade.
i've tested builds on vax, amd64, i386, mac68k, macppc, sparc, atari,
amiga, shark, cats, dreamcast, landisk, mmeye and x68k. this covers
the 5 MACHINE_ARCH's affected, and all the other arch code touched.
it also includes some actual run-time testing of sparc, i386 and
shark, and i performed binary comparison upon amiga and x68k as well.
some minor details relevant:
- move shlib.[ch] from ld.aout_so into ldconfig proper, and cut them
down to only the parts ldconfig needs
- remove various unused source files
- switch amiga bootblocks to using elf2bb.h instead of aout2bb.h
2010-07-06 05:59:50 +00:00
joerg
ff0f2fb483
Use fast_remainder32 for the ELF hash. For the hot cache case, this
...
speeds up Firefox startup by over 2% on AMD64.
Limit hash table buckets to 32bit.
2010-04-05 14:01:26 +00:00
skrll
134b0fcc8f
Only apply -Wno-stack-protector where alloca is used.
2010-03-20 16:36:35 +00:00
roy
51085124f6
Use the gcc directive to disable SSP warnings.
2010-03-19 20:53:50 +00:00
roy
d5e8f757b8
Use alloca(3) instead of local xmalloc for creating our DoneLists.
...
This allows threaded programs to use us a little better, PR lib/43005.
We need to disable SSP when using alloca.
2010-03-18 22:17:55 +00:00
roy
b02ec7e9f8
Implement negative cache checks for symbol lookups.
...
Uses the Donelist idea from FreeBSD.
2010-02-27 11:16:38 +00:00
skrll
d306de736d
Restore backwards compatibility for binaries referencing the main
...
Obj_Entry.
2010-01-17 08:04:20 +00:00
skrll
2e0bcc8d3b
Remove cargo cult dlinfo entry point.
2010-01-16 10:37:51 +00:00
skrll
418048d731
Put the dlopen,and friends entry points back.
...
They're needed by pre-2.0 binaries. Backward compatibiliity for these
was broken by another commit recently which I'll fix shortly.
2010-01-15 07:07:11 +00:00
skrll
699646b3ea
Remove the entry points for dlopen() and friends. They haven't been used
...
since Aug 2003.
2010-01-14 21:52:07 +00:00
skrll
15b7ff0199
Make DEBUG build compile.
2010-01-14 12:12:07 +00:00