This is the mail archive of the
java-patches@sourceware.cygnus.com
mailing list for the Java project.
Re: libgcj won't build with -g on i386-pc-solaris2.7
- To: Tom Tromey <tromey@cygnus.com>
- Subject: Re: libgcj won't build with -g on i386-pc-solaris2.7
- From: Alexandre Oliva <oliva@dcc.unicamp.br>
- Date: 20 Jul 1999 17:39:43 -0300
- Cc: java-discuss@sourceware.cygnus.com, java-patches@sourceware.cygnus.com
- References: <ork8rx84nd.fsf@cupuacu.lsd.dcc.unicamp.br> <oremi583rj.fsf@cupuacu.lsd.dcc.unicamp.br> <oraest8371.fsf@cupuacu.lsd.dcc.unicamp.br> <or1ze582nw.fsf@cupuacu.lsd.dcc.unicamp.br> <199907191806.LAA03071@ferrule.cygnus.com.>
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