summaryrefslogtreecommitdiffstats
path: root/ldso
Commit message (Collapse)AuthorAgeFilesLines
...
* Do not duplicate stuff from ldso.hEric Andersen2004-02-171-12/+0
|
* Provide the ldso syscalls and string funcs earlier in the listEric Andersen2004-02-171-3/+4
|
* No point in including debug info for ldso. It isn't helpful to do soEric Andersen2004-02-141-5/+4
| | | | since gdb can't do anything for us.
* Atsushi Nemoto writes:Eric Andersen2004-02-141-2/+3
| | | | | Also, if you are to enable SUPPORT_LD_DEBUG on MIPS, I think this patch is needed too.
* Fix this as should have been done a long time ago...Manuel Novoa III2004-02-141-0/+3
|
* Give gcc branch prediction some hits on obviously unlikely branchesEric Andersen2004-02-149-30/+31
|
* Joakim Tjernlund writes:Eric Andersen2004-02-1425-123/+177
| | | | | | | | | | | | | | | | | | Hi it is me again. This is the latest ldso patch. the NEW weak symbol handling works now with a little special handling in _dl_find_hash(). You get to chose if you want the new or old handling :) There was 2 missing _dl_check_if_named_library_is_loaded() calls in _dlopen(). I then disabled the _dl_check_if_named_library_is_loaded() in dl-elf.c since it is rendundant. Question, why does some _dl_linux_resolver(), like i386, have 2 calls to _dl_find_hash()? I think that is wrong, isn't it? I really hope you can check this out soon ...
* Based on a problem report and patch from Florian Schirmer, fix a compileEric Andersen2004-02-122-4/+4
| | | | | | problem with mips -- contrary to my expectation gcc on mips _always_ defines __PIC__ which breaks the assumption inherent in my code. This should fix things up.
* Eliminate the PIE support option, and simply support that all the timeEric Andersen2004-02-102-33/+6
|
* Fix function prototype to match the official ELF standard hash functionEric Andersen2004-02-102-3/+3
|
* Rework file naming, aiming for at least a vague level of consistancyEric Andersen2004-02-1049-4966/+35
|
* oops, manditory forgotten patchEric Andersen2004-02-102-0/+262
|
* Fixup the definition of _dl_open, and move some bits back where they were,Eric Andersen2004-02-105-246/+104
| | | | till I properly finish the next step in my evil plan.
* Move _dl_printf and _dl_malloc to ldso, which is a more sensibleEric Andersen2004-02-083-258/+129
| | | | location for this stuff
* Cleanup whitespace and formattingEric Andersen2004-02-087-390/+377
|
* Add some permissions when creating the logfileEric Andersen2004-02-081-3/+3
|
* Thanks to Joakim's recent paches, we can now remove the FIXMEEric Andersen2004-02-072-14/+0
|
* Restore the library entry point so it works. It does haveEric Andersen2004-02-0720-12/+22
| | | | to be arch specific to work properly.
* Joakim Tjernlund writes:Eric Andersen2004-02-072-220/+90
| | | | | | | | | | Hi again All dltest* and test* programs pass for me. uClibc ld.so resolves according to the OLD weak symbol handling. I have tried to use the new scheme as well, but that segfaults in all cases but test3.
* Remove unneeded forward declarationEric Andersen2004-02-071-1/+0
|
* Split off the stuff that cannot use function into its own file,Eric Andersen2004-02-0726-694/+1236
| | | | | to make it easier to treat it specially while not bothering the rest of the code with the same constraints.
* Step one, begin shuffling things around a bitEric Andersen2004-02-079-87/+135
|
* Yet more consistancy fixupsEric Andersen2004-02-071-2/+2
|
* Use unsigned char * pointersEric Andersen2004-02-073-3/+3
|
* Trim trailing whitespaceEric Andersen2004-02-062-14/+14
|
* Remove trailing whitespaceEric Andersen2004-02-062-128/+126
|
* Fixup a badly merged updateEric Andersen2004-02-051-4/+7
| | | | -Erik
* Use a static const char array for static stringsEric Andersen2004-02-042-4/+4
|
* Jakub Bogusz writes:Eric Andersen2004-02-013-2/+4
| | | | | | | | | | | | | | | | | | Hello, the attached patch fixes ldso compilation on sparc-linux (at least with sparc32 userland). It was made against uClibc 0.9.21, but it's still OK with 0.9.26. There were three problems: - missing __NR_getpid definition - conflicting prototypes in elfinterp.c - syntax error (missing semicolon) in ldso.c With this patch shared libraries and ldso can be built on sparc. It contains also ldso.c syntax fix for m68k - there was the same mistake two lines earlier; but I didn't test build on m68k.
* Revert to scope as used by original code for now, just in case.Eric Andersen2004-01-311-2/+4
| | | | | I still don't have a good handle on why and when the different scope values should be used.
* Joakim Tjernlund writes:Eric Andersen2004-01-301-117/+87
| | | | | | | | | | | | | | | | | | | | > Not there yet, but the interfaces are much closer now... > Heading to bed though, since its 5:30am. :-) This works, but I discovered something "funny". For all relocs but COPY you can use scope instead of scope->dyn->symbol_scope and it is much faster to do that. Search for "Funny" in the patch to see what I mean. Probably I probably broke something, please let me know if it works for you too. I think I am done with ldso now. Has been fun and I hope to actually use uClibc/busybox soon in a project. Ohh, there is one thing left, double sized PLT entries, but maybe these aren't needed in uClibc? Sweet dreams Jocke
* Modify interfaces for _dl_parse_relocation_information()Eric Andersen2004-01-2913-250/+245
| | | | | | | _dl_parse_lazy_relocation_information() and _dl_parse_copy_information() so they are all consistant, allowing for future consolidation. Trim some trailing whitespace as well.
* Scrub up use of ELF_USES_RELOCA and eliminte some unsightly ifdefsEric Andersen2004-01-296-93/+87
|
* Joakim Tjernlund writes:Eric Andersen2004-01-291-50/+46
| | | | | | | | | | | | | Here is the cleaned up laze reloc patch. Summary: - Minor cleanup. - disable the "if (finaladdr <= 0x01fffffc || finaladdr >= 0xfe000000)" test since it almost never triggered. - Optimized the lazy relocs handling. Would be great if you could commit ASAP. Jocke
* Eliminate separate passes for _dl_copy_fixups() and _dl_fixup(), andEric Andersen2004-01-297-136/+49
| | | | do both operations in a single pass.
* Fixup silly typoEric Andersen2004-01-291-1/+1
|
* Patch from Joakim Tjernlund:Eric Andersen2004-01-292-38/+20
| | | | | Removed R_PPC_NONE and R_PPC_REL24 as these does not seem to be used. Corrected R_PPC_ADDR32 and R_PPC_JMP_SLOT
* Patch from Joakim Tjernlund to get rid of an annoying warning.Eric Andersen2004-01-272-2/+2
|
* Joakim Tjernlund writes:Eric Andersen2004-01-241-241/+178
| | | | | | | | | | | | | Hi again I have done some serious clenup of powerpc/elfinterp.c - Make it look more like glibc. - Performance modifictions. - Fixed a few bugs in _dl_do_reloc(). These seem not to have affected anything, but this how glibc do it. Jocke
* As noted by Doru Petrescu, there was a spurious line that was usingEric Andersen2004-01-202-2/+0
| | | | _dl_debug_addr prior to checking if it was NULL.
* Paul Mundt writes:Eric Andersen2004-01-202-2/+6
| | | | | | | | | | | | | | | | | | | | | | | The current behavior of the powerpc boot1_arch.h seems somewhat broken. Currently room is made on the stack pointer for the link register, but the link register is never actually pushed onto it. glibc bears the following comments: /* Call _dl_start with one parameter pointing at argc */ mr r3,r1 /* (we have to frob the stack pointer a bit to allow room for _dl_start to save the link register). */ followed by the -16 add to r1. Despite the fact that r1 is modified, the link register is never actually pushed onto r1, thus the adjustment is completely superfluous. There's two possible fixes for this, either saving the link register in the way that glibc does, or getting rid of the r1 adjustment. As I'm not sure if saving the link register will actually break the _dl_boot2 callin, both options will probably want to be played with. The following bit of inline assembly in the attached patch builds cleanly for me with gcc 3.3 on darwin, but I'm not able to test it any further beyond that.
* Joakim Tjernlund writes:Eric Andersen2004-01-201-5/+3
| | | | | | | | | | | | > Is there anything I can do/provide that would assist in the solving of > this problem on PowerPC? I'm still concerned about my lack of flash space... Try this path. It fixes the recent ldso problems for me on my mpc860 board. You should be able to use ldso without the dcbx patch to the kernel now. Please report back. Jocke
* We need to link with libgcc.a when creating shared libs, in order toManuel Novoa III2004-01-161-1/+1
| | | | | avoid problems 'hidden symbol' problems. Also handle -lfloat for the soft-float arm case.
* Make sure we remove -fomit-frame-pointer from the ldso build. It'sDavid McCullough2004-01-161-0/+3
| | | | | | | inclusion will cause the loader to crash when jumping to the application. The reason is due to the START macro having a "leave" instruction included to fixup the stack before starting the app.
* Some badly behaved arches fail to provide a PAGE_SIZE defineEric Andersen2004-01-061-0/+4
|
* Peter S. Mazinger writes:Eric Andersen2004-01-021-0/+45
| | | | | | | | | | | | | | | | | | | Hello Erik! I have made some cosmetical changes to the files, removed the added SCRT=-fPIC option from building the crt0.S file (but it is a requirement to build them with -fPIC), and changed some comments. I have left the ldso.c patch with PIE_SUPPORT ifdefs, but consider applying it w/o them (see some earlier comment from PaX Team on this issue, as it is considered a bug). To have it work correctly, you'll also need removing COMPLETELY_PIC. One thing is missing: PIE_SUPPORT should be usable only for i386 (for now). Also added the support for propolice protection (that works for me and catches memcpy/strcpy attacks (but needs a special gcc version). Thanks, Peter
* Use PAGE_SIZE rather than hard coding 4096Eric Andersen2003-12-175-29/+31
|
* Patch from Paul Mundt <lethal@linux-sh.org>:Eric Andersen2003-12-178-0/+1039
| | | | | | | | | | Here's the patch for the ldso bits for sh64. This is still in need of a bunch of debugging, testing, etc. and is really only being submitted for general completeness. This assumes that the previous patches I've submitted have already been applied. I plan on playing with this and buildroot some more later, as I'd definitely like to see buildroot images for sh64.
* Patch from Paul Mundt <lethal@linux-sh.org>:Eric Andersen2003-12-1717-69/+71
| | | | | | | | | | | | | | | | | For sh64 we need implicit access to the symtab, primarily to get at the ->st_other value. This presently isn't possible, as PERFORM_BOOTSTRAP_RELOC() is invoked as such: PERFORM_BOOTSTRAP_RELOC(rpnt, reloc_addr, symbol_addr, load_addr); while we can easily get the symtab_index value from rpnt->r_info, this still doesn't buy us easy access to the actual table. As such, I've modified PERFORM_BOOTSTRAP_RELOC() to take an additional SYMTAB argument. Most architectures aren't going to care about this, but unfortunately we don't have any other options for sh64. The following patch fixes up the API for what we need for sh64, and updates the other architectures appropriately.
* When I switched from using stack allocated space for printf, I missed a caseEric Andersen2003-12-172-6/+10
| | | | | | | | where a sizeof(foo) was changed to the sizeof a pointer. This caused _dl_printf to complain a lot when debug is enabled (which itself revealed a bug since it should have exited on buffer overflow), and let me to find another bug, where memory failures would try to recursively call _dl_printf.... What a mess.