This is the mail archive of the
frysk-cvs@sources.redhat.com
mailing list for the frysk project.
[SCM] master: Generate all JNIXX files before any are compiled.
- From: cagney at sourceware dot org
- To: frysk-cvs at sourceware dot org
- Date: 2 May 2008 22:09:04 -0000
- Subject: [SCM] master: Generate all JNIXX files before any are compiled.
- Reply-to: frysk at sourceware dot org
The branch, master has been updated
via f34e0e28d1e06376968f23cefcdce18ce037b27c (commit)
via 540c5bd25a81288010163839555101d883cf720d (commit)
from 7ce3168066508c638de88f15eb839a829710b16a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit f34e0e28d1e06376968f23cefcdce18ce037b27c
Author: Andrew Cagney <cagney@redhat.com>
Date: Fri May 2 18:07:31 2008 -0400
Generate all JNIXX files before any are compiled.
frysk-common/ChangeLog
2008-05-02 Andrew Cagney <cagney@redhat.com>
* Makefile.gen.sh (generate_jnixx_sources): Order build so that
all JNIXX files are generated before any are compiled.
commit 540c5bd25a81288010163839555101d883cf720d
Author: Andrew Cagney <cagney@redhat.com>
Date: Fri May 2 17:44:35 2008 -0400
Conver Signal to jnixx.
frysk-sys/frysk/sys/ChangeLog
2008-05-02 Andrew Cagney <cagney@redhat.com>
* jni/Signal.cxx-sh: Use generated jnixx header.
-----------------------------------------------------------------------
Summary of changes:
frysk-common/ChangeLog | 3 ++
frysk-common/Makefile.gen.sh | 32 ++++++++++++++++++-----------
frysk-sys/frysk/sys/ChangeLog | 2 +
frysk-sys/frysk/sys/jni/Signal.cxx-sh | 35 ++++++++++++++------------------
4 files changed, 40 insertions(+), 32 deletions(-)
First 500 lines of diff:
diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog
index 282a1ee..bb3411a 100644
--- a/frysk-common/ChangeLog
+++ b/frysk-common/ChangeLog
@@ -1,5 +1,8 @@
2008-05-02 Andrew Cagney <cagney@redhat.com>
+ * Makefile.gen.sh (generate_jnixx_sources): Order build so that
+ all JNIXX files are generated before any are compiled.
+
* Makefile.rules (root_srcdir, abs_root_srcdir): Define.
* Makefile.gen.sh (generate_jnixx_sources): Depend on all jnixx
java files.
diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh
index eb7bbef..928c119 100755
--- a/frysk-common/Makefile.gen.sh
+++ b/frysk-common/Makefile.gen.sh
@@ -657,9 +657,15 @@ generate_cni_header () {
# Assume these are all generated from .class files found in the master
# .jar.
-echo "JNIXX_BUILT ="
-echo "CLEANFILES += \$(JNIXXX_BUILT)"
-echo "jnixx_sources = \$(wildcard \$(root_srcdir)/frysk-sys/frysk/jnixx/*.java)"
+cat <<EOF
+JNIXX_BUILT =
+CLEANFILES += \$(JNIXXX_BUILT)
+# Generate sources after the .jar is built
+\$(JNIXX_BUILT): | \${GEN_DIRNAME}.jar
+jnixx_sources = \$(wildcard \$(root_srcdir)/frysk-sys/frysk/jnixx/*.java)
+# If any of the JNI sources change, re-generate everything.
+\$(JNIXX_BUILT): \$(jnixx_sources)
+EOF
generate_jnixx_sources () {
local file=$1
local d=$2
@@ -678,16 +684,18 @@ generate_jnixx_sources () {
# Assume file defining macro depends on this file
automake_variable $m = \$\($_file\)
elif has_java_source ${h} ; then
- echo "JNIXX_BUILT += ${h}-jni.hxx"
- echo "JNIXX_BUILT += ${h}-jni.cxx"
- echo "${sources} += ${h}-jni.cxx"
- echo "${h}-jni.o: ${h}-jni.hxx"
j=`echo ${h} | tr '[_]' '[/]'`
- # Hack, try to trigger jni regen when jnixx changes
- echo "${h}-jni.hxx ${h}-jni.cxx: \$(jnixx_sources)"
- echo "${h}-jni.hxx ${h}-jni.cxx: | ${GEN_DIRNAME}.jar"
- echo "${h}-jni.hxx: $j.java"
- echo "${h}-jni.cxx: $j.java"
+ cat <<EOF
+JNIXX_BUILT += ${h}-jni.hxx
+JNIXX_BUILT += ${h}-jni.cxx
+${sources} += ${h}-jni.cxx
+${h}-jni.o: ${h}-jni.hxx
+# Require all code to be generated before compiling so that
+# any indirectly included headers are present.
+${h}-jni.o: | \$(JNIXX_BUILT)
+${h}-jni.hxx: $j.java
+${h}-jni.cxx: $j.java
+EOF
case $action in
include)
case "$suffix" in
diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog
index bbfb494..5cc2246 100644
--- a/frysk-sys/frysk/sys/ChangeLog
+++ b/frysk-sys/frysk/sys/ChangeLog
@@ -1,5 +1,7 @@
2008-05-02 Andrew Cagney <cagney@redhat.com>
+ * jni/Signal.cxx-sh: Use generated jnixx header.
+
* jni/PseudoTerminal.cxx: Ditto.
* jni/Signal.cxx-sh: Update; frysk.jni renamed to frysk.jnixx.
diff --git a/frysk-sys/frysk/sys/jni/Signal.cxx-sh b/frysk-sys/frysk/sys/jni/Signal.cxx-sh
index fa5ca6d..9022058 100644
--- a/frysk-sys/frysk/sys/jni/Signal.cxx-sh
+++ b/frysk-sys/frysk/sys/jni/Signal.cxx-sh
@@ -47,16 +47,12 @@ cat <<EOF
#include <sys/syscall.h>
#include <string.h>
-#include "frysk_sys_Signal.h"
+#include "frysk/sys/Signal-jni.hxx"
#include "frysk/jnixx/exceptions.hxx"
-JNIEXPORT void
-Java_frysk_sys_Signal_kill__IILjava_lang_String_2(JNIEnv *env,
- jclass klass,
- jint pid,
- jint sig,
- jstring name) {
+void
+frysk::sys::Signal::kill(JNIEnv *env, jint pid, jint sig, jstring name) {
errno = 0;
if (::kill(pid, sig) < 0) {
const char *sname = env->GetStringUTFChars(name, NULL);
@@ -68,9 +64,8 @@ Java_frysk_sys_Signal_kill__IILjava_lang_String_2(JNIEnv *env,
}
}
-JNIEXPORT void
-Java_frysk_sys_Signal_tkill(JNIEnv *env, jclass klass, jint tid, jint sig,
- jstring name) {
+void
+frysk::sys::Signal::tkill(JNIEnv *env, jint tid, jint sig, jstring name) {
errno = 0;
if (::syscall(__NR_tkill, tid, sig) < 0) {
const char *sname = env->GetStringUTFChars(name, NULL);
@@ -82,8 +77,8 @@ Java_frysk_sys_Signal_tkill(JNIEnv *env, jclass klass, jint tid, jint sig,
}
}
-JNIEXPORT void
-Java_frysk_sys_Signal_drain(JNIEnv *env, jclass, jint sig) {
+void
+frysk::sys::Signal::drain(JNIEnv *env, jint sig) {
struct sigaction oldAction = { };
struct sigaction newAction = { };
newAction.sa_handler = SIG_IGN;
@@ -99,24 +94,24 @@ Java_frysk_sys_Signal_drain(JNIEnv *env, jclass, jint sig) {
}
}
-JNIEXPORT jint
-Java_frysk_sys_Signal_nsig(JNIEnv *env, jclass) {
+jint
+frysk::sys::Signal::nsig(JNIEnv *env) {
return NSIG;
}
-JNIEXPORT jint
-Java_frysk_sys_Signal_rtMin(JNIEnv *env, jclass) {
+jint
+frysk::sys::Signal::rtMin(JNIEnv *env) {
return SIGRTMIN;
}
-JNIEXPORT jint
-Java_frysk_sys_Signal_rtMax(JNIEnv *env, jclass) {
+jint
+frysk::sys::Signal::rtMax(JNIEnv *env) {
return SIGRTMAX;
}
EOF
for sig in \
- hup int_1 quit ill abrt fpe kill__ segv pipe alrm term usr1 usr2 chld cont stop tstp ttin ttou \
+ hup int_ quit ill abrt fpe kill segv pipe alrm term usr1 usr2 chld cont stop tstp ttin ttou \
bus poll prof sys trap urg vtalrm xcpu xfsz \
iot emt stkflt io cld pwr info lost winch unused
do
@@ -124,7 +119,7 @@ do
cat <<EOF
jint
-Java_frysk_sys_Signal_${sig}(JNIEnv *, jclass) {
+frysk::sys::Signal::${sig}(JNIEnv *) {
#ifdef ${SIG}
return ${SIG};
#else
hooks/post-receive
--
frysk system monitor/debugger