]> git.ipfire.org Git - thirdparty/gcc.git/blame - lto-plugin/configure.ac
configure: Implement --enable-host-bind-now
[thirdparty/gcc.git] / lto-plugin / configure.ac
CommitLineData
d7f09764 1AC_INIT([LTO plugin for ld], 0.1,,[lto-plugin])
73d5e770 2AC_CANONICAL_SYSTEM
d7f09764 3GCC_TOPLEV_SUBDIRS
13917ae3 4AM_INIT_AUTOMAKE([foreign no-dist])
03428d41 5AM_MAINTAINER_MODE
2a7a8388
TS
6AC_ARG_WITH(libiberty,
7 [AS_HELP_STRING([--with-libiberty=PATH],
8 [specify the directory where to find libiberty [../libiberty]])],
9 [], with_libiberty=../libiberty)
10AC_SUBST(with_libiberty)
dcbc9df9 11AC_USE_SYSTEM_EXTENSIONS
d7f09764 12AC_PROG_CC
4c0f4b0b 13AC_SYS_LARGEFILE
f3016c47 14ACX_PROG_CC_WARNING_OPTS([-Wall], [ac_lto_plugin_warn_cflags])
a2555c65
RO
15
16# Check whether -static-libgcc is supported.
17saved_LDFLAGS="$LDFLAGS"
18LDFLAGS="$LDFLAGS -static-libgcc"
19AC_MSG_CHECKING([for -static-libgcc])
22e05272
JM
20AC_LINK_IFELSE([AC_LANG_SOURCE([
21 int main() {}])], [have_static_libgcc=yes], [have_static_libgcc=no])
a2555c65
RO
22AC_MSG_RESULT($have_static_libgcc);
23LDFLAGS="$saved_LDFLAGS"
5523efdf 24# Need -Wc to get it through libtool.
a2555c65
RO
25if test "x$have_static_libgcc" = xyes; then
26 ac_lto_plugin_ldflags="-Wc,-static-libgcc"
27fi
33ebb0df
MP
28
29# Enable --enable-host-bind-now
30AC_ARG_ENABLE(host-bind-now,
31[AS_HELP_STRING([--enable-host-bind-now],
32 [link host code as BIND_NOW])])
33AC_SUBST(enable_host_bind_now)
34
35if test x$enable_host_bind_now = xyes; then
36 ac_lto_plugin_ldflags="$ac_lto_plugin_ldflags -Wl,-z,now"
37fi
38
5523efdf 39AC_SUBST(ac_lto_plugin_ldflags)
a2555c65 40
8fc8bf80
L
41GCC_CET_HOST_FLAGS(CET_HOST_FLAGS)
42AC_SUBST(CET_HOST_FLAGS)
43
43f4a446
L
44if test x"$host_subdir" = x.; then
45 gcc_build_dir=../gcc
46else
47 gcc_build_dir=../../$host_subdir/gcc
48fi
49AC_SUBST(gcc_build_dir)
50
85c64bbe
BS
51# Used for constructing correct paths for offload compilers.
52accel_dir_suffix=
53real_target_noncanonical=${target_noncanonical}
54if test x"$enable_as_accelerator_for" != x; then
55 accel_dir_suffix=/accel/${target_noncanonical}
56 real_target_noncanonical=${enable_as_accelerator_for}
57fi
58AC_SUBST(accel_dir_suffix)
59AC_SUBST(real_target_noncanonical)
60
3c36aa6b
JJ
61# Determine what GCC version number to use in filesystem paths.
62GCC_BASE_VER
63
6ee58926
JJ
64AC_MSG_CHECKING([whether symbol versioning is supported])
65lto_plugin_use_symver=no
66if test x$gcc_no_link = xyes; then
67 # If we cannot link, we cannot build shared libraries, so do not use
68 # symbol versioning.
69 lto_plugin_use_symver=no
70else
71 save_LDFLAGS="$LDFLAGS"
72 LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
73 cat > conftest.map <<EOF
74{
75 global: *foo*; bar; local: *;
76};
77EOF
78 AC_TRY_LINK([int foo;],[],[lto_plugin_use_symver=gnu],[lto_plugin_use_symver=no])
79 if test x$lto_plugin_use_symver = xno; then
80 case "$target_os" in
81 solaris2*)
82 LDFLAGS="$save_LDFLAGS"
83 LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
84 # Sun ld cannot handle wildcards and treats all entries as undefined.
85 cat > conftest.map <<EOF
86{
87 global: foo; local: *;
88};
89EOF
90 AC_TRY_LINK([int foo;],[],[lto_plugin_use_symver=sun],[lto_plugin_use_symver=no])
91 ;;
92 esac
93 fi
94 LDFLAGS="$save_LDFLAGS"
95fi
96AC_MSG_RESULT($lto_plugin_use_symver)
97AM_CONDITIONAL(LTO_PLUGIN_USE_SYMVER, [test "x$lto_plugin_use_symver" != xno])
98AM_CONDITIONAL(LTO_PLUGIN_USE_SYMVER_GNU, [test "x$lto_plugin_use_symver" = xgnu])
99AM_CONDITIONAL(LTO_PLUGIN_USE_SYMVER_SUN, [test "x$lto_plugin_use_symver" = xsun])
100
2669cae0 101# Check for thread headers.
d89fa97f 102use_locking=no
29f40a80 103ac_lto_plugin_extra_ldflags=
d89fa97f 104
5d863720 105case $host in
d89fa97f
ML
106 riscv*)
107 # do not use locking as pthread depends on libatomic
108 ;;
109 *-linux*)
110 use_locking=yes
111 ;;
112esac
113
114if test x$use_locking = xyes; then
115 AC_CHECK_HEADER(pthread.h,
116 [AC_DEFINE(HAVE_PTHREAD_LOCKING, 1, [Define if the system provides pthread locking mechanism.])])
29f40a80
ML
117
118 ac_lto_plugin_extra_ldflags="-pthread"
d89fa97f 119fi
2669cae0 120
29f40a80
ML
121AC_SUBST(ac_lto_plugin_extra_ldflags)
122
d7f09764 123AM_PROG_LIBTOOL
7de6ba7a 124ACX_LT_HOST_FLAGS
d7f09764 125AC_SUBST(target_noncanonical)
d19e0f01 126AC_TYPE_INT64_T
21750c78 127AC_TYPE_UINT64_T
ec692d5f 128AC_HEADER_SYS_WAIT
d7f09764 129AC_CONFIG_FILES(Makefile)
48215350 130AC_CONFIG_HEADERS(config.h)
d7f09764 131AC_OUTPUT