Bug#863289: libada/libgnat now built with dpkg-buildflags
Package: src:gcc-7
Followup-For: Bug #863289
Control: tags -1 + patch
The attached commit reverts any dpkg-buildflags handling from the Ada patches.
The right way for the build to receive flags is *FLAGS_FOR_TARGET.
--- a/debian/patches/ada-gnattools-cross.diff
+++ b/debian/patches/ada-gnattools-cross.diff
@@ -13,9 +13,6 @@
* Create libgnat-BV.so symbolic link, use it and -L to link libgnarl.
This prevents undefined symbols or unwanted usage of host libgnat.
* Compile with -gnatn, link with --as-needed -z defs.
-* Force addition of the build flags from dpkg-buildflags.
- One day they may be transmitted via *FLAGS_FOR_TARGET,
- but at least this allows to set noopt for the Ada components.
* set LD_LIBRARY_PATH so that rebuilt tools can be executed.
This patch depends on ada-libgnatvsn.diff.
@@ -225,7 +222,7 @@ Index: b/src/gnattools/Makefile.in
===================================================================
--- a/src/gnattools/Makefile.in
+++ b/src/gnattools/Makefile.in
-@@ -75,15 +75,24 @@
+@@ -75,15 +75,21 @@
-L../../../$(target_noncanonical)/libstdc++-v3/libsupc++/.libs
# Variables for gnattools, native
@@ -237,11 +234,8 @@ Index: b/src/gnattools/Makefile.in
"CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
- "LDFLAGS=$(LDFLAGS)" \
- "ADAFLAGS=$(ADAFLAGS)" \
-+ "LDFLAGS=$(LDFLAGS) -Wl,--as-needed -Wl,-z,defs \
-+ $(shell dpkg-buildflags --get LDFLAGS)" \
-+ "ADAFLAGS=$(ADAFLAGS) -gnatn \
-+ $(filter-out -Wformat -Werror=format-security, \
-+ $(subst -O3,-O2,$(shell dpkg-buildflags --get CFLAGS)))" \
++ "LDFLAGS=$(LDFLAGS) -Wl,--as-needed -Wl,-z,defs" \
++ "ADAFLAGS=$(ADAFLAGS) -gnatn" \
"ADA_CFLAGS=$(ADA_CFLAGS)" \
"INCLUDES=$(INCLUDES_FOR_SUBDIR)" \
- "ADA_INCLUDES=-I- -I../rts $(ADA_INCLUDES_FOR_SUBDIR)"\
--- a/debian/patches/ada-libgnatvsn.diff
+++ b/debian/patches/ada-libgnatvsn.diff
@@ -46,7 +46,7 @@
+} | tee -a config.log
--- /dev/null
+++ b/src/libgnatvsn/Makefile.in
-@@ -0,0 +1,156 @@
+@@ -0,0 +1,150 @@
+# Makefile for libgnatvsn.
+# Copyright (c) 2006 Ludovic Brenta <ludovic@ludovic-brenta.org>
+# Copyright (c) 2017 Nicolas Boulenguez <nicolas@debian.org>
@@ -126,12 +126,6 @@
+cppflags += $(CPPFLAGS)
+ldflags += $(LDFLAGS)
+
-+deb_cflags := $(subst -O3,-O2,$(shell dpkg-buildflags --get CFLAGS))
-+adaflags += $(filter-out -Wformat -Werror=format-security,$(deb_cflags))
-+cflags += $(deb_cflags)
-+cppflags += $(shell dpkg-buildflags --get CPPFLAGS)
-+ldflags += $(shell dpkg-buildflags --get LDFLAGS)
-+
+# Link wanted Ada sources from source tree, so that gnat fails when new
+# dependencies are missing in the current directory, instead of silently
+# using the ones in the distant directory.
--- a/debian/patches/ada-link-lib.diff
+++ b/debian/patches/ada-link-lib.diff
@@ -61,29 +61,19 @@
-fexceptions -DIN_RTS @have_getipinfo@
host_subdir = @host_subdir@
-@@ -78,14 +78,19 @@
- # a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
- # definitions just in case something slips through the safety net provided
+@@ -78,10 +78,10 @@
# by recursive make invocations in gcc/ada/Makefile.in
-+deb_cflags := $(subst -O3,-O2,$(shell dpkg-buildflags --get CFLAGS))
LIBADA_FLAGS_TO_PASS = \
"MAKEOVERRIDES=" \
- "LDFLAGS=$(LDFLAGS)" \
-+ "LDFLAGS=$(LDFLAGS) -Wl,--as-needed -Wl,-z,defs \
-+ $(shell dpkg-buildflags --get LDFLAGS)" \
++ "LDFLAGS=$(LDFLAGS) -Wl,--as-needed -Wl,-z,defs" \
"LN_S=$(LN_S)" \
"SHELL=$(SHELL)" \
- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
-+ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) -gnatn \
-+ $(filter-out -Wformat -Werror=format-security,$(deb_cflags))" \
++ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) -gnatn" \
"GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
-- "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
-+ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) \
-+ $(deb_cflags) \
-+ $(shell dpkg-buildflags --get CPPFLAGS)" \
+ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
"PICFLAG_FOR_TARGET=$(PICFLAG)" \
- "THREAD_KIND=$(THREAD_KIND)" \
- "TRACE=$(TRACE)" \
@@ -122,7 +122,7 @@
$(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) ./bldtools/oscons/xoscons
@@ -163,14 +153,12 @@
# these tools are built using the target libraries, and are intended to
--- a/src/gcc/ada/gcc-interface/Make-lang.in
+++ b/src/gcc/ada/gcc-interface/Make-lang.in
-@@ -45,7 +45,9 @@
+@@ -45,7 +45,7 @@
# Extra flags to pass to recursive makes.
-COMMON_ADAFLAGS= -gnatpg
-+deb_cflags := $(subst -O3,-O2,$(shell dpkg-buildflags --get CFLAGS))
-+COMMON_ADAFLAGS= -gnatpgn \
-+ $(filter-out -Wformat -Werror=format-security,$(deb_cflags))
++COMMON_ADAFLAGS= -gnatpgn
ifeq ($(TREECHECKING),)
CHECKING_ADAFLAGS=
else
@@ -186,23 +174,12 @@
ALL_ADAFLAGS = \
$(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) $(CHECKING_ADAFLAGS) $(WARN_ADAFLAGS)
-@@ -98,7 +98,8 @@
- ada/adaint.o-warn = -Wno-error
-
- ada/%.o: ada/gcc-interface/%.c
-- $(COMPILE) $<
-+ $(COMPILE) $< \
-+ $(deb_cflags) $(shell dpkg-buildflags --get CPPFLAGS)
- $(POSTCOMPILE)
-
- # Function that dumps the dependencies of an Ada object file by parsing the
-@@ -211,7 +211,8 @@
+@@ -211,7 +211,7 @@
endif
# Strip -Werror during linking for the LTO bootstrap
-GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS))
-+GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS)) -Wl,--as-needed -Wl,-z,defs \
-+ $(shell dpkg-buildflags --get LDFLAGS)
++GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS)) -Wl,--as-needed -Wl,-z,defs
GCC_LINK=$(LINKER) $(GCC_LINKERFLAGS) $(LDFLAGS)
GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(LDFLAGS)
Reply to: