Commit Graph

712 Commits

Author SHA1 Message Date
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
skrll
f88b3d9061 Wrap a few long lines. 2010-01-14 11:58:31 +00:00
skrll
c2796a5929 Shut gcc up. 2010-01-14 11:57:06 +00:00
skrll
8b4b9f3e56 Shut gcc up. 2010-01-13 22:34:07 +00:00
christos
12bd4dbd45 PR/39240: Satoshi Suetake: Don't fail when attempting to resolve weak symbols
when we are doing immediate binding, leave them alone and they will be dealt
with later during lazy binding. From skrll@
2010-01-13 20:17:21 +00:00
skrll
8f7db61734 Reset the COMBRELOC cache Obj_Entry if it was freed.
Fixes PR 41482. Done slightly differently to the patch in the PR.
2010-01-10 07:29:47 +00:00
skrll
fa7832d0b1 Fixup comment. 2010-01-10 06:37:32 +00:00
skrll
09298c1411 Small tidyup. 2010-01-09 15:36:43 +00:00
mrg
249d1f1111 use COPTS for -G0.
replace ${CPUFLAGS:M-mabi=64:M-mabi=o64} with two constructs.
the former doesn't seem to work anymore.
2009-12-18 17:10:07 +00:00
matt
d8d1440d5c Merge from matt-nb5-mips64:
Add N32/N64 support for mips dynamic loader.
2009-12-14 00:41:18 +00:00
mrg
750ad3d59d simplify the logic for compat ld.elf_so and move it here. we now can
find the libc objdir for multiple compat ld.elf_so's, too.
2009-12-13 09:31:47 +00:00
mrg
6af15ae20b if BSD_MK_COMPAT_FILE is defined, .include it. 2009-12-13 09:01:45 +00:00
mrg
f7f0bc40ae rename LD32DIR to MLIBDIR. 2009-12-13 08:25:20 +00:00
christos
1dc0b61eca If the environment is corrupt, die. From FreeBSD. 2009-12-02 15:50:13 +00:00
skrll
77fd7698f3 Make _rtld_pagesz of type size_t.
Fixes round_down for alpha which made ldd(1) break.
2009-11-17 18:44:33 +00:00
skrll
b9fe4e7d17 Add RCSID 2009-11-11 14:15:41 +00:00
skrll
ef99e95537 Fix start symbols for new binutils. 2009-11-04 17:02:43 +00:00
skrll
d43e9fc212 Fix start symbol for newer binutils. 2009-10-22 21:56:13 +00:00
skrll
15653ebb45 ld.elf_so grew more PLABELS with dlinfo so bump HPPA_PLABEL_PRE. 2009-09-25 17:49:56 +00:00