diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2021-04-08 18:31:04 +0200 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2021-04-10 15:02:07 +0200 |
commit | d118ec221dd5fc829d2170c257e10b8159dce274 (patch) | |
tree | 8ff5b8c0b68632ea682e8765ed30f7b93a5e8581 /libphobos/configure | |
parent | 32703b80f66f7ca504eb79bee7e745f22cf096a8 (diff) | |
download | gcc-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-x | libphobos/configure | 47 |
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*) |