bootstrap/119680 - fix cross-compiler build with --enable-host-shared

It seems that at least when cross-compiling at least collect2 pulls
in objects from libbacktrace.a which is linked via LIBDEPS.  But
libbacktrace for the host is only built -fPIC with --enable-host-shared
but not -fPIE with --enable-host-pie so this fails.  The following
teaches libbacktrace about --enable-host-pie and handles it similar
to libcpp.

	PR bootstrap/119680
libbacktrace/
	* configure.ac (--enable-host-pie): Handle by setting PIC_FLAG
	to -fPIE.
	* configure: Regenerate.
This commit is contained in:
Richard Biener
2025-04-08 14:57:05 +02:00
committed by Ian Lance Taylor
parent f1104f3270
commit 0bb163df97
2 changed files with 18 additions and 5 deletions

16
configure vendored
View File

@@ -812,6 +812,7 @@ enable_darwin_at_rpath
enable_largefile
enable_werror
with_system_libunwind
enable_host_pie
enable_host_shared
'
ac_precious_vars='build_alias
@@ -1461,6 +1462,7 @@ Optional Features:
rpaths to be added to executables
--disable-largefile omit support for large files
--disable-werror disable building with -Werror
--enable-host-pie build host code as PIE
--enable-host-shared build host code as shared libraries
Optional Packages:
@@ -11395,7 +11397,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11398 "configure"
#line 11400 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11501,7 +11503,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11504 "configure"
#line 11506 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12190,12 +12192,18 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
fi
fi
# Enable --enable-host-pie.
# Check whether --enable-host-pie was given.
if test "${enable_host_pie+set}" = set; then :
enableval=$enable_host_pie; PIC_FLAG=-fPIE
else
PIC_FLAG=
fi
# Enable --enable-host-shared.
# Check whether --enable-host-shared was given.
if test "${enable_host_shared+set}" = set; then :
enableval=$enable_host_shared; PIC_FLAG=-fPIC
else
PIC_FLAG=
fi

View File

@@ -176,11 +176,16 @@ else
fi
fi
# Enable --enable-host-pie.
AC_ARG_ENABLE(host-pie,
[AS_HELP_STRING([--enable-host-pie],
[build host code as PIE])],
[PIC_FLAG=-fPIE], [PIC_FLAG=])
# Enable --enable-host-shared.
AC_ARG_ENABLE(host-shared,
[AS_HELP_STRING([--enable-host-shared],
[build host code as shared libraries])],
[PIC_FLAG=-fPIC], [PIC_FLAG=])
[PIC_FLAG=-fPIC])
AC_SUBST(PIC_FLAG)
# Test for __sync support.