[PR,d/88431] Fix link build errors when compiling with unsupported options

Message ID CABOHX+fSUK78w6i1FVWpuH_FhQXgdUpyfvK6XdXQVBBa6Cf8MA@mail.gmail.com
State New
Headers show
Series
  • [PR,d/88431] Fix link build errors when compiling with unsupported options
Related show

Commit Message

Iain Buclaw April 24, 2019, 2:07 a.m.
Hi,

It was found that the first compilation test to get baseline warnings
was getting more messages due to a missing object.d file, compared to
later configure tests where libphobos is in the include paths.

Because there must always be an object module during compilation, let
the tests themselves be an empty object module instead.

This patch fixes build failure in PR88431, bootstrapped and regression
tested on x86_64-linux-gnu.

Committed to trunk as r270531.

-- 
Iain
---
libphobos/ChangeLog:

2019-04-24  Iain Buclaw  <ibuclaw@gdcproject.org>

        PR d/88431
        * configure: Regenerate.
        * m4/libtool.m4 (lt_simple_compile_test_code): Update to not have
        dependencies on libphobos.
        (lt_simple_link_test_code): Likewise.
        (GDCFLAGS): Don't override for D compiler tests.
---

Patch

diff --git a/libphobos/configure b/libphobos/configure
index 8079a73527d..7c019899c5c 100755
--- a/libphobos/configure
+++ b/libphobos/configure
@@ -11981,10 +11981,16 @@  objext=o
 objext_D=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code="module mod; extern(C) int main() { return 0; }"
+lt_simple_compile_test_code="\
+  module object;
+  shared int some_variable = 0;
+"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code='module mod; extern(C) int main() { return 0; }'
+lt_simple_link_test_code="\
+  module object;
+  extern(C) int main() { return 0; }
+"
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 
@@ -12020,12 +12026,9 @@  $RM -r conftest*
 # Allow CC to be a program name with arguments.
 lt_save_CC=$CC
 lt_save_CFLAGS=$CFLAGS
-lt_save_DFLAGS=$GDCFLAGS
 lt_save_GCC=$GCC
 GCC=yes
 CC=${GDC-"gdc"}
-# Need to specify location for object.d
-GDCFLAGS="-nophoboslib $GDCFLAGS"
 CFLAGS=$GDCFLAGS
 compiler=$CC
 compiler_D=$CC
@@ -13867,7 +13870,6 @@  ac_compiler_gnu=$ac_cv_c_compiler_gnu
 GCC=$lt_save_GCC
 CC=$lt_save_CC
 CFLAGS=$lt_save_CFLAGS
-GDCFLAGS=$lt_save_DFLAGS
 
   GDCFLAGS=$gdc_save_DFLAGS
 
diff --git a/libphobos/m4/libtool.m4 b/libphobos/m4/libtool.m4
index 44ca572025b..0263a530cf0 100644
--- a/libphobos/m4/libtool.m4
+++ b/libphobos/m4/libtool.m4
@@ -20,10 +20,16 @@  objext=o
 _LT_TAGVAR(objext, $1)=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code="module mod; extern(C) int main() { return 0; }"
+lt_simple_compile_test_code="\
+  module object;
+  shared int some_variable = 0;
+"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code='module mod; extern(C) int main() { return 0; }'
+lt_simple_link_test_code="\
+  module object;
+  extern(C) int main() { return 0; }
+"
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 _LT_TAG_COMPILER
@@ -35,12 +41,9 @@  _LT_LINKER_BOILERPLATE
 # Allow CC to be a program name with arguments.
 lt_save_CC=$CC
 lt_save_CFLAGS=$CFLAGS
-lt_save_DFLAGS=$GDCFLAGS
 lt_save_GCC=$GCC
 GCC=yes
 CC=${GDC-"gdc"}
-# Need to specify location for object.d
-GDCFLAGS="-nophoboslib $GDCFLAGS"
 CFLAGS=$GDCFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
@@ -74,5 +77,4 @@  AC_LANG_RESTORE
 GCC=$lt_save_GCC
 CC=$lt_save_CC
 CFLAGS=$lt_save_CFLAGS
-GDCFLAGS=$lt_save_DFLAGS
 ])# _LT_LANG_D_CONFIG