Commit Graph

859 Commits

Author SHA1 Message Date
joerg
cb2eb1a336 Don't align random sections. Simplify by using .pushsection/.popsection. 2014-01-12 19:36:08 +00:00
matt
467f6149c3 Don't use GOT relocations. Use PC relative for the GOT and GOTOFF for
_DYNAMIC.  Make thumb friendly.
2013-12-03 00:19:56 +00:00
christos
5fbbc292aa CID 1132773: Fix file descriptor leak 2013-11-27 18:01:33 +00:00
skrll
03ee7fc3bc If dlopen of the dynamic linker is requested, e.g. by rump in
rumpuser_dl_bootstrap, then return &_rtld_objself as the handle and do
not create a duplicate mapping.

The handle is mostly useless as _rtld_objself doesn't appear on
_rtld_objlist.

This fixes a problem on earm platforms where ld.elf_so (currently) has
an init_array section.  Calling this caused binaries to segv.
2013-11-20 07:18:23 +00:00
skrll
90c0a95fec Remove hack now it's fixed in 4.8.2 2013-11-16 17:14:06 +00:00
skrll
283152d4ee Apply hack for gcc 4.8 bug on rtld.c. 2013-11-13 11:06:53 +00:00
joerg
5e2fc1bbd3 Only initialise TLS space from the PT_TLS segment, if the size is
positive and the offset has been computed. Fixes PR lib/48324.
2013-10-21 19:14:15 +00:00
christos
193b880fad fix unused variable warnings 2013-10-19 17:19:30 +00:00
skrll
3ea7549453 Add debug code. 2013-10-19 10:14:06 +00:00
matt
fa741d8823 Use MACHINE_CPU for m68k. Use similar logic for both tests. 2013-10-09 22:33:41 +00:00
martin
abea8b316b The R_SPARC_L44 relocation type is documented to be truncating and
calculated as "(S + A) & 0xfff" - so while it (usually) sets a "imm13" field
in the opcode, only 12 bits of the calculated value can be used.
2013-10-03 10:45:57 +00:00
martin
c60b2e0b87 Missing , in table initializer 2013-09-23 21:00:35 +00:00
matt
25193be039 For earm, emit a MARCH note. 2013-09-10 16:35:10 +00:00
joerg
a6c6eb019c Some architectures can't create unwind tables without the frame pointer,
so don't use -fomit-frame-pointer on those.
2013-08-12 17:15:46 +00:00
skrll
ffcdb0b170 Fix DEBUG build. 2013-08-03 13:17:05 +00:00
matt
8b8f566d0a Support MACHINE_ARCH of coldfire 2013-07-18 21:58:13 +00:00
matt
36677b4016 Use new macros from <machine/asm.h> to be more portable 2013-07-18 21:57:42 +00:00
matt
d28e4d0aac Simplify ELFSIZE by using _MIPS_SZPTR 2013-07-10 15:08:38 +00:00
skrll
1f32502b56 Remove redundant assignment. Hasn't been needed since 1999. 2013-05-09 15:47:34 +00:00
christos
c188b90222 remove stray debugging 2013-05-09 15:39:10 +00:00
christos
3c085045e3 convert to SIMPLEQ like the rest of the queues. 2013-05-09 15:38:14 +00:00
christos
a3f195d87d Fix refcount of the object we found in our list by name. 2013-05-09 15:37:58 +00:00
skrll
9b98bab04b Fix debug symlink 2013-05-09 11:44:36 +00:00
christos
ea2a3471f1 provide debug symlink. 2013-05-08 15:33:45 +00:00
christos
e269a2149a need xfree() instead of free(). Using free() ends us up in an infinite loop. 2013-05-08 15:25:01 +00:00
christos
558b540714 we don't need the versioning stuff for ldd 2013-05-07 13:01:07 +00:00
christos
5e59dafbb3 don't overwrite COPTS 2013-05-06 22:49:10 +00:00
christos
a3fedff4d1 Fixed handling of DT_SONAME:
- add function to add name aliases for shared libraries loaded
	  XXX[1]: we don't add a name during load time, only when DT_SONAME
	  is present.
	- search already loaded objects in load_by_name for an already
	  loaded object that matches our name and return it.
	- add missing initialization and cleanup for obj->names
	  XXX[2]: should we make them SIMPLEQ?
	- Add XXX in rtld.c about getting the name of an object.

NB: This makes the jdk work again without resorting to a hack of putting
    the build path of libjvm.so into the run path (which is a security
    problem).
XXX: Pullup-6?
2013-05-06 19:59:29 +00:00
skrll
b49eab8ee4 Trailing whitespace 2013-05-06 08:02:20 +00:00
skrll
5aa71ff59a Disalble a debug only where it causes problems. 2013-05-06 07:58:43 +00:00
skrll
144fe47c93 Add some DEBUG code. 2013-05-06 07:54:04 +00:00
matt
d631499dcf Remove dbg for _ctype_ 2013-05-03 18:31:24 +00:00
matt
82d2cffc31 Consistently use LDELFSO_MACHINE_ARCH. 2013-05-03 15:52:31 +00:00
skrll
653c73bf56 Remove trailing whitespace 2013-05-03 10:27:05 +00:00
skrll
558553d0e3 Provide a default LDELFSO_MACHINE_ARCH. hi matt!
atf-run works again - the init/fini stuff didn't get run otherwise.
2013-05-03 09:37:17 +00:00
matt
5d1d1ac212 Print out &_DYNAMIC too. 2013-05-02 21:11:18 +00:00
matt
6b1442b03a Print out PT_DYNAMIC address for objmain.
Print out &_DYNAMIC too.
2013-05-02 21:11:03 +00:00
matt
25c44086c9 Changes for MKCOMPAT for earm. 2013-04-27 06:24:22 +00:00
matt
3498abfd33 Use __printflike and __dead instead of __attributes__ 2013-04-25 14:16:37 +00:00
matt
0504785998 Use phdr as start of phdrs (duh) 2013-04-25 13:45:15 +00:00
matt
f0744dd4e8 Use ph, not phdr, consistently. 2013-04-25 13:26:17 +00:00
matt
e4c78a6811 Use relocbase, not mapbase. 2013-04-25 13:15:26 +00:00
matt
b469c1cb35 Don't assume that PT_PHDR is always first. 2013-04-25 13:14:41 +00:00
skrll
afe1984da4 Adjust exidx_start by relocbase 2013-04-25 12:28:59 +00:00
skrll
d4d42c7f62 Handle PT_ARM_EXIDX when mapping objects. 2013-04-25 09:01:23 +00:00
matt
44eef346cd Only include unwind.h if _RTLD_SOURCE 2013-04-25 06:37:40 +00:00
matt
5417f425b2 Add support for PT_ARM_EXIDX and __gnu_Unwind_Find_exidx for libgcc's support
of the ARM EHABI.
2013-04-24 22:37:20 +00:00
matt
e3feeaa73b Add a ld.elf_so internals version of __gnu_Unwind_Find_exidx for that the
libgcc EHABI can find the exception tables for a supplied PC.
2013-04-24 22:32:29 +00:00
christos
f903624708 split debug info for rtld 2013-04-05 20:16:40 +00:00
christos
f7f3399458 don't free cp before we copy it! 2013-01-24 17:57:29 +00:00