https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61577
--- Comment #105 from C. Heide <cameron.heide at betasystems dot com> ---
It looks like that's already disabled on ia64 in 8.3 (I don't see any .text.hot
or .text.unlikely sections in any executables so far), which has the following:
ia64.c:
> /* Always default to .text section until HP-UX linker is fixed. */
>
> ATTRIBUTE_UNUSED static section *
> ia64_hpux_function_section (tree decl ATTRIBUTE_UNUSED,
> enum node_frequency freq ATTRIBUTE_UNUSED,
> bool startup ATTRIBUTE_UNUSED,
> bool exit ATTRIBUTE_UNUSED)
> {
> return NULL;
> }
hpux.h:
> /* The HP-UX linker has a bug that causes calls from functions in
> .text.unlikely to functions in .text to cause a segfault. Until
> it is fixed, prevent code from being put into .text.unlikely or
> .text.hot. */
>
> #define TARGET_ASM_FUNCTION_SECTION ia64_hpux_function_section
The crash I'm currently stuck at is in stage2 libgcc configuration tests, where
even with a trivial "int main() { return 0; }" source file it produces:
> during RTL pass: mach
> conftest.c: In function 'main':
> conftest.c:4:1: internal compiler error: Segmentation fault
> }
> ^
> 0x4f18c2f crash_signal
> ../../gcc/toplev.c:325
and if I reproduce it with cc1 under GDB, the call stack is:
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000007519d10 in ?? ()
> (gdb) where
> #0 0x0000000007519d10 in ?? ()
> #1 0x000000000657fda0 in remove (var=<optimized out>) at
> ../../gcc/var-tracking.c:507
> #2 hash_table<variable_hasher, xcallocator>::~hash_table (this=<optimized
> out>, __in_chrg=<optimized out>)
> at ../../gcc/hash-table.h:625
> #3 0x0000000000000002 in ?? ()
> #4 0x0000000000000000 in ?? ()
I've been trying to gather more debug information, but I can't build with -O0
or I get the PCREL21B relocation errors at link, and GDB seems...quirky on
ia64.