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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|gcc -fhardened -Wl,-z,lazy  |`-fhardened -Wl,-z,lazy`
                   |unexpectadly links binary   |still passes `-z now` to
                   |with immediate binding (-z  |the linker
                   |now)                        |

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
There is code in the driver to disable adding `-z now -z relro` but it looks
like it is not working for some reason:

      if (!any_link_options_p && !static_p)
        {
#if defined HAVE_LD_PIE && defined LD_PIE_SPEC
          save_switch (LD_PIE_SPEC, 0, NULL, /*validated=*/true,
/*known=*/false);
#endif
          /* These are passed straight down to collect2 so we have to break
             it up like this.  */
          if (HAVE_LD_NOW_SUPPORT)
            {
              add_infile ("-z", "*");
              add_infile ("now", "*");
            }
          if (HAVE_LD_RELRO_SUPPORT)
            {
              add_infile ("-z", "*");
              add_infile ("relro", "*");
            }
        }


Oh any_link_options_p just means -r, -shared, -no-pie, -pie was passed.  It
does not include -Wl, options.

Reply via email to