aix: collect2 visibility
authorDavid Edelsohn <dje.gcc@gmail.com>
Wed, 23 Sep 2020 20:52:15 +0000 (16:52 -0400)
committerDavid Edelsohn <dje.gcc@gmail.com>
Sat, 26 Sep 2020 15:26:47 +0000 (11:26 -0400)
commite721d1137fb3f0323d31b767bc64c772086ff868
treed7f9edfa6ffaca1f8beea3dd4b59bdd86df1a136
parent5b26b3b3f5c75a86a5a3e851866247ac7fcb6c8b
aix: collect2 visibility

The code that collect2 generates, compiles and links into applications
and shared libraries to initialize constructors and register DWARF tables
is built with the compiler options used to invoke the linker.  If the
compiler options change the visibility from default, the library
initialization routines will not be visible and this can prevent
initialization.

This patch checks if the command line sets visibiliity and then adds
GCC pragmas to the initialization code generated by collect2 if
necessary to define the visibility on global, exported functions as default.

gcc/ChangeLog:

2020-09-26  David Edelsohn  <dje.gcc@gmail.com>
    Clement Chigot  <clement.chigot@atos.com>

* collect2.c (visibility_flag): New.
(main): Detect -fvisibility.
(write_c_file_stat): Push and pop default visibility.
gcc/collect2.c