I have an ELF 32-bit x86 file which contains an .eh_frame section, despite my attempts1 to remove it.
I'd like to remove the .eh_frame section, without touching any symbols in other sections, including unused ones.
strip does not seem to have an option --remove-only, and it always ends up modifying other sections.
How can I remove a single ELF section without modifying anything else in the file?
1As suggested in other questions, I tried several variants of gcc-3.4.3 -fomit-frame-pointer -fno-exceptions -fno-asynchronous-unwind-tables -fno-unwind-tables, but the .eh_frame section is always there. This is probably due to the fact that I have to use an old GCC (3.4.3)... the source file itself contains nothing special that might require these sections: int main() { return 0; }.
strip, despite the name, is not the right tool here.
A possible solution is objcopy --remove-section .eh_frame a.out, where a.out is the name of the ELF file to be modified.
Unfortunately, unless you know about objcopy, you may end up searching for solutions with strip, without finding any.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With