[PATCH v2] Always enable DT_INIT_ARRAY/DT_FINI_ARRAY on Linux

Richard Biener richard.guenther@gmail.com
Wed Jun 9 12:11:30 GMT 2021


On Wed, Jun 9, 2021 at 2:05 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> On Wed, Jun 9, 2021 at 4:00 AM Richard Biener
> <richard.guenther@gmail.com> wrote:
> >
> > On Wed, Jun 9, 2021 at 1:13 AM H.J. Lu via Gcc-patches
> > <gcc-patches@gcc.gnu.org> wrote:
> > >
> > > DT_INIT_ARRAY/DT_FINI_ARRAY support was added to glibc by
> > >
> > > commit fcf70d4114db9ff7923f5dfeb3fea6e2d623e5c2
> > > Author: Ulrich Drepper <drepper@redhat.com>
> > > Date:   Sat Jul 24 19:45:13 1999 +0000
> > >
> > >     Update.
> > >
> > >     1999-07-24  Ulrich Drepper  <drepper@cygnus.com>
> > >
> > >             * elf/dl-fini.c: Handle DT_FINI_ARRAY.
> > >             * elf/link.h (struct link_map): Remove l_init_running.  Add l_runcount
> > >             and l_initcount.
> > >             * elf/dl-init.c: Handle DT_INIT_ARRAY.
> > > ...
> > >
> > >         PR target/100896
> > >         * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
> > >         GNU targets.
> > > ---
> > >  gcc/config.gcc | 2 ++
> > >  1 file changed, 2 insertions(+)
> > >
> > > diff --git a/gcc/config.gcc b/gcc/config.gcc
> > > index 6833a6c13d9..4dc4fe0b65c 100644
> > > --- a/gcc/config.gcc
> > > +++ b/gcc/config.gcc
> > > @@ -848,6 +848,8 @@ case ${target} in
> > >    tmake_file="${tmake_file} t-glibc"
> > >    target_has_targetcm=yes
> > >    target_has_targetdm=yes
> > > +  # Linux targets always support .init_array.
> >
> > Other *linux targets specifically mention
> >
> >         # Force .init_array support.  The configure script cannot always
> >         # automatically detect that GAS supports it, yet we require it.
> >         gcc_cv_initfini_array=yes
> >
> > and thus involve binutils.  Can you please change the comment
> > to mention the glibc and binutils versions required?  It might
>
> Done.  They are glibc 2.1 and binutils 2.12.
>
> > be good to mention those in install.texi as minimal versions given
>
> Fixed.
>
> > they are not trumped by already stricter requirements.
> >
> > Otherwise I think this is OK.
> >
> > > +  gcc_cv_initfini_array=yes
> > >    ;;
> > >  *-*-netbsd*)
> > >    tm_p_file="${tm_p_file} netbsd-protos.h"
> > > --
> > > 2.31.1
> > >
>
> Here is the v2 patch.  OK for master and release branches?

OK for master, this isn't appropriate for release branches.

Richard.

> Thanks.
>
> --
> H.J.


More information about the Gcc-patches mailing list