There is no way to do this with GNU ld. ld -r doesn't apply relocations and thus can't remove any that are against local symbols. -- Alan Modra Australia Development Lab, IBM