pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/lang/kaffe
Module Name: pkgsrc
Committed By: dholland
Date: Sat Jan 3 03:57:09 UTC 2026
Modified Files:
pkgsrc/lang/kaffe: Makefile distinfo
Added Files:
pkgsrc/lang/kaffe/patches: patch-kaffe-kaffevm-exception.c
patch-kaffe-kaffevm-intrp-methodcalls.c
patch-kaffe-kaffevm-stringParsing.c
Log Message:
lang/kaffe: fix build with gcc14
Bump PKGREVISION (to 9) because the va_list abuse fixes materially
change the code.
To generate a diff of this commit:
cvs rdiff -u -r1.78 -r1.79 pkgsrc/lang/kaffe/Makefile
cvs rdiff -u -r1.38 -r1.39 pkgsrc/lang/kaffe/distinfo
cvs rdiff -u -r0 -r1.1 \
pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-exception.c \
pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-intrp-methodcalls.c \
pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-stringParsing.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/lang/kaffe/Makefile
diff -u pkgsrc/lang/kaffe/Makefile:1.78 pkgsrc/lang/kaffe/Makefile:1.79
--- pkgsrc/lang/kaffe/Makefile:1.78 Sun Nov 3 19:04:02 2019
+++ pkgsrc/lang/kaffe/Makefile Sat Jan 3 03:57:08 2026
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.78 2019/11/03 19:04:02 rillig Exp $
+# $NetBSD: Makefile,v 1.79 2026/01/03 03:57:08 dholland Exp $
#
.include "Makefile.common"
-PKGREVISION= 8
+PKGREVISION= 9
CONFLICTS+= kaffe-nox11-[0-9]*
Index: pkgsrc/lang/kaffe/distinfo
diff -u pkgsrc/lang/kaffe/distinfo:1.38 pkgsrc/lang/kaffe/distinfo:1.39
--- pkgsrc/lang/kaffe/distinfo:1.38 Tue Oct 26 10:51:40 2021
+++ pkgsrc/lang/kaffe/distinfo Sat Jan 3 03:57:08 2026
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.38 2021/10/26 10:51:40 nia Exp $
+$NetBSD: distinfo,v 1.39 2026/01/03 03:57:08 dholland Exp $
BLAKE2s (kaffe-1.1.7.tar.gz) = 3ea8550d1a4009c7cffe1d729eaad4068682118dab70cbd34ff60c1ddf6c6794
SHA512 (kaffe-1.1.7.tar.gz) = 1edab9d1a2ed96230b2342a1770d83d37834aa748b273ef197777aecb4a2fee7fc57843ce0b5f7809c90af2e04ef6b2251d4516e8d088942acb548e824d28bc2
@@ -17,6 +17,9 @@ SHA1 (patch-bc) = 43b2f18909e4939366afe9
SHA1 (patch-ca) = 0dc783a8e78016ef5e5e2f3392644690e3a2de9a
SHA1 (patch-cb) = c698b0a2e078cc035dfd7401617fc8d4c2ef5fbe
SHA1 (patch-cc) = df48315c9470d433e33fd80136d7bf7f60f83e1d
+SHA1 (patch-kaffe-kaffevm-exception.c) = 340ef01e37d39759b839f15127998eea7634a5d4
+SHA1 (patch-kaffe-kaffevm-intrp-methodcalls.c) = 7ba58d826cf5ff84980cf0fabe6f09ffb5ea83f8
+SHA1 (patch-kaffe-kaffevm-stringParsing.c) = 2b8cc3cbbf8f8a0aac981a61ee012faffffaf5ff
SHA1 (patch-libraries_clib_awt_X_imggif.c) = c4da4eb55282b5c616612182e247f2080f6f249f
SHA1 (patch-libraries_clib_awt_X_imgpng.c) = 0cb5d6ef9349c1f6e1ac1d5885f574f4e2a0aac9
SHA1 (patch-libraries_javalib_external_classpath_native_jni_gtk-peer_gnu__java__awt__peer__gtk__GdkTextLayout.c) = d3498337e52a735b14ff75dfaaf6dec7f9cabbef
Added files:
Index: pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-exception.c
diff -u /dev/null pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-exception.c:1.1
--- /dev/null Sat Jan 3 03:57:09 2026
+++ pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-exception.c Sat Jan 3 03:57:09 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-kaffe-kaffevm-exception.c,v 1.1 2026/01/03 03:57:09 dholland Exp $
+
+Fix build with gcc14.
+
+--- kaffe/kaffevm/exception.c~ 2006-03-15 20:11:12.000000000 +0000
++++ kaffe/kaffevm/exception.c
+@@ -421,7 +421,7 @@ dispatchException(Hjava_lang_Throwable*
+ /*
+ * if we reach the last jni frame, we're done
+ */
+- if (lastJniFrame && vmExcept_JNIContains(lastJniFrame, frame->fp)) {
++ if (lastJniFrame && vmExcept_JNIContains(lastJniFrame, (void *)frame->fp)) {
+ thread_data->exceptPtr = lastJniFrame;
+ vmExcept_jumpToHandler(lastJniFrame); /* doesn't return */
+ }
Index: pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-intrp-methodcalls.c
diff -u /dev/null pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-intrp-methodcalls.c:1.1
--- /dev/null Sat Jan 3 03:57:09 2026
+++ pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-intrp-methodcalls.c Sat Jan 3 03:57:09 2026
@@ -0,0 +1,23 @@
+$NetBSD: patch-kaffe-kaffevm-intrp-methodcalls.c,v 1.1 2026/01/03 03:57:09 dholland Exp $
+
+Hack to silence a gcc14 build error. Not at all clear if the code is
+correct; the hack just restores the status quo.
+
+--- kaffe/kaffevm/intrp/methodcalls.c~ 2006-03-04 17:51:04.000000000 +0000
++++ kaffe/kaffevm/intrp/methodcalls.c
+@@ -128,7 +128,14 @@ engine_callMethod (callMethodInfo *call)
+ if (func == NULL) {
+ throwError(&einfo);
+ }
+- setMethodCodeStart(meth, func);
++ /*
++ * XXX: func is the wrong pointer type, and
++ * this started failing with gcc14. Laundering
++ * through (void *) makes it compile on the
++ * assumption that whatever it's doing was
++ * intended... but it may not have been.
++ */
++ setMethodCodeStart(meth, (void *)func);
+ meth->accflags |= ACC_TRANSLATED;
+ }
+
Index: pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-stringParsing.c
diff -u /dev/null pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-stringParsing.c:1.1
--- /dev/null Sat Jan 3 03:57:09 2026
+++ pkgsrc/lang/kaffe/patches/patch-kaffe-kaffevm-stringParsing.c Sat Jan 3 03:57:09 2026
@@ -0,0 +1,304 @@
+$NetBSD: patch-kaffe-kaffevm-stringParsing.c,v 1.1 2026/01/03 03:57:09 dholland Exp $
+
+Patch up va_list abuse.
+
+--- kaffe/kaffevm/stringParsing.c~ 2005-08-10 18:56:01.000000000 +0000
++++ kaffe/kaffevm/stringParsing.c
+@@ -26,6 +26,10 @@
+ #define spMalloc(x) gc_malloc(x, KGC_ALLOC_FIXED)
+ #define spFree(x) gc_free(x)
+
++struct va_list_wrapper {
++ va_list valist;
++};
++
+ int cmpPStrStr(parsedString *ps, char *str)
+ {
+ char *ps_pos, *ps_end;
+@@ -307,7 +311,8 @@ int storeValue(parseErrorInfo *pe, parse
+
+ static
+ void skipBlock(stringScript *script, void **values,
+- stringScript **script_pos, int *values_pos, va_list *args)
++ stringScript **script_pos, int *values_pos,
++ struct va_list_wrapper *args)
+ {
+ int op, skip_depth = 0;
+ /* Used to quiet the compiler */
+@@ -320,7 +325,7 @@ void skipBlock(stringScript *script, voi
+ }
+ else
+ {
+- op = va_arg(*args, int);
++ op = va_arg(args->valist, int);
+ }
+ while( skip_depth >= 0 )
+ {
+@@ -341,7 +346,7 @@ void skipBlock(stringScript *script, voi
+ }
+ else
+ {
+- c_ptr = va_arg(*args, char *);
++ c_ptr = va_arg(args->valist, char *);
+ }
+ skip_depth++;
+ break;
+@@ -367,7 +372,7 @@ void skipBlock(stringScript *script, voi
+ if( values )
+ (*values_pos)++;
+ else
+- v_ptr = va_arg(*args, void *);
++ v_ptr = va_arg(args->valist, void *);
+ (*script_pos)++;
+ break;
+ case SPO_While:
+@@ -378,8 +383,8 @@ void skipBlock(stringScript *script, voi
+ }
+ else
+ {
+- c_ptr = va_arg(*args, char *);
+- c_ptr = va_arg(*args, char *);
++ c_ptr = va_arg(args->valist, char *);
++ c_ptr = va_arg(args->valist, char *);
+ }
+ break;
+ case SPO_Expect:
+@@ -390,7 +395,7 @@ void skipBlock(stringScript *script, voi
+ }
+ else
+ {
+- c_ptr = va_arg(*args, char *);
++ c_ptr = va_arg(args->valist, char *);
+ }
+ break;
+ case SPO_WhileSpace:
+@@ -405,8 +410,8 @@ void skipBlock(stringScript *script, voi
+ }
+ else
+ {
+- v_ptr = va_arg(*args, void *);
+- v_ptr = va_arg(*args, void *);
++ v_ptr = va_arg(args->valist, void *);
++ v_ptr = va_arg(args->valist, void *);
+ }
+ break;
+ case SPO_OneOf:
+@@ -417,7 +422,7 @@ void skipBlock(stringScript *script, voi
+ }
+ else
+ {
+- c_ptr = va_arg(*args, char *);
++ c_ptr = va_arg(args->valist, char *);
+ }
+ break;
+ default:
+@@ -428,7 +433,7 @@ void skipBlock(stringScript *script, voi
+ if( script )
+ op = (*script_pos)->op;
+ else
+- op = va_arg(*args, int);
++ op = va_arg(args->valist, int);
+ }
+ }
+ }
+@@ -439,7 +444,7 @@ char *skipChars(char *str, char *str_end
+ assert(str != 0);
+ assert(str_end != 0);
+
+- while( (str < str_end) && !isspace(*str) )
++ while( (str < str_end) && !isspace((unsigned char)*str) )
+ {
+ str++;
+ }
+@@ -452,7 +457,7 @@ char *skipSpace(char *str, char *str_end
+ assert(str != 0);
+ assert(str_end != 0);
+
+- while( (str < str_end) && isspace(*str) )
++ while( (str < str_end) && isspace((unsigned char)*str) )
+ {
+ str++;
+ }
+@@ -465,36 +470,17 @@ int parseString_private(parseErrorInfo *
+ stringScript *script,
+ void **values,
+ int op,
+- va_list args)
++ va_list args_in)
+ {
+ char *str, *str_end, *str_ptr = NULL, *term_ptr, *new_pos = NULL;
+ int values_pos = 0, len, retval = 1;
+ stringScript *script_pos = script;
+ parseValue pv;
+ parseStack ps;
++ struct va_list_wrapper args;
++
++ va_copy(args.valist, args_in);
+
+-#ifdef VA_LIST_IS_ARRAY
+- /* Use temporary copy of args on platforms where va_list
+- * is an array.
+- *
+- * We sometimes need to pass the address of a va_list to
+- * another function. C Standard mandates array types in
+- * prototypes to be silently coerced into pointers to base
+- * objects. If va_list is an array, this results in the
+- * receiving function expecting a pointer to a va_list array
+- * member, but getting a pointer to a pointer instead when
+- * we pass &args.
+- *
+- * Copying the va_list into a temporary buffer, and copying
+- * it back 'undoes' the coercion.
+- *
+- * A longer explanation was posted by Graeme Peterson on the
+- * GDB mailing list on 2002-04-15.
+- */
+-
+- va_list tmp_args;
+- VA_LIST_COPY (tmp_args, args);
+-#endif
+
+ assert(subString != NULL);
+
+@@ -514,7 +500,7 @@ int parseString_private(parseErrorInfo *
+ {
+ case SPO_End:
+ if( ps.top->op == SPO_Do )
+- VA_LIST_COPY(args, ps.top->args);
++ va_copy(args.valist, ps.top->args);
+ else
+ popFrame(&ps);
+ script_pos++;
+@@ -527,7 +513,7 @@ int parseString_private(parseErrorInfo *
+ }
+ else
+ {
+- str_ptr = va_arg(args, char *);
++ str_ptr = va_arg(args.valist, char *);
+ }
+ if( (str = strstr(str, str_ptr)) &&
+ (str < str_end) )
+@@ -568,7 +554,7 @@ int parseString_private(parseErrorInfo *
+ if( values )
+ pv.storage.p = values[values_pos++];
+ else
+- pv.storage.p = va_arg(args, void *);
++ pv.storage.p = va_arg(args.valist, void *);
+ script_pos++;
+ break;
+ case SPO_OneOf:
+@@ -580,7 +566,7 @@ int parseString_private(parseErrorInfo *
+ }
+ else
+ {
+- str_ptr = va_arg(args, char *);
++ str_ptr = va_arg(args.valist, char *);
+ }
+ if( (new_pos = strpbrk(str, str_ptr)) &&
+ (new_pos < str_end) )
+@@ -591,14 +577,11 @@ int parseString_private(parseErrorInfo *
+ op,
+ script_pos,
+ values_pos,
+- args);
++ args.valist);
+ str = new_pos;
+ }
+ else
+ {
+-#ifdef VA_LIST_IS_ARRAY
+- VA_LIST_COPY (args, tmp_args);
+-#endif
+ skipBlock(script, values,
+ &script_pos, &values_pos, &args);
+ }
+@@ -610,7 +593,7 @@ int parseString_private(parseErrorInfo *
+ op,
+ script_pos,
+ values_pos,
+- args);
++ args.valist);
+ script_pos++;
+ break;
+ case SPO_While:
+@@ -623,8 +606,8 @@ int parseString_private(parseErrorInfo *
+ }
+ else
+ {
+- str_ptr = va_arg(args, char *);
+- term_ptr = va_arg(args, char *);
++ str_ptr = va_arg(args.valist, char *);
++ term_ptr = va_arg(args.valist, char *);
+ }
+ if( (new_pos = strstr(str, str_ptr)) &&
+ (new_pos < str_end) )
+@@ -679,7 +662,7 @@ int parseString_private(parseErrorInfo *
+ }
+ else
+ {
+- str_ptr = va_arg(args, char *);
++ str_ptr = va_arg(args.valist, char *);
+ }
+ len = strlen(str_ptr);
+ new_pos = str;
+@@ -705,15 +688,11 @@ int parseString_private(parseErrorInfo *
+ op,
+ script_pos,
+ values_pos,
+- args);
++ args.valist);
+ str = new_pos + len;
+ }
+ else
+ {
+-#ifdef VA_LIST_IS_ARRAY
+- VA_LIST_COPY (args, tmp_args);
+-#endif
+-
+ skipBlock(script, values,
+ &script_pos, &values_pos, &args);
+ }
+@@ -735,8 +714,8 @@ int parseString_private(parseErrorInfo *
+ else
+ {
+ handler = (int (*)(void *))
+- va_arg(args, void *);
+- v_ptr = va_arg(args, void *);
++ va_arg(args.valist, void *);
++ v_ptr = va_arg(args.valist, void *);
+ }
+ if( !(retval = handler(v_ptr)) )
+ {
+@@ -755,14 +734,10 @@ int parseString_private(parseErrorInfo *
+ op,
+ script_pos,
+ values_pos,
+- args);
++ args.valist);
+ }
+ else
+ {
+-#ifdef VA_LIST_IS_ARRAY
+- VA_LIST_COPY (args, tmp_args);
+-#endif
+-
+ skipBlock(script, values,
+ &script_pos, &values_pos, &args);
+ }
+@@ -775,7 +750,7 @@ int parseString_private(parseErrorInfo *
+ if( script )
+ op = script_pos->op;
+ else
+- op = va_arg(args, int);
++ op = va_arg(args.valist, int);
+ }
+ if( retval && (str < str_end) )
+ {
+@@ -791,6 +766,7 @@ int parseString_private(parseErrorInfo *
+ }
+ }
+ cutFrames(&ps);
++ va_end(args.valist);
+ return( retval );
+ }
+
Home |
Main Index |
Thread Index |
Old Index