gettext/SOURCES/gettext-java17-2062407.patch
2023-11-07 12:23:38 +00:00

117 lines
5.3 KiB
Diff

diff -urp '--exclude=*~' gettext-0.21.orig/gettext-tools/gnulib-lib/javacomp.c gettext-0.21/gettext-tools/gnulib-lib/javacomp.c
--- gettext-0.21.orig/gettext-tools/gnulib-lib/javacomp.c 2022-03-09 12:22:05.000000000 +0900
+++ gettext-0.21/gettext-tools/gnulib-lib/javacomp.c 2022-03-20 18:23:53.636052943 +0900
@@ -116,9 +116,8 @@ default_target_version (void)
&& (java_version_cache[1] >= '2'
&& java_version_cache[1] <= '7')
&& java_version_cache[2] == '\0')
- /* Assume that these (not yet released) Java versions will behave
- like the preceding ones. */
- java_version_cache = "11";
+ /* It's one of the valid target version values. */
+ ;
else
java_version_cache = "1.1";
}
@@ -128,7 +127,7 @@ default_target_version (void)
/* ======================= Source version dependent ======================= */
/* Convert a source version to an index. */
-#define SOURCE_VERSION_BOUND 8 /* exclusive upper bound */
+#define SOURCE_VERSION_BOUND 14 /* exclusive upper bound */
static unsigned int
source_version_index (const char *source_version)
{
@@ -144,7 +143,7 @@ source_version_index (const char *source
else if (source_version[0] == '9' && source_version[1] == '\0')
return 5;
else if (source_version[0] == '1'
- && (source_version[1] >= '0' && source_version[1] <= '1')
+ && (source_version[1] >= '0' && source_version[1] <= '7')
&& source_version[2] == '\0')
return source_version[1] - '0' + 6;
error (EXIT_FAILURE, 0, _("invalid source_version argument to compile_java_class"));
@@ -171,6 +170,10 @@ get_goodcode_snippet (const char *source
return "class conftest { public void m() { var i = new Integer(0); } }\n";
if (strcmp (source_version, "11") == 0)
return "class conftest { Readable r = (var b) -> 0; }\n";
+ if (source_version[0] == '1'
+ && (source_version[1] >= '2' && source_version[1] <= '7')
+ && source_version[2] == '\0')
+ return "class conftest { Readable r = (var b) -> 0; }\n";
error (EXIT_FAILURE, 0, _("invalid source_version argument to compile_java_class"));
return NULL;
}
@@ -197,6 +200,10 @@ get_failcode_snippet (const char *source
return "class conftestfail { Readable r = (var b) -> 0; }\n";
if (strcmp (source_version, "11") == 0)
return NULL;
+ if (source_version[0] == '1'
+ && (source_version[1] >= '2' && source_version[1] <= '7')
+ && source_version[2] == '\0')
+ return NULL;
error (EXIT_FAILURE, 0, _("invalid source_version argument to compile_java_class"));
return NULL;
}
@@ -204,7 +211,7 @@ get_failcode_snippet (const char *source
/* ======================= Target version dependent ======================= */
/* Convert a target version to an index. */
-#define TARGET_VERSION_BOUND 11 /* exclusive upper bound */
+#define TARGET_VERSION_BOUND 17 /* exclusive upper bound */
static unsigned int
target_version_index (const char *target_version)
{
@@ -215,7 +222,7 @@ target_version_index (const char *target
else if (target_version[0] == '9' && target_version[1] == '\0')
return 8;
else if (target_version[0] == '1'
- && (target_version[1] >= '0' && target_version[1] <= '1')
+ && (target_version[1] >= '0' && target_version[1] <= '7')
&& target_version[2] == '\0')
return target_version[1] - '0' + 9;
error (EXIT_FAILURE, 0, _("invalid target_version argument to compile_java_class"));
@@ -245,10 +252,10 @@ corresponding_classfile_version (const c
return 52;
if (strcmp (target_version, "9") == 0)
return 53;
- if (strcmp (target_version, "10") == 0)
- return 54;
- if (strcmp (target_version, "11") == 0)
- return 55;
+ if (target_version[0] == '1'
+ && (target_version[1] >= '0' && target_version[1] <= '7')
+ && target_version[2] == '\0')
+ return target_version[1] + 54;
error (EXIT_FAILURE, 0, _("invalid target_version argument to compile_java_class"));
return 0;
}
@@ -2439,7 +2446,7 @@ compile_java_class (const char * const *
}
}
- error (0, 0, _("Java compiler not found, try installing gcj or set $JAVAC"));
+ /* error (0, 0, _("Java compiler not found, try installing gcj or set $JAVAC")); */
err = true;
done2:
diff -urp '--exclude=*~' gettext-0.21.orig/gettext-tools/src/write-java.c gettext-0.21/gettext-tools/src/write-java.c
--- gettext-0.21.orig/gettext-tools/src/write-java.c 2022-03-09 12:17:21.000000000 +0900
+++ gettext-0.21/gettext-tools/src/write-java.c 2022-03-20 18:26:06.941734979 +0900
@@ -1209,8 +1209,14 @@ msgdomain_write_java (message_list_ty *m
Java compilers create the class files in the source file's directory -
which is in a temporary directory in our case. */
java_sources[0] = java_file_name;
- if (compile_java_class (java_sources, 1, NULL, 0, "1.5", "1.6", directory,
+ if (1
+ && (compile_java_class (java_sources, 1, NULL, 0, "17", "17", directory,
+ true, false, true, verbose > 0)) /* assume JDK 17 */
+ && (compile_java_class (java_sources, 1, NULL, 0, "11", "11", directory,
+ true, false, true, verbose > 0)) /* assume JDK 11 */
+ && (compile_java_class (java_sources, 1, NULL, 0, "1.5", "1.6", directory,
true, false, true, verbose > 0))
+ )
{
if (!verbose)
error (0, 0,