This is the mail archive of the gcc-bugs@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]

[Bug other/32078] New: Make FAILURE in 4.3.0 - `CXXFLAGS' has changed error causes "libltdl: No such file or directory"


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]