So to clarify - when strip strips a section from ELF it also needs to remove any symbols pointing to it since else they might end up pointing into wrong sections or to sections that do not exist (out of bound section index) or to places outside of the (invalid) section. eu_strip gets this "right" (with limited testing of a simple exec compiled with -flto and stripped with eu-strip --strip-debug), strip --strip-debug as well (binutils 2.35.1). So sth is bogus in the course of events performing the stripping?