[Bug java/41372] New: Symbols in shared library compiled from jar/classes should not be local with -findirect-dispatch

View: New views
2 Messages — Rating Filter:   Alert me  

[Bug java/41372] New: Symbols in shared library compiled from jar/classes should not be local with -findirect-dispatch

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

When I compile jar into shared library all symbols become local when
-findirect-dispatch is specified. Local symbols can't be found by dlsym.

-findirect-dispatch options shouldn't change symbols from global to local since
external callers may choose to import them regardless of this option.


--
           Summary: Symbols in shared library compiled from jar/classes
                    should not be local with -findirect-dispatch
           Product: gcc
           Version: 4.4.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: java
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: yuri at tsoft dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41372


[Bug java/41372] Symbols in shared library compiled from jar/classes should not be local with -findirect-dispatch

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #1 from aph at gcc dot gnu dot org  2009-10-19 08:55 -------
This is a deliberate design decision.

If you really need to refer to classes with dlsym, use -fno-indirect-classes.
However, this has a number of restrictions: in particular it fixes the ABI
to the specific libgcj that was used at compile time, thus requiring
recompilation every time libgcj is updated.


--

aph at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41372