diff options
author | Jakub Jelinek <jakub@redhat.com> | 2004-01-23 18:32:16 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2004-01-23 18:32:16 +0100 |
commit | 02731d29bed36e8a4b2e29ecb9ce8bbba5a27ace (patch) | |
tree | 69217cf85354fc3dea053bd54868f93c845f5e30 /libjava | |
parent | 0a944ef648a5d7cab40f741d7a4491904f200936 (diff) | |
download | gcc-02731d29bed36e8a4b2e29ecb9ce8bbba5a27ace.zip gcc-02731d29bed36e8a4b2e29ecb9ce8bbba5a27ace.tar.gz gcc-02731d29bed36e8a4b2e29ecb9ce8bbba5a27ace.tar.bz2 |
linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Corrected to handle kernels with changed ucontext.
* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
[!__powerpc64__]: Corrected to handle kernels with changed ucontext.
* include/powerpc-signal.h: Add #ifndef __powerpc64__ around the
header. For __powerpc64__ provide the default-signal.h definitions
for now.
* include/x86_64-signal.h [!__x86_64__]: Include java-signal-aux.h
instead of the dummy definitions.
* configure.host (x86_64-*): Remove CHECKREFSPEC, add DIVIDESPEC.
(powerpc64*-*): Remove with_libffi_default.
Only add -mminimal-toc for 64-bit compilations.
* configure.in: Use powerpc-signal.h on powerpc64 as well.
(x86_64-*-linux*): Set SIGNAL_HANDLER_AUX.
Link SIGNAL_HANDLER_AUX to include/java-signal-aux.h.
* configure: Rebuilt.
From-SVN: r76437
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 15 | ||||
-rwxr-xr-x | libjava/configure | 13 | ||||
-rw-r--r-- | libjava/configure.host | 10 | ||||
-rw-r--r-- | libjava/configure.in | 12 | ||||
-rw-r--r-- | libjava/include/powerpc-signal.h | 30 | ||||
-rw-r--r-- | libjava/include/x86_64-signal.h | 17 |
6 files changed, 67 insertions, 30 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d9b9a35..7386f1d 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,18 @@ +2004-01-21 Jakub Jelinek <jakub@redhat.com> + + * include/powerpc-signal.h: Add #ifndef __powerpc64__ around the + header. For __powerpc64__ provide the default-signal.h definitions + for now. + * include/x86_64-signal.h [!__x86_64__]: Include java-signal-aux.h + instead of the dummy definitions. + * configure.host (x86_64-*): Remove CHECKREFSPEC, add DIVIDESPEC. + (powerpc64*-*): Remove with_libffi_default. + Only add -mminimal-toc for 64-bit compilations. + * configure.in: Use powerpc-signal.h on powerpc64 as well. + (x86_64-*-linux*): Set SIGNAL_HANDLER_AUX. + Link SIGNAL_HANDLER_AUX to include/java-signal-aux.h. + * configure: Rebuilt. + 2004-01-23 Michael Koch <konqueror@gmx.de> * gnu/java/nio/FileLockImpl.java: Compile fixes. diff --git a/libjava/configure b/libjava/configure index 399aa60..6e83713 100755 --- a/libjava/configure +++ b/libjava/configure @@ -9015,6 +9015,7 @@ test -n "$PERL" || PERL="false" SYSDEP_SOURCES= +SIGNAL_HANDLER_AUX= case "${host}" in i?86-*-linux*) @@ -9030,7 +9031,7 @@ case "${host}" in ia64-*-linux*) SIGNAL_HANDLER=include/dwarf2-signal.h ;; - powerpc-*-linux*) + powerpc*-*-linux*) SIGNAL_HANDLER=include/powerpc-signal.h ;; alpha*-*-linux*) @@ -9041,6 +9042,7 @@ case "${host}" in ;; x86_64*-*-linux*) SIGNAL_HANDLER=include/x86_64-signal.h + SIGNAL_HANDLER_AUX=include/i386-signal.h ;; sparc*-*-linux*) SIGNAL_HANDLER=include/dwarf2-signal.h @@ -9062,6 +9064,7 @@ esac # If we're using sjlj exceptions, forget what we just learned. if test "$enable_sjlj_exceptions" = yes; then SIGNAL_HANDLER=include/default-signal.h + SIGNAL_HANDLER_AUX= fi # Define here any compiler flags that you need in order to make backtrace() work. @@ -9075,6 +9078,10 @@ esac +if test -z "$SIGNAL_HANDLER_AUX"; then + SIGNAL_HANDLER_AUX=$SIGNAL_HANDLER +fi + if test "${multilib}" = "yes"; then @@ -9573,8 +9580,8 @@ fi; done EOF cat >> $CONFIG_STATUS <<EOF -ac_sources="include/$PLATFORMH java/io/natFile${FILE-${PLATFORM}}.cc java/io/natFileDescriptor${FILE-${PLATFORM}}.cc java/lang/${PLATFORM}Process.java java/lang/nat${PLATFORM}Process.cc java/net/natInetAddress${PLATFORMNET}.cc java/net/natNetworkInterface${PLATFORMNET}.cc gnu/java/net/natPlainSocketImpl${PLATFORMNET}.cc gnu/java/net/natPlainDatagramSocketImpl${PLATFORMNET}.cc gnu/java/nio/natPipeImpl${PLATFORM}.cc gnu/java/nio/natSelectorImpl${PLATFORM}.cc include/$GCHDR include/$THREADH sysdep/$sysdeps_dir/locks.h $SIGNAL_HANDLER" -ac_dests="include/platform.h java/io/natFile.cc java/io/natFileDescriptor.cc java/lang/ConcreteProcess.java java/lang/natConcreteProcess.cc java/net/natInetAddress.cc java/net/natNetworkInterface.cc gnu/java/net/natPlainSocketImpl.cc gnu/java/net/natPlainDatagramSocketImpl.cc gnu/java/nio/natPipeImpl.cc gnu/java/nio/natSelectorImpl.cc include/java-gc.h include/java-threads.h sysdep/locks.h include/java-signal.h" +ac_sources="include/$PLATFORMH java/io/natFile${FILE-${PLATFORM}}.cc java/io/natFileDescriptor${FILE-${PLATFORM}}.cc java/lang/${PLATFORM}Process.java java/lang/nat${PLATFORM}Process.cc java/net/natInetAddress${PLATFORMNET}.cc java/net/natNetworkInterface${PLATFORMNET}.cc gnu/java/net/natPlainSocketImpl${PLATFORMNET}.cc gnu/java/net/natPlainDatagramSocketImpl${PLATFORMNET}.cc gnu/java/nio/natPipeImpl${PLATFORM}.cc gnu/java/nio/natSelectorImpl${PLATFORM}.cc include/$GCHDR include/$THREADH sysdep/$sysdeps_dir/locks.h $SIGNAL_HANDLER $SIGNAL_HANDLER_AUX" +ac_dests="include/platform.h java/io/natFile.cc java/io/natFileDescriptor.cc java/lang/ConcreteProcess.java java/lang/natConcreteProcess.cc java/net/natInetAddress.cc java/net/natNetworkInterface.cc gnu/java/net/natPlainSocketImpl.cc gnu/java/net/natPlainDatagramSocketImpl.cc gnu/java/nio/natPipeImpl.cc gnu/java/nio/natSelectorImpl.cc include/java-gc.h include/java-threads.h sysdep/locks.h include/java-signal.h include/java-signal-aux.h" EOF cat >> $CONFIG_STATUS <<\EOF diff --git a/libjava/configure.host b/libjava/configure.host index 2d04bbc..6e19f0c 100644 --- a/libjava/configure.host +++ b/libjava/configure.host @@ -99,11 +99,11 @@ case "${host}" in slow_pthread_self=yes ;; x86_64-*) - CHECKREFSPEC="%{m32:-fcheck-references}" sysdeps_dir=x86-64 libgcj_flags="${libgcj_flags} -ffloat-store -fno-omit-frame-pointer" libgcj_cxxflags= libgcj_cflags= + DIVIDESPEC=-f%{m32:no-}use-divide-subroutine enable_hash_synchronization_default=yes slow_pthread_self=yes libgcj_interpreter=yes @@ -116,11 +116,11 @@ case "${host}" in IEEESPEC=-mieee ;; powerpc64*-*) - with_libffi_default=yes - libgcj_interpreter=yes - libgcj_flags="${libgcj_flags} -mminimal-toc" - # this may not be correct sysdeps_dir=powerpc + libgcj_interpreter=yes + if [ x`$CC -print-multi-os-directory` = x../lib64 ]; then + libgcj_flags="${libgcj_flags} -mminimal-toc" + fi enable_hash_synchronization_default=yes slow_pthread_self=yes ;; diff --git a/libjava/configure.in b/libjava/configure.in index 015831c..26f39cc 100644 --- a/libjava/configure.in +++ b/libjava/configure.in @@ -1128,6 +1128,7 @@ AC_FUNC_MMAP AC_CHECK_PROGS(PERL, perl, false) SYSDEP_SOURCES= +SIGNAL_HANDLER_AUX= case "${host}" in i?86-*-linux*) @@ -1143,7 +1144,7 @@ case "${host}" in ia64-*-linux*) SIGNAL_HANDLER=include/dwarf2-signal.h ;; - powerpc-*-linux*) + powerpc*-*-linux*) SIGNAL_HANDLER=include/powerpc-signal.h ;; alpha*-*-linux*) @@ -1154,6 +1155,7 @@ case "${host}" in ;; x86_64*-*-linux*) SIGNAL_HANDLER=include/x86_64-signal.h + SIGNAL_HANDLER_AUX=include/i386-signal.h ;; sparc*-*-linux*) SIGNAL_HANDLER=include/dwarf2-signal.h @@ -1175,6 +1177,7 @@ esac # If we're using sjlj exceptions, forget what we just learned. if test "$enable_sjlj_exceptions" = yes; then SIGNAL_HANDLER=include/default-signal.h + SIGNAL_HANDLER_AUX= fi # Define here any compiler flags that you need in order to make backtrace() work. @@ -1188,7 +1191,12 @@ AC_SUBST(BACKTRACESPEC) AC_SUBST(SYSDEP_SOURCES) -AC_LINK_FILES($SIGNAL_HANDLER, include/java-signal.h) +if test -z "$SIGNAL_HANDLER_AUX"; then + SIGNAL_HANDLER_AUX=$SIGNAL_HANDLER +fi + +AC_LINK_FILES($SIGNAL_HANDLER $SIGNAL_HANDLER_AUX, + include/java-signal.h include/java-signal-aux.h) if test "${multilib}" = "yes"; then multilib_arg="--enable-multilib" diff --git a/libjava/include/powerpc-signal.h b/libjava/include/powerpc-signal.h index 39cdf89..386fb18 100644 --- a/libjava/include/powerpc-signal.h +++ b/libjava/include/powerpc-signal.h @@ -13,13 +13,15 @@ details. */ #ifndef JAVA_SIGNAL_H # define JAVA_SIGNAL_H 1 -# include <signal.h> -# include <sys/syscall.h> +# ifndef __powerpc64__ -# define HANDLE_SEGV 1 -# undef HANDLE_FPE +# include <signal.h> +# include <sys/syscall.h> -# define SIGNAL_HANDLER(_name) \ +# define HANDLE_SEGV 1 +# undef HANDLE_FPE + +# define SIGNAL_HANDLER(_name) \ static void _name (int /* _signal */, struct sigcontext *_sc) /* PPC either leaves PC pointing at a faulting instruction or the @@ -27,7 +29,7 @@ details. */ the former, so we adjust the saved PC to point to the following instruction. This is what the handler in libgcc expects. */ -# define MAKE_THROW_FRAME(_exception) \ +# define MAKE_THROW_FRAME(_exception) \ do \ { \ _sc->regs->nip += 4; \ @@ -58,7 +60,7 @@ struct kernel_old_sigaction { void (*k_sa_restorer) (void); }; -# define INIT_SEGV \ +# define INIT_SEGV \ do \ { \ struct kernel_old_sigaction kact; \ @@ -69,7 +71,7 @@ do \ } \ while (0) -# define INIT_FPE \ +# define INIT_FPE \ do \ { \ struct kernel_old_sigaction kact; \ @@ -78,7 +80,15 @@ do \ kact.k_sa_flags = 0; \ syscall (SYS_sigaction, SIGFPE, &kact, NULL); \ } \ -while (0) +while (0) -#endif /* JAVA_SIGNAL_H */ +# else +# undef HANDLE_SEGV +# undef HANDLE_FPE + +# define INIT_SEGV do {} while (0) +# define INIT_FPE do {} while (0) +# endif + +#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/x86_64-signal.h b/libjava/include/x86_64-signal.h index eb03447..ab59e5e 100644 --- a/libjava/include/x86_64-signal.h +++ b/libjava/include/x86_64-signal.h @@ -10,14 +10,14 @@ Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ +#ifdef __x86_64__ + #ifndef JAVA_SIGNAL_H #define JAVA_SIGNAL_H 1 #include <signal.h> #include <sys/syscall.h> -#ifdef __x86_64__ - #define HANDLE_SEGV 1 #define SIGNAL_HANDLER(_name) \ @@ -80,16 +80,13 @@ while (0) * go away if all systems ever have pthreads libraries that are * compiled with unwind info. */ -#else /* __x86_64__ */ +#endif /* JAVA_SIGNAL_H */ -/* This is for the 32-bit subsystem on on x86-64. Catching signals - doesn't yet work on that target. */ +#else /* __x86_64__ */ -#undef HANDLE_SEGV -#undef HANDLE_FPE +/* This is for the 32-bit subsystem on on x86-64. */ -#define INIT_SEGV do {} while (0) -#define INIT_FPE do {} while (0) +#define sigcontext_struct sigcontext +#include <java-signal-aux.h> #endif /* __x86_64__ */ -#endif /* JAVA_SIGNAL_H */ |