summaryrefslogtreecommitdiff
path: root/libphobos/configure
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2021-04-08 18:31:04 +0200
committerIain Buclaw <ibuclaw@gdcproject.org>2021-04-10 15:02:07 +0200
commitd118ec221dd5fc829d2170c257e10b8159dce274 (patch)
tree8ff5b8c0b68632ea682e8765ed30f7b93a5e8581 /libphobos/configure
parent32703b80f66f7ca504eb79bee7e745f22cf096a8 (diff)
downloadgcc-d118ec221dd5fc829d2170c257e10b8159dce274.tar.gz
libphobos: Build runtime library with -ffunction-sections -fdata-sections
Tests for `-ffunction-sections -fdata-sections' and sets SECTION_FLAGS accordingly. If there is no warning when using it, take advantage of the smaller executables that can be had with `--gc-sections'. libphobos/ChangeLog: * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac: Call DRUNTIME_SECTION_FLAGS. * libdruntime/Makefile.am: Add SECTION_FLAGS to AM_DFLAGS. * libdruntime/Makefile.in: Regenerate. * m4/druntime.m4 (DRUNTIME_SECTION_FLAGS): New macro. * src/Makefile.am: Add SECTION_FLAGS to AM_DFLAGS. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate.
Diffstat (limited to 'libphobos/configure')
-rwxr-xr-xlibphobos/configure47
1 files changed, 45 insertions, 2 deletions
diff --git a/libphobos/configure b/libphobos/configure
index 59ca64aa1e0..fe7cd9c11ff 100755
--- a/libphobos/configure
+++ b/libphobos/configure
@@ -700,6 +700,7 @@ DRUNTIME_CPU_ARM_FALSE
DRUNTIME_CPU_ARM_TRUE
DRUNTIME_CPU_AARCH64_FALSE
DRUNTIME_CPU_AARCH64_TRUE
+SECTION_FLAGS
libphobos_srcdir
libphobos_builddir
get_gcc_base_ver
@@ -11749,7 +11750,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11752 "configure"
+#line 11753 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11855,7 +11856,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11858 "configure"
+#line 11859 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -14085,6 +14086,48 @@ fi
fi
+
+
+ gdc_save_DFLAGS=$GDCFLAGS
+ GDCFLAGS="-fno-moduleinfo -nostdinc -I $phobos_cv_abs_srcdir/libdruntime -nophoboslib $GDCFLAGS"
+
+ ac_ext=d
+ac_compile='$GDC -c $GDCFLAGS conftest.$ac_ext >&5'
+ac_link='$GDC -o conftest$ac_exeext $GDCFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=yes
+
+ GDCFLAGS="$GDCFLAGS -g -Werror -ffunction-sections -fdata-sections"
+ cat > conftest.$ac_ext <<_ACEOF
+module mod;
+int foo; void bar() { }
+
+extern(C) int main() {
+ return 0;
+}
+_ACEOF
+if ac_fn_d_try_compile "$LINENO"; then :
+ ac_fdsections=yes
+else
+ ac_fdsections=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test "x$ac_fdsections" = "xyes"; then
+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_fdsections" >&5
+$as_echo "$ac_fdsections" >&6; }
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ GDCFLAGS=$gdc_save_DFLAGS
+
+
+
+
druntime_target_cpu_parsed=""
case "$target_cpu" in
aarch64*)