diff options
-rw-r--r-- | libjava/ChangeLog | 9 | ||||
-rw-r--r-- | libjava/Makefile.am | 3 | ||||
-rw-r--r-- | libjava/Makefile.in | 4 | ||||
-rwxr-xr-x | libjava/configure | 65 | ||||
-rw-r--r-- | libjava/configure.in | 32 | ||||
-rw-r--r-- | libjava/testsuite/Makefile.in | 1 |
6 files changed, 109 insertions, 5 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d01adcdb59d..d86449609eb 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,14 @@ 1999-07-31 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. + +1999-07-31 Alexandre Oliva <oliva@dcc.unicamp.br> + * java/lang/natSystem.cc (arraycopy): Use bcopy if memmove is not available. Don't cast memmove args to (void*). * configure.in: Do not abort if memmove is not available. diff --git a/libjava/Makefile.am b/libjava/Makefile.am index 067f49bf6a5..e152cf5b9cb 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 d8836712512..3cc75ed1c21 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 eedeeb94eca..fc95e227f4c 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 <<EOF +#line 4844 "configure" +#include "confdefs.h" +typedef __java_boolean jboolean; +int main() { + +; return 0; } +EOF +if { (eval echo configure:4851: \"$ac_compile\") 1>&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 <<EOF +libjava_cv_gxx_debug_jboolean_bug=$libjava_cv_gxx_debug_jboolean_bug srcdir=${srcdir} host=${host} target=${target} @@ -5365,6 +5417,17 @@ CXX="${CXX}" EOF cat >> $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 a686a0bcf15..9f926a072cc 100644 --- a/libjava/configure.in +++ b/libjava/configure.in @@ -497,6 +497,38 @@ AC_TRY_COMPILE([#include <time.h>], [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 cd20bc9133f..ca6352e7e3e 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@ |