• R
    remove freeing of dynamic linker data when dlopen/dlsym are not used · c91aa03d
    Rich Felker 提交于
    this was an optimization to save/recover a minimal amount of extra
    memory for use by malloc, that's becoming increasingly costly to keep
    around. freeing this data:
    
    1. breaks debugging with gdb (it can't find library symbols)
    2. breaks thread-local storage in shared libraries
    
    it would be possible to disable freeing when TLS is used, but in
    addition to the above breakages, tracking whether dlopen/dlsym is used
    adds a cost to every symbol lookup, possibly making program startup
    slower for large programs. combined with the complexity, it's not
    worth it. we already save/recover plenty of memory in the dynamic
    linker with reclaim_gaps.
    c91aa03d
dynlink.c 26.6 KB