------- Comment #16 from rob1weld at aol dot com 2007-05-28 08:35 ------- >> Comment #11 From [EMAIL PROTECTED] 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. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32078