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

Reply via email to