freenode/#clasp - IRC Chatlog
Search
2:41:33
drmeister
Now - there is a facility where I can force symbols to be exported (ld option -exported_symbols_list <filename>) - but this is a PITA - it means we have to maintain a list of about 9,000 C++ mangled symbols Bleh Bleh Bleh.
2:42:46
drmeister
The problem is that we do depend on vtables for function objects. 'templatedSizeof' is one of the reasons we need vtables.
2:46:10
drmeister
This is for function objects in general - if the function object wraps a function pointer - that adds 8 bytes. If it wraps a method pointer - that adds 16 bytes.
2:48:02
drmeister
It's not clear to me that we absolutely need vtables though - we might be able to get around the need.
2:48:37
drmeister
It would take some work and some thinking though - the simpler thing would be if we could get these vtable symbols exported.
2:50:50
drmeister
I'm going to change the names of the template classes that derive from Function_O so I can grep them out of nm output.
2:53:56
drmeister
Hmm, I'm talking with Lang again - we've been chatting about this for a couple of hours - that's how I learned all this.
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.