diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2019-02-14 17:47:49 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2019-02-14 17:47:49 +0000 |
commit | 0b6e3127e8a003ad01b9cfb6896dee14c637701b (patch) | |
tree | 2ab850aa2d7c3b37ace2470ebaae57ae9a799012 /libphobos/src | |
parent | 323694e9a2c535d56a81bcfc84fb0fd5b6155b34 (diff) | |
download | gcc-0b6e3127e8a003ad01b9cfb6896dee14c637701b.zip gcc-0b6e3127e8a003ad01b9cfb6896dee14c637701b.tar.gz gcc-0b6e3127e8a003ad01b9cfb6896dee14c637701b.tar.bz2 |
Provide __start_minfo/__stop_minfo for linkers that don't (PR d/87864)
libphobos:
PR d/87864
* configure.ac (DRTSTUFF_SPEC): New variable.
Substitute it.
* libdruntime/m4/druntime/os.m4 (DRUNTIME_OS_MINFO_BRACKETING):
New automake conditional.
* configure: Regenerate.
* libdruntime/gcc/drtstuff.c: New file.
* libdruntime/Makefile.am [!DRUNTIME_OS_MINFO_BRACKETING]
(DRTSTUFF, toolexeclib_DATA): New variables.
(gcc/drtbegin.lo, gcc/drtend.lo): New rules.
(libgdruntime_la_LDFLAGS): Use -Wc instead of -Xcompiler.
Add -dstartfiles -B../src -Bgcc.
(libgdruntime_la_DEPENDENCIES): New variable.
(unittest_static_LDFLAGS): Use -Wc instead of -Xcompiler.
(libgdruntime_t_la_LDFLAGS): Likewise.
(unittest_LDFLAGS): Likewise.
* src/Makefile.am (libgphobos_la_LDFLAGS): Use -Wc instead of
-Xcompiler.
Add -dstartfiles -B../libdruntime/gcc.
(unittest_static_LDFLAGS): Use -Wc instead of -Xcompiler.
(libgphobos_t_la_LDFLAGS): Likewise.
(unittest_LDFLAGS): Likewise.
* libdruntime/Makefile.in, src/Makefile.in: Regenerate.
* Makefile.in, testsuite/Makefile.in: Regenerate.
* libdruntime/rt/sections_elf_shared.d (Minfo_Bracketing): Don't
assert.
* libdruntime/gcc/config.d.in (Minfo_Bracketing): Remove.
* src/drtstuff.spec: New file.
* src/libgphobos.spec.in (DRTSTUFF_SPEC): Substitute.
(*lib): Only pass SPEC_PHOBOS_DEPS without -debuglib, -defaultlib,
-nophoboslib.
* testsuite/testsuite_flags.in <--gdcldflags> (GDCLDFLAGS): Add
-B${BUILD_DIR}/libdruntime/gcc.
gcc/d:
PR d/87864
* lang.opt (dstartfiles): New option.
* d-spec.cc (need_spec): New variable.
(lang_specific_driver) <OPT_dstartfiles>: Enable need_spec.
(lang_specific_pre_link): Also load libgphobos.spec if need_spec.
gcc/testsuite:
PR d/87864
* lib/gdc.exp (gdc_link_flags): Add path to drtbegin.o/drtend.o if
present.
From-SVN: r268886
Diffstat (limited to 'libphobos/src')
-rw-r--r-- | libphobos/src/Makefile.am | 9 | ||||
-rw-r--r-- | libphobos/src/Makefile.in | 10 | ||||
-rw-r--r-- | libphobos/src/drtstuff.spec | 5 | ||||
-rw-r--r-- | libphobos/src/libgphobos.spec.in | 4 |
4 files changed, 19 insertions, 9 deletions
diff --git a/libphobos/src/Makefile.am b/libphobos/src/Makefile.am index 30896df..51fd11e 100644 --- a/libphobos/src/Makefile.am +++ b/libphobos/src/Makefile.am @@ -57,14 +57,15 @@ toolexeclib_DATA = libgphobos.spec toolexeclib_LTLIBRARIES = libgphobos.la libgphobos_la_SOURCES = $(ALL_PHOBOS_SOURCES) $(ZLIB_SRC) libgphobos_la_LIBTOOLFLAGS = -libgphobos_la_LDFLAGS = -Xcompiler -nophoboslib -version-info $(libtool_VERSION) +libgphobos_la_LDFLAGS = -Wc,-nophoboslib,-dstartfiles,-B../libdruntime/gcc \ + -version-info $(libtool_VERSION) libgphobos_la_LIBADD = ../libdruntime/libgdruntime.la libgphobos_la_DEPENDENCIES = libgphobos.spec # For static unittest, link objects directly unittest_static_SOURCES = ../testsuite/test_runner.d $(ZLIB_SRC) unittest_static_LIBTOOLFLAGS = -unittest_static_LDFLAGS = -Xcompiler -nophoboslib -static-libtool-libs +unittest_static_LDFLAGS = -Wc,-nophoboslib -static-libtool-libs unittest_static_LDADD = $(PHOBOS_TEST_OBJECTS) \ ../libdruntime/libgdruntime.la EXTRA_unittest_static_DEPENDENCIES = $(PHOBOS_TEST_OBJECTS) @@ -72,7 +73,7 @@ EXTRA_unittest_static_DEPENDENCIES = $(PHOBOS_TEST_OBJECTS) # For unittest with dynamic library libgphobos_t_la_SOURCES = $(ZLIB_SRC) libgphobos_t_la_LIBTOOLFLAGS = -libgphobos_t_la_LDFLAGS = -Xcompiler -nophoboslib -rpath /foo -shared +libgphobos_t_la_LDFLAGS = -Wc,-nophoboslib -rpath /foo -shared libgphobos_t_la_LIBADD = $(PHOBOS_TEST_LOBJECTS) \ ../libdruntime/libgdruntime.la EXTRA_libgphobos_t_la_DEPENDENCIES = $(PHOBOS_TEST_LOBJECTS) @@ -80,7 +81,7 @@ EXTRA_libgphobos_t_la_DEPENDENCIES = $(PHOBOS_TEST_LOBJECTS) # For unittest unittest_SOURCES = ../testsuite/test_runner.d unittest_LIBTOOLFLAGS = -unittest_LDFLAGS = -Xcompiler -nophoboslib -shared +unittest_LDFLAGS = -Wc,-nophoboslib -shared unittest_LDADD = libgphobos_t.la ../libdruntime/libgdruntime.la # Extra install and clean rules. diff --git a/libphobos/src/Makefile.in b/libphobos/src/Makefile.in index a349fa7..3dffa6f 100644 --- a/libphobos/src/Makefile.in +++ b/libphobos/src/Makefile.in @@ -696,14 +696,16 @@ toolexeclib_DATA = libgphobos.spec toolexeclib_LTLIBRARIES = libgphobos.la libgphobos_la_SOURCES = $(ALL_PHOBOS_SOURCES) $(ZLIB_SRC) libgphobos_la_LIBTOOLFLAGS = -libgphobos_la_LDFLAGS = -Xcompiler -nophoboslib -version-info $(libtool_VERSION) +libgphobos_la_LDFLAGS = -Wc,-nophoboslib,-dstartfiles,-B../libdruntime/gcc \ + -version-info $(libtool_VERSION) + libgphobos_la_LIBADD = ../libdruntime/libgdruntime.la libgphobos_la_DEPENDENCIES = libgphobos.spec # For static unittest, link objects directly unittest_static_SOURCES = ../testsuite/test_runner.d $(ZLIB_SRC) unittest_static_LIBTOOLFLAGS = -unittest_static_LDFLAGS = -Xcompiler -nophoboslib -static-libtool-libs +unittest_static_LDFLAGS = -Wc,-nophoboslib -static-libtool-libs unittest_static_LDADD = $(PHOBOS_TEST_OBJECTS) \ ../libdruntime/libgdruntime.la @@ -712,7 +714,7 @@ EXTRA_unittest_static_DEPENDENCIES = $(PHOBOS_TEST_OBJECTS) # For unittest with dynamic library libgphobos_t_la_SOURCES = $(ZLIB_SRC) libgphobos_t_la_LIBTOOLFLAGS = -libgphobos_t_la_LDFLAGS = -Xcompiler -nophoboslib -rpath /foo -shared +libgphobos_t_la_LDFLAGS = -Wc,-nophoboslib -rpath /foo -shared libgphobos_t_la_LIBADD = $(PHOBOS_TEST_LOBJECTS) \ ../libdruntime/libgdruntime.la @@ -721,7 +723,7 @@ EXTRA_libgphobos_t_la_DEPENDENCIES = $(PHOBOS_TEST_LOBJECTS) # For unittest unittest_SOURCES = ../testsuite/test_runner.d unittest_LIBTOOLFLAGS = -unittest_LDFLAGS = -Xcompiler -nophoboslib -shared +unittest_LDFLAGS = -Wc,-nophoboslib -shared unittest_LDADD = libgphobos_t.la ../libdruntime/libgdruntime.la # Zlib sources when not using system libz diff --git a/libphobos/src/drtstuff.spec b/libphobos/src/drtstuff.spec new file mode 100644 index 0000000..951a91b --- /dev/null +++ b/libphobos/src/drtstuff.spec @@ -0,0 +1,5 @@ +%rename startfile startfile_orig +*startfile: %(startfile_orig) drtbegin.o%s + +%rename endfile endfile_orig +*endfile: %(endfile_orig) drtend.o%s diff --git a/libphobos/src/libgphobos.spec.in b/libphobos/src/libgphobos.spec.in index 0a33e83..ff93896 100644 --- a/libphobos/src/libgphobos.spec.in +++ b/libphobos/src/libgphobos.spec.in @@ -4,5 +4,7 @@ # order. # +@DRTSTUFF_SPEC@ + %rename lib liborig_gdc_renamed -*lib: @SPEC_PHOBOS_DEPS@ %(liborig_gdc_renamed) +*lib: %{debuglib|defaultlib|nophoboslib: ; :@SPEC_PHOBOS_DEPS@} %(liborig_gdc_renamed) |