From 46b226ca027523eabf369863c8ce5bf6acc455f7 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Sat, 31 Jul 1999 23:59:12 +0000 Subject: [PATCH] configure.in: Check for gcc 2.95 -g jboolean bug... 1999-07-31 Alexandre Oliva * 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. From-SVN: r28366 --- libjava/ChangeLog | 9 +++++ libjava/Makefile.am | 3 +- libjava/Makefile.in | 4 +-- libjava/configure | 65 ++++++++++++++++++++++++++++++++++- libjava/configure.in | 32 +++++++++++++++++ libjava/testsuite/Makefile.in | 1 + 6 files changed, 109 insertions(+), 5 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d01adcdb59db..d86449609ebb 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,12 @@ +1999-07-31 Alexandre Oliva + + * 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. + 1999-07-31 Alexandre Oliva * java/lang/natSystem.cc (arraycopy): Use bcopy if memmove is not diff --git a/libjava/Makefile.am b/libjava/Makefile.am index 067f49bf6a58..e152cf5b9cbb 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -74,8 +74,7 @@ else 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) diff --git a/libjava/Makefile.in b/libjava/Makefile.in index d88367125128..3cc75ed1c217 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -78,6 +78,7 @@ GCINCS = @GCINCS@ GCLIBS = @GCLIBS@ GCOBJS = @GCOBJS@ GCSPEC = @GCSPEC@ +JCFLAGS = @JCFLAGS@ LD = @LD@ LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@ LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@ @@ -153,8 +154,7 @@ AM_CXXFLAGS = -fno-rtti -fvtable-thunks @LIBGCJ_CXXFLAGS@ $(WARNINGS) @USING_GCC_FALSE@AM_CFLAGS = \ @USING_GCC_FALSE@@LIBGCJ_CFLAGS@ -JCFLAGS = -g -JC1FLAGS = -g @LIBGCJ_JAVAFLAGS@ +JC1FLAGS = @JCFLAGS@ @LIBGCJ_JAVAFLAGS@ INCLUDES = -Iinclude -I$(top_srcdir)/include $(GCINCS) $(THREADINCS) \ $(EH_COMMON_INCLUDE) $(ZINCS) diff --git a/libjava/configure b/libjava/configure index eedeeb94eca9..fc95e227f4cf 100755 --- a/libjava/configure +++ b/libjava/configure @@ -4826,12 +4826,62 @@ EOF fi +echo $ac_n "checking for g++ -g jboolean bug""... $ac_c" 1>&6 +echo "configure:4831: checking for g++ -g jboolean bug" >&5 +if eval "test \"`echo '$''{'libjava_cv_gxx_debug_jboolean_bug'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + + ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + libjava_cv_gxx_debug_jboolean_bug=no +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + libjava_cv_gxx_debug_jboolean_bug=yes +fi +rm -f conftest* + ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + +fi + +echo "$ac_t""$libjava_cv_gxx_debug_jboolean_bug" 1>&6 +if test "x$libjava_cv_gxx_debug_jboolean_bug" = xyes; then + JCFLAGS="$JCFLAGS -g0" + +else + JCFLAGS="$JCFLAGS -g" +fi + + for ac_prog in perl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4835: checking for $ac_word" >&5 +echo "configure:4885: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5095,6 +5145,7 @@ s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g s%@EH_COMMON_INCLUDE@%$EH_COMMON_INCLUDE%g s%@AM_RUNTESTFLAGS@%$AM_RUNTESTFLAGS%g s%@ALLOCA@%$ALLOCA%g +s%@JCFLAGS@%$JCFLAGS%g s%@PERL@%$PERL%g s%@here@%$here%g @@ -5352,6 +5403,7 @@ done EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF test -z "$CONFIG_HEADERS" || echo timestamp > include/stamp-h +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 if test -n "$CONFIG_FILES"; then ac_file=Makefile . ${libgcj_basedir}/../config-ml.in fi diff --git a/libjava/configure.in b/libjava/configure.in index a686a0bcf155..9f926a072cc5 100644 --- a/libjava/configure.in +++ b/libjava/configure.in @@ -497,6 +497,38 @@ AC_TRY_COMPILE([#include ], [struct tm tim; tim.tm_gmtoff = 0;], 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) case "${host}" in diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in index cd20bc9133ff..ca6352e7e3ec 100644 --- a/libjava/testsuite/Makefile.in +++ b/libjava/testsuite/Makefile.in @@ -79,6 +79,7 @@ GCINCS = @GCINCS@ GCLIBS = @GCLIBS@ GCOBJS = @GCOBJS@ GCSPEC = @GCSPEC@ +JCFLAGS = @JCFLAGS@ LD = @LD@ LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@ LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@ -- 2.47.2