https://sourceware.org/bugzilla/show_bug.cgi?id=21964
Bug ID: 21964 Summary: __start_SCN symbols aren't exported anymore Product: binutils Version: 2.29 Status: NEW Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: matz at suse dot de Target Milestone: --- Commit cbd0eecf reworked the provision of __start_ and __stop_ symbols for sections with C-representable names (e.g. to always provide them, not only for orphaned sections). Amongst other things it also made all these provided symbols hidden. Alans later rewrite (commit 7dba9362) of this code didn't change this. That actively breaks existing code. E.g. in libqb (used by pacemaker) the logging facility uses per-call-site static variables as log descriptors. These are all placed into a section named __verbose. There's a routine that registers all such sections by walking over all loaded shared libs via dl_iterate_phdr, and looking for __start__verbose and __stop___verbose symbols via dlsym. That seems a reasonable approach to implement such facility, and making the symbols hidden defeats this. The commit message indicates only "so that they don't conflict" as reason for making them hidden. At least for these symbols for orphaned sections I don't see any indication that this was actually a problem. OTOH it breaks existing usage. So, can we please have back the old behaviour at least for the __start/__stop symbols for orphaned sections? (Yes, there are multiple ways to work-around this problem on the user side, the point is that they shouldn't be necessary). -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils