bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/17449] New: Exporting dynamic symbols from the main program is


From: martinrb at google dot com
Subject: [Bug gold/17449] New: Exporting dynamic symbols from the main program is too difficult
Date: Tue, 30 Sep 2014 20:11:59 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=17449

            Bug ID: 17449
           Summary: Exporting dynamic symbols from the main program is too
                    difficult
           Product: binutils
           Version: 2.24
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gold
          Assignee: ccoutant at google dot com
          Reporter: martinrb at google dot com
                CC: ian at airs dot com

(This bug also affects gcc the compiler itself; is there a better category?)

If I have some symbols defined by the main executable that I wish to be
accessed by dlopen'ed libraries (via dlopen(NULL) and dlsym), it seems too
difficult to discover and maintain the required steps.  In the past we have
done all of these:

- Annotate the symbols via __attribute__((visibility("default")))
- Ensure the symbols are referenced by main() to prevent -ffunction-sections
together with -Wl,--gc-sections from removing them
- List the symbols in the global section of a version script with an anonymous
version
- Add -Wl,--export-dynamic to the link.

What I really want is a single annotation I can place in the source file that
will ensure all of the above.  The microsoftish __dclspec(dllexport) seems to
have a name with the right connotations, but I haven't tried using it.

We can make incremental progress, e.g. by having the presence of a version
script imply --export-dynamic, or having the presence of default visibility
prevent gc-sections from collecting the symbols.

If compatibility is too hard to overcome, at least document these steps
somewhere in the ld or gcc docs.

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]