Bug 32078 - [4.3 Regression] Make FAILURE in 4.3.0 - `CXXFLAGS' has changed error causes "libltdl: No such file or directory"
Summary: [4.3 Regression] Make FAILURE in 4.3.0 - `CXXFLAGS' has changed error causes ...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: other (show other bugs)
Version: 4.3.0
: P3 normal
Target Milestone: 4.3.0
Assignee: Not yet assigned to anyone
URL: http://gcc.gnu.org/ml/gcc-patches/200...
Keywords: patch
Depends on: 32098
Blocks:
  Show dependency treegraph
 
Reported: 2007-05-25 09:42 UTC by Rob
Modified: 2007-06-06 23:22 UTC (History)
6 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2007-05-25 13:31:30


Attachments
A kludge to work around the autoconf bug. (318 bytes, patch)
2007-05-27 17:59 UTC, H.J. Lu
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Rob 2007-05-25 09:42:49 UTC
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.
Comment 1 Rob 2007-05-25 10:49:00 UTC
Found an additional problem.

After all the stages are done and we are building the libraries in the "target name directory" (EG: in _my_ case the directory is called "i686-pc-linux-gnu") we must _always_ use "xgcc" and NOT "gcc" (the OS's compiler).

Correct?


Here is a bit of screen output:


make[2]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/boehm-gc'
make[2]: Entering directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libobjc'
: make ; exec true "AR=ar" "AR_FLAGS=rc" "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" "CFLAGS=-O2 -g -O2 " "DESTDIR=" "LIBCFLAGS=-O2 -g -O2 " "EXTRA_OFILES=" 


That is OK.


Here is some more (from the build log):

# grep -A 4 /opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/classpath/native/fdlibm gcc-4_3-build/make_6*

gcc-4_3-build/make_6b_log.txt:make[5]: Entering directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/classpath/native/fdlibm'
gcc-4_3-build/make_6b_log.txt-if /bin/sh ../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I/root/downloads/gcc-4_3-trunk/libjava/classpath/native/fdlibm -I../../include     -O2 -g -O2  -MT dtoa.lo -MD -MP -MF ".deps/dtoa.Tpo" -c -o dtoa.lo /root/downloads/gcc-4_3-trunk/libjava/classpath/native/fdlibm/dtoa.c; \
gcc-4_3-build/make_6b_log.txt-  then mv -f ".deps/dtoa.Tpo" ".deps/dtoa.Plo"; else rm -f ".deps/dtoa.Tpo"; exit 1; fi
gcc-4_3-build/make_6b_log.txt-mkdir .libs
gcc-4_3-build/make_6b_log.txt-gcc -DHAVE_CONFIG_H -I. -I/root/downloads/gcc-4_3-trunk/libjava/classpath/native/fdlibm -I../../include -O2 -g -O2 -MT dtoa.lo -MD -MP -MF .deps/dtoa.Tpo -c /root/downloads/gcc-4_3-trunk/libjava/classpath/native/fdlibm/dtoa.c  -fPIC -DPIC -o .libs/dtoa.o



Notice that is uses "gcc" to build dtoa ...

When I compiled gcc previously it didn't do that:


# grep -A 4 /opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/classpath/native/fdlibm make_5*

make_5c_log.txt:make[5]: Entering directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava/classpath/native/fdlibm'
make_5c_log.txt-if /bin/sh ../../libtool --mode=compile /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 -DHAVE_CONFIG_H -I. -I/root/downloads/gcc-4_3-trunk/libjava/classpath/native/fdlibm -I../../include     -O2 -g -O2  -MT dtoa.lo -MD -MP -MF ".deps/dtoa.Tpo" -c -o dtoa.lo /root/downloads/gcc-4_3-trunk/libjava/classpath/native/fdlibm/dtoa.c; \
make_5c_log.txt-        then mv -f ".deps/dtoa.Tpo" ".deps/dtoa.Plo"; else rm -f ".deps/dtoa.Tpo"; exit 1; fi
make_5c_log.txt-mkdir .libs
make_5c_log.txt-/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 -DHAVE_CONFIG_H -I. -I/root/downloads/gcc-4_3-trunk/libjava/classpath/native/fdlibm -I../../include -O2 -g -O2 -MT dtoa.lo -MD -MP -MF .deps/dtoa.Tpo -c /root/downloads/gcc-4_3-trunk/libjava/classpath/native/fdlibm/dtoa.c  -fPIC -DPIC -o .libs/dtoa.o


That is not the only library where this occurs. The tests will be invalid if gcc is used instead of xgcc. The gcc-bugs scripts will be sending out false e-mails about breakages.
Comment 2 H.J. Lu 2007-05-25 13:31:30 UTC
I saw it with revision 125032 on a quad-core Linux/x86-64 with "make -j4".
Comment 3 Andrew Pinski 2007-05-25 15:17:25 UTC
 Do either of you read the list?
http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01665.html
Comment 4 Rob 2007-05-25 15:39:26 UTC
>> Andrew Pinski 2007-05-25 15:17 
>> Do either of you read the list?

I search the Internet and use the search page at http://gcc.gnu.org/bugzilla before I post a bug. I try to avoid dupes and look for fixes.

There may well be some wait time before http://gcc.gnu.org/ml/gcc-patches shows up on Google. Is there a wait time before http://gcc.gnu.org/ml/gcc-patches shows up on http://gcc.gnu.org/bugzilla ?


Bug two is not addressed in the thread you mentioned (and has been present for months) - I do avoid complaining when I can.

Thanks for working on bug one.
Comment 5 Nathan Sidwell 2007-05-25 15:40:21 UTC
This looks like it might be the same as this one http://sourceware.org/ml/newlib/2007/msg00425.html

Anyone able to try that patch?
Comment 6 Rob 2007-05-25 15:59:23 UTC
After winding up and down, back and forth through what seems to be a couple of forks of discussion, I found a couple of different answers ...

The above comment means that the "References:" section at the bottom of the posts changes on some posts and leads to other posts with different lists of references - instead of simply being able to click-next.


The gist of it seems to be that the SVN was updated for all to obtain without first testing amounst the maintainers (or other designated group):
http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01654.html


One person says it is fixed already:
http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01672.html

In another post they might have it fixed on the WEEKEND:
http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01692.html
Comment 7 Jack Howarth 2007-05-26 02:43:00 UTC
From http://gcc.gnu.org/viewcvs?view=rev&revision=125032, it appears that
libjava/libltdl was omitted from the regeneration as well.
Comment 8 Rob 2007-05-26 17:40:31 UTC
>> Do either of you read the list?
Good point, here are some others ...


1): The newly updated libltdl directory that has caused some breakage in
    the libjava directory is version 1.5.16 - see:

# grep -A1 VERSION gcc-4_3-trunk/libjava/libltdl/ltmain.sh | head -n 2
VERSION=1.5.16
TIMESTAMP=" (1.1220.2.235 2005/04/25 18:13:26)"


2): Version 1.5.22 is 9 months newer than version 1.5.16 . The version numbers
    for libtool are even only; we could use a version that was 4 revisions newer.


Here is an URL no one thought to check - funny?
http://ftp.gnu.org/gnu/libtool/
libtool-1.5.12.tar.gz              05-Feb-2005 11:38   2.6M
libtool-1.5.14.tar.gz              12-Feb-2005 08:43   2.6M 
libtool-1.5.16.tar.gz              25-Apr-2005 14:35   2.6M 
libtool-1.5.18.tar.gz              16-May-2005 06:19   2.7M 
libtool-1.5.20.tar.gz              31-Aug-2005 15:07   2.7M 
libtool-1.5.22.tar.gz              18-Dec-2005 17:26   2.8M  


3): The "libtool-1.5.22.tar.gz" "NEWS" file mentions many bugfixes.
    The "Changelog" file lists over 750 lines of info since 1.5.16 .


4): You can do this (adjust these instructions for your directory structure 
    and available software configuration) if your target is i686-pc-linux-gnu

# cd /downloads
# wget http://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz
# gunzip -d libtool-1.5.22.tar.gz
# tar -xf libtool-1.5.22.tar
# mv gcc-4_3-trunk/libjava/libltdl gcc-4_3-trunk/libjava/libltdl-Origonal
# mkdir gcc-4_3-trunk/libjava/libltdl
# cp /downloads/libtool-1.5.22/libltdl/* gcc-4_3-trunk/libjava/libltdl
# cd /opt/gcc-4_3-build
# /downloadsgcc-4_3-trunk/configure
# make


Do NOT alter /downloads/gcc-4_3-trunk/libjava/libtool-version unless you 
read the docs and know what you are doing. Do NOT change it to 1.5.22 !

Just copy the ONE directory, do not copy any other or do any configuring.

Remember to rename the directory structure back the way it was _prior_
to running "contrib/gcc_update" or "svn" until this fix is approved.


After copying that one directory you can type this:

# grep -A1 VERSION /downloads/gcc-4_3-trunk/libjava/libltdl/ltmain.sh | head -n 2
VERSION=1.5.22
TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"


Now things are fixed with respect to libltdl - no need for patching (on _my_ platform, other people must test before committing to SVN or we will be back in the same boat).



While people are fixing the problem in this area ...

Here are some of the problems with file: /root/downloads/gcc-4_3-trunk/libjava/configure
see here at line 8093, how CXXCPP is being set - seems wrong for libjava.

echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
if test -z "$CXXCPP"; then
  if test "${ac_cv_prog_CXXCPP+set}" = set; then
  echo $ECHO_N "(cached) $ECHO_C" >&6
else
      # Double quotes because CXXCPP needs to be expanded
    for CXXCPP in "$CXX -E" "/lib/cpp"
    do



Your system might be different but here is what mine says about CXX and /lib/cpp .


# echo $CXX 
(BLANK LINE)
# 


# ls -l /lib/cpp
lrwxrwxrwx 1 root root 21 Apr 21 14:40 /lib/cpp -> /etc/alternatives/cpp
# ls -l /etc/alternatives/cpp
lrwxrwxrwx 1 root root 12 Apr 21 14:40 /etc/alternatives/cpp -> /usr/bin/cpp
# ls -l /usr/bin/cpp
-rwxr-xr-x 1 root root 512405 May  4 10:33 /usr/bin/cpp
# /usr/bin/cpp --version
cpp (GCC) 4.2.0 20070501 (prerelease)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
(BLANK LINE)
# 


# gcc-4_3-build/gcc/cpp --version
cpp (GCC) 4.3.0 20070526 (experimental)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
(BLANK LINE)
# 


Which "cpp" version are we _supposed_ to use ? Why look at /lib/cpp to get a link to a link, why not just look at "/usr/bin/cpp"; or are you trying to find a hook for an alternate compiler that might be available.

Wouldn't you rather use the 4.3.0 revision of "cpp" that you just built ?

If you use "/usr/bin/cpp" you must get your "-B"'s right and not use any 4.3.0
commands. Your "/usr/bin/cpp" might be version 3.4 or lower.



Anyways ...

After copying in the newest libltdl everything seems to configure and compile
file with respect to libltdl issues only - other problems are in other bug reports.
Comment 9 Rob 2007-05-26 22:51:45 UTC
Getting stuck at ?:

libtool: compile: mv -f "process-Posix.o" "java/.libs/process-Posix.o"
mv: cannot stat `process-Posix.o': No such file or directory
_OR_
libtool: compile: mv -f "awt.o" "gnu/.libs/awt.o"
mv: cannot stat `awt.o': No such file or directory
make[3]: *** [java/process-Posix.lo] Error 1
make[3]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava'
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'


(Again, adjust these instructions to your situation, see above)

# cd /downloads/libtool-1.5.22/
# ./configure
# cp /downloads/libtool-1.5.22/libtool /opt/gcc-4_3-build/i686-pc-linux-gnu/libjava
# cd /opt/gcc-4_3-build
# make


Everything _seems_ fixed on i686-pc-linux-gnu (Debian GNU/Linux)
Comment 10 Rob 2007-05-27 07:06:40 UTC
It worked.

To _properly_ integrate the new Libtool to the SVN (for ONLY _this_ bug fix) requires reading the DOCs (EG: File: libtool.info,  Node: AC_PROG_LIBTOOL and Node: Distributing and Node: Libltdl interface) you may also need to do a regenerate to avoid the requirement that people have autoconf and automake etc. 

The `libtoolize' program provides a standard way to add libtool support to your package. Use the "-n" option since you don't want to overwrite some newer files. The "Libtool test suite" (make check in libtool-1.5.22) passed on my system.

It would seem that all that needs to be done to fix ONLY _this_ bug is the above mentioned directory copy procedure. Leave the libtool.m4 file since it might be needed by some other older software. New libtool won't use it.

I ONLY fixed the _one_ problem mentioned in this bug report. I did not upgrade my OS's libtool by "make install"ing libtool-1.5.22 or make any excess changes. I got a 100% "make check" pass - see below.


You might want to do this (I didn't):
cp /root/downloads/libtool-1.5.22/ltmain.sh /root/downloads/gcc-4_3-trunk/ltmain.sh


Now that I've tested my small fix I'll let the dust settle and see what the maintainers decide to do - just fix this one spot or upgrade ALL of gcc to use the newer libtool.


To _properly_ upgrade ALL of gcc to use this newer libtool we would need to fix a few more directories. I do not know if that will creates new bugs.

There are "libtool-version" files in directories: gcc-4_3-trunk/libgfortran ,
gcc-4_3-trunk/libmudflap , gcc-4_3-trunk/libffi , gcc-4_3-trunk/libssp ,
and gcc-4_3-trunk/libjava .

There are "ltmain.sh" files in directories: gcc-4_3-trunk/ (SVN root),
gcc-4_3-trunk/libjava/libltdl , and gcc-4_3-trunk/libjava/classpath .

You need to add "AC_PROG_LIBTOOL" to each affected directories "configure.ac".


Now regenerate and it should work for everyone. It _did_ work for _me_ when I copied _only_ the gcc-4_3-trunk/libjava/libltdl directory (without pre-configuring it, I let gcc's configure do it) and I copied the pre-configured libtool file over to the libjava directory. Not the "approved" method, just one that avoids making too many changes.


_IF_ this works for many people during the next week and someone integrates 
this with the SVN, (and everyone is happy), then this bug is closed.



# gcc/xgcc -v 2>&1 | tail -n 1
gcc version 4.3.0 20070526 (experimental)
# cat LAST_UPDATED 
Sat May 26 05:23:11 UTC 2007 (revision 125087)


Here is my "make -i check" for libjava:

Test Run By root on Sat May 26 22:25:40 2007
                === libjava Summary ===
# of expected passes            2538


That is ALL it printed. No:
"unexpected failures", "unexpected successes", "expected failures",
"unresolved testcases", "untested testcases", or "unsupported tests" !

Libjava Passed 100% OK.


Test results are here:
http://gcc.gnu.org/ml/gcc-testresults/2007-05/msg01322.html
Comment 11 H.J. Lu 2007-05-27 07:24:37 UTC
(In reply to comment #9)
> Getting stuck at ?:
> 
> libtool: compile: mv -f "process-Posix.o" "java/.libs/process-Posix.o"
> mv: cannot stat `process-Posix.o': No such file or directory
> _OR_
> libtool: compile: mv -f "awt.o" "gnu/.libs/awt.o"
> mv: cannot stat `awt.o': No such file or directory
> make[3]: *** [java/process-Posix.lo] Error 1
> make[3]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava'
> 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'

See

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32098

> 
> 
> (Again, adjust these instructions to your situation, see above)
> 
> # cd /downloads/libtool-1.5.22/
> # ./configure
> # cp /downloads/libtool-1.5.22/libtool
> /opt/gcc-4_3-build/i686-pc-linux-gnu/libjava
> # cd /opt/gcc-4_3-build
> # make
>

This isn't a fix.
Comment 12 H.J. Lu 2007-05-27 17:59:55 UTC
Created attachment 13617 [details]
A kludge to work around the autoconf bug.

This is a kludge which allows me to go further in libjava build.
Comment 13 H.J. Lu 2007-05-27 18:50:57 UTC
A patch to update libtool in classpath is posted at

http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01824.html

Test results on Linux/x86-64 looks good:

http://gcc.gnu.org/ml/gcc-testresults/2007-05/msg01337.html
Comment 14 H.J. Lu 2007-05-28 01:35:49 UTC
This patch allows libjava to build:

http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01843.html
Comment 15 Paolo Bonzini 2007-05-28 06:38:12 UTC
Subject: Bug 32078

Author: bonzini
Date: Mon May 28 06:38:00 2007
New Revision: 125125

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=125125
Log:
2007-05-27  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/32078
	* configure.ac: Include confsubdir.m4.
	* configure: Regenerate.

Modified:
    trunk/libjava/ChangeLog
    trunk/libjava/configure
    trunk/libjava/configure.ac

Comment 16 Rob 2007-05-28 08:35:16 UTC
>> Comment #11 From hjl@lucon.org 2007-05-27 07:24
>> Getting stuck at ?:
>> libtool: compile: mv -f "process-Posix.o" "java/.libs/process-Posix.o"
> ...
>This isn't a fix.

Actually I tought if you had got that far that I had sent the "cheat" to work around the problem. I noticed that it was not included at the end of post eight.

Sorry. I compose my messages in an editor and then paste them into the puny "Additional Comments:" box offline. I wish the box was wider and longer then I would compose online ...

I looked at your attachment from post twelve. While I did not go that particular route it un-does someone else's work which could well be correct.

I have you HUGE patch from http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01824.html and will review it.


I also had a look at: http://gcc.gnu.org/viewcvs/trunk/libjava/configure?r1=125125&r2=125124&pathrev=125125 Thanks Paolo ...


---

Here is what I found. I made a _one_ line patch that I am testing against 125123.


The problem is that between revision 125031 and 125032 the ac_configure_args 
added (on _my_ system, might be different for you) this extra section:

'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='



Go to libjava/configure and alter after the section with this text 
"# Remove --cache-file and --srcdir arguments so they do not pile up." 
to add a "echo "ac_sub_configure = $ac_sub_configure" command and it prints this:

ac_sub_configure = '--cache-file=./config.cache' ...  --cache-file= --srcdir=


Later the un-modified section of the script prints:

configure: configuring in classpath
configure: running /bin/sh '/root/downloads/gcc-4_3-trunk/libjava/classpath/configure' --prefix=/usr  '--cache-file=./config.cache' ... --cache-file=.././config.cache --srcdir=/root/downloads/gcc-4_3-trunk/libjava/classpath


The second "--cache-file=.././config.cache" is a "neat idea" since it would make
configuring quicker by using an already decided "config.cache" file. I _do_ like
the idea but it would be better to use the "build-root"/"config.cache" instead of the "build-root"/libjava/"config.cache" file.

Just two problems. First (it is said that) it wrecks using "Make -j", second, which is relevant to us, is that it uses a "config.cache" that was formed from section of the make that used `"CXXFLAGS_FOR_TARGET=-g -O2  -D_GNU_SOURCE"'. 


Why the two spaces?

Anytime you see "junk" like ".//xyzdir" or, in this case "  " it means that a
variable was blank. (and the junk should be cleaned). Grep these examples:

SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)


See?

CXXFLAGS = CXXFLAGS_FOR_TARGET = "CXXFLAGS SYSROOT_CFLAGS_FOR_TARGET"

If "SYSROOT_CFLAGS_FOR_TARGET" is blank you end up with this happening:
`"CXXFLAGS_FOR_TARGET=-g -O2  -D_GNU_SOURCE"'


Other trouble is some un-substituted "AT"'s ...

# grep -B 9 -A 18 --color=always GNU_SOURCE /root/downloads/gcc-4_3-trunk/libjava/Makefile.in
AM_CXXFLAGS = \
        -fno-rtti \
        -fnon-call-exceptions \
        $(THREADCXXFLAGS) \
        -fdollars-in-identifiers \
        -Wswitch-enum \
        -D_FILE_OFFSET_BITS=64 \
        @LIBGCJ_CXXFLAGS@ \
        $(WARNINGS) \
        -D_GNU_SOURCE \
        -DPREFIX="\"$(prefix)\"" \
        -DTOOLEXECLIBDIR="\"$(toolexeclibdir)\"" \
        -DJAVA_HOME="\"$(JAVA_HOME_DIR)\"" \
        -DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \
        -DJAVA_EXT_DIRS="\"$(jardir)/ext\"" \
        -DGCJ_ENDORSED_DIRS="\"$(jardir)/gcj-endorsed\"" \
        -DGCJ_VERSIONED_LIBDIR="\"$(dbexecdir)\"" \
        -DPATH_SEPARATOR="\"$(CLASSPATH_SEPARATOR)\"" \
        -DECJ_JAR_FILE="\"$(ECJ_JAR)\"" \
        -DLIBGCJ_DEFAULT_DATABASE="\"$(dbexecdir)/$(db_name)\"" \
        -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"$(db_pathtail)\""

AM_GCJFLAGS = \
        @LIBGCJ_JAVAFLAGS@ \
        -fclasspath= -fbootclasspath=$(BOOTCLASSPATH) \
        --encoding=UTF-8 \


Combine all those problems and try to share cache files while calling individual configure scripts with arguments that conflict with the cache and what happens - this bug and more to come.



To fix _this_ bug and IGNORE the perils that await use this diff on revision 125123:

--- libjava/configure      2007-05-28 01:00:43.000000000 -0700
+++ libjava/configure-hack 2007-05-28 01:03:36.000000000 -0700
@@ -31160,10 +31160,6 @@
        ac_sub_cache_file=$ac_top_builddir$cache_file ;;
       esac
 
+# Disgusting (simplest) hack to fix very broken code needing a lot of work.
+# See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32078
+ac_sub_cache_file=./config.cache
+
       { echo "$as_me:$LINENO: running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
 echo "$as_me: running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
       # The eval makes quoting arguments work.


That simply sets the "CONFIG_SUBDIRS" section to use it's _own_ cache instead of one from another directory. That is the only work it un-does. It leaves all the other work (good or bad) intact and lets libjava compile while we take a good look at what to fix. Which it would seem you two have done.

I opted to try a one-liner. I will study your work and update my copy. It's been a long day for us all. Thank you for your efforts.
Comment 17 Rob 2007-05-29 00:28:00 UTC
# cat /root/downloads/gcc-4_3-trunk/LAST_UPDATED                         
Mon May 28 08:39:31 UTC 2007 (revision 125125M)

Results for 4.3.0 20070528 (experimental) testsuite on i686-pc-linux-gnu
http://gcc.gnu.org/ml/gcc-testresults/2007-05/msg01375.html

Again, Java passed 100%, and I enabled a lot of options.
Comment 18 Rob 2007-05-29 23:47:45 UTC
I un-did all _my_ work and re-got the SVN to check that it builds - it doesn't.


Here is proof and result:

# cd /root/downloads/gcc-4_3-trunk

# cat LAST_UPDATED 
Tue May 29 15:18:17 UTC 2007 (revision 125164)

# svn di -r 125164
(Prints NOTHING)

# gcc/xgcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /root/downloads/gcc-4_3-trunk/configure --verbose --enable-languages=c,ada,c++,fortran,java,objc,obj-c++ --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 --enable-portable-native-sync --enable-examples --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-haifa --enable-stage1-checking=assert,gc,misc,rtl,rtlflag,runtime,tree
Thread model: posix
gcc version 4.3.0 20070529 (experimental)


# cd /opt/gcc-4_3-build
# make
...(Many Many lines)
make[3]: Entering directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava'
make create-headers
make[4]: Entering directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava'
echo > gcjh.stamp
make[4]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava'
depbase=`echo jni-libjvm.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`; \
        if /bin/sh ./libtool --tag=CXX --mode=compile /opt/gcc-4_3-build/./gcc/xgcc .... -o jni-libjvm.lo /root/downloads/gcc-4_3-trunk/libjava/jni-libjvm.cc; \
        then mv -f "$depbase.Tpo" "$depbase.Plo"; else rm -f "$depbase.Tpo"; exit 1; fi
libtool: compile:  /opt/gcc-4_3-build/./gcc/xgcc .... -c /root/downloads/gcc-4_3-trunk/libjava/jni-libjvm.cc  -fPIC -DPIC -o .libs/jni-libjvm.o
libtool: compile:  /opt/gcc-4_3-build/./gcc/xgcc .... -c /root/downloads/gcc-4_3-trunk/libjava/jni-libjvm.cc -o jni-libjvm.o >/dev/null 2>&1
...(Many lines)
        if /bin/sh ./libtool --tag=CXX --mode=compile /opt/gcc-4_3-build/./gcc/xgcc .... -o posix-threads.lo /root/downloads/gcc-4_3-trunk/libjava/posix-threads.cc; \
        then mv -f "$depbase.Tpo" "$depbase.Plo"; else rm -f "$depbase.Tpo"; exit 1; fi
libtool: compile:  /opt/gcc-4_3-build/./gcc/xgcc .... -c /root/downloads/gcc-4_3-trunk/libjava/posix-threads.cc  -fPIC -DPIC -o .libs/posix-threads.o
libtool: compile:  /opt/gcc-4_3-build/./gcc/xgcc .... -c /root/downloads/gcc-4_3-trunk/libjava/posix-threads.cc -o posix-threads.o >/dev/null 2>&1
here=`pwd`; cd /root/downloads/gcc-4_3-trunk/libjava/classpath/lib; \
        find gnu java javax org sun -name .svn -prune -o -name '*.class' -print | \
        jar -cfM@ $here/libgcj-4.3.0.jar


Note the above section uses "./libtool --tag=CXX --mode=compile" and works fine.
Note the next  section uses "./libtool --tag=GCJ --mode=compile" and fails after a few files.


/bin/sh ./libtool --tag=GCJ --mode=compile .... /root/downloads/gcc-4_3-trunk/libjava/classpath/lib/java/lang/Object.class
libtool: compile:  /opt/gcc-4_3-build/gcc/gcj .... /root/downloads/gcc-4_3-trunk/libjava/classpath/lib/java/lang/Object.class 
libtool: compile: mv -f "Object.o" "java/lang/.libs/Object.o"
libtool: compile:  /opt/gcc-4_3-build/gcc/gcj .... /root/downloads/gcc-4_3-trunk/libjava/classpath/lib/java/lang/Object.class >/dev/null 2>&1
libtool: compile: mv -f "Object.o" "java/lang/Object.o"
/bin/sh ./libtool --tag=GCJ --mode=compile .... /root/downloads/gcc-4_3-trunk/libjava/classpath/lib/java/lang/Class.class
libtool: compile:  /opt/gcc-4_3-build/gcc/gcj .... /root/downloads/gcc-4_3-trunk/libjava/classpath/lib/java/lang/Class.class 
libtool: compile: mv -f "Class.o" "java/lang/.libs/Class.o"
libtool: compile:  /opt/gcc-4_3-build/gcc/gcj .... /root/downloads/gcc-4_3-trunk/libjava/classpath/lib/java/lang/Class.class >/dev/null 2>&1
libtool: compile: mv -f "Class.o" "java/lang/Class.o"
echo /root/downloads/gcc-4_3-trunk/libjava/classpath/lib/java/lang/PosixProcess*.class > java/process-Posix.list
/bin/sh ./libtool --tag=GCJ --mode=compile ... java/process-Posix.deps @java/process-Posix.list
libtool: compile:  /opt/gcc-4_3-build/gcc/gcj .... java/process-Posix.deps @java/process-Posix.list 
libtool: compile: mv -f "process-Posix.o" "java/.libs/process-Posix.o"
mv: cannot stat `process-Posix.o': No such file or directory
make[3]: *** [java/process-Posix.lo] Error 1
make[3]: Leaving directory `/opt/gcc-4_3-build/i686-pc-linux-gnu/libjava'
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



Need to follow comment nine given above. 


# cp /root/downloads/libtool-1.5.22/libtool /opt/gcc-4_3-build/i686-pc-linux-gnu/libjava
# make

Working fine ...


Other notes:

See here for using "./libtool --tag=CXX --mode=compile" instead of "./libtool --tag=GCJ --mode=compile" to compile Java - the spec file needs fixing to do that (add "-fuse-boehm-gc"): http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31998
Comment 19 dave 2007-05-30 00:07:05 UTC
Subject: Re:  Make FAILURE in 4.3.0 - `CXXFLAGS' has changed error causes "libltdl: No such file or directory"

> libtool: compile: mv -f "process-Posix.o" "java/.libs/process-Posix.o"
> mv: cannot stat `process-Posix.o': No such file or directory

Had a similar error on hppa-unknown-linux-gnu in last night's build
but for a different file.

Dave
Comment 20 H.J. Lu 2007-05-30 00:46:06 UTC
Fixed. We will need to fix PR 32098 for libjava.
Comment 21 Rob 2007-05-30 03:34:03 UTC
Dave, it depends on the options used to configure Java, which files would be compiled and where the breakage occurs.

hjl@lucon.org says it is being fixed. If you can't wait then wget libtool as explained above, configure it, and drop it in hppa-unknown-linux-gnu/libjava.
Comment 22 Rob 2007-06-05 17:28:47 UTC
I'm leaving the currect status of "RESOLVED FIXED" and I've changed this from blocker to normal since for the past few days gcc does not break during the make of libjava.

It would be good to use the same version of libtool in all of gcc. The upgrade of libtool in one part of gcc (with an old version) was part of the cause of these days of problems.