libgcc: IA64: don't compile glibc-based unwinder without libc headers
authorSergei Trofimovich <siarheit@google.com>
Thu, 7 Apr 2022 07:36:23 +0000 (08:36 +0100)
committerSergei Trofimovich <siarheit@google.com>
Fri, 8 Apr 2022 07:01:06 +0000 (08:01 +0100)
In --without-headers mode gcc fails to bootstrap on libgcc as:

    /build/build/./gcc/xgcc -B/build/build/./gcc/ ... -Dinhibit_libc -c fde-glibc.c
    ../../../gcc-12-20220403/libgcc/config/ia64/fde-glibc.c:33:10:
        fatal error: stdlib.h: No such file or directory

Most other linux targets are able to build the --without-headers
compiler without additional effort. This change adds IA64 to the fold.

The change drops part of the code that relies on DYNAMIC glibc
section traversal for backtraces.

Tested bootstrap of ia64-unknown-linux-gnu with and without libc
headers present.

libgcc/
* config/ia64/fde-glibc.c: Make a no-op in inhibit_libc mode.

libgcc/config/ia64/fde-glibc.c

index 9caac2b..bd74847 100644 (file)
@@ -29,6 +29,7 @@
 #define _GNU_SOURCE 1
 #endif
 #include "config.h"
+#ifndef inhibit_libc
 #include <stddef.h>
 #include <stdlib.h>
 #include <link.h>
@@ -159,3 +160,4 @@ _Unwind_FindTableEntry (void *pc, unw_word *segment_base, unw_word *gp,
 
   return data.ret;
 }
+#endif