public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] top-level for libvtv: use normal (not raw_cxx) target exports
@ 2015-06-09 14:26 Michael Haubenwallner
  2015-06-19  9:41 ` Paolo Bonzini
  2015-06-25 19:16 ` Jeff Law
  0 siblings, 2 replies; 7+ messages in thread
From: Michael Haubenwallner @ 2015-06-09 14:26 UTC (permalink / raw)
  To: Paolo Bonzini, DJ Delorie, Nathanael Nerode, Alexandre Oliva,
	Ralf Wildenhues
  Cc: GCC Patches, Caroline Tice

[-- Attachment #1: Type: text/plain, Size: 1134 bytes --]

Hi build machinery maintainers,

since we always build the C++ compiler now, I fail to see the need to still
use RAW_CXX_TARGET_EXPORTS for libvtv.

The situation to expose the problem is:
* Use a multilib-enabled x86_64-linux box.
* Use a 64-bit (multilib-disabled) bootstrap compiler (binary image).
$ configure --enable-multilib --with-system-zlib
$ make bootstrap

When it comes to build the 32-bit libvtv, it breaks because of using
"CC=/build/prev-gcc/xgcc -m32" "CXX=g++ -m32", while it should use
"CC=/build/prev-gcc/xgcc -m32" "CXX=/build/prev-gcc/xg++ -m32" instead.

However, I'm not sure about the general question behind:
Should it work to bootstrap the multilib-compiler using a non-multilib one?

This also needs above configure flags to work around two more but minor issues,
which I'm unsure about whether I can/should fix at all:
* --enable-multilib: Without this, the "user friendly check" is breaking,
    since https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=205975
* --with-system-zlib: Without this, --enable-multilib tries to build a
    32-bit zlib with "CC=/build/32/./prev-gcc/xgcc"

Thanks!
/haubi/

[-- Attachment #2: libvtv-normal-cxx.patch --]
[-- Type: text/x-patch, Size: 15370 bytes --]

2015-06-09  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>

	* Makefile.def (libvtv): Drop raw_cxx=true.
	* Makefile.in: Regenerate.

Index: Makefile.def
===================================================================
--- Makefile.def	(revision 224279)
+++ Makefile.def	(working copy)
@@ -135,8 +135,7 @@
 		   lib_path=.libs; };
 target_modules = { module= libvtv;
 		   bootstrap=true;
-		   lib_path=.libs;
-		   raw_cxx=true; };
+		   lib_path=.libs; };
 target_modules = { module= libcilkrts;
 		   lib_path=.libs; };
 target_modules = { module= liboffloadmic;
Index: Makefile.in
===================================================================
--- Makefile.in	(revision 224279)
+++ Makefile.in	(working copy)
@@ -35290,7 +35290,7 @@
 	fi; \
 	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
-	$(RAW_CXX_TARGET_EXPORTS)  \
+	$(NORMAL_TARGET_EXPORTS)  \
 	echo Configuring in $(TARGET_SUBDIR)/libvtv; \
 	cd "$(TARGET_SUBDIR)/libvtv" || exit 1; \
 	case $(srcdir) in \
@@ -35333,7 +35333,7 @@
 	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
 	fi; \
 	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
 	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
 	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
@@ -35377,7 +35377,7 @@
 	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
 	fi; \
 	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	 \
 	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
 	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
@@ -35422,7 +35422,7 @@
 	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
 	fi; \
 	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	 \
 	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
 	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
@@ -35467,7 +35467,7 @@
 	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
 	fi; \
 	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	 \
 	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
 	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
@@ -35512,7 +35512,7 @@
 	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
 	fi; \
 	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	 \
 	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
 	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
@@ -35557,7 +35557,7 @@
 	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
 	fi; \
 	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	 \
 	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
 	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
@@ -35594,9 +35594,9 @@
 all-target-libvtv: configure-target-libvtv
 	@r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS)  \
+	$(NORMAL_TARGET_EXPORTS)  \
 	(cd $(TARGET_SUBDIR)/libvtv && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
 		$(TARGET-target-libvtv))
 @endif target-libvtv
 
@@ -35615,7 +35615,7 @@
 	@r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
 	TFLAGS="$(STAGE1_TFLAGS)"; \
-	$(RAW_CXX_TARGET_EXPORTS)  \
+	$(NORMAL_TARGET_EXPORTS)  \
 	cd $(TARGET_SUBDIR)/libvtv && \
 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
 		CFLAGS="$(CFLAGS_FOR_TARGET)" \
@@ -35624,7 +35624,7 @@
 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
-		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  \
+		$(EXTRA_TARGET_FLAGS)  \
 		  \
 		TFLAGS="$(STAGE1_TFLAGS)" \
 		$(TARGET-stage1-target-libvtv)
@@ -35639,7 +35639,7 @@
 	  $(MAKE) stage1-start; \
 	fi; \
 	cd $(TARGET_SUBDIR)/libvtv && \
-	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  \
+	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
 	  clean
 @endif target-libvtv-bootstrap
 
@@ -35657,7 +35657,7 @@
 	@r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
 	TFLAGS="$(STAGE2_TFLAGS)"; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	  \
 	cd $(TARGET_SUBDIR)/libvtv && \
 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
@@ -35667,7 +35667,7 @@
 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
-		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
+		$(EXTRA_TARGET_FLAGS)   \
 		TFLAGS="$(STAGE2_TFLAGS)" \
 		$(TARGET-stage2-target-libvtv)
 
@@ -35681,7 +35681,7 @@
 	  $(MAKE) stage2-start; \
 	fi; \
 	cd $(TARGET_SUBDIR)/libvtv && \
-	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
+	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
 @endif target-libvtv-bootstrap
 
 
@@ -35698,7 +35698,7 @@
 	@r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
 	TFLAGS="$(STAGE3_TFLAGS)"; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	  \
 	cd $(TARGET_SUBDIR)/libvtv && \
 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
@@ -35708,7 +35708,7 @@
 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
-		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
+		$(EXTRA_TARGET_FLAGS)   \
 		TFLAGS="$(STAGE3_TFLAGS)" \
 		$(TARGET-stage3-target-libvtv)
 
@@ -35722,7 +35722,7 @@
 	  $(MAKE) stage3-start; \
 	fi; \
 	cd $(TARGET_SUBDIR)/libvtv && \
-	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
+	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
 @endif target-libvtv-bootstrap
 
 
@@ -35739,7 +35739,7 @@
 	@r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
 	TFLAGS="$(STAGE4_TFLAGS)"; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	  \
 	cd $(TARGET_SUBDIR)/libvtv && \
 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
@@ -35749,7 +35749,7 @@
 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
-		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
+		$(EXTRA_TARGET_FLAGS)   \
 		TFLAGS="$(STAGE4_TFLAGS)" \
 		$(TARGET-stage4-target-libvtv)
 
@@ -35763,7 +35763,7 @@
 	  $(MAKE) stage4-start; \
 	fi; \
 	cd $(TARGET_SUBDIR)/libvtv && \
-	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
+	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
 @endif target-libvtv-bootstrap
 
 
@@ -35780,7 +35780,7 @@
 	@r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
 	TFLAGS="$(STAGEprofile_TFLAGS)"; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	  \
 	cd $(TARGET_SUBDIR)/libvtv && \
 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
@@ -35790,7 +35790,7 @@
 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
-		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
+		$(EXTRA_TARGET_FLAGS)   \
 		TFLAGS="$(STAGEprofile_TFLAGS)" \
 		$(TARGET-stageprofile-target-libvtv)
 
@@ -35804,7 +35804,7 @@
 	  $(MAKE) stageprofile-start; \
 	fi; \
 	cd $(TARGET_SUBDIR)/libvtv && \
-	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
+	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
 @endif target-libvtv-bootstrap
 
 
@@ -35821,7 +35821,7 @@
 	@r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
 	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	  \
 	cd $(TARGET_SUBDIR)/libvtv && \
 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
@@ -35831,7 +35831,7 @@
 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
-		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
+		$(EXTRA_TARGET_FLAGS)   \
 		TFLAGS="$(STAGEfeedback_TFLAGS)" \
 		$(TARGET-stagefeedback-target-libvtv)
 
@@ -35845,7 +35845,7 @@
 	  $(MAKE) stagefeedback-start; \
 	fi; \
 	cd $(TARGET_SUBDIR)/libvtv && \
-	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
+	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
 @endif target-libvtv-bootstrap
 
 
@@ -35862,9 +35862,9 @@
 	@: $(MAKE); $(unstage)
 	@r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	(cd $(TARGET_SUBDIR)/libvtv && \
-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   check)
+	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)
 
 @endif target-libvtv
 
@@ -35877,7 +35877,7 @@
 	@: $(MAKE); $(unstage)
 	@r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	(cd $(TARGET_SUBDIR)/libvtv && \
 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)
 
@@ -35892,7 +35892,7 @@
 	@: $(MAKE); $(unstage)
 	@r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	(cd $(TARGET_SUBDIR)/libvtv && \
 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)
 
@@ -35911,7 +35911,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing info in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -35937,7 +35937,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing dvi in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -35963,7 +35963,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing pdf in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -35989,7 +35989,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing html in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -36015,7 +36015,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing TAGS in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -36042,7 +36042,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing install-info in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -36069,7 +36069,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing install-pdf in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -36096,7 +36096,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing install-html in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -36122,7 +36122,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing installcheck in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -36147,7 +36147,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -36172,7 +36172,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing clean in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -36197,7 +36197,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing distclean in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -36222,7 +36222,7 @@
 	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
 	r=`${PWD_COMMAND}`; export r; \
 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
+	$(NORMAL_TARGET_EXPORTS) \
 	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libvtv"; \
 	for flag in $(EXTRA_TARGET_FLAGS); do \
 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] top-level for libvtv: use normal (not raw_cxx) target exports
  2015-06-09 14:26 [PATCH] top-level for libvtv: use normal (not raw_cxx) target exports Michael Haubenwallner
@ 2015-06-19  9:41 ` Paolo Bonzini
  2015-06-22 16:16   ` Michael Haubenwallner
  2015-06-25 19:16 ` Jeff Law
  1 sibling, 1 reply; 7+ messages in thread
From: Paolo Bonzini @ 2015-06-19  9:41 UTC (permalink / raw)
  To: Michael Haubenwallner, DJ Delorie, Nathanael Nerode,
	Alexandre Oliva, Ralf Wildenhues
  Cc: GCC Patches, Caroline Tice



On 09/06/2015 16:22, Michael Haubenwallner wrote:
> Hi build machinery maintainers,
> 
> since we always build the C++ compiler now, I fail to see the need to still
> use RAW_CXX_TARGET_EXPORTS for libvtv.
> 
> The situation to expose the problem is:
> * Use a multilib-enabled x86_64-linux box.
> * Use a 64-bit (multilib-disabled) bootstrap compiler (binary image).
> $ configure --enable-multilib --with-system-zlib
> $ make bootstrap
> 
> When it comes to build the 32-bit libvtv, it breaks because of using
> "CC=/build/prev-gcc/xgcc -m32" "CXX=g++ -m32", while it should use
> "CC=/build/prev-gcc/xgcc -m32" "CXX=/build/prev-gcc/xg++ -m32" instead.
> 
> However, I'm not sure about the general question behind:
> Should it work to bootstrap the multilib-compiler using a non-multilib one?
> 
> This also needs above configure flags to work around two more but minor issues,
> which I'm unsure about whether I can/should fix at all:
> * --enable-multilib: Without this, the "user friendly check" is breaking,
>     since https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=205975

Why is it breaking?

> * --with-system-zlib: Without this, --enable-multilib tries to build a
>     32-bit zlib with "CC=/build/32/./prev-gcc/xgcc"

Ouch, that's a separate bug...  Arguably --with-system-zlib should be
the default these days (and should have been for 10 years or so).

The patch is ok.

Paolo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] top-level for libvtv: use normal (not raw_cxx) target exports
  2015-06-19  9:41 ` Paolo Bonzini
@ 2015-06-22 16:16   ` Michael Haubenwallner
  0 siblings, 0 replies; 7+ messages in thread
From: Michael Haubenwallner @ 2015-06-22 16:16 UTC (permalink / raw)
  To: Paolo Bonzini, DJ Delorie, Nathanael Nerode, Alexandre Oliva,
	Ralf Wildenhues
  Cc: GCC Patches, Caroline Tice


On 06/19/2015 11:36 AM, Paolo Bonzini wrote:
> On 09/06/2015 16:22, Michael Haubenwallner wrote:
>> Hi build machinery maintainers,
>>
>> since we always build the C++ compiler now, I fail to see the need to still
>> use RAW_CXX_TARGET_EXPORTS for libvtv.
>>
>> The situation to expose the problem is:
>> * Use a multilib-enabled x86_64-linux box.
>> * Use a 64-bit (multilib-disabled) bootstrap compiler (binary image).
>> $ configure --enable-multilib --with-system-zlib
>> $ make bootstrap
>>
>> When it comes to build the 32-bit libvtv, it breaks because of using
>> "CC=/build/prev-gcc/xgcc -m32" "CXX=g++ -m32", while it should use
>> "CC=/build/prev-gcc/xgcc -m32" "CXX=/build/prev-gcc/xg++ -m32" instead.

Unfortunately, I've been unable to reproduce this problem for a while now,
and it turns out that I also used --enable-maintainer-mode. And it happens
only when some generated autotool-file is updated while it is in use - not
really sure which one though, probably some configure script.

But still:

>> However, I'm not sure about the general question behind:
>> Should it work to bootstrap the multilib-compiler using a non-multilib one?
>>
>> This also needs above configure flags to work around two more but minor issues,
>> which I'm unsure about whether I can/should fix at all:
>> * --enable-multilib: Without this, the "user friendly check" is breaking,
>>     since https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=205975
> 
> Why is it breaking?

The OS I'm running on is a multilib-enabled x86_64 (Gentoo) Linux,
and "32-bit development libraries (libc and headers)" are available.

The compiler I want to bootstrap the multilib compiler with is an
x86_64-only binary image (c,c++,ada), built _without_ multilib.

Now this "user friendly check" tries to create a 32-bit executable using
that 64-bit-only bootstrap gcc, which lacks 32-bit libgcc* - while it
can create 32-bit object files though.

>> * --with-system-zlib: Without this, --enable-multilib tries to build a
>>     32-bit zlib with "CC=/build/32/./prev-gcc/xgcc"
> 
> Ouch, that's a separate bug...  Arguably --with-system-zlib should be
> the default these days (and should have been for 10 years or so).

This one I'll leave untouched.

> The patch is ok.

Even if the problem raises only because maintainer-mode isn't multilib-save?

Thanks!
/haubi/

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] top-level for libvtv: use normal (not raw_cxx) target exports
  2015-06-09 14:26 [PATCH] top-level for libvtv: use normal (not raw_cxx) target exports Michael Haubenwallner
  2015-06-19  9:41 ` Paolo Bonzini
@ 2015-06-25 19:16 ` Jeff Law
  2015-06-29 17:02   ` Michael Haubenwallner
  1 sibling, 1 reply; 7+ messages in thread
From: Jeff Law @ 2015-06-25 19:16 UTC (permalink / raw)
  To: Michael Haubenwallner, Paolo Bonzini, DJ Delorie,
	Nathanael Nerode, Alexandre Oliva, Ralf Wildenhues
  Cc: GCC Patches, Caroline Tice

On 06/09/2015 08:22 AM, Michael Haubenwallner wrote:
> Hi build machinery maintainers,
>
> since we always build the C++ compiler now, I fail to see the need to still
> use RAW_CXX_TARGET_EXPORTS for libvtv.
But why is vtv special here?  Wouldn't this also apply to libstdc++-v3 
which would still have raw_cxx=true after your change?

It's unfortunate that David didn't document the meaning of raw_cxx... 
I've read the threads from 2004 and I'm still lost.


>
> The situation to expose the problem is:
> * Use a multilib-enabled x86_64-linux box.
> * Use a 64-bit (multilib-disabled) bootstrap compiler (binary image).
> $ configure --enable-multilib --with-system-zlib
> $ make bootstrap
>
> When it comes to build the 32-bit libvtv, it breaks because of using
> "CC=/build/prev-gcc/xgcc -m32" "CXX=g++ -m32", while it should use
> "CC=/build/prev-gcc/xgcc -m32" "CXX=/build/prev-gcc/xg++ -m32" instead.
>
> However, I'm not sure about the general question behind:
> Should it work to bootstrap the multilib-compiler using a non-multilib one?
There's no reason why that should fail as far as the compiler is 
concerned.  However, there may be other parts of your system that are 
not prepared to handle the multilibs.

Jeff

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] top-level for libvtv: use normal (not raw_cxx) target exports
  2015-06-25 19:16 ` Jeff Law
@ 2015-06-29 17:02   ` Michael Haubenwallner
  2015-06-30 12:57     ` Jonathan Wakely
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Haubenwallner @ 2015-06-29 17:02 UTC (permalink / raw)
  To: Jeff Law, Paolo Bonzini, DJ Delorie, Nathanael Nerode,
	Alexandre Oliva, Ralf Wildenhues
  Cc: GCC Patches, Caroline Tice, Jonathan Wakely



On 06/25/2015 09:15 PM, Jeff Law wrote:
> On 06/09/2015 08:22 AM, Michael Haubenwallner wrote:
>> Hi build machinery maintainers,
>>
>> since we always build the C++ compiler now, I fail to see the need to still
>> use RAW_CXX_TARGET_EXPORTS for libvtv.
> But why is vtv special here?
> Wouldn't this also apply to libstdc++-v3 which would still have raw_cxx=true after your change?

libstdc++ breaks with shell syntax errors in maintainer-mode, which more obviously
spots the "configure script recreation while running" as the breakage's origin,
where the simple enough workaround is to run 'make bootstrap' again.

This is because libstdc++-v3/configure runs 'generate-headers' (via config.status),
which is 'cd include && make', causing dependencies in 'include/Makefile' to be
evaluated, causing make to run autoconf to recreate libstdc++-v3/configure.

Actually, an unexpected libstdc++-v3/configure change is introduced by some
inconsistency in https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=223196
where acinclude.m4 contains different code than the recreated configure:

acinclude.m4-3973:     case "${target_os}" in
acinclude.m4#3974:       gnu* | linux* | solaris*)
acinclude.m4-3975:         GCC_TRY_COMPILE_OR_LINK(

  configure-79218:       case "${target_os}" in
  configure#79219:       gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | solaris*)
  configure-79220:         if test x$gcc_no_link = xyes; then

Not sure how to handle such kind of inconsistencies though...

> It's unfortunate that David didn't document the meaning of raw_cxx...
> I've read the threads from 2004 and I'm still lost.

For vtv the breakage once resulted in the different CC/CXX values here,
but that must've been related to maintainer-mode actually, not raw_cxx.

From my point of view, this breakage vanished as reason for the raw_cxx patch.

/haubi/

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] top-level for libvtv: use normal (not raw_cxx) target exports
  2015-06-29 17:02   ` Michael Haubenwallner
@ 2015-06-30 12:57     ` Jonathan Wakely
  2015-06-30 13:46       ` Michael Haubenwallner
  0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Wakely @ 2015-06-30 12:57 UTC (permalink / raw)
  To: Michael Haubenwallner
  Cc: Jeff Law, Paolo Bonzini, DJ Delorie, Nathanael Nerode,
	Alexandre Oliva, Ralf Wildenhues, GCC Patches, Caroline Tice

[-- Attachment #1: Type: text/plain, Size: 782 bytes --]

On 29/06/15 18:57 +0200, Michael Haubenwallner wrote:
>Actually, an unexpected libstdc++-v3/configure change is introduced by some
>inconsistency in https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=223196
>where acinclude.m4 contains different code than the recreated configure:
>
>acinclude.m4-3973:     case "${target_os}" in
>acinclude.m4#3974:       gnu* | linux* | solaris*)
>acinclude.m4-3975:         GCC_TRY_COMPILE_OR_LINK(
>
>  configure-79218:       case "${target_os}" in
>  configure#79219:       gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | solaris*)
>  configure-79220:         if test x$gcc_no_link = xyes; then
>
>Not sure how to handle such kind of inconsistencies though...

That's just a bug, there should be no inconsistency.

Now fixed by this patch.


[-- Attachment #2: patch.txt --]
[-- Type: text/x-patch, Size: 681 bytes --]

commit bba7f350afcdf6bda0fa88bd421c46e1943db16f
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jun 30 13:52:50 2015 +0100

    	* configure: Regenerate.

diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 3654b68..1b99c06 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -79216,7 +79216,7 @@ $as_echo_n "checking for sendfile that can copy files... " >&6; }
   $as_echo_n "(cached) " >&6
 else
       case "${target_os}" in
-      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | solaris*)
+      gnu* | linux* | solaris*)
         if test x$gcc_no_link = xyes; then
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] top-level for libvtv: use normal (not raw_cxx) target exports
  2015-06-30 12:57     ` Jonathan Wakely
@ 2015-06-30 13:46       ` Michael Haubenwallner
  0 siblings, 0 replies; 7+ messages in thread
From: Michael Haubenwallner @ 2015-06-30 13:46 UTC (permalink / raw)
  To: Jeff Law, Paolo Bonzini, DJ Delorie, Nathanael Nerode,
	Alexandre Oliva, Ralf Wildenhues
  Cc: Jonathan Wakely, GCC Patches, Caroline Tice


On 06/30/2015 02:54 PM, Jonathan Wakely wrote:
> On 29/06/15 18:57 +0200, Michael Haubenwallner wrote:
>> Actually, an unexpected libstdc++-v3/configure change is introduced by some
>> inconsistency in https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=223196
>> where acinclude.m4 contains different code than the recreated configure:
>>
>> acinclude.m4-3973:     case "${target_os}" in
>> acinclude.m4#3974:       gnu* | linux* | solaris*)
>> acinclude.m4-3975:         GCC_TRY_COMPILE_OR_LINK(
>>
>>  configure-79218:       case "${target_os}" in
>>  configure#79219:       gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | solaris*)
>>  configure-79220:         if test x$gcc_no_link = xyes; then
>>
>> Not sure how to handle such kind of inconsistencies though...
> 
> That's just a bug, there should be no inconsistency.

Yes, of course.

Though I'm unaware of any current continous integration setup for gcc, it's about
an idea for improvement here - doing something like buildbot-based check here:
Have one buildbot instance enabling maintainer-mode using the predefined autotools
versions, touch all the .in files, and yell if there is some svn diff after bootstrap.

Thanks!
/haubi/

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-06-30 13:39 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-09 14:26 [PATCH] top-level for libvtv: use normal (not raw_cxx) target exports Michael Haubenwallner
2015-06-19  9:41 ` Paolo Bonzini
2015-06-22 16:16   ` Michael Haubenwallner
2015-06-25 19:16 ` Jeff Law
2015-06-29 17:02   ` Michael Haubenwallner
2015-06-30 12:57     ` Jonathan Wakely
2015-06-30 13:46       ` Michael Haubenwallner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).