Commit 25a9db6c by Iain Sandoe

Darwin: Make sanitizer local vars linker-visible.

Another case where we need a linker-visible symbol in order
to preserve the ld64 atom model.  If these symbols are emitted
as 'local' the linker cannot see that they are separate from any
global weak entry that precedes them.  This will cause the linker
to complain that there is (apparently) direct access to such a
weak global.

This is a short-term fix for the problem - ideally we need a more
generic handling for all the relevant cases.

	Backport 804254edb48f87d726a1bc9e95af04076c030e35

gcc/ChangeLog:

	* config/darwin.h (ASM_GENERATE_INTERNAL_LABEL):
	Make ubsan_{data,type},ASAN linker-visible.
parent af216f79
2020-05-24 Iain Sandoe <iain@sandoe.co.uk>
Backported from master.
2020-05-22 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.h (ASM_GENERATE_INTERNAL_LABEL):
Make ubsan_{data,type},ASAN linker-visible.
2020-05-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/95258
......
......@@ -808,6 +808,12 @@ extern GTY(()) section * darwin_sections[NUM_DARWIN_SECTIONS];
do { \
if (strcmp ("LC", PREFIX) == 0) \
sprintf (LABEL, "*%s%ld", "lC", (long)(NUM)); \
else if (strcmp ("Lubsan_data", PREFIX) == 0) \
sprintf (LABEL, "*%s%ld", "lubsan_data", (long)(NUM));\
else if (strcmp ("Lubsan_type", PREFIX) == 0) \
sprintf (LABEL, "*%s%ld", "lubsan_type", (long)(NUM));\
else if (strcmp ("LASAN", PREFIX) == 0) \
sprintf (LABEL, "*%s%ld", "lASAN", (long)(NUM));\
else \
sprintf (LABEL, "*%s%ld", PREFIX, (long)(NUM)); \
} while (0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment