From 55ce9c52a2a92950c252e8d5a34a3b018448df11 Mon Sep 17 00:00:00 2001 From: Ranjit Mathew Date: Fri, 30 Apr 2004 18:19:37 +0000 Subject: [PATCH] re PR java/15133 (gcjh generates wrong method signatures) * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use additional option "-Wmissing-prototypes" for compiling C sources. Print actual filename for pass/fail rather than $name.c. * testsuite/libjava.jni/PR15133.java: New testcase file. * testsuite/libjava.jni/PR15133.c: Likewise. * testsuite/libjava.jni/PR15133.out: Likewise. Co-Authored-By: Tom Tromey From-SVN: r81358 --- libjava/ChangeLog | 10 ++++++++++ libjava/testsuite/libjava.jni/PR15133.c | 9 +++++++++ libjava/testsuite/libjava.jni/PR15133.java | 14 ++++++++++++++ libjava/testsuite/libjava.jni/PR15133.out | 1 + libjava/testsuite/libjava.jni/jni.exp | 15 ++++++++++++--- 5 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 libjava/testsuite/libjava.jni/PR15133.c create mode 100644 libjava/testsuite/libjava.jni/PR15133.java create mode 100644 libjava/testsuite/libjava.jni/PR15133.out diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d62ca38520b..e2968ca346f 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,13 @@ +2004-04-30 Ranjit Mathew + Tom Tromey + + * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use + additional option "-Wmissing-prototypes" for compiling C sources. + Print actual filename for pass/fail rather than $name.c. + * testsuite/libjava.jni/PR15133.java: New testcase file. + * testsuite/libjava.jni/PR15133.c: Likewise. + * testsuite/libjava.jni/PR15133.out: Likewise. + 2004-04-30 Roger Sayle * testsuite/libjava.lang/MathBuiltin.java: Add tests for acos, asin, diff --git a/libjava/testsuite/libjava.jni/PR15133.c b/libjava/testsuite/libjava.jni/PR15133.c new file mode 100644 index 00000000000..be5a48efa3b --- /dev/null +++ b/libjava/testsuite/libjava.jni/PR15133.c @@ -0,0 +1,9 @@ +#include +#include +#include "PR15133.h" + +JNIEXPORT void JNICALL +Java_PR15133_printIt (JNIEnv *env, jobject x, jint y) +{ + printf ("%d\n", y); +} diff --git a/libjava/testsuite/libjava.jni/PR15133.java b/libjava/testsuite/libjava.jni/PR15133.java new file mode 100644 index 00000000000..90435765b3d --- /dev/null +++ b/libjava/testsuite/libjava.jni/PR15133.java @@ -0,0 +1,14 @@ +/* Test case for PR java/15133 */ +public class PR15133 +{ + public void printIt (String dummy) { } + + public native void printIt (int num); + + public static void main (String[] args) + { + System.loadLibrary ("PR15133"); + + new PR15133( ).printIt( 1729); + } +} diff --git a/libjava/testsuite/libjava.jni/PR15133.out b/libjava/testsuite/libjava.jni/PR15133.out new file mode 100644 index 00000000000..32bb421c624 --- /dev/null +++ b/libjava/testsuite/libjava.jni/PR15133.out @@ -0,0 +1 @@ +1729 diff --git a/libjava/testsuite/libjava.jni/jni.exp b/libjava/testsuite/libjava.jni/jni.exp index 7dad519d415..a4bf4b80ee1 100644 --- a/libjava/testsuite/libjava.jni/jni.exp +++ b/libjava/testsuite/libjava.jni/jni.exp @@ -21,12 +21,21 @@ proc gcj_jni_compile_c_to_so {file {options {}}} { set so_extension "so" set so_flag "-shared" } - set name [file rootname [file tail $file]] + set filename [file tail $file] + set name [file rootname $filename] set soname lib${name}.${so_extension} lappend options "additional_flags=${so_flag} -fPIC" # Find the generated header. lappend options "additional_flags=-I. -I.." + + # Ensure that the generated header has correct prototypes. + set cfile [file rootname $file].c + if { [file exists $cfile]} { + # This option is only valid for C sources. + lappend options "additional_flags=-Wmissing-prototypes" + } + # Find jni.h. lappend options "additional_flags=-I$srcdir/../include" @@ -34,11 +43,11 @@ proc gcj_jni_compile_c_to_so {file {options {}}} { [target_compile $file $soname executable $options]] if {$x != ""} { verbose "target_compile failed: $x" 2 - fail "$name.c compilation" + fail "$filename compilation" return 0 } - pass "$name.c compilation" + pass "$filename compilation" return 1 } -- 2.30.2