This is the mail archive of the java-patches@sourceware.cygnus.com mailing list for the Java project.


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

Re: libgcj won't build with -g on i386-pc-solaris2.7


On Jul 19, 1999, Tom Tromey <tromey@cygnus.com> wrote:

>>>>>> "Alexandre" == Alexandre Oliva <oliva@dcc.unicamp.br> writes:
Alexandre> Now, the testsuite is getting false negatives because of linker
Alexandre> warnings:
Alexandre> [ ... ]
Alexandre> Is there any way to ignore these warnings within libgcj's
Alexandre> testsuite, or do we need a dejagnu patch?

> Can you send me the appropriate output from the .log file?

Here you are:

Executing on host: /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../libtool --silent --mode=link gcj -B/tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../ /home/lsd/oliva/src/libgcj-2.95/libjava/testsuite/libjava.compile/Case.java /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../libjava/libgcj.la /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../boehm-gc/libgcjgc.la /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../zlib/libzgcj.la   --main=Case -g -L/tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../libjava/.libs -L/tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../boehm-gc/.libs -L/tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../zlib/.libs  -lm   -o /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/Case    (timeout = 300)
spawn /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../libtool --silent --mode=link gcj -B/tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../ /home/lsd/oliva/src/libgcj-2.95/libjava/testsuite/libjava.compile/Case.java /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../libjava/libgcj.la /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../boehm-gc/libgcjgc.la /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../zlib/libzgcj.la --main=Case -g -L/tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../libjava/.libs -L/tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../boehm-gc/.libs -L/tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../zlib/.libs -lm -o /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/Case 
ld: warning: file /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../libjava/.libs/libgcj.so: attempted multiple inclusion of file
ld: warning: file /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../boehm-gc/.libs/libgcjgc.so: attempted multiple inclusion of file
ld: warning: file /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../zlib/.libs/libzgcj.so: attempted multiple inclusion of file
output is:
ld: warning: file /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../libjava/.libs/libgcj.so: attempted multiple inclusion of file
ld: warning: file /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../boehm-gc/.libs/libgcjgc.so: attempted multiple inclusion of file
ld: warning: file /tmp/libgcj-build-2.95/i386-pc-solaris2.7/libjava/testsuite/../../zlib/.libs/libzgcj.so: attempted multiple inclusion of file

XFAIL: Case compilation from source
XFAIL: Case execution from source compiled test
XFAIL: Case output from source compiled test


And here's a patch that allows libgcj to build out-of-the-box on this
platform, despite the g++/gcj -g jboolean bug.

Index: libjava/ChangeLog
from  Alexandre Oliva  <oliva@dcc.unicamp.br>
	
	* configure.in: Check for gcc 2.95 -g jboolean bug, that affects
	Solaris/x86, adding -g0 to JCFLAGS and CXXFLAGS if needed.
	AC_SUBST JCFLAGS.
	* Makefile.am (JCFLAGS): Removed; automake will take care of it.
	(JC1FLAGS): Replace -g with @JCFLAGS@.
	* Makefile.in: Rebuilt.
	
Index: libjava/configure.in
===================================================================
RCS file: /cvs/java/libgcj/libjava/configure.in,v
retrieving revision 1.11.2.1
diff -u -r1.11.2.1 configure.in
--- libjava/configure.in	1999/06/24 20:14:59	1.11.2.1
+++ libjava/configure.in	1999/07/20 20:32:10
@@ -501,6 +501,38 @@
      [AC_MSG_RESULT(no)])])
 
 AC_FUNC_ALLOCA
+
+dnl On Solaris/x86, gcc 2.95 ICEs on this testcase
+AC_CACHE_CHECK([for g++ -g jboolean bug], [libjava_cv_gxx_debug_jboolean_bug],
+[ AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+  AC_TRY_COMPILE([typedef __java_boolean jboolean;], [],
+    [libjava_cv_gxx_debug_jboolean_bug=no],
+    [libjava_cv_gxx_debug_jboolean_bug=yes])
+  AC_LANG_RESTORE
+])
+if test "x$libjava_cv_gxx_debug_jboolean_bug" = xyes; then
+  JCFLAGS="$JCFLAGS -g0"
+  dnl Top-leve Makefile overrides CXXFLAGS, and AM_CXXFLAGS is before it,
+  dnl so we have to use this dirty hack
+  dnl Note that, even though this code is within an if statement, it is
+  dnl unconditionally added to config.status, so we have to test again.
+  AC_OUTPUT_COMMANDS([case " $CONFIG_FILES " in " Makefile ")
+     if test "x$libjava_cv_gxx_debug_jboolean_bug" = xyes; then
+      rm -f Makefile.new
+      sed < Makefile > Makefile.new \
+	-e '/^CXXCOMPILE = / s/$/ -g0/' \
+	-e '/^LTCXXCOMPILE = / s/$/ -g0/'
+      mv Makefile.new Makefile ||
+      { rm -f Makefile && mv Makefile.new Makefile; }
+    fi
+  ;;
+  esac],
+  [libjava_cv_gxx_debug_jboolean_bug=$libjava_cv_gxx_debug_jboolean_bug])
+else
+  JCFLAGS="$JCFLAGS -g"
+fi
+AC_SUBST(JCFLAGS)
 
 AC_CHECK_PROGS(PERL, perl, false)
 
Index: libjava/Makefile.am
===================================================================
RCS file: /cvs/java/libgcj/libjava/Makefile.am,v
retrieving revision 1.24
diff -u -r1.24 Makefile.am
--- libjava/Makefile.am	1999/06/21 13:03:44	1.24
+++ libjava/Makefile.am	1999/07/20 20:32:10
@@ -74,8 +74,7 @@
 AM_CFLAGS = @LIBGCJ_CFLAGS@
 endif
 
-JCFLAGS = -g
-JC1FLAGS = -g @LIBGCJ_JAVAFLAGS@
+JC1FLAGS = @JCFLAGS@ @LIBGCJ_JAVAFLAGS@
 
 INCLUDES = -Iinclude -I$(top_srcdir)/include $(GCINCS) $(THREADINCS) \
 	$(EH_COMMON_INCLUDE) $(ZINCS)


-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them

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