https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119414

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2025-03-24

--- Comment #2 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to James K. Lowden from comment #1)
> (In reply to Iain Sandoe from comment #0)
> > 1. -rdynamic  (this might not be supported on all targets).
> > 
> > What is this needed for?
> > perhaps the library is using some symbol that the executable is meant to
> > export?
> 
> Yes, except I don't know what you mean by "meant to export".  The produced
> executable defines (or once did define) symbols used by the library.  
> 
> A quick test indicates it's no longer needed: 
> 
> $ ./built-gcobol -### -oo nist/NC/NC102A.o 2>&1 | sed "/'-rdynamic'/d; 1d;
> 4,8d" | sh

OK.. perhaps it's a moot point - but the idea I was trying to communicate was
that an executable could be built with an "exports list" which would mean it
_only_ exported those symbols.

Conversely it could/can be built in a way that by default makes global symbols
visible (which I think is what the default is on both Linux and Darwin - which
is why the current impl. "just works" without the need for -rdynamic).

If we can avoid -rdynamic that would be good - even better if we can be
specific about what we want to export (the only real reason to export
everything is when using plugins - since the plugin API is "everything").

NOTE that the current set of tests works fine on Darwin and Linux with these
options omitted.  I can put a patch together to remove them, if you like (we
should ideally only add things which have purpose) .. removing now does not
prevent introduction when needed for a specific platform (with some configure
to constrain to that)

Reply via email to