This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, as described in the tracker we have bootstrap problems with in-tree gmp-6.1.0 on certain targets, and also a linker issue with check-mpc due to the changed mpfr library path. These are triggered by overriding CFLAGS and LDFLAGS in in-tree builds. It did not happen with the gmp/mpfr/mpc versions that download_prerequisites installs, but the currently latest version of these libraries use CFLAGS to pass -DNO_ASM which is overridden by gcc and causes the gmp-6.1.0 to be mis-compiled. And the mpc issue is triggered by overriding LDFLAGS and the changed mpfr library path. So this started with mpfr v3.1.0 which moved the sources into a src sub-directory. The proposed patch fixes these problems by passing -DNO_ASM in AM_CFLAGS, and adding both possible mpfr library paths to HOST_LIB_PATH_mpfr. I've also adjusted HOST_LIB_PATH_mpc although it did not yet create problems. Boot-strapped and regression tested on x86_64-pc-linux-gnu, with different gmp versions including the latest snapshot. I have additionally built arm cross compilers, which was not working before. Is this OK for trunk? Thanks Bernd.
Attachment:
changelog-gmp-in-tree.txt
Description: changelog-gmp-in-tree.txt
Index: Makefile.def =================================================================== --- Makefile.def (revision 234490) +++ Makefile.def (working copy) @@ -50,6 +50,7 @@ host_modules= { module= gcc; bootstrap=true; host_modules= { module= gmp; lib_path=.libs; bootstrap=true; // Work around in-tree gmp configure bug with missing flex. extra_configure_flags='--disable-shared LEX="touch lex.yy.c"'; + extra_make_flags='AM_CFLAGS="-DNO_ASM"'; no_install= true; // none-*-* disables asm optimizations, bootstrap-testing // the compiler more thoroughly. @@ -57,11 +58,11 @@ host_modules= { module= gmp; lib_path=.libs; boots // gmp's configure will complain if given anything // different from host for target. target="none-${host_vendor}-${host_os}"; }; -host_modules= { module= mpfr; lib_path=.libs; bootstrap=true; +host_modules= { module= mpfr; lib_path=.libs; lib_path2=src/.libs; bootstrap=true; extra_configure_flags='--disable-shared @extra_mpfr_configure_flags@'; extra_make_flags='AM_CFLAGS="-DNO_ASM"'; no_install= true; }; -host_modules= { module= mpc; lib_path=.libs; bootstrap=true; +host_modules= { module= mpc; lib_path=src/.libs; bootstrap=true; extra_configure_flags='--disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@'; no_install= true; }; host_modules= { module= isl; lib_path=.libs; bootstrap=true; Index: Makefile.in =================================================================== --- Makefile.in (revision 234490) +++ Makefile.in (working copy) @@ -639,12 +639,12 @@ HOST_LIB_PATH_gmp = \ @if mpfr HOST_LIB_PATH_mpfr = \ - $$r/$(HOST_SUBDIR)/mpfr/.libs:$$r/$(HOST_SUBDIR)/prev-mpfr/.libs: + $$r/$(HOST_SUBDIR)/mpfr/src/.libs:$$r/$(HOST_SUBDIR)/mpfr/.libs:$$r/$(HOST_SUBDIR)/prev-mpfr/.libs: @endif mpfr @if mpc HOST_LIB_PATH_mpc = \ - $$r/$(HOST_SUBDIR)/mpc/.libs:$$r/$(HOST_SUBDIR)/prev-mpc/.libs: + $$r/$(HOST_SUBDIR)/mpc/src/.libs:$$r/$(HOST_SUBDIR)/prev-mpc/src/.libs: @endif mpc @if isl @@ -11299,7 +11299,7 @@ all-gmp: configure-gmp s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ (cd $(HOST_SUBDIR)/gmp && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \ $(TARGET-gmp)) @endif gmp @@ -11328,7 +11328,7 @@ all-stage1-gmp: configure-stage1-gmp CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \ $(EXTRA_HOST_FLAGS) \ - $(STAGE1_FLAGS_TO_PASS) \ + $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \ TFLAGS="$(STAGE1_TFLAGS)" \ $(TARGET-stage1-gmp) @@ -11343,7 +11343,7 @@ clean-stage1-gmp: fi; \ cd $(HOST_SUBDIR)/gmp && \ $(MAKE) $(EXTRA_HOST_FLAGS) \ - $(STAGE1_FLAGS_TO_PASS) clean + $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean @endif gmp-bootstrap @@ -11370,7 +11370,7 @@ all-stage2-gmp: configure-stage2-gmp CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \ - $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \ + $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \ TFLAGS="$(STAGE2_TFLAGS)" \ $(TARGET-stage2-gmp) @@ -11384,7 +11384,7 @@ clean-stage2-gmp: $(MAKE) stage2-start; \ fi; \ cd $(HOST_SUBDIR)/gmp && \ - $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) clean + $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean @endif gmp-bootstrap @@ -11411,7 +11411,7 @@ all-stage3-gmp: configure-stage3-gmp CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \ - $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \ + $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \ TFLAGS="$(STAGE3_TFLAGS)" \ $(TARGET-stage3-gmp) @@ -11425,7 +11425,7 @@ clean-stage3-gmp: $(MAKE) stage3-start; \ fi; \ cd $(HOST_SUBDIR)/gmp && \ - $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) clean + $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean @endif gmp-bootstrap @@ -11452,7 +11452,7 @@ all-stage4-gmp: configure-stage4-gmp CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \ - $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \ + $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \ TFLAGS="$(STAGE4_TFLAGS)" \ $(TARGET-stage4-gmp) @@ -11466,7 +11466,7 @@ clean-stage4-gmp: $(MAKE) stage4-start; \ fi; \ cd $(HOST_SUBDIR)/gmp && \ - $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) clean + $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean @endif gmp-bootstrap @@ -11493,7 +11493,7 @@ all-stageprofile-gmp: configure-stageprofile-gmp CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \ - $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \ + $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \ TFLAGS="$(STAGEprofile_TFLAGS)" \ $(TARGET-stageprofile-gmp) @@ -11507,7 +11507,7 @@ clean-stageprofile-gmp: $(MAKE) stageprofile-start; \ fi; \ cd $(HOST_SUBDIR)/gmp && \ - $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) clean + $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean @endif gmp-bootstrap @@ -11534,7 +11534,7 @@ all-stagefeedback-gmp: configure-stagefeedback-gmp CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \ - $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \ + $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \ TFLAGS="$(STAGEfeedback_TFLAGS)" \ $(TARGET-stagefeedback-gmp) @@ -11548,7 +11548,7 @@ clean-stagefeedback-gmp: $(MAKE) stagefeedback-start; \ fi; \ cd $(HOST_SUBDIR)/gmp && \ - $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) clean + $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean @endif gmp-bootstrap @@ -11566,7 +11566,7 @@ check-gmp: s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \ (cd $(HOST_SUBDIR)/gmp && \ - $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check) + $(MAKE) $(FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" $(EXTRA_BOOTSTRAP_FLAGS) check) @endif gmp @@ -11601,7 +11601,7 @@ info-gmp: \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing info in gmp"; \ @@ -11626,7 +11626,7 @@ dvi-gmp: \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing dvi in gmp"; \ @@ -11651,7 +11651,7 @@ pdf-gmp: \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing pdf in gmp"; \ @@ -11676,7 +11676,7 @@ html-gmp: \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing html in gmp"; \ @@ -11701,7 +11701,7 @@ TAGS-gmp: \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing TAGS in gmp"; \ @@ -11727,7 +11727,7 @@ install-info-gmp: \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing install-info in gmp"; \ @@ -11753,7 +11753,7 @@ install-pdf-gmp: \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing install-pdf in gmp"; \ @@ -11779,7 +11779,7 @@ install-html-gmp: \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing install-html in gmp"; \ @@ -11804,7 +11804,7 @@ installcheck-gmp: \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing installcheck in gmp"; \ @@ -11828,7 +11828,7 @@ mostlyclean-gmp: r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing mostlyclean in gmp"; \ @@ -11852,7 +11852,7 @@ clean-gmp: r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing clean in gmp"; \ @@ -11876,7 +11876,7 @@ distclean-gmp: r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing distclean in gmp"; \ @@ -11900,7 +11900,7 @@ maintainer-clean-gmp: r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(HOST_EXPORTS) \ - for flag in $(EXTRA_HOST_FLAGS) ; do \ + for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ echo "Doing maintainer-clean in gmp"; \ Index: Makefile.tpl =================================================================== --- Makefile.tpl (revision 234490) +++ Makefile.tpl (working copy) @@ -555,7 +555,8 @@ HOST_LIB_PATH_gcc = $$r/$(HOST_SUBDIR)/gcc$(GCC_SH [+ FOR host_modules +][+ IF lib_path +] @if [+module+] HOST_LIB_PATH_[+module+] = \ - $$r/$(HOST_SUBDIR)/[+module+]/[+lib_path+]:[+ IF bootstrap + [+ IF lib_path2 +]$$r/$(HOST_SUBDIR)/[+module+]/[+lib_path2+]:[+ ENDIF + lib_path2 +]$$r/$(HOST_SUBDIR)/[+module+]/[+lib_path+]:[+ IF bootstrap +]$$r/$(HOST_SUBDIR)/prev-[+module+]/[+lib_path+]:[+ ENDIF bootstrap +] @endif [+module+] [+ ENDIF lib_path +][+ ENDFOR host_modules +]
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |