Building DLLs/shared libraries: export and visibility
Janne Blomqvist
blomqvist.janne@gmail.com
Fri Oct 10 09:17:00 GMT 2008
On Fri, Oct 10, 2008 at 10:36 AM, Arjen Markus <arjen.markus@wldelft.nl> wrote:
> for the PLplot project (http://plplot.sf.net) we are trying to create
> DLLs and shared libraries with selected exported symbols only.
> For the C libraries, we can use __attribute__((visibility())),
> at least with recent enough versions of gcc.
Note that with newer versions of gcc it may be less work to make all
symbols hidden by default with the -fvisibility=hidden option and
explicitly mark exported symbols with an attribute, rather than going
the other way around. See
http://gcc.gnu.org/wiki/Visibility
> What is the equivalent for gfortran? If there is any of course.
There is no equivalent. However, what you can do is to use a linker
version script, which has the effect of hiding all non-exported
symbols (the exported symbols are listed in a text file, independent
of gfortran).
In any case, versioned symbols are just good shared library design, so
you should do it anyway. See
http://gcc.gnu.org/wiki/SymbolVersioning
and links therein.
--
Janne Blomqvist
More information about the Fortran
mailing list