This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug other/32078] New: Make FAILURE in 4.3.0 - `CXXFLAGS' has changed error causes "libltdl: No such file or directory"
- From: "rob1weld at aol dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 May 2007 08:42:50 -0000
- Subject: [Bug other/32078] New: Make FAILURE in 4.3.0 - `CXXFLAGS' has changed error causes "libltdl: No such file or directory"
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Two problems - the second one is months old and affects 4.2.0 4.2.1 4.3.0
1) Make breaks due to "configure: error: `CXXFLAGS' has changed since the
previous run:"
This did not happen yesterday, or the day before, ...
2) When make breaks (for _any_ reason, including the prior one) while building
libjava any attempt to simply re-run make will fail since the Makefile
does not fix the absence of the "libltdl" directory. It simply trys to
change to "libltdl" without testing for it's existance and the dies.
# make 2>&1 | tee make_6b_log.txt
3 hours later
# grep -n Checking\ multilib\ configuration\ for\ libjava make_6a_log.txt
16963:Checking multilib configuration for libjava...
Screen output:
Checking multilib configuration for libjava...
mkdir -p -- i686-pc-linux-gnu/libjava
Configuring in i686-pc-linux-gnu/libjava
configure: creating cache ./config.cache
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
...(Quite a few lines)
configure: configuring in classpath
configure: running /bin/sh
'/root/downloads/gcc-4_3-trunk/libjava/classpath/configure' --prefix=/usr
'--cache-file=./config.cache' '--verbose' '--with-tune=athlon-xp'
'--prefix=/usr' '--enable-objc-gc' '--enable-concept-checks'
'--disable-multilib' '--with-gxx-include-dir=/usr/include/c++/4.3'
'--enable-libstdcxx-debug' '--enable-static' '--enable-shared'
'--enable-initfini-array' '--enable-__cxa_atexit' '--enable-threads=posix'
'--enable-version-specific-runtime-libs' '--enable-libssp'
'--enable-libmudflap' '--enable-libgomp' '--disable-werror' '--enable-nls'
'--with-included-gettext' '--enable-decimal-float' '--with-long-double-128'
'--enable-debug' '--enable-java-gc=boehm' '--with-x'
'--x-includes=/usr/X11R6/include' '--x-libraries=/usr/X11R6/lib'
'--enable-java-awt=gtk,xlib' '--enable-gtk-cairo' '--enable-qt-peer'
'--enable-xmlj' '--enable-gconf-peer' '--enable-tool-wrappers' '--with-gjdoc'
'--enable-portable-native-sync' '--enable-libgcj-multifile' '--with-stabs'
'--enable-hash-synchronization' '--enable-gc-debug' '--enable-interpreter'
'--with-system-zlib' '--enable-libada' '--with-tls' '--with-cpu=athlon-xp'
'--with-arch=athlon-xp'
'--enable-stage1-checking=assert,gc,misc,rtl,rtlflag,runtime'
'--enable-languages=c,ada,c++,fortran,java,objc,obj-c++'
'--program-transform-name=s,y,y,' '--with-target-subdir=i686-pc-linux-gnu'
'--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu'
'--target=i686-pc-linux-gnu' '--srcdir=/root/downloads/gcc-4_3-trunk/libjava'
'CPPFLAGS=' 'CXXFLAGS=-g -O2 -D_GNU_SOURCE' 'CXX= /opt/gcc-4_3-build/./gcc/xgcc
-shared-libgcc -B/opt/gcc-4_3-build/./gcc -nostdinc++
-L/opt/gcc-4_3-build/i686-pc-linux-gnu/libstdc++-v3/src
-L/opt/gcc-4_3-build/i686-pc-linux-gnu/libstdc++-v3/src/.libs
-B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem
/usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include'
'LDFLAGS=' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu'
'target_alias=i686-pc-linux-gnu' --with-fastjar=jar --disable-tool-wrappers
--disable-load-library --disable-debug
--enable-default-toolkit=gnu.java.awt.peer.gtk.GtkToolkit
--with-vm-classes=/root/downloads/gcc-4_3-trunk/libjava:/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava
--disable-core-jni --disable-examples --with-glibj=build --disable-plugin
--disable-qt-peer --without-escher --disable-Werror --enable-ltdl-convenience
--with-auxdir=/root/downloads/gcc-4_3-trunk --cache-file=.././config.cache
--srcdir=/root/downloads/gcc-4_3-trunk/libjava/classpath
configure: loading cache .././config.cache
configure: error: `CXXFLAGS' has changed since the previous run:
configure: former value: -g -O2 -D_GNU_SOURCE
configure: current value: -g -O2 -D_GNU_SOURCE
configure: error: changes in the environment can compromise the build
configure: error: run `make distclean' and/or `rm .././config.cache' and start
over
configure: error: /bin/sh
'/root/downloads/gcc-4_3-trunk/libjava/classpath/configure' failed for
classpath
make[1]: *** [configure-target-libjava] Error 1
make[1]: Leaving directory `/opt/gcc-4_3-build'
make: *** [all] Error 2
#
# grep -n CXXFLAGS make_6_log.txt
1468:true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-g -fkeep-inline-functions"
"CXXFLAGS=-g -O2" "CFLAGS_FOR_$
4703:true "AR_FLAGS=rc" "CC_FOR_BUILD=/opt/gcc-4_3-build/./prev-gcc/xgcc
-B/opt/gcc-4_3-build/./prev-gcc/ -B/$
7969:true "AR_FLAGS=rc" "CC_FOR_BUILD=/opt/gcc-4_3-build/./prev-gcc/xgcc
-B/opt/gcc-4_3-build/./prev-gcc/ -B/$
10278:make "DESTDIR=" "RPATH_ENVVAR=LD_LIBRARY_PATH"
"TARGET_SUBDIR=i686-pc-linux-gnu" "bindir=/usr/bin" "dat$
12901:make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
"CC_FOR_TARGET=/opt/gcc-4_3-build/./gcc/xgcc -B/opt/gcc-4_3-build$
13229:(cd debug && make CXXFLAGS='-g3 -O0' all)
13431:true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
"CC_FOR_TARGET=/opt/gcc-4_3-build/./gcc/xgcc -B/opt/gcc-4_3-build$
13634:make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g
-O2 -D_GNU_SOURCE" "CFLAGS_FOR$
13688:true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g
-O2 -D_GNU_SOURCE" "CFLAGS_FOR$
13796:make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g
-O2 -D_GNU_SOURCE" "CFLAGS_FOR$
13875:true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g
-O2 -D_GNU_SOURCE" "CFLAGS_FOR$
16510:true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g
-O2 -D_GNU_SOURCE" "CFLAGS_FOR$
16814:make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g
-O2 -D_GNU_SOURCE" "CFLAGS_FOR$
16816:true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g
-O2 -D_GNU_SOURCE" "CFLAGS_FOR$
16877:true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g
-O2 -D_GNU_SOURCE" "CFLAGS_FOR$
17284:configure: running /bin/sh
'/root/downloads/gcc-4_3-trunk/libjava/classpath/configure' --prefix=/usr '$
17286:configure: error: `CXXFLAGS' has changed since the previous run:
Lets see if we simply need to re-try "make" (no).
# make 2>&1 | tee make_6b_log.txt
make[2]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/zlib'
make[2]: Entering directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava'
: make ; exec true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -g -O2 "
"CXXFLAGS=-g -O2 -D_GNU_SOURCE" "CPPFLAGS=" "CFLAGS_FOR_BUILD=-g -O2"
"CFLAGS_FOR_TARGET=-O2 -g -O2 " "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" "GCJFLAGS=-g -O2" "LDFLAGS="
"LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make"
"MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG="
"PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/usr"
"infodir=/usr/info" "libdir=/usr/lib" "mandir=/usr/man" "prefix=/usr"
"gxx_include_dir=/usr/include/c++/4.3" "AR=ar" "AS=/opt/gcc-4_3-build/./gcc/as"
"LD=/opt/gcc-4_3-build/./gcc/collect-ld" "LIBCFLAGS=-O2 -g -O2 "
"NM=/opt/gcc-4_3-build/./gcc/nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR="
"JAR=jar" DO=all multi-do
Making all in libltdl
/bin/sh: line 17: cd: libltdl: No such file or directory
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava'
make[1]: *** [all-target-libjava] Error 2
make[1]: Leaving directory `/opt/gcc-4_3-build'
make: *** [all] Error 2
#
Here is where line 16877 ( true "AR_FLAGS=rc" "CC_FOR_BU... ) is:
libtool: link: creating libffi.la
libtool: link: ( cd ".libs" && rm -f "libffi.la" && ln -s "../libffi.la"
"libffi.la" )
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2
-D_GNU_SOURCE" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 "
"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"
"JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2
" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "RUNTESTFLAGS=" "SHELL=/bin/sh"
"exec_prefix=/usr" "infodir=/usr/info" "libdir=/usr/lib" "prefix=/usr" "AR=ar"
"AS=/opt/gcc-4_3-build/./gcc/as" "CC=/opt/gcc-4_3-build/./gcc/xgcc
-B/opt/gcc-4_3-build/./gcc/ -B/usr/i686-pc-linux-gnu/bin/
-B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem
/usr/i686-pc-linux-gnu/sys-include" "CXX=/opt/gcc-4_3-build/./gcc/g++
-B/opt/gcc-4_3-build/./gcc/ -nostdinc++
-L/opt/gcc-4_3-build/i686-pc-linux-gnu/libstdc++-v3/src
-L/opt/gcc-4_3-build/i686-pc-linux-gnu/libstdc++-v3/src/.libs
-B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem
/usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include"
"LD=/opt/gcc-4_3-build/./gcc/collect-ld" "NM=/opt/gcc-4_3-build/./gcc/nm"
"RANLIB=ranlib" "DESTDIR=" DO=all multi-do # make
make[4]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libffi'
make[3]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libffi'
make[2]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libffi'
Checking multilib configuration for zlib...
mkdir -p -- i686-pc-linux-gnu/zlib
Configuring in i686-pc-linux-gnu/zlib
# ls i686-pc-linux-gnu/libjava/libltdl
ls: i686-pc-linux-gnu/libjava/libltdl: No such file or directory
# cd i686-pc-linux-gnu/libjava/
# ./config.status --recheck
# cd ../..
# make
Still get the "libltdl: No such file or directory" error occur. Attempting
various heroic efforts like "make libltdl" or "make configure-libltdl" all
end in failure.
A _trick_ (not a fix) that will get you past this is:
# cd i686-pc-linux-gnu/libjava/
# mkdir libltdl
# cd libltdl
Now use the _exact_ same command that you used with "configure" to create the
"Makefile" but put "libjava/libltdl" before the word "configure".
This uses a different "configure" than the one you used origonally, in an
equally different directory than the one you used origonally.
Example:
If you origonally typed:
/root/downloads/gcc-4_3-trunk/configure
--enable-languages=c,ada,c++,fortran,java,objc,obj-c++ ...
Type this instead (in the "i686-pc-linux-gnu/libjava/libltdl" directory):
/root/downloads/gcc-4_3-trunk/libjava/libltdl/configure
--enable-languages=c,ada,c++,fortran,java,objc,obj-c++ ...
Yes, in that _particular_ example you might have gotten away with leaving out
the "--enable-languages=" stuff and just typed configure. _IF_ you use _many_
configure options then do NOT leave them out. Use them all to avoid strange
errors.
Now change back to the build directory and continue without error.
# cd ../../..
# make
Usually that would work, but not _this_ week. Depends of state of SVN,
and might of been a result of attempting to try ./config.status --recheck .
Now getting this error:
make[3]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/gcj'
Making all in include
make[3]: Entering directory
`/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/include'
make all-am
make[4]: Entering directory
`/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/include'
make[4]: Leaving directory
`/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/include'
make[3]: Leaving directory
`/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/include'
Making all in classpath
make[3]: Entering directory
`/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/classpath'
make[3]: *** No rule to make target `all'. Stop.
make[3]: Leaving directory
`/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/classpath'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava'
make[1]: *** [all-target-libjava] Error 2
make[1]: Leaving directory `/opt/gcc-4_3-build'
make: *** [all] Error 2
# cd /opt/gcc-4_3-build/i686-pc-linux-gnu/libjava
Perform the same ".../configure" trick as you did for libltdl.
# cd ../..
# make
The make continues normally.
The first error _might_ be fixed before many people read this, the second error
is months old. It is annoying that "make" is not restartable in the libjava
directory.
--
Summary: Make FAILURE in 4.3.0 - `CXXFLAGS' has changed error
causes "libltdl: No such file or directory"
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: blocker
Priority: P3
Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rob1weld at aol dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32078