Make gcc move switch tables into .rodata instead of .text on i386/amd64
authorstefan <stefan@openbsd.org>
Wed, 31 May 2017 03:24:20 +0000 (03:24 +0000)
committerstefan <stefan@openbsd.org>
Wed, 31 May 2017 03:24:20 +0000 (03:24 +0000)
commita7e293634bed787cebebfe65a74ec3cb6e3385bb
treec5713754aa3830373c636445b88f4cb44e8e3250
parent8e832490ccdc53c3baf311efd352f84817a35a6c
Make gcc move switch tables into .rodata instead of .text on i386/amd64

For C++, gcc has to make use of comdat sections instead
of .gnu.linkonce sections for this because
switch tables and functions would now end up
in different .gnu.linkonce sections. This can cause ld
to sometimes incorrectly discard the switch tables, which causes
linker errors. With comdat sections, making the switch table
and function sections belong together is more reliable.

ok deraadt@
gnu/gcc/gcc/config/i386/openbsd64.h
gnu/usr.bin/cc/cc_tools/auto-host.h