[Bug ipa/58329] [4.9 Regression] ld: Invalid symbol type for plabel (.libs/libstdc++.lax/libc++11convenience.a/system_error.o, std::error_category::default_error_condition(int) const [clone .localalias.9]).

hubicka at ucw dot cz gcc-bugzilla@gcc.gnu.org
Fri Sep 6 12:05:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58329

--- Comment #6 from Jan Hubicka <hubicka at ucw dot cz> ---
> The PA-RISC HP-UX linker interposes import and export stubs in dynamic  
> libraries.
> Whether there is a working notion of alias is somewhat unclear and  
> involves digging
> into the linker code.  The HP assembler doesn't support aliases.   
> There is some
> support in gas.
OK, perhaps we want to disable local aliases then.
#if !defined (ASM_OUTPUT_DEF)
# if !defined(ASM_OUTPUT_WEAK_ALIAS) && !defined (ASM_WEAKEN_DECL)
      error_at (DECL_SOURCE_LOCATION (decl),
                "alias definitions not supported in this configuration");
      return;
# else
      if (!DECL_WEAK (decl))
        {
          if (lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)))
            error_at (DECL_SOURCE_LOCATION (decl),
                      "ifunc is not supported in this configuration");
          else
            error_at (DECL_SOURCE_LOCATION (decl),
                      "only weak aliases are supported in this configuration");
          return;
        }
# endif
#endif

perhaps we want to simply check for ASM_OUTPUT_DEF in symtab and refuse
to use local aliases then?  I think the other macros alow only weak aliases.

Honza



More information about the Gcc-bugs mailing list