From 1e14140a72ddd9038711344ab56eef4cb528bc66 Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Wed, 29 Aug 2018 01:42:55 +0200 Subject: [PATCH 1/4] fix Bug 303: libgphobos.spec not found linking stage2 --- gcc/d/patches/patch-gcc-7.patch | 6 +- gcc/d/patches/patch-toplev-7.patch | 114 +++++++++++++----------- gcc/d/patches/patch-toplev-ddmd-7.patch | 38 ++++---- 3 files changed, 82 insertions(+), 76 deletions(-) diff --git a/gcc/d/patches/patch-gcc-7.patch b/gcc/d/patches/patch-gcc-7.patch index f847bfd16..c90b052b2 100644 --- a/gcc/d/patches/patch-gcc-7.patch +++ b/gcc/d/patches/patch-gcc-7.patch @@ -185,7 +185,7 @@ relevant documentation about the GDC front end. return; if (TREE_STATIC (decl) && decl_function_context (decl)) context_die = lookup_decl_die (DECL_CONTEXT (decl)); -@@ -29054,6 +29066,7 @@ prune_unused_types_walk_local_classes (d +@@ -27804,6 +27816,7 @@ prune_unused_types_walk_local_classes (d case DW_TAG_structure_type: case DW_TAG_union_type: case DW_TAG_class_type: @@ -193,7 +193,7 @@ relevant documentation about the GDC front end. break; case DW_TAG_subprogram: -@@ -29087,6 +29100,7 @@ prune_unused_types_walk (dw_die_ref die) +@@ -27837,6 +27850,7 @@ prune_unused_types_walk (dw_die_ref die) case DW_TAG_structure_type: case DW_TAG_union_type: case DW_TAG_class_type: @@ -201,7 +201,7 @@ relevant documentation about the GDC front end. if (die->die_perennial_p) break; -@@ -29113,7 +29127,6 @@ prune_unused_types_walk (dw_die_ref die) +@@ -27863,7 +27877,6 @@ prune_unused_types_walk (dw_die_ref die) case DW_TAG_volatile_type: case DW_TAG_typedef: case DW_TAG_array_type: diff --git a/gcc/d/patches/patch-toplev-7.patch b/gcc/d/patches/patch-toplev-7.patch index a061ce06b..6c9d6fc3b 100644 --- a/gcc/d/patches/patch-toplev-7.patch +++ b/gcc/d/patches/patch-toplev-7.patch @@ -78,20 +78,23 @@ This implements building of libphobos library in GCC. AR="$(AR)"; export AR; \ AS="$(AS)"; export AS; \ CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ -@@ -256,6 +259,12 @@ POSTSTAGE1_HOST_EXPORTS = \ +@@ -256,6 +259,15 @@ POSTSTAGE1_HOST_EXPORTS = \ CC_FOR_BUILD="$$CC"; export CC_FOR_BUILD; \ $(POSTSTAGE1_CXX_EXPORT) \ $(LTO_EXPORTS) \ + GDC="$$r/$(HOST_SUBDIR)/prev-gcc/gdc$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/ \ -+ -B$(build_tooldir)/bin/ $(GDC_FLAGS_FOR_TARGET) \ ++ -B$(build_tooldir)/bin/ $(GDCFLAGS_FOR_TARGET) \ ++ -B$$r/prev-$(TARGET_SUBDIR)/libphobos/src \ + -I$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime -I$$s/libphobos/libdruntime \ -+ -L$$r/prev-$(TARGET_SUBDIR)/libphobos/src/.libs"; \ ++ -L$$r/prev-$(TARGET_SUBDIR)/libphobos/src/.libs \ ++ -L$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime/.libs \ ++ -L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs"; \ + export GDC; \ + GDC_FOR_BUILD="$$GDC"; export GDC_FOR_BUILD; \ GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind"; export GNATBIND; \ LDFLAGS="$(POSTSTAGE1_LDFLAGS) $(BOOT_LDFLAGS)"; export LDFLAGS; \ HOST_LIBS="$(POSTSTAGE1_LIBS)"; export HOST_LIBS; -@@ -278,6 +287,7 @@ BASE_TARGET_EXPORTS = \ +@@ -278,6 +290,7 @@ BASE_TARGET_EXPORTS = \ CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \ GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ @@ -99,7 +102,7 @@ This implements building of libphobos library in GCC. DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ -@@ -342,6 +352,7 @@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ +@@ -342,6 +355,7 @@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ GOC_FOR_BUILD = @GOC_FOR_BUILD@ @@ -107,7 +110,7 @@ This implements building of libphobos library in GCC. LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ LD_FOR_BUILD = @LD_FOR_BUILD@ NM_FOR_BUILD = @NM_FOR_BUILD@ -@@ -399,6 +410,7 @@ STRIP = @STRIP@ +@@ -399,6 +413,7 @@ STRIP = @STRIP@ WINDRES = @WINDRES@ WINDMC = @WINDMC@ @@ -115,7 +118,7 @@ This implements building of libphobos library in GCC. GNATBIND = @GNATBIND@ GNATMAKE = @GNATMAKE@ -@@ -408,6 +420,7 @@ LIBCFLAGS = $(CFLAGS) +@@ -408,6 +423,7 @@ LIBCFLAGS = $(CFLAGS) CXXFLAGS = @CXXFLAGS@ LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates GOCFLAGS = $(CFLAGS) @@ -123,7 +126,7 @@ This implements building of libphobos library in GCC. CREATE_GCOV = create_gcov -@@ -551,6 +564,7 @@ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_ +@@ -551,6 +567,7 @@ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_ RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ @@ -131,7 +134,7 @@ This implements building of libphobos library in GCC. DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ LD_FOR_TARGET=@LD_FOR_TARGET@ -@@ -575,6 +589,7 @@ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARG +@@ -575,6 +592,7 @@ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARG LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates LDFLAGS_FOR_TARGET = @LDFLAGS_FOR_TARGET@ GOCFLAGS_FOR_TARGET = -O2 -g @@ -139,7 +142,7 @@ This implements building of libphobos library in GCC. FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ -@@ -599,7 +614,7 @@ all: +@@ -599,7 +617,7 @@ all: # This is the list of directories that may be needed in RPATH_ENVVAR # so that programs built for the target machine work. @@ -148,7 +151,7 @@ This implements building of libphobos library in GCC. @if target-libstdc++-v3 TARGET_LIB_PATH_libstdc++-v3 = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs: -@@ -629,6 +644,10 @@ TARGET_LIB_PATH_liboffloadmic = $$r/$(TA +@@ -629,6 +647,10 @@ TARGET_LIB_PATH_liboffloadmic = $$r/$(TA TARGET_LIB_PATH_libssp = $$r/$(TARGET_SUBDIR)/libssp/.libs: @endif target-libssp @@ -159,7 +162,7 @@ This implements building of libphobos library in GCC. @if target-libgomp TARGET_LIB_PATH_libgomp = $$r/$(TARGET_SUBDIR)/libgomp/.libs: @endif target-libgomp -@@ -763,6 +782,8 @@ BASE_FLAGS_TO_PASS = \ +@@ -763,6 +785,8 @@ BASE_FLAGS_TO_PASS = \ "STAGE1_LANGUAGES=$(STAGE1_LANGUAGES)" \ "GNATBIND=$(GNATBIND)" \ "GNATMAKE=$(GNATMAKE)" \ @@ -168,7 +171,7 @@ This implements building of libphobos library in GCC. "AR_FOR_TARGET=$(AR_FOR_TARGET)" \ "AS_FOR_TARGET=$(AS_FOR_TARGET)" \ "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ -@@ -774,6 +795,8 @@ BASE_FLAGS_TO_PASS = \ +@@ -774,6 +798,8 @@ BASE_FLAGS_TO_PASS = \ "GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \ "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \ "GOCFLAGS_FOR_TARGET=$(GOCFLAGS_FOR_TARGET)" \ @@ -177,7 +180,7 @@ This implements building of libphobos library in GCC. "LD_FOR_TARGET=$(LD_FOR_TARGET)" \ "LIPO_FOR_TARGET=$(LIPO_FOR_TARGET)" \ "LDFLAGS_FOR_TARGET=$(LDFLAGS_FOR_TARGET)" \ -@@ -833,6 +856,7 @@ EXTRA_HOST_FLAGS = \ +@@ -833,6 +859,7 @@ EXTRA_HOST_FLAGS = \ 'DLLTOOL=$(DLLTOOL)' \ 'GFORTRAN=$(GFORTRAN)' \ 'GOC=$(GOC)' \ @@ -185,7 +188,7 @@ This implements building of libphobos library in GCC. 'LD=$(LD)' \ 'LIPO=$(LIPO)' \ 'NM=$(NM)' \ -@@ -857,6 +881,7 @@ STAGE1_FLAGS_TO_PASS = \ +@@ -857,6 +884,7 @@ STAGE1_FLAGS_TO_PASS = \ POSTSTAGE1_FLAGS_TO_PASS = \ CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \ CXX="$${CXX}" CXX_FOR_BUILD="$${CXX_FOR_BUILD}" \ @@ -193,7 +196,7 @@ This implements building of libphobos library in GCC. GNATBIND="$${GNATBIND}" \ LDFLAGS="$${LDFLAGS}" \ HOST_LIBS="$${HOST_LIBS}" \ -@@ -889,6 +914,8 @@ EXTRA_TARGET_FLAGS = \ +@@ -889,6 +917,8 @@ EXTRA_TARGET_FLAGS = \ 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ @@ -202,7 +205,7 @@ This implements building of libphobos library in GCC. 'LD=$(COMPILER_LD_FOR_TARGET)' \ 'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \ 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ -@@ -992,6 +1019,7 @@ configure-target: \ +@@ -992,6 +1022,7 @@ configure-target: \ maybe-configure-target-libobjc \ maybe-configure-target-libgo \ maybe-configure-target-libhsail-rt \ @@ -210,7 +213,7 @@ This implements building of libphobos library in GCC. maybe-configure-target-libtermcap \ maybe-configure-target-winsup \ maybe-configure-target-libgloss \ -@@ -1158,6 +1186,7 @@ all-target: maybe-all-target-libgfortran +@@ -1158,6 +1189,7 @@ all-target: maybe-all-target-libgfortran all-target: maybe-all-target-libobjc all-target: maybe-all-target-libgo all-target: maybe-all-target-libhsail-rt @@ -218,7 +221,7 @@ This implements building of libphobos library in GCC. all-target: maybe-all-target-libtermcap all-target: maybe-all-target-winsup all-target: maybe-all-target-libgloss -@@ -1251,6 +1280,7 @@ info-target: maybe-info-target-libgfortr +@@ -1251,6 +1283,7 @@ info-target: maybe-info-target-libgfortr info-target: maybe-info-target-libobjc info-target: maybe-info-target-libgo info-target: maybe-info-target-libhsail-rt @@ -226,7 +229,7 @@ This implements building of libphobos library in GCC. info-target: maybe-info-target-libtermcap info-target: maybe-info-target-winsup info-target: maybe-info-target-libgloss -@@ -1337,6 +1367,7 @@ dvi-target: maybe-dvi-target-libgfortran +@@ -1337,6 +1370,7 @@ dvi-target: maybe-dvi-target-libgfortran dvi-target: maybe-dvi-target-libobjc dvi-target: maybe-dvi-target-libgo dvi-target: maybe-dvi-target-libhsail-rt @@ -234,7 +237,7 @@ This implements building of libphobos library in GCC. dvi-target: maybe-dvi-target-libtermcap dvi-target: maybe-dvi-target-winsup dvi-target: maybe-dvi-target-libgloss -@@ -1423,6 +1454,7 @@ pdf-target: maybe-pdf-target-libgfortran +@@ -1423,6 +1457,7 @@ pdf-target: maybe-pdf-target-libgfortran pdf-target: maybe-pdf-target-libobjc pdf-target: maybe-pdf-target-libgo pdf-target: maybe-pdf-target-libhsail-rt @@ -242,7 +245,7 @@ This implements building of libphobos library in GCC. pdf-target: maybe-pdf-target-libtermcap pdf-target: maybe-pdf-target-winsup pdf-target: maybe-pdf-target-libgloss -@@ -1509,6 +1541,7 @@ html-target: maybe-html-target-libgfortr +@@ -1509,6 +1544,7 @@ html-target: maybe-html-target-libgfortr html-target: maybe-html-target-libobjc html-target: maybe-html-target-libgo html-target: maybe-html-target-libhsail-rt @@ -250,7 +253,7 @@ This implements building of libphobos library in GCC. html-target: maybe-html-target-libtermcap html-target: maybe-html-target-winsup html-target: maybe-html-target-libgloss -@@ -1595,6 +1628,7 @@ TAGS-target: maybe-TAGS-target-libgfortr +@@ -1595,6 +1631,7 @@ TAGS-target: maybe-TAGS-target-libgfortr TAGS-target: maybe-TAGS-target-libobjc TAGS-target: maybe-TAGS-target-libgo TAGS-target: maybe-TAGS-target-libhsail-rt @@ -258,7 +261,7 @@ This implements building of libphobos library in GCC. TAGS-target: maybe-TAGS-target-libtermcap TAGS-target: maybe-TAGS-target-winsup TAGS-target: maybe-TAGS-target-libgloss -@@ -1681,6 +1715,7 @@ install-info-target: maybe-install-info- +@@ -1681,6 +1718,7 @@ install-info-target: maybe-install-info- install-info-target: maybe-install-info-target-libobjc install-info-target: maybe-install-info-target-libgo install-info-target: maybe-install-info-target-libhsail-rt @@ -266,7 +269,7 @@ This implements building of libphobos library in GCC. install-info-target: maybe-install-info-target-libtermcap install-info-target: maybe-install-info-target-winsup install-info-target: maybe-install-info-target-libgloss -@@ -1767,6 +1802,7 @@ install-pdf-target: maybe-install-pdf-ta +@@ -1767,6 +1805,7 @@ install-pdf-target: maybe-install-pdf-ta install-pdf-target: maybe-install-pdf-target-libobjc install-pdf-target: maybe-install-pdf-target-libgo install-pdf-target: maybe-install-pdf-target-libhsail-rt @@ -274,7 +277,7 @@ This implements building of libphobos library in GCC. install-pdf-target: maybe-install-pdf-target-libtermcap install-pdf-target: maybe-install-pdf-target-winsup install-pdf-target: maybe-install-pdf-target-libgloss -@@ -1853,6 +1889,7 @@ install-html-target: maybe-install-html- +@@ -1853,6 +1892,7 @@ install-html-target: maybe-install-html- install-html-target: maybe-install-html-target-libobjc install-html-target: maybe-install-html-target-libgo install-html-target: maybe-install-html-target-libhsail-rt @@ -282,7 +285,7 @@ This implements building of libphobos library in GCC. install-html-target: maybe-install-html-target-libtermcap install-html-target: maybe-install-html-target-winsup install-html-target: maybe-install-html-target-libgloss -@@ -1939,6 +1976,7 @@ installcheck-target: maybe-installcheck- +@@ -1939,6 +1979,7 @@ installcheck-target: maybe-installcheck- installcheck-target: maybe-installcheck-target-libobjc installcheck-target: maybe-installcheck-target-libgo installcheck-target: maybe-installcheck-target-libhsail-rt @@ -290,7 +293,7 @@ This implements building of libphobos library in GCC. installcheck-target: maybe-installcheck-target-libtermcap installcheck-target: maybe-installcheck-target-winsup installcheck-target: maybe-installcheck-target-libgloss -@@ -2025,6 +2063,7 @@ mostlyclean-target: maybe-mostlyclean-ta +@@ -2025,6 +2066,7 @@ mostlyclean-target: maybe-mostlyclean-ta mostlyclean-target: maybe-mostlyclean-target-libobjc mostlyclean-target: maybe-mostlyclean-target-libgo mostlyclean-target: maybe-mostlyclean-target-libhsail-rt @@ -298,7 +301,7 @@ This implements building of libphobos library in GCC. mostlyclean-target: maybe-mostlyclean-target-libtermcap mostlyclean-target: maybe-mostlyclean-target-winsup mostlyclean-target: maybe-mostlyclean-target-libgloss -@@ -2111,6 +2150,7 @@ clean-target: maybe-clean-target-libgfor +@@ -2111,6 +2153,7 @@ clean-target: maybe-clean-target-libgfor clean-target: maybe-clean-target-libobjc clean-target: maybe-clean-target-libgo clean-target: maybe-clean-target-libhsail-rt @@ -306,7 +309,7 @@ This implements building of libphobos library in GCC. clean-target: maybe-clean-target-libtermcap clean-target: maybe-clean-target-winsup clean-target: maybe-clean-target-libgloss -@@ -2197,6 +2237,7 @@ distclean-target: maybe-distclean-target +@@ -2197,6 +2240,7 @@ distclean-target: maybe-distclean-target distclean-target: maybe-distclean-target-libobjc distclean-target: maybe-distclean-target-libgo distclean-target: maybe-distclean-target-libhsail-rt @@ -314,7 +317,7 @@ This implements building of libphobos library in GCC. distclean-target: maybe-distclean-target-libtermcap distclean-target: maybe-distclean-target-winsup distclean-target: maybe-distclean-target-libgloss -@@ -2283,6 +2324,7 @@ maintainer-clean-target: maybe-maintaine +@@ -2283,6 +2327,7 @@ maintainer-clean-target: maybe-maintaine maintainer-clean-target: maybe-maintainer-clean-target-libobjc maintainer-clean-target: maybe-maintainer-clean-target-libgo maintainer-clean-target: maybe-maintainer-clean-target-libhsail-rt @@ -322,7 +325,7 @@ This implements building of libphobos library in GCC. maintainer-clean-target: maybe-maintainer-clean-target-libtermcap maintainer-clean-target: maybe-maintainer-clean-target-winsup maintainer-clean-target: maybe-maintainer-clean-target-libgloss -@@ -2425,6 +2467,7 @@ check-target: \ +@@ -2425,6 +2470,7 @@ check-target: \ maybe-check-target-libobjc \ maybe-check-target-libgo \ maybe-check-target-libhsail-rt \ @@ -330,7 +333,7 @@ This implements building of libphobos library in GCC. maybe-check-target-libtermcap \ maybe-check-target-winsup \ maybe-check-target-libgloss \ -@@ -2607,6 +2650,7 @@ install-target: \ +@@ -2607,6 +2653,7 @@ install-target: \ maybe-install-target-libobjc \ maybe-install-target-libgo \ maybe-install-target-libhsail-rt \ @@ -338,7 +341,7 @@ This implements building of libphobos library in GCC. maybe-install-target-libtermcap \ maybe-install-target-winsup \ maybe-install-target-libgloss \ -@@ -2713,6 +2757,7 @@ install-strip-target: \ +@@ -2713,6 +2760,7 @@ install-strip-target: \ maybe-install-strip-target-libobjc \ maybe-install-strip-target-libgo \ maybe-install-strip-target-libhsail-rt \ @@ -346,7 +349,7 @@ This implements building of libphobos library in GCC. maybe-install-strip-target-libtermcap \ maybe-install-strip-target-winsup \ maybe-install-strip-target-libgloss \ -@@ -46570,6 +46615,464 @@ maintainer-clean-target-libhsail-rt: +@@ -46570,6 +46618,464 @@ maintainer-clean-target-libhsail-rt: @@ -811,7 +814,7 @@ This implements building of libphobos library in GCC. .PHONY: configure-target-libtermcap maybe-configure-target-libtermcap maybe-configure-target-libtermcap: @if gcc-bootstrap -@@ -51864,6 +52367,14 @@ check-gcc-brig: +@@ -51864,6 +52370,14 @@ check-gcc-brig: (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-brig); check-brig: check-gcc-brig check-target-libhsail-rt @@ -826,7 +829,7 @@ This implements building of libphobos library in GCC. # The gcc part of install-no-fixedincludes, which relies on an intimate # knowledge of how a number of gcc internal targets (inter)operate. Delegate. -@@ -54742,6 +55253,7 @@ configure-target-libgfortran: stage_last +@@ -54742,6 +55256,7 @@ configure-target-libgfortran: stage_last configure-target-libobjc: stage_last configure-target-libgo: stage_last configure-target-libhsail-rt: stage_last @@ -834,7 +837,7 @@ This implements building of libphobos library in GCC. configure-target-libtermcap: stage_last configure-target-winsup: stage_last configure-target-libgloss: stage_last -@@ -54777,6 +55289,7 @@ configure-target-libgfortran: maybe-all- +@@ -54777,6 +55292,7 @@ configure-target-libgfortran: maybe-all- configure-target-libobjc: maybe-all-gcc configure-target-libgo: maybe-all-gcc configure-target-libhsail-rt: maybe-all-gcc @@ -842,7 +845,7 @@ This implements building of libphobos library in GCC. configure-target-libtermcap: maybe-all-gcc configure-target-winsup: maybe-all-gcc configure-target-libgloss: maybe-all-gcc -@@ -55803,6 +56316,11 @@ configure-target-libgo: maybe-all-target +@@ -55803,6 +56319,11 @@ configure-target-libgo: maybe-all-target all-target-libgo: maybe-all-target-libbacktrace all-target-libgo: maybe-all-target-libffi all-target-libgo: maybe-all-target-libatomic @@ -854,7 +857,7 @@ This implements building of libphobos library in GCC. configure-target-libstdc++-v3: maybe-configure-target-libgomp configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp -@@ -55848,6 +56366,7 @@ all-target-liboffloadmic: maybe-all-targ +@@ -55848,6 +56369,7 @@ all-target-liboffloadmic: maybe-all-targ install-target-libgo: maybe-install-target-libatomic install-target-libgfortran: maybe-install-target-libquadmath install-target-libgfortran: maybe-install-target-libgcc @@ -862,7 +865,7 @@ This implements building of libphobos library in GCC. install-target-libsanitizer: maybe-install-target-libstdc++-v3 install-target-libsanitizer: maybe-install-target-libgcc install-target-libvtv: maybe-install-target-libstdc++-v3 -@@ -55930,6 +56449,7 @@ configure-target-libgfortran: maybe-all- +@@ -55930,6 +56452,7 @@ configure-target-libgfortran: maybe-all- configure-target-libobjc: maybe-all-target-libgcc configure-target-libgo: maybe-all-target-libgcc configure-target-libhsail-rt: maybe-all-target-libgcc @@ -870,7 +873,7 @@ This implements building of libphobos library in GCC. configure-target-libtermcap: maybe-all-target-libgcc configure-target-winsup: maybe-all-target-libgcc configure-target-libgloss: maybe-all-target-libgcc -@@ -55973,6 +56493,8 @@ configure-target-libgo: maybe-all-target +@@ -55973,6 +56496,8 @@ configure-target-libgo: maybe-all-target configure-target-libhsail-rt: maybe-all-target-newlib maybe-all-target-libgloss @@ -898,20 +901,23 @@ This implements building of libphobos library in GCC. AR="$(AR)"; export AR; \ AS="$(AS)"; export AS; \ CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ -@@ -259,6 +262,12 @@ POSTSTAGE1_HOST_EXPORTS = \ +@@ -259,6 +262,15 @@ POSTSTAGE1_HOST_EXPORTS = \ CC_FOR_BUILD="$$CC"; export CC_FOR_BUILD; \ $(POSTSTAGE1_CXX_EXPORT) \ $(LTO_EXPORTS) \ + GDC="$$r/$(HOST_SUBDIR)/prev-gcc/gdc$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/ \ -+ -B$(build_tooldir)/bin/ $(GDC_FLAGS_FOR_TARGET) \ ++ -B$(build_tooldir)/bin/ $(GDCFLAGS_FOR_TARGET) \ ++ -B$$r/prev-$(TARGET_SUBDIR)/libphobos/src \ + -I$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime -I$$s/libphobos/libdruntime \ -+ -L$$r/prev-$(TARGET_SUBDIR)/libphobos/src/.libs"; \ ++ -L$$r/prev-$(TARGET_SUBDIR)/libphobos/src/.libs \ ++ -L$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime/.libs \ ++ -L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs"; \ + export GDC; \ + GDC_FOR_BUILD="$$GDC"; export GDC_FOR_BUILD; \ GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind"; export GNATBIND; \ LDFLAGS="$(POSTSTAGE1_LDFLAGS) $(BOOT_LDFLAGS)"; export LDFLAGS; \ HOST_LIBS="$(POSTSTAGE1_LIBS)"; export HOST_LIBS; -@@ -281,6 +290,7 @@ BASE_TARGET_EXPORTS = \ +@@ -281,6 +293,7 @@ BASE_TARGET_EXPORTS = \ CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \ GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ @@ -919,7 +925,7 @@ This implements building of libphobos library in GCC. DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ -@@ -345,6 +355,7 @@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ +@@ -345,6 +358,7 @@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ GOC_FOR_BUILD = @GOC_FOR_BUILD@ @@ -927,7 +933,7 @@ This implements building of libphobos library in GCC. LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ LD_FOR_BUILD = @LD_FOR_BUILD@ NM_FOR_BUILD = @NM_FOR_BUILD@ -@@ -402,6 +413,7 @@ STRIP = @STRIP@ +@@ -402,6 +416,7 @@ STRIP = @STRIP@ WINDRES = @WINDRES@ WINDMC = @WINDMC@ @@ -935,7 +941,7 @@ This implements building of libphobos library in GCC. GNATBIND = @GNATBIND@ GNATMAKE = @GNATMAKE@ -@@ -411,6 +423,7 @@ LIBCFLAGS = $(CFLAGS) +@@ -411,6 +426,7 @@ LIBCFLAGS = $(CFLAGS) CXXFLAGS = @CXXFLAGS@ LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates GOCFLAGS = $(CFLAGS) @@ -943,7 +949,7 @@ This implements building of libphobos library in GCC. CREATE_GCOV = create_gcov -@@ -484,6 +497,7 @@ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_ +@@ -484,6 +500,7 @@ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_ RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ @@ -951,7 +957,7 @@ This implements building of libphobos library in GCC. DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ LD_FOR_TARGET=@LD_FOR_TARGET@ -@@ -508,6 +522,7 @@ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARG +@@ -508,6 +525,7 @@ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARG LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates LDFLAGS_FOR_TARGET = @LDFLAGS_FOR_TARGET@ GOCFLAGS_FOR_TARGET = -O2 -g @@ -959,7 +965,7 @@ This implements building of libphobos library in GCC. FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ -@@ -609,6 +624,7 @@ EXTRA_HOST_FLAGS = \ +@@ -609,6 +627,7 @@ EXTRA_HOST_FLAGS = \ 'DLLTOOL=$(DLLTOOL)' \ 'GFORTRAN=$(GFORTRAN)' \ 'GOC=$(GOC)' \ @@ -967,7 +973,7 @@ This implements building of libphobos library in GCC. 'LD=$(LD)' \ 'LIPO=$(LIPO)' \ 'NM=$(NM)' \ -@@ -633,6 +649,7 @@ STAGE1_FLAGS_TO_PASS = \ +@@ -633,6 +652,7 @@ STAGE1_FLAGS_TO_PASS = \ POSTSTAGE1_FLAGS_TO_PASS = \ CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \ CXX="$${CXX}" CXX_FOR_BUILD="$${CXX_FOR_BUILD}" \ @@ -975,7 +981,7 @@ This implements building of libphobos library in GCC. GNATBIND="$${GNATBIND}" \ LDFLAGS="$${LDFLAGS}" \ HOST_LIBS="$${HOST_LIBS}" \ -@@ -665,6 +682,8 @@ EXTRA_TARGET_FLAGS = \ +@@ -665,6 +685,8 @@ EXTRA_TARGET_FLAGS = \ 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ diff --git a/gcc/d/patches/patch-toplev-ddmd-7.patch b/gcc/d/patches/patch-toplev-ddmd-7.patch index 064b54208..fd9aae149 100644 --- a/gcc/d/patches/patch-toplev-ddmd-7.patch +++ b/gcc/d/patches/patch-toplev-ddmd-7.patch @@ -27,7 +27,7 @@ // Not all; these are the ones which don't have special options. --- a/Makefile.in +++ b/Makefile.in -@@ -1180,13 +1180,17 @@ all-target: maybe-all-target-newlib +@@ -1183,13 +1183,17 @@ all-target: maybe-all-target-newlib @if target-libgcc-no-bootstrap all-target: maybe-all-target-libgcc @endif target-libgcc-no-bootstrap @@ -45,7 +45,7 @@ all-target: maybe-all-target-libtermcap all-target: maybe-all-target-winsup all-target: maybe-all-target-libgloss -@@ -1198,7 +1202,9 @@ all-target: maybe-all-target-libada +@@ -1201,7 +1205,9 @@ all-target: maybe-all-target-libada all-target: maybe-all-target-libgomp @endif target-libgomp-no-bootstrap all-target: maybe-all-target-libitm @@ -55,7 +55,7 @@ # Do a target for all the subdirectories. A ``make do-X'' will do a # ``make X'' in all subdirectories (because, in general, there is a -@@ -43875,7 +43881,6 @@ configure-target-libbacktrace: stage_cur +@@ -43878,7 +43884,6 @@ configure-target-libbacktrace: stage_cur @if target-libbacktrace maybe-configure-target-libbacktrace: configure-target-libbacktrace configure-target-libbacktrace: @@ -63,7 +63,7 @@ @r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ echo "Checking multilib configuration for libbacktrace..."; \ -@@ -43913,6 +43918,367 @@ configure-target-libbacktrace: +@@ -43916,6 +43921,367 @@ configure-target-libbacktrace: @@ -431,7 +431,7 @@ .PHONY: all-target-libbacktrace maybe-all-target-libbacktrace -@@ -43924,7 +44290,6 @@ all-target-libbacktrace: stage_current +@@ -43927,7 +44293,6 @@ all-target-libbacktrace: stage_current TARGET-target-libbacktrace=all maybe-all-target-libbacktrace: all-target-libbacktrace all-target-libbacktrace: configure-target-libbacktrace @@ -439,7 +439,7 @@ @r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(NORMAL_TARGET_EXPORTS) \ -@@ -43935,6 +44300,345 @@ all-target-libbacktrace: configure-targe +@@ -43938,6 +44303,345 @@ all-target-libbacktrace: configure-targe @@ -785,7 +785,7 @@ .PHONY: check-target-libbacktrace maybe-check-target-libbacktrace -@@ -46623,7 +47327,6 @@ configure-target-libphobos: stage_curren +@@ -46626,7 +47330,6 @@ configure-target-libphobos: stage_curren @if target-libphobos maybe-configure-target-libphobos: configure-target-libphobos configure-target-libphobos: @@ -793,7 +793,7 @@ @r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ echo "Checking multilib configuration for libphobos..."; \ -@@ -46661,6 +47364,367 @@ configure-target-libphobos: +@@ -46664,6 +47367,367 @@ configure-target-libphobos: @@ -1161,7 +1161,7 @@ .PHONY: all-target-libphobos maybe-all-target-libphobos -@@ -46672,7 +47736,6 @@ all-target-libphobos: stage_current +@@ -46675,7 +47739,6 @@ all-target-libphobos: stage_current TARGET-target-libphobos=all maybe-all-target-libphobos: all-target-libphobos all-target-libphobos: configure-target-libphobos @@ -1169,7 +1169,7 @@ @r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(NORMAL_TARGET_EXPORTS) \ -@@ -46683,6 +47746,345 @@ all-target-libphobos: configure-target-l +@@ -46686,6 +47749,345 @@ all-target-libphobos: configure-target-l @@ -1515,7 +1515,7 @@ .PHONY: check-target-libphobos maybe-check-target-libphobos -@@ -51821,7 +53223,6 @@ configure-target-libatomic: stage_curren +@@ -51824,7 +53226,6 @@ configure-target-libatomic: stage_curren @if target-libatomic maybe-configure-target-libatomic: configure-target-libatomic configure-target-libatomic: @@ -1523,7 +1523,7 @@ @r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ echo "Checking multilib configuration for libatomic..."; \ -@@ -51859,6 +53260,367 @@ configure-target-libatomic: +@@ -51862,6 +53263,367 @@ configure-target-libatomic: @@ -1891,7 +1891,7 @@ .PHONY: all-target-libatomic maybe-all-target-libatomic -@@ -51870,7 +53632,6 @@ all-target-libatomic: stage_current +@@ -51873,7 +53635,6 @@ all-target-libatomic: stage_current TARGET-target-libatomic=all maybe-all-target-libatomic: all-target-libatomic all-target-libatomic: configure-target-libatomic @@ -1899,7 +1899,7 @@ @r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(NORMAL_TARGET_EXPORTS) \ -@@ -51881,6 +53642,345 @@ all-target-libatomic: configure-target-l +@@ -51884,6 +53645,345 @@ all-target-libatomic: configure-target-l @@ -2245,7 +2245,7 @@ .PHONY: check-target-libatomic maybe-check-target-libatomic -@@ -55247,13 +57347,27 @@ configure-stageprofile-target-libgcc: ma +@@ -55250,13 +57350,27 @@ configure-stageprofile-target-libgcc: ma configure-stagefeedback-target-libgcc: maybe-all-stagefeedback-gcc configure-stageautoprofile-target-libgcc: maybe-all-stageautoprofile-gcc configure-stageautofeedback-target-libgcc: maybe-all-stageautofeedback-gcc @@ -2275,7 +2275,7 @@ configure-target-libtermcap: stage_last configure-target-winsup: stage_last configure-target-libgloss: stage_last -@@ -55270,7 +57384,14 @@ configure-stagefeedback-target-libgomp: +@@ -55273,7 +57387,14 @@ configure-stagefeedback-target-libgomp: configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-gcc configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-gcc configure-target-libitm: stage_last @@ -2291,7 +2291,7 @@ @endif gcc-bootstrap @if gcc-no-bootstrap -@@ -56317,10 +58438,37 @@ all-target-libgo: maybe-all-target-libba +@@ -56320,10 +58441,37 @@ all-target-libgo: maybe-all-target-libba all-target-libgo: maybe-all-target-libffi all-target-libgo: maybe-all-target-libatomic configure-target-libphobos: maybe-configure-target-libbacktrace @@ -2329,7 +2329,7 @@ configure-target-libstdc++-v3: maybe-configure-target-libgomp configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp -@@ -56424,6 +58572,22 @@ configure-stageprofile-target-libvtv: ma +@@ -56427,6 +58575,22 @@ configure-stageprofile-target-libvtv: ma configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libgcc configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libgcc configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libgcc @@ -2352,7 +2352,7 @@ configure-stage1-target-libgomp: maybe-all-stage1-target-libgcc configure-stage2-target-libgomp: maybe-all-stage2-target-libgcc configure-stage3-target-libgomp: maybe-all-stage3-target-libgcc -@@ -56432,6 +58596,14 @@ configure-stageprofile-target-libgomp: m +@@ -56435,6 +58599,14 @@ configure-stageprofile-target-libgomp: m configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libgcc configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libgcc configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libgcc From aed519be42f7e0798388b84946f0d601133bfb93 Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Tue, 28 Aug 2018 22:33:40 +0200 Subject: [PATCH 2/4] Cherry-pick from dmd fix for building front-end with master --- gcc/d/dmd/mtype.d | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/d/dmd/mtype.d b/gcc/d/dmd/mtype.d index b4672a5a0..a9ae6ff8f 100644 --- a/gcc/d/dmd/mtype.d +++ b/gcc/d/dmd/mtype.d @@ -3409,10 +3409,10 @@ extern (C++) final class TypeBasic : Type EnumDeclaration ed = (cast(TypeEnum)to).sym; if (ed.isSpecial()) { - /* Special enums that allow implicit conversions to them - * with a MATCH.convert - */ + /* Special enums that allow implicit conversions to them. */ tob = to.toBasetype().isTypeBasic(); + if (tob) + return implicitConvTo(tob); } else return MATCH.nomatch; From 929940f1b79f261421ddcdbfb353decbb5374c6e Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Tue, 28 Aug 2018 22:34:22 +0200 Subject: [PATCH 3/4] Fix gagged warnings when instantiating longdouble opAssign. --- gcc/d/dmd/root/longdouble.d | 1 + 1 file changed, 1 insertion(+) diff --git a/gcc/d/dmd/root/longdouble.d b/gcc/d/dmd/root/longdouble.d index fe6d86cf6..2e34e1291 100644 --- a/gcc/d/dmd/root/longdouble.d +++ b/gcc/d/dmd/root/longdouble.d @@ -41,6 +41,7 @@ struct longdouble } longdouble opAssign(T)(T r) + if (!is (T : longdouble)) { this.set(r); return this; From 03b0391e5bae08aff438606dcd585983b80b19b7 Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Wed, 29 Aug 2018 01:51:29 +0200 Subject: [PATCH 4/4] fix Bug 296 - Compile Error on FreeBSD PowerPC64 --- gcc/d/patches/patch-targetdm-7.patch | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gcc/d/patches/patch-targetdm-7.patch b/gcc/d/patches/patch-targetdm-7.patch index 8d14ee66f..31fd9d495 100644 --- a/gcc/d/patches/patch-targetdm-7.patch +++ b/gcc/d/patches/patch-targetdm-7.patch @@ -318,6 +318,14 @@ The following OS versions are implemented: # Support for --with-cpu and related options (and a few unrelated options, # too). case ${with_cpu} in +@@ -4586,6 +4614,7 @@ case ${target} in + out_file=rs6000/rs6000.c + c_target_objs="${c_target_objs} rs6000-c.o" + cxx_target_objs="${cxx_target_objs} rs6000-c.o" ++ d_target_objs="${d_target_objs} rs6000-d.o" + tmake_file="rs6000/t-rs6000 ${tmake_file}" + ;; + --- /dev/null +++ b/gcc/config/aarch64/aarch64-d.c @@ -0,0 +1,31 @@