[Bug bootstrap/92484] In tree build of ISL 0.22 fails: requires C++11

2020-06-27 Thread romain.geissler at amadeus dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92484

Romain Geissler  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #7 from Romain Geissler  ---
Current trunk (gcc 11) builds with C++11 now, so ISL 0.22 is useable during a
full bootstrap in tree.

Closing.

[Bug bootstrap/92484] In tree build of ISL 0.22 fails: requires C++11

2019-11-28 Thread irfanadilovic at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92484

Irfan Adilovic  changed:

   What|Removed |Added

 CC||irfanadilovic at gmail dot com

--- Comment #6 from Irfan Adilovic  ---
Here's my take on this.

GCC configure.ac has this:

# When bootstrapping with GCC, build stage 1 in C++98 mode to ensure that a
# C++98 compiler can still start the bootstrap.
if test "$enable_bootstrap:$GXX" = "yes:yes"; then
  CXX="$CXX -std=gnu++98"
fi

which results in the CXX being defined as 'g++ -std=gnu++98 -std=c++11' in ISL
Makefiles (CXX propagated recursively). However this is *not* the problem, as
this CXX definition works just fine on C++11 source code.

This leads me to conclude that GCC must be using some kind of make variable
override mechanism, like invoking the ISL make with `make CXX="$CXX" all` which
leads to the complete override of CXX in ISL Makefiles, leaving out the
-std=c++11 flag, and leading to compilation failures of C++11 code in ISL.

Moreover, to reinforce this conclusion, running a plain 'make' in ISL build
subdir, right after the top-level make has failed, works just fine. It is only
when invoked recursively through toplevel Makefile, that it fails as described.

---

By invoking top-level make as 'make V=1 SHELL="/bin/bash -vx"' I've been able
to isolate the full make command used to build ISL (warning, it's a handful):

make "DESTDIR=" "RPATH_ENVVAR=LD_LIBRARY_PATH"
"TARGET_SUBDIR=x86_64-redhat-linux" "bindir=/usr/local/gcc-9.2.0/bin"
"datadir=/usr/local/gcc-9.2.0/share" "exec_prefix=/usr/local/gcc-9.2.0"
"includedir=/usr/local/gcc-9.2.0/include"
"datarootdir=/usr/local/gcc-9.2.0/share"
"docdir=/usr/local/gcc-9.2.0/share/doc/"
"infodir=/usr/local/gcc-9.2.0/share/info"
"pdfdir=/usr/local/gcc-9.2.0/share/doc/"
"htmldir=/usr/local/gcc-9.2.0/share/doc/" "libdir=/usr/local/gcc-9.2.0/lib"
"libexecdir=/usr/local/gcc-9.2.0/libexec" "lispdir="
"localstatedir=/usr/local/gcc-9.2.0/var"
"mandir=/usr/local/gcc-9.2.0/share/man" "oldincludedir=/usr/include"
"prefix=/usr/local/gcc-9.2.0" "sbindir=/usr/local/gcc-9.2.0/sbin"
"sharedstatedir=/usr/local/gcc-9.2.0/com" "sysconfdir=/usr/local/gcc-9.2.0/etc"
"tooldir=/usr/local/gcc-9.2.0/x86_64-redhat-linux"
"build_tooldir=/usr/local/gcc-9.2.0/x86_64-redhat-linux"
"target_alias=x86_64-redhat-linux" "AWK=gawk" "BISON=bison" "CC_FOR_BUILD=gcc"
"CFLAGS_FOR_BUILD=-g -O2" "CXX_FOR_BUILD=g++ -std=gnu++98" "EXPECT=expect"
"FLEX=flex" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m
644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c"
"LDFLAGS_FOR_BUILD=" "LEX=flex" "M4=m4" "MAKE=make" "RUNTEST=runtest"
"RUNTESTFLAGS=" "SED=/bin/sed" "SHELL=/bin/bash -vx" "YACC=bison -y" "`echo
'ADAFLAGS=' | sed -e s'/[^=][^=]*=$/XFOO=/'`" "ADA_CFLAGS=" "AR_FLAGS=rc"
"`echo 'BOOT_ADAFLAGS=-gnatpg' | sed -e s'/[^=][^=]*=$/XFOO=/'`"
"BOOT_CFLAGS=-g -O2" "BOOT_LDFLAGS=" "CFLAGS=-g -O2" "CXXFLAGS=-g -O2"
"LDFLAGS=" "LIBCFLAGS=-g -O2" "LIBCXXFLAGS=-g -O2 -fno-implicit-templates"
"STAGE1_CHECKING=--enable-checking=release,types" "STAGE1_LANGUAGES=c,c++,lto"
"GNATBIND=no" "GNATMAKE=no" "GDC=@GDC@" "GDCFLAGS=-g -O2" "AR_FOR_TARGET=ar"
"AS_FOR_TARGET=as" "CC_FOR_TARGET=/root/gcc/gcc/build/./gcc/xgcc
-B/root/gcc/gcc/build/./gcc/" "CFLAGS_FOR_TARGET=-g -O2" "CPPFLAGS_FOR_TARGET="
"CXXFLAGS_FOR_TARGET=-g -O2 -D_GNU_SOURCE" "DLLTOOL_FOR_TARGET=dlltool"
"FLAGS_FOR_TARGET=-B/usr/local/gcc-9.2.0/x86_64-redhat-linux/bin/
-B/usr/local/gcc-9.2.0/x86_64-redhat-linux/lib/ -isystem
/usr/local/gcc-9.2.0/x86_64-redhat-linux/include -isystem
/usr/local/gcc-9.2.0/x86_64-redhat-linux/sys-include" "GFORTRAN_FOR_TARGET="
"GOC_FOR_TARGET=" "GOCFLAGS_FOR_TARGET=-O2 -g" "GDC_FOR_TARGET=@GDC@"
"GDCFLAGS_FOR_TARGET=-O2 -g" "LD_FOR_TARGET=ld" "LIPO_FOR_TARGET=lipo"
"LDFLAGS_FOR_TARGET=" "LIBCFLAGS_FOR_TARGET=-g -O2" "LIBCXXFLAGS_FOR_TARGET=-g
-O2 -D_GNU_SOURCE -fno-implicit-templates" "NM_FOR_TARGET=nm"
"OBJDUMP_FOR_TARGET=objdump" "OBJCOPY_FOR_TARGET=" "RANLIB_FOR_TARGET=ranlib"
"READELF_FOR_TARGET=readelf" "STRIP_FOR_TARGET=strip"
"WINDRES_FOR_TARGET=windres" "WINDMC_FOR_TARGET=windmc"
"BUILD_CONFIG=bootstrap-debug" "`echo 'LANGUAGES=' | sed -e
s'/[^=][^=]*=$/XFOO=/'`" "LEAN=false" "STAGE1_CFLAGS=-g" "STAGE1_CXXFLAGS=-g"
"STAGE1_GENERATOR_CFLAGS=" "STAGE1_TFLAGS=-fno-checking" "STAGE2_CFLAGS=-g -O2
-fno-checking -gtoggle" "STAGE2_CXXFLAGS=-g -O2 -fno-checking -gtoggle"
"STAGE2_GENERATOR_CFLAGS=" "STAGE2_TFLAGS=-fno-checking" "STAGE3_CFLAGS=-g -O2
-fchecking=1" "STAGE3_CXXFLAGS=-g -O2 -fchecking=1" "STAGE3_GENERATOR_CFLAGS="
"STAGE3_TFLAGS=-fchecking=1" "STAGE4_CFLAGS=-g -O2" "STAGE4_CXXFLAGS=-g -O2"
"STAGE4_GENERATOR_CFLAGS=" "STAGE4_TFLAGS=" "STAGEprofile_CFLAGS=-g -O2
-fno-checking -gtoggle -fprofile-generate" "STAGEprofile_CXXFLAGS=-g -O2
-fno-checking -gtoggle -fprofile-generate" "STAGEprofile_GENERATOR_CFLAGS="

[Bug bootstrap/92484] In tree build of ISL 0.22 fails: requires C++11

2019-11-25 Thread franz.flasch at gmx dot at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92484

--- Comment #5 from franz  ---
OK, I've now digged a little further in to this issue.

According to the GCC docs for a native build a 3-stage-build is performed
automatically. So with "--disable-bootstrap" the build should behave the same
as the crosscompile build. I've tested it and isl builds fine with this
setting.

I've checked config.log from isl and yes, c++11 flags are not added in this
case. However I actually don't know why this even has any influence on that.

It seems that in the newest isl version they now use the M4 macro
"AX_CXX_COMPILE_STDCXX_11" for the whole build. In the previous versions it was
only used for "interface/isl_test_cpp", that's the reason why this problem
actually came up.

[Bug bootstrap/92484] In tree build of ISL 0.22 fails: requires C++11

2019-11-25 Thread franz.flasch at gmx dot at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92484

franz  changed:

   What|Removed |Added

 CC||franz.flasch at gmx dot at

--- Comment #4 from franz  ---
It seems this issue only occurs if the host machine and the target machine are
identical, as it does not occur when crosscompilers are built.

E.g. when building a crosscompiler for arm isl builds just fine. I checked the
config.status and it seems that the c++11 compiler flag is not being set in
case of a crosscompiler build:

CXX variable for arm crosscompiler build in config.log:
CXX='g++'

CXX variable for x86_64 native compiler build in config.log:
CXX='g++ -std=gnu++98 -std=c++11'


Is there any way of telling the buildprocess to not use those c++11 compiler
flag for isl?