Commit Graph

52 Commits

Author SHA1 Message Date
PoroCYon 51db8f8714 reorganize everything in a single invocation (take 2) 2020-07-11 22:30:33 +00:00
PoroCYon 09acda915d fix smoldd.py failing when LD_LIBRARY_PATH isn't defined in the environment 2020-07-11 22:28:20 +00:00
PoroCYon 5a42351a0e fix makefile for gcc 10 2020-07-11 22:28:20 +00:00
PoroCYon 7e384a44a6 fix smoldd 2020-07-11 22:28:20 +00:00
PoroCYon 5c38b05c85 update CFLAGS etc a bit 2020-07-11 22:28:20 +00:00
PoroCYon 4389c2e0a1 add more detailed exported symbols, useful for compressed code size listings 2020-07-11 22:28:20 +00:00
PoroCYon e0bde71bd2 show a warning if a required binary isn't found, should 'fix' #2 2020-07-11 22:28:20 +00:00
PoroCYon 48fa48e797 fix 32-bit not working 2019-08-12 22:58:11 +00:00
PoroCYon 788135c670 add fix for gcc 9.1 in the makefile, don't accept LTO input files 2019-08-12 19:18:44 +00:00
PoroCYon 2f535befa2 ... actually make it deterministic 2019-08-12 19:18:44 +00:00
PoroCYon 9f03bcf3a6 add --det flag for deterministic order of imports 2019-08-12 19:18:44 +00:00
PoroCYon 4929ec18ed
Update README.md 2019-07-27 16:55:23 +00:00
PoroCYon 5dd269d05f fix SIGBUS crashes when accessing bss data from a large .bss segment 2019-05-20 03:04:33 +02:00
PoroCYon 9ec2133545 add dependencies docs 2019-05-18 12:46:58 +00:00
PoroCYon 429ba14e8c I'm an idiot 2019-05-18 12:46:58 +00:00
PoroCYon a2e2e8f503 try to fix gcc printing localized search dir keys 2019-05-18 12:46:58 +00:00
PoroCYon 987bbab3e4 add support for relocation type 'R_X86_64_GOTPCREL' 2019-05-17 15:36:41 +00:00
PoroCYon 4b4d8107a8 add support for R_X86_64_REX_GOTPCRELX reloc (thanks Shiz) 2019-05-17 15:36:41 +00:00
PoroCYon be3942ed6d fix dnload version 2019-04-29 23:46:13 +00:00
PoroCYon 3eea42e29c 32-bit version working (not yet the dnload version) 2019-04-29 23:46:13 +00:00
PoroCYon 8c7ce9c930 fix importing weak symbols 2019-04-29 23:46:13 +00:00
PoroCYon 8a4b7ce4ec src->rt; smol*.py -> src; add optional 16-bit hash version 2019-04-29 23:46:13 +00:00
PoroCYon c75be623eb 32-bit version using dnload loader now working 2019-04-29 23:46:13 +00:00
PoroCYon d9dbaae27a fixes. dnload mode should now be usableish 2019-03-14 14:40:33 +00:00
PoroCYon 26d96fc2c1 get rid of a few more bytes 2019-03-14 14:40:33 +00:00
PoroCYon 5e19c2746e add dnload import method to 64-bit version (unoptimized atm) 2019-03-14 14:40:33 +00:00
PoroCYon aed33c73a9 make things smaller again 2019-03-14 14:40:33 +00:00
PoroCYon 434630e6cc fix -fno-plt failing 2019-03-14 14:40:33 +00:00
PoroCYon 1e55344436 fix crash when a hash's LSbyte is 0 2019-03-06 12:01:42 +00:00
PoroCYon 237ba99104 more size crunching, but not completely perfect 2019-03-06 12:01:42 +00:00
PoroCYon 296556080d more optimizations (64-bit only for now) 2019-03-06 12:01:42 +00:00
PoroCYon 6e2aa414a3 more optimizations (64-bit only for now) 2019-03-06 12:01:42 +00:00
PoroCYon 518a15d2af make the linker survive -ffunction-sections -fdata-sections -Wl,--gc-sections 2019-02-27 23:23:10 +00:00
PoroCYon 0993ec8dcb use repne scas[dq] for searching for l_entry 2019-02-27 23:23:10 +00:00
PoroCYon a6c4c6f2dd ... and fix the Makefile to work again with code that uses main() instead of _start() 2019-02-27 23:23:10 +00:00
PoroCYon d903ef2d50 use pkg-config in makefile (thanks unlord) 2019-02-27 23:23:10 +00:00
PoroCYon a73dfb9789 fix stupid 32-bit compilation failure 2019-02-27 23:23:10 +00:00
PoroCYon 5b262ffca0 docs on smoldd 2019-02-27 23:23:10 +00:00
PoroCYon f317bc18db USE_DT_DEBUG, SKIP_ENTRIES options 2019-02-27 23:23:10 +00:00
PoroCYon 9d117fe66f use better defaults for lib search paths 2019-02-27 23:23:10 +00:00
PoroCYon d9a5eac2e6 add support for more than one relocation type on x86_64, make stack alignment optional 2019-02-27 23:23:10 +00:00
PoroCYon 560ce8c0f2 add smoldd 2019-02-27 23:23:10 +00:00
PoroCYon b08e23a16c add LICENSE 2019-02-27 23:23:10 +00:00
PoroCYon 75c1cfe603 add docs etc 2019-02-27 23:23:10 +00:00
PoroCYon 38ea8e9531 64-bit version. 2019-02-27 23:23:10 +00:00
PoroCYon cccd9656de lots of stuff, see detailed desc.
* reorganize the project structure a bit (sorry not sorry :P)
  * src/ -> test/
  * ldr/ -> src/, ld/
  * mksyms -> smol.py (and smol*.py)
* clean up and make the python script a bit less hacky
* optimize the loader code (there can still be done more, though)
* preserve the stack so argc, argv and envp can be read
* more stuff
2019-02-27 23:23:10 +00:00
PoroCYon f6b9a927a6 use _start, but don't call it ;) 2019-02-27 23:23:10 +00:00
PoroCYon 56357dc04b add optional PT_INTERP stuff 2019-02-27 23:23:10 +00:00
PoroCYon 378714f449 make the loader compatible with at least more than one glibc version 2019-02-27 23:23:10 +00:00
PoroCYon 9f57498eea fix smol wrt new glibc version, make mksyms much faster 2019-02-27 23:23:10 +00:00