freenode/#clasp - IRC Chatlog
Search
13:29:09
drmeister
I have to be careful how I put together symbol lists for the linker. My ham fisted attempts to now have resulted in new problems.
13:29:47
drmeister
I'm attempting now to assemble JUST the function symbols and the vtable symbols we expose.
14:03:59
drmeister
I get that by doing a dladdr lookup on every function pointer we export AND grep'ing every vtable pointer out of the object files and concatenating those two lists together. Then I add in the magical '__mh_execute_header' symbol that the macos dynamic linker needs.
14:47:32
drmeister
I concatenate them into a file 'insanity.txt' (ha ha) and add `__mh_execute_header`
14:48:00
drmeister
Ugh - I was explaining this to Lang on discord and started pasting into this wrong window. (sigh)
15:14:55
drmeister
From everything I read executables only need to export symbols if they load code that calls 'dlsym' on those symbols.
15:16:45
drmeister
So if I want to use 'dlsym' and I don't want to be groveling ELF files and macho files and trying to figure out absolute addresses of symbols - then the problem reduces to exporting the symbols that snapshot save/load needs to call 'dlsym' on.
15:17:23
drmeister
'dladdr' at snapshot save time is not a problem - it faithfully returns the mangled name of every address whether or not it is exported. Thank you whoever the heck implemented 'dladdr'.