[PATCH 03/25] Improve TARGET_MANGLE_DECL_ASSEMBLER_NAME.
Jeff Law
law@redhat.com
Tue Sep 11 22:56:00 GMT 2018
On 9/5/18 5:48 AM, ams@codesourcery.com wrote:
>
> The HSA GPU drivers can't cope with binaries that have the same symbol defined
> multiple times, even though the names are not exported. This happens whenever
> there are file-scope static variables with matching names. I believe it's also
> an issue with switch tables.
>
> This is a bug, but outside our control, so we must work around it when multiple
> translation units have the same symbol defined.
>
> Therefore, we've implemented name mangling via
> TARGET_MANGLE_DECL_ASSEMBLER_NAME, but found some places where the middle-end
> assumes that the decl name matches the name in the source.
>
> This patch fixes up those cases by falling back to comparing the unmangled
> name, when a lookup fails.
>
> 2018-09-05 Julian Brown <julian@codesourcery.com>
>
> gcc/
> * cgraphunit.c (handle_alias_pairs): Scan for aliases by DECL_NAME if
> decl assembler name doesn't match.
>
> gcc/c-family/
> * c-pragma.c (maye_apply_pending_pragma_weaks): Scan for aliases with
> DECL_NAME if decl assembler name doesn't match.
This should be fine. But please verify there's no regressions on the
x86_64 linux target, particularly for the multi-versioning tests (mv*.c
mv*.C
Jeff
More information about the Gcc-patches
mailing list