This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] libjava: fix locale handling when sorting JNI methods
- From: Mike Frysinger <vapier at gentoo dot org>
- To: gcc-patches at gcc dot gnu dot org
- Cc: doko at ubuntu dot com, per at bothner dot com, aph at redhat dot com, tromey at redhat dot com
- Date: Thu, 22 Oct 2015 23:56:28 -0400
- Subject: [PATCH] libjava: fix locale handling when sorting JNI methods
- Authentication-results: sourceware.org; auth=none
When building under LANG=cs_CZ.UTF-8, the JNI method check fails:
/bin/bash ../../scripts/check_jni_methods.sh
Found a problem with the JNI methods declared and implemented.
(<) missing in implementation, (>) missing in header files
> Java_gnu_java_awt_peer_gtk_GtkClipboard_advertiseContent
> Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState
... lots more ...
While the sed commands are run under LC_ALL=C, the two sort commands are
not, and they end up producing unexpected output (for the test). Once we
run both under LC_ALL=C, the check passes. While we're here, we can also
combine latter the `sort|uniq` into `sort -u` to match the earlier code.
URL: https://bugs.gentoo.org/563710
Reported-by: Miroslav Åulc <fordfrog@gentoo.org>
2015-10-22 Mike Frysinger <vapier@gentoo.org>
* scripts/check_jni_methods.sh.in: Run sort with LC_ALL=C, and
combine `sort|uniq` into `sort -u`.
---
libjava/classpath/scripts/check_jni_methods.sh.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libjava/classpath/scripts/check_jni_methods.sh.in b/libjava/classpath/scripts/check_jni_methods.sh.in
index facf34b..18834f2 100644
--- a/libjava/classpath/scripts/check_jni_methods.sh.in
+++ b/libjava/classpath/scripts/check_jni_methods.sh.in
@@ -14,7 +14,7 @@ grep -h '^JNIEXPORT .* Java_' @abs_top_srcdir@/include/*.h | \
LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' > $TMPFILE
grep -h '^JNIEXPORT .* Java_' @abs_top_builddir@/include/*.h | \
LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE
-sort -u $TMPFILE > $TMPFILE4
+LC_ALL=C sort -u $TMPFILE > $TMPFILE4
mv $TMPFILE4 $TMPFILE
# Find all methods in the JNI C source files.
@@ -31,7 +31,7 @@ find @abs_top_srcdir@/native/jni -name \*.cpp | \
cut -f4 -d\ | \
LC_ALL=C sed -e 's,^\JNIEXPORT .* JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE2
mv $TMPFILE2 $TMPFILE3
-sort $TMPFILE3 | uniq > $TMPFILE2
+LC_ALL=C sort $TMPFILE3 > $TMPFILE2
rm $TMPFILE3
# Write temporary ignore file.
--
2.5.2