openjdk team mailing list archive
-
openjdk team
-
Mailing list archive
-
Message #12386
Bug#864595: openjdk-9: Please update the patch for m68k support
Source: openjdk-9
Version: 9~b170-2
Severity: normal
Tags: patch
User: debian-68k@xxxxxxxxxxxxxxxx
Usertags: m68k
Hi!
Like openjdk-8 in #864180 [1], openjdk-9 needs an updated patch to
properly work on m68k. The attached patch comes again from Andreas
Schwab. I had to make two minor modifications to make it work as his
patch was untested.
This patch is the main bit that is necessary to fix openjdk-9 on
m68k. Two additional patches are required which are less related
to m68k and are both workarounds. I will file separate bug reports
for them.
Thanks,
Adrian
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz@xxxxxxxxxx
`. `' Freie Universitaet Berlin - glaubitz@xxxxxxxxxxxxxxxxxxx
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Index: jdk9-fe8466adaef8/common/autoconf/generated-configure.sh
===================================================================
--- jdk9-fe8466adaef8.orig/common/autoconf/generated-configure.sh
+++ jdk9-fe8466adaef8/common/autoconf/generated-configure.sh
@@ -15595,6 +15595,12 @@ test -n "$target_alias" &&
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=big
;;
+ m68k)
+ VAR_CPU=m68k
+ VAR_CPU_ARCH=m68k
+ VAR_CPU_BITS=32
+ VAR_CPU_ENDIAN=big
+ ;;
*)
as_fn_error $? "unsupported cpu $build_cpu" "$LINENO" 5
;;
@@ -15734,6 +15740,12 @@ $as_echo "$OPENJDK_BUILD_OS-$OPENJDK_BUI
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=big
;;
+ m68k)
+ VAR_CPU=m68k
+ VAR_CPU_ARCH=m68k
+ VAR_CPU_BITS=32
+ VAR_CPU_ENDIAN=big
+ ;;
*)
as_fn_error $? "unsupported cpu $host_cpu" "$LINENO" 5
;;
Index: jdk9-fe8466adaef8/common/autoconf/platform.m4
===================================================================
--- jdk9-fe8466adaef8.orig/common/autoconf/platform.m4
+++ jdk9-fe8466adaef8/common/autoconf/platform.m4
@@ -96,6 +96,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=big
;;
+ m68k)
+ VAR_CPU=m68k
+ VAR_CPU_ARCH=m68k
+ VAR_CPU_BITS=32
+ VAR_CPU_ENDIAN=big
+ ;;
*)
AC_MSG_ERROR([unsupported cpu $1])
;;
Index: jdk9-fe8466adaef8/hotspot/src/os/linux/vm/os_linux.cpp
===================================================================
--- jdk9-fe8466adaef8.orig/hotspot/src/os/linux/vm/os_linux.cpp
+++ jdk9-fe8466adaef8/hotspot/src/os/linux/vm/os_linux.cpp
@@ -2214,6 +2214,8 @@ const char* search_string = "cpu";
const char* search_string = "processor";
#elif defined(SPARC)
const char* search_string = "cpu";
+#elif defined(M68K)
+const char* search_string = "CPU";
#else
const char* search_string = "Processor";
#endif
Index: jdk9-fe8466adaef8/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.hpp
===================================================================
--- jdk9-fe8466adaef8.orig/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.hpp
+++ jdk9-fe8466adaef8/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.hpp
@@ -36,7 +36,7 @@
* __m68k_cmpxchg
*
* Atomically store newval in *ptr if *ptr is equal to oldval for user space.
- * Returns newval on success and oldval if no exchange happened.
+ * Returns oldval on success and *ptr if no exchange happened.
* This implementation is processor specific and works on
* 68020 68030 68040 and 68060.
*
@@ -60,40 +60,48 @@ static inline int __m68k_cmpxchg(int old
static inline int m68k_compare_and_swap(volatile int *ptr,
int oldval,
int newval) {
+ int prev = *ptr;
for (;;) {
- int prev = *ptr;
+ int newprev;
if (prev != oldval)
return prev;
- if (__m68k_cmpxchg (prev, newval, ptr) == newval)
+ newprev = __m68k_cmpxchg (prev, newval, ptr);
+ if (newprev == prev)
// Success.
return prev;
// We failed even though prev == oldval. Try again.
+ prev = newprev;
}
}
/* Atomically add an int to memory. */
static inline int m68k_add_and_fetch(volatile int *ptr, int add_value) {
+ int prev = *ptr;
for (;;) {
// Loop until success.
+ int newprev;
- int prev = *ptr;
-
- if (__m68k_cmpxchg (prev, prev + add_value, ptr) == prev + add_value)
+ newprev = __m68k_cmpxchg (prev, prev + add_value, ptr);
+ if (newprev == prev)
return prev + add_value;
+ prev = newprev;
}
}
/* Atomically write VALUE into `*PTR' and returns the previous
contents of `*PTR'. */
static inline int m68k_lock_test_and_set(volatile int *ptr, int newval) {
+ int prev = *ptr;
for (;;) {
// Loop until success.
- int prev = *ptr;
+ int newprev;
- if (__m68k_cmpxchg (prev, newval, ptr) == prev)
+ newprev = __m68k_cmpxchg (prev, newval, ptr);
+ if (newprev == prev)
return prev;
+ prev = newprev;
}
}
#endif // M68K
Index: jdk9-fe8466adaef8/hotspot/src/share/vm/memory/allocation.hpp
===================================================================
--- jdk9-fe8466adaef8.orig/hotspot/src/share/vm/memory/allocation.hpp
+++ jdk9-fe8466adaef8/hotspot/src/share/vm/memory/allocation.hpp
@@ -182,7 +182,7 @@ template <MEMFLAGS F> class CHeapObj ALL
throw();
void operator delete(void* p);
void operator delete [] (void* p);
-};
+} __attribute__ ((aligned (4)));
// Base class for objects allocated on the stack only.
// Calling new or delete will result in fatal error.
@@ -196,7 +196,7 @@ class StackObj ALLOCATION_SUPER_CLASS_SP
#endif
void operator delete(void* p);
void operator delete [](void* p);
-};
+} __attribute__ ((aligned (4)));
// Base class for objects used as value objects.
// Calling new or delete will result in fatal error.
@@ -222,7 +222,7 @@ class _ValueObj {
void operator delete(void* p);
void* operator new [](size_t size) throw();
void operator delete [](void* p);
-};
+} __attribute__ ((aligned (4)));
// Base class for objects stored in Metaspace.
@@ -602,7 +602,7 @@ class ResourceObj ALLOCATION_SUPER_CLASS
void operator delete(void* p);
void operator delete [](void* p);
-};
+} __attribute__ ((aligned (4)));
// One of the following macros must be used when allocating an array
// or object to determine whether it should reside in the C heap on in
Index: jdk9-fe8466adaef8/hotspot/src/share/vm/oops/constMethod.hpp
===================================================================
--- jdk9-fe8466adaef8.orig/hotspot/src/share/vm/oops/constMethod.hpp
+++ jdk9-fe8466adaef8/hotspot/src/share/vm/oops/constMethod.hpp
@@ -547,6 +547,6 @@ private:
// Verify
void verify_on(outputStream* st);
-};
+} __attribute__ ((aligned (4)));
#endif // SHARE_VM_OOPS_CONSTMETHODOOP_HPP
Index: jdk9-fe8466adaef8/hotspot/src/share/vm/oops/oop.hpp
===================================================================
--- jdk9-fe8466adaef8.orig/hotspot/src/share/vm/oops/oop.hpp
+++ jdk9-fe8466adaef8/hotspot/src/share/vm/oops/oop.hpp
@@ -390,6 +390,6 @@ class oopDesc {
assert(has_klass_gap(), "only applicable to compressed klass pointers");
return klass_offset_in_bytes() + sizeof(narrowKlass);
}
-};
+} __attribute__ ((aligned (4)));
#endif // SHARE_VM_OOPS_OOP_HPP
Index: jdk9-fe8466adaef8/jdk/make/data/x11wrappergen/sizes.32-linux-m68k
===================================================================
--- /dev/null
+++ jdk9-fe8466adaef8/jdk/make/data/x11wrappergen/sizes.32-linux-m68k
@@ -0,0 +1,1017 @@
+long 4
+int 4
+short 2
+ptr 4
+Bool 4
+Atom 4
+Window 4
+XExtData.number 0
+XExtData.next 4
+XExtData.free_private 8
+XExtData.private_data 12
+XExtData 16
+XIMStringConversionCallbackStruct.position 0
+XIMStringConversionCallbackStruct.direction 2
+XIMStringConversionCallbackStruct.operation 6
+XIMStringConversionCallbackStruct.factor 8
+XIMStringConversionCallbackStruct.text 10
+XIMStringConversionCallbackStruct 14
+XkbNewKeyboardNotifyEvent.type 0
+XkbNewKeyboardNotifyEvent.serial 4
+XkbNewKeyboardNotifyEvent.send_event 8
+XkbNewKeyboardNotifyEvent.display 12
+XkbNewKeyboardNotifyEvent.time 16
+XkbNewKeyboardNotifyEvent.xkb_type 20
+XkbNewKeyboardNotifyEvent.device 24
+XkbNewKeyboardNotifyEvent.old_device 28
+XkbNewKeyboardNotifyEvent.min_key_code 32
+XkbNewKeyboardNotifyEvent.max_key_code 36
+XkbNewKeyboardNotifyEvent.old_min_key_code 40
+XkbNewKeyboardNotifyEvent.old_max_key_code 44
+XkbNewKeyboardNotifyEvent.changed 48
+XkbNewKeyboardNotifyEvent.req_major 52
+XkbNewKeyboardNotifyEvent.req_minor 53
+XkbNewKeyboardNotifyEvent 54
+XTimeCoord.time 0
+XTimeCoord.x 4
+XTimeCoord.y 6
+XTimeCoord 8
+XkbCompatMapNotifyEvent.type 0
+XkbCompatMapNotifyEvent.serial 4
+XkbCompatMapNotifyEvent.send_event 8
+XkbCompatMapNotifyEvent.display 12
+XkbCompatMapNotifyEvent.time 16
+XkbCompatMapNotifyEvent.xkb_type 20
+XkbCompatMapNotifyEvent.device 24
+XkbCompatMapNotifyEvent.changed_groups 28
+XkbCompatMapNotifyEvent.first_si 32
+XkbCompatMapNotifyEvent.num_si 36
+XkbCompatMapNotifyEvent.num_total_si 40
+XkbCompatMapNotifyEvent 44
+XIMStatusDrawCallbackStruct.type 0
+XIMStatusDrawCallbackStruct.data 4
+XIMStatusDrawCallbackStruct 8
+XKeyboardControl.key_click_percent 0
+XKeyboardControl.bell_percent 4
+XKeyboardControl.bell_pitch 8
+XKeyboardControl.bell_duration 12
+XKeyboardControl.led 16
+XKeyboardControl.led_mode 20
+XKeyboardControl.key 24
+XKeyboardControl.auto_repeat_mode 28
+XKeyboardControl 32
+XSelectionClearEvent.type 0
+XSelectionClearEvent.serial 4
+XSelectionClearEvent.send_event 8
+XSelectionClearEvent.display 12
+XSelectionClearEvent.window 16
+XSelectionClearEvent.selection 20
+XSelectionClearEvent.time 24
+XSelectionClearEvent 28
+XWindowChanges.x 0
+XWindowChanges.y 4
+XWindowChanges.width 8
+XWindowChanges.height 12
+XWindowChanges.border_width 16
+XWindowChanges.sibling 20
+XWindowChanges.stack_mode 24
+XWindowChanges 28
+XIMPreeditCaretCallbackStruct.position 0
+XIMPreeditCaretCallbackStruct.direction 4
+XIMPreeditCaretCallbackStruct.style 8
+XIMPreeditCaretCallbackStruct 12
+XOMCharSetList.charset_count 0
+XOMCharSetList.charset_list 4
+XOMCharSetList 8
+XOMFontInfo.num_font 0
+XOMFontInfo.font_struct_list 4
+XOMFontInfo.font_name_list 8
+XOMFontInfo 12
+AwtScreenData.numConfigs 0
+AwtScreenData.root 4
+AwtScreenData.whitepixel 8
+AwtScreenData.blackpixel 12
+AwtScreenData.defaultConfig 16
+AwtScreenData.configs 20
+AwtScreenData 24
+XIMHotKeyTrigger.keysym 0
+XIMHotKeyTrigger.modifier 4
+XIMHotKeyTrigger.modifier_mask 8
+XIMHotKeyTrigger 12
+XCirculateEvent.type 0
+XCirculateEvent.serial 4
+XCirculateEvent.send_event 8
+XCirculateEvent.display 12
+XCirculateEvent.event 16
+XCirculateEvent.window 20
+XCirculateEvent.place 24
+XCirculateEvent 28
+Screen.ext_data 0
+Screen.display 4
+Screen.root 8
+Screen.width 12
+Screen.height 16
+Screen.mwidth 20
+Screen.mheight 24
+Screen.ndepths 28
+Screen.depths 32
+Screen.root_depth 36
+Screen.root_visual 40
+Screen.default_gc 44
+Screen.cmap 48
+Screen.white_pixel 52
+Screen.black_pixel 56
+Screen.max_maps 60
+Screen.min_maps 64
+Screen.backing_store 68
+Screen.save_unders 72
+Screen.root_input_mask 76
+Screen 80
+XMapRequestEvent.type 0
+XMapRequestEvent.serial 4
+XMapRequestEvent.send_event 8
+XMapRequestEvent.display 12
+XMapRequestEvent.parent 16
+XMapRequestEvent.window 20
+XMapRequestEvent 24
+XIMText.length 0
+XIMText.feedback 2
+XIMText.encoding_is_wchar 6
+XIMText.string 10
+XIMText 14
+XGraphicsExposeEvent.type 0
+XGraphicsExposeEvent.serial 4
+XGraphicsExposeEvent.send_event 8
+XGraphicsExposeEvent.display 12
+XGraphicsExposeEvent.drawable 16
+XGraphicsExposeEvent.x 20
+XGraphicsExposeEvent.y 24
+XGraphicsExposeEvent.width 28
+XGraphicsExposeEvent.height 32
+XGraphicsExposeEvent.count 36
+XGraphicsExposeEvent.major_code 40
+XGraphicsExposeEvent.minor_code 44
+XGraphicsExposeEvent 48
+XEvent.type 0
+XEvent.xany 0
+XEvent.xkey 0
+XEvent.xbutton 0
+XEvent.xmotion 0
+XEvent.xcrossing 0
+XEvent.xfocus 0
+XEvent.xexpose 0
+XEvent.xgraphicsexpose 0
+XEvent.xnoexpose 0
+XEvent.xvisibility 0
+XEvent.xcreatewindow 0
+XEvent.xdestroywindow 0
+XEvent.xunmap 0
+XEvent.xmap 0
+XEvent.xmaprequest 0
+XEvent.xreparent 0
+XEvent.xconfigure 0
+XEvent.xgravity 0
+XEvent.xresizerequest 0
+XEvent.xconfigurerequest 0
+XEvent.xcirculate 0
+XEvent.xcirculaterequest 0
+XEvent.xproperty 0
+XEvent.xselectionclear 0
+XEvent.xselectionrequest 0
+XEvent.xselection 0
+XEvent.xcolormap 0
+XEvent.xclient 0
+XEvent.xmapping 0
+XEvent.xerror 0
+XEvent.xkeymap 0
+XEvent.pad 0
+XEvent 96
+XRenderDirectFormat.red 0
+XRenderDirectFormat.redMask 2
+XRenderDirectFormat.green 4
+XRenderDirectFormat.greenMask 6
+XRenderDirectFormat.blue 8
+XRenderDirectFormat.blueMask 10
+XRenderDirectFormat.alpha 12
+XRenderDirectFormat.alphaMask 14
+XRenderDirectFormat 16
+ColorData.awt_Colors 0
+ColorData.awt_numICMcolors 4
+ColorData.awt_icmLUT 8
+ColorData.awt_icmLUT2Colors 12
+ColorData.img_grays 16
+ColorData.img_clr_tbl 20
+ColorData.img_oda_red 24
+ColorData.img_oda_green 28
+ColorData.img_oda_blue 32
+ColorData.pGrayInverseLutData 36
+ColorData.representsPrimaries 44
+ColorData.screendata 40
+ColorData 48
+XFontStruct.ext_data 0
+XFontStruct.fid 4
+XFontStruct.direction 8
+XFontStruct.min_char_or_byte2 12
+XFontStruct.max_char_or_byte2 16
+XFontStruct.min_byte1 20
+XFontStruct.max_byte1 24
+XFontStruct.all_chars_exist 28
+XFontStruct.n_properties 36
+XFontStruct.properties 40
+XFontStruct.min_bounds 44
+XFontStruct.max_bounds 56
+XFontStruct.per_char 68
+XFontStruct.ascent 72
+XFontStruct.descent 76
+XFontStruct 80
+XExtCodes.extension 0
+XExtCodes.major_opcode 4
+XExtCodes.first_event 8
+XExtCodes.first_error 12
+XExtCodes 16
+XFontSetExtents.max_ink_extent 0
+XFontSetExtents.max_logical_extent 8
+XFontSetExtents 16
+XSelectionEvent.type 0
+XSelectionEvent.serial 4
+XSelectionEvent.send_event 8
+XSelectionEvent.display 12
+XSelectionEvent.requestor 16
+XSelectionEvent.selection 20
+XSelectionEvent.target 24
+XSelectionEvent.property 28
+XSelectionEvent.time 32
+XSelectionEvent 36
+XArc.x 0
+XArc.y 2
+XArc.width 4
+XArc.height 6
+XArc.angle1 8
+XArc.angle2 10
+XArc 12
+XErrorEvent.type 0
+XErrorEvent.display 4
+XErrorEvent.resourceid 8
+XErrorEvent.serial 12
+XErrorEvent.error_code 16
+XErrorEvent.request_code 17
+XErrorEvent.minor_code 18
+XErrorEvent 20
+XConfigureRequestEvent.type 0
+XConfigureRequestEvent.serial 4
+XConfigureRequestEvent.send_event 8
+XConfigureRequestEvent.display 12
+XConfigureRequestEvent.parent 16
+XConfigureRequestEvent.window 20
+XConfigureRequestEvent.x 24
+XConfigureRequestEvent.y 28
+XConfigureRequestEvent.width 32
+XConfigureRequestEvent.height 36
+XConfigureRequestEvent.border_width 40
+XConfigureRequestEvent.above 44
+XConfigureRequestEvent.detail 48
+XConfigureRequestEvent.value_mask 52
+XConfigureRequestEvent 56
+ScreenFormat.ext_data 0
+ScreenFormat.depth 4
+ScreenFormat.bits_per_pixel 8
+ScreenFormat.scanline_pad 12
+ScreenFormat 16
+XButtonEvent.type 0
+XButtonEvent.serial 4
+XButtonEvent.send_event 8
+XButtonEvent.display 12
+XButtonEvent.window 16
+XButtonEvent.root 20
+XButtonEvent.subwindow 24
+XButtonEvent.time 28
+XButtonEvent.x 32
+XButtonEvent.y 36
+XButtonEvent.x_root 40
+XButtonEvent.y_root 44
+XButtonEvent.state 48
+XButtonEvent.button 52
+XButtonEvent.same_screen 56
+XButtonEvent 60
+XFontProp.name 0
+XFontProp.card32 4
+XFontProp 8
+XIMValuesList.count_values 0
+XIMValuesList.supported_values 2
+XIMValuesList 6
+XKeymapEvent.type 0
+XKeymapEvent.serial 4
+XKeymapEvent.send_event 8
+XKeymapEvent.display 12
+XKeymapEvent.window 16
+XKeymapEvent.key_vector 20
+XKeymapEvent 52
+XTextItem16.chars 0
+XTextItem16.nchars 4
+XTextItem16.delta 8
+XTextItem16.font 12
+XTextItem16 16
+XIMPreeditDrawCallbackStruct.caret 0
+XIMPreeditDrawCallbackStruct.chg_first 4
+XIMPreeditDrawCallbackStruct.chg_length 8
+XIMPreeditDrawCallbackStruct.text 12
+XIMPreeditDrawCallbackStruct 16
+XVisualInfo.visual 0
+XVisualInfo.visualid 4
+XVisualInfo.screen 8
+XVisualInfo.depth 12
+XVisualInfo.class 16
+XVisualInfo.red_mask 20
+XVisualInfo.green_mask 24
+XVisualInfo.blue_mask 28
+XVisualInfo.colormap_size 32
+XVisualInfo.bits_per_rgb 36
+XVisualInfo 40
+XkbControlsNotifyEvent.type 0
+XkbControlsNotifyEvent.serial 4
+XkbControlsNotifyEvent.send_event 8
+XkbControlsNotifyEvent.display 12
+XkbControlsNotifyEvent.time 16
+XkbControlsNotifyEvent.xkb_type 20
+XkbControlsNotifyEvent.device 24
+XkbControlsNotifyEvent.changed_ctrls 28
+XkbControlsNotifyEvent.enabled_ctrls 32
+XkbControlsNotifyEvent.enabled_ctrl_changes 36
+XkbControlsNotifyEvent.num_groups 40
+XkbControlsNotifyEvent.keycode 44
+XkbControlsNotifyEvent.event_type 45
+XkbControlsNotifyEvent.req_major 46
+XkbControlsNotifyEvent.req_minor 47
+XkbControlsNotifyEvent 48
+PropMwmHints.flags 0
+PropMwmHints.functions 4
+PropMwmHints.decorations 8
+PropMwmHints.inputMode 12
+PropMwmHints.status 16
+PropMwmHints 20
+XClientMessageEvent.type 0
+XClientMessageEvent.serial 4
+XClientMessageEvent.send_event 8
+XClientMessageEvent.display 12
+XClientMessageEvent.window 16
+XClientMessageEvent.message_type 20
+XClientMessageEvent.format 24
+XClientMessageEvent.data 28
+XClientMessageEvent 48
+XAnyEvent.type 0
+XAnyEvent.serial 4
+XAnyEvent.send_event 8
+XAnyEvent.display 12
+XAnyEvent.window 16
+XAnyEvent 20
+XkbIndicatorNotifyEvent.type 0
+XkbIndicatorNotifyEvent.serial 4
+XkbIndicatorNotifyEvent.send_event 8
+XkbIndicatorNotifyEvent.display 12
+XkbIndicatorNotifyEvent.time 16
+XkbIndicatorNotifyEvent.xkb_type 20
+XkbIndicatorNotifyEvent.device 24
+XkbIndicatorNotifyEvent.changed 28
+XkbIndicatorNotifyEvent.state 32
+XkbIndicatorNotifyEvent 36
+XIMPreeditStateNotifyCallbackStruct.state 0
+XIMPreeditStateNotifyCallbackStruct 4
+XkbAnyEvent.type 0
+XkbAnyEvent.serial 4
+XkbAnyEvent.send_event 8
+XkbAnyEvent.display 12
+XkbAnyEvent.time 16
+XkbAnyEvent.xkb_type 20
+XkbAnyEvent.device 24
+XkbAnyEvent 28
+XMotionEvent.type 0
+XMotionEvent.serial 4
+XMotionEvent.send_event 8
+XMotionEvent.display 12
+XMotionEvent.window 16
+XMotionEvent.root 20
+XMotionEvent.subwindow 24
+XMotionEvent.time 28
+XMotionEvent.x 32
+XMotionEvent.y 36
+XMotionEvent.x_root 40
+XMotionEvent.y_root 44
+XMotionEvent.state 48
+XMotionEvent.is_hint 52
+XMotionEvent.same_screen 54
+XMotionEvent 58
+XIMHotKeyTriggers.num_hot_key 0
+XIMHotKeyTriggers.key 4
+XIMHotKeyTriggers 8
+XIMStyles.count_styles 0
+XIMStyles.supported_styles 2
+XIMStyles 6
+XkbExtensionDeviceNotifyEvent.type 0
+XkbExtensionDeviceNotifyEvent.serial 4
+XkbExtensionDeviceNotifyEvent.send_event 8
+XkbExtensionDeviceNotifyEvent.display 12
+XkbExtensionDeviceNotifyEvent.time 16
+XkbExtensionDeviceNotifyEvent.xkb_type 20
+XkbExtensionDeviceNotifyEvent.device 24
+XkbExtensionDeviceNotifyEvent.reason 28
+XkbExtensionDeviceNotifyEvent.supported 32
+XkbExtensionDeviceNotifyEvent.unsupported 36
+XkbExtensionDeviceNotifyEvent.first_btn 40
+XkbExtensionDeviceNotifyEvent.num_btns 44
+XkbExtensionDeviceNotifyEvent.leds_defined 48
+XkbExtensionDeviceNotifyEvent.led_state 52
+XkbExtensionDeviceNotifyEvent.led_class 56
+XkbExtensionDeviceNotifyEvent.led_id 60
+XkbExtensionDeviceNotifyEvent 64
+XwcTextItem.chars 0
+XwcTextItem.nchars 4
+XwcTextItem.delta 8
+XwcTextItem.font_set 12
+XwcTextItem 16
+XClassHint.res_name 0
+XClassHint.res_class 4
+XClassHint 8
+XChar2b.byte1 0
+XChar2b.byte2 1
+XChar2b 2
+XSetWindowAttributes.background_pixmap 0
+XSetWindowAttributes.background_pixel 4
+XSetWindowAttributes.border_pixmap 8
+XSetWindowAttributes.border_pixel 12
+XSetWindowAttributes.bit_gravity 16
+XSetWindowAttributes.win_gravity 20
+XSetWindowAttributes.backing_store 24
+XSetWindowAttributes.backing_planes 28
+XSetWindowAttributes.backing_pixel 32
+XSetWindowAttributes.save_under 36
+XSetWindowAttributes.event_mask 40
+XSetWindowAttributes.do_not_propagate_mask 44
+XSetWindowAttributes.override_redirect 48
+XSetWindowAttributes.colormap 52
+XSetWindowAttributes.cursor 56
+XSetWindowAttributes 60
+XRenderPictFormat.id 0
+XRenderPictFormat.type 4
+XRenderPictFormat.depth 8
+XRenderPictFormat.direct 12
+XRenderPictFormat.colormap 28
+XRenderPictFormat 32
+XReparentEvent.type 0
+XReparentEvent.serial 4
+XReparentEvent.send_event 8
+XReparentEvent.display 12
+XReparentEvent.event 16
+XReparentEvent.window 20
+XReparentEvent.parent 24
+XReparentEvent.x 28
+XReparentEvent.y 32
+XReparentEvent.override_redirect 36
+XReparentEvent 40
+XCirculateRequestEvent.type 0
+XCirculateRequestEvent.serial 4
+XCirculateRequestEvent.send_event 8
+XCirculateRequestEvent.display 12
+XCirculateRequestEvent.parent 16
+XCirculateRequestEvent.window 20
+XCirculateRequestEvent.place 24
+XCirculateRequestEvent 28
+XImage.width 0
+XImage.height 4
+XImage.xoffset 8
+XImage.format 12
+XImage.data 16
+XImage.byte_order 20
+XImage.bitmap_unit 24
+XImage.bitmap_bit_order 28
+XImage.bitmap_pad 32
+XImage.depth 36
+XImage.bytes_per_line 40
+XImage.bits_per_pixel 44
+XImage.red_mask 48
+XImage.green_mask 52
+XImage.blue_mask 56
+XImage.obdata 60
+XImage.f.create_image 64
+XImage.f.destroy_image 68
+XImage.f.get_pixel 72
+XImage.f.put_pixel 76
+XImage.f.sub_image 80
+XImage.f.add_pixel 84
+XImage 88
+XKeyEvent.type 0
+XKeyEvent.serial 4
+XKeyEvent.send_event 8
+XKeyEvent.display 12
+XKeyEvent.window 16
+XKeyEvent.root 20
+XKeyEvent.subwindow 24
+XKeyEvent.time 28
+XKeyEvent.x 32
+XKeyEvent.y 36
+XKeyEvent.x_root 40
+XKeyEvent.y_root 44
+XKeyEvent.state 48
+XKeyEvent.keycode 52
+XKeyEvent.same_screen 56
+XKeyEvent 60
+XkbActionMessageEvent.type 0
+XkbActionMessageEvent.serial 4
+XkbActionMessageEvent.send_event 8
+XkbActionMessageEvent.display 12
+XkbActionMessageEvent.time 16
+XkbActionMessageEvent.xkb_type 20
+XkbActionMessageEvent.device 24
+XkbActionMessageEvent.keycode 28
+XkbActionMessageEvent.press 30
+XkbActionMessageEvent.key_event_follows 34
+XkbActionMessageEvent.group 38
+XkbActionMessageEvent.mods 42
+XkbActionMessageEvent.message 46
+XkbActionMessageEvent 54
+XdbeSwapInfo.swap_window 0
+XdbeSwapInfo.swap_action 4
+XdbeSwapInfo 6
+XTextItem.chars 0
+XTextItem.nchars 4
+XTextItem.delta 8
+XTextItem.font 12
+XTextItem 16
+XModifierKeymap.max_keypermod 0
+XModifierKeymap.modifiermap 4
+XModifierKeymap 8
+XCharStruct.lbearing 0
+XCharStruct.rbearing 2
+XCharStruct.width 4
+XCharStruct.ascent 6
+XCharStruct.descent 8
+XCharStruct.attributes 10
+XCharStruct 12
+XGravityEvent.type 0
+XGravityEvent.serial 4
+XGravityEvent.send_event 8
+XGravityEvent.display 12
+XGravityEvent.event 16
+XGravityEvent.window 20
+XGravityEvent.x 24
+XGravityEvent.y 28
+XGravityEvent 32
+Visual.ext_data 0
+Visual.visualid 4
+Visual.class 8
+Visual.red_mask 12
+Visual.green_mask 16
+Visual.blue_mask 20
+Visual.bits_per_rgb 24
+Visual.map_entries 28
+Visual 32
+XOMOrientation.num_orientation 0
+XOMOrientation.orientation 4
+XOMOrientation 8
+XkbAccessXNotifyEvent.type 0
+XkbAccessXNotifyEvent.serial 4
+XkbAccessXNotifyEvent.send_event 8
+XkbAccessXNotifyEvent.display 12
+XkbAccessXNotifyEvent.time 16
+XkbAccessXNotifyEvent.xkb_type 20
+XkbAccessXNotifyEvent.device 24
+XkbAccessXNotifyEvent.detail 28
+XkbAccessXNotifyEvent.keycode 32
+XkbAccessXNotifyEvent.sk_delay 36
+XkbAccessXNotifyEvent.debounce_delay 40
+XkbAccessXNotifyEvent 44
+XWindowAttributes.x 0
+XWindowAttributes.y 4
+XWindowAttributes.width 8
+XWindowAttributes.height 12
+XWindowAttributes.border_width 16
+XWindowAttributes.depth 20
+XWindowAttributes.visual 24
+XWindowAttributes.root 28
+XWindowAttributes.class 32
+XWindowAttributes.bit_gravity 36
+XWindowAttributes.win_gravity 40
+XWindowAttributes.backing_store 44
+XWindowAttributes.backing_planes 48
+XWindowAttributes.backing_pixel 52
+XWindowAttributes.save_under 56
+XWindowAttributes.colormap 60
+XWindowAttributes.map_installed 64
+XWindowAttributes.map_state 68
+XWindowAttributes.all_event_masks 72
+XWindowAttributes.your_event_mask 76
+XWindowAttributes.do_not_propagate_mask 80
+XWindowAttributes.override_redirect 84
+XWindowAttributes.screen 88
+XWindowAttributes 92
+XmbTextItem.chars 0
+XmbTextItem.nchars 4
+XmbTextItem.delta 8
+XmbTextItem.font_set 12
+XmbTextItem 16
+XMappingEvent.type 0
+XMappingEvent.serial 4
+XMappingEvent.send_event 8
+XMappingEvent.display 12
+XMappingEvent.window 16
+XMappingEvent.request 20
+XMappingEvent.first_keycode 24
+XMappingEvent.count 28
+XMappingEvent 32
+XSizeHints.flags 0
+XSizeHints.x 4
+XSizeHints.y 8
+XSizeHints.width 12
+XSizeHints.height 16
+XSizeHints.min_width 20
+XSizeHints.min_height 24
+XSizeHints.max_width 28
+XSizeHints.max_height 32
+XSizeHints.width_inc 36
+XSizeHints.height_inc 40
+XSizeHints.min_aspect.x 44
+XSizeHints.min_aspect.y 48
+XSizeHints.max_aspect.x 52
+XSizeHints.max_aspect.y 56
+XSizeHints.base_width 60
+XSizeHints.base_height 64
+XSizeHints.win_gravity 68
+XSizeHints 72
+XUnmapEvent.type 0
+XUnmapEvent.serial 4
+XUnmapEvent.send_event 8
+XUnmapEvent.display 12
+XUnmapEvent.event 16
+XUnmapEvent.window 20
+XUnmapEvent.from_configure 24
+XUnmapEvent 28
+awtImageData.Depth 0
+awtImageData.wsImageFormat 4
+awtImageData.clrdata 16
+awtImageData.convert 48
+awtImageData 304
+XkbStateNotifyEvent.type 0
+XkbStateNotifyEvent.serial 4
+XkbStateNotifyEvent.send_event 8
+XkbStateNotifyEvent.display 12
+XkbStateNotifyEvent.time 16
+XkbStateNotifyEvent.xkb_type 20
+XkbStateNotifyEvent.device 24
+XkbStateNotifyEvent.changed 28
+XkbStateNotifyEvent.group 32
+XkbStateNotifyEvent.base_group 36
+XkbStateNotifyEvent.latched_group 40
+XkbStateNotifyEvent.locked_group 44
+XkbStateNotifyEvent.mods 48
+XkbStateNotifyEvent.base_mods 52
+XkbStateNotifyEvent.latched_mods 56
+XkbStateNotifyEvent.locked_mods 60
+XkbStateNotifyEvent.compat_state 64
+XkbStateNotifyEvent.grab_mods 68
+XkbStateNotifyEvent.compat_grab_mods 69
+XkbStateNotifyEvent.lookup_mods 70
+XkbStateNotifyEvent.compat_lookup_mods 71
+XkbStateNotifyEvent.ptr_buttons 72
+XkbStateNotifyEvent.keycode 76
+XkbStateNotifyEvent.event_type 77
+XkbStateNotifyEvent.req_major 78
+XkbStateNotifyEvent.req_minor 79
+XkbStateNotifyEvent 80
+XExposeEvent.type 0
+XExposeEvent.serial 4
+XExposeEvent.send_event 8
+XExposeEvent.display 12
+XExposeEvent.window 16
+XExposeEvent.x 20
+XExposeEvent.y 24
+XExposeEvent.width 28
+XExposeEvent.height 32
+XExposeEvent.count 36
+XExposeEvent 40
+XkbMapNotifyEvent.type 0
+XkbMapNotifyEvent.serial 4
+XkbMapNotifyEvent.send_event 8
+XkbMapNotifyEvent.display 12
+XkbMapNotifyEvent.time 16
+XkbMapNotifyEvent.xkb_type 20
+XkbMapNotifyEvent.device 24
+XkbMapNotifyEvent.changed 28
+XkbMapNotifyEvent.flags 32
+XkbMapNotifyEvent.first_type 36
+XkbMapNotifyEvent.num_types 40
+XkbMapNotifyEvent.min_key_code 44
+XkbMapNotifyEvent.max_key_code 45
+XkbMapNotifyEvent.first_key_sym 46
+XkbMapNotifyEvent.first_key_act 47
+XkbMapNotifyEvent.first_key_behavior 48
+XkbMapNotifyEvent.first_key_explicit 49
+XkbMapNotifyEvent.first_modmap_key 50
+XkbMapNotifyEvent.first_vmodmap_key 51
+XkbMapNotifyEvent.num_key_syms 52
+XkbMapNotifyEvent.num_key_acts 56
+XkbMapNotifyEvent.num_key_behaviors 60
+XkbMapNotifyEvent.num_key_explicit 64
+XkbMapNotifyEvent.num_modmap_keys 68
+XkbMapNotifyEvent.num_vmodmap_keys 72
+XkbMapNotifyEvent.vmods 76
+XkbMapNotifyEvent 80
+XGCValues.function 0
+XGCValues.plane_mask 4
+XGCValues.foreground 8
+XGCValues.background 12
+XGCValues.line_width 16
+XGCValues.line_style 20
+XGCValues.cap_style 24
+XGCValues.join_style 28
+XGCValues.fill_style 32
+XGCValues.fill_rule 36
+XGCValues.arc_mode 40
+XGCValues.tile 44
+XGCValues.stipple 48
+XGCValues.ts_x_origin 52
+XGCValues.ts_y_origin 56
+XGCValues.font 60
+XGCValues.subwindow_mode 64
+XGCValues.graphics_exposures 68
+XGCValues.clip_x_origin 72
+XGCValues.clip_y_origin 76
+XGCValues.clip_mask 80
+XGCValues.dash_offset 84
+XGCValues.dashes 88
+XGCValues 90
+XFocusChangeEvent.type 0
+XFocusChangeEvent.serial 4
+XFocusChangeEvent.send_event 8
+XFocusChangeEvent.display 12
+XFocusChangeEvent.window 16
+XFocusChangeEvent.mode 20
+XFocusChangeEvent.detail 24
+XFocusChangeEvent 28
+XPixmapFormatValues.depth 0
+XPixmapFormatValues.bits_per_pixel 4
+XPixmapFormatValues.scanline_pad 8
+XPixmapFormatValues 12
+XMapEvent.type 0
+XMapEvent.serial 4
+XMapEvent.send_event 8
+XMapEvent.display 12
+XMapEvent.event 16
+XMapEvent.window 20
+XMapEvent.override_redirect 24
+XMapEvent 28
+XkbBellNotifyEvent.type 0
+XkbBellNotifyEvent.serial 4
+XkbBellNotifyEvent.send_event 8
+XkbBellNotifyEvent.display 12
+XkbBellNotifyEvent.time 16
+XkbBellNotifyEvent.xkb_type 20
+XkbBellNotifyEvent.device 24
+XkbBellNotifyEvent.percent 28
+XkbBellNotifyEvent.pitch 32
+XkbBellNotifyEvent.duration 36
+XkbBellNotifyEvent.bell_class 40
+XkbBellNotifyEvent.bell_id 44
+XkbBellNotifyEvent.name 48
+XkbBellNotifyEvent.window 52
+XkbBellNotifyEvent.event_only 56
+XkbBellNotifyEvent 60
+XIMStringConversionText.length 0
+XIMStringConversionText.feedback 2
+XIMStringConversionText.encoding_is_wchar 6
+XIMStringConversionText.string 10
+XIMStringConversionText 14
+XKeyboardState.key_click_percent 0
+XKeyboardState.bell_percent 4
+XKeyboardState.bell_pitch 8
+XKeyboardState.bell_duration 12
+XKeyboardState.led_mask 16
+XKeyboardState.global_auto_repeat 20
+XKeyboardState.auto_repeats 24
+XKeyboardState 56
+XkbEvent.type 0
+XkbEvent.any 0
+XkbEvent.new_kbd 0
+XkbEvent.map 0
+XkbEvent.state 0
+XkbEvent.ctrls 0
+XkbEvent.indicators 0
+XkbEvent.names 0
+XkbEvent.compat 0
+XkbEvent.bell 0
+XkbEvent.message 0
+XkbEvent.accessx 0
+XkbEvent.device 0
+XkbEvent.core 0
+XkbEvent 96
+XPoint.x 0
+XPoint.y 2
+XPoint 4
+XSegment.x1 0
+XSegment.y1 2
+XSegment.x2 4
+XSegment.y2 6
+XSegment 8
+XIconSize.min_width 0
+XIconSize.min_height 4
+XIconSize.max_width 8
+XIconSize.max_height 12
+XIconSize.width_inc 16
+XIconSize.height_inc 20
+XIconSize 24
+XIMCallback.client_data 0
+XIMCallback.callback 4
+XIMCallback 8
+XConfigureEvent.type 0
+XConfigureEvent.serial 4
+XConfigureEvent.send_event 8
+XConfigureEvent.display 12
+XConfigureEvent.event 16
+XConfigureEvent.window 20
+XConfigureEvent.x 24
+XConfigureEvent.y 28
+XConfigureEvent.width 32
+XConfigureEvent.height 36
+XConfigureEvent.border_width 40
+XConfigureEvent.above 44
+XConfigureEvent.override_redirect 48
+XConfigureEvent 52
+XRectangle.x 0
+XRectangle.y 2
+XRectangle.width 4
+XRectangle.height 6
+XRectangle 8
+XkbNamesNotifyEvent.type 0
+XkbNamesNotifyEvent.serial 4
+XkbNamesNotifyEvent.send_event 8
+XkbNamesNotifyEvent.display 12
+XkbNamesNotifyEvent.time 16
+XkbNamesNotifyEvent.xkb_type 20
+XkbNamesNotifyEvent.device 24
+XkbNamesNotifyEvent.changed 28
+XkbNamesNotifyEvent.first_type 32
+XkbNamesNotifyEvent.num_types 36
+XkbNamesNotifyEvent.first_lvl 40
+XkbNamesNotifyEvent.num_lvls 44
+XkbNamesNotifyEvent.num_aliases 48
+XkbNamesNotifyEvent.num_radio_groups 52
+XkbNamesNotifyEvent.changed_vmods 56
+XkbNamesNotifyEvent.changed_groups 60
+XkbNamesNotifyEvent.changed_indicators 64
+XkbNamesNotifyEvent.first_key 68
+XkbNamesNotifyEvent.num_keys 72
+XkbNamesNotifyEvent 76
+XCreateWindowEvent.type 0
+XCreateWindowEvent.serial 4
+XCreateWindowEvent.send_event 8
+XCreateWindowEvent.display 12
+XCreateWindowEvent.parent 16
+XCreateWindowEvent.window 20
+XCreateWindowEvent.x 24
+XCreateWindowEvent.y 28
+XCreateWindowEvent.width 32
+XCreateWindowEvent.height 36
+XCreateWindowEvent.border_width 40
+XCreateWindowEvent.override_redirect 44
+XCreateWindowEvent 48
+XVisibilityEvent.type 0
+XVisibilityEvent.serial 4
+XVisibilityEvent.send_event 8
+XVisibilityEvent.display 12
+XVisibilityEvent.window 16
+XVisibilityEvent.state 20
+XVisibilityEvent 24
+XWMHints.flags 0
+XWMHints.initial_state 8
+XWMHints.icon_pixmap 12
+XWMHints.icon_window 16
+XWMHints.icon_x 20
+XWMHints.icon_y 24
+XWMHints.icon_mask 28
+XWMHints.input 4
+XWMHints.window_group 32
+XWMHints 36
+XCrossingEvent.type 0
+XCrossingEvent.serial 4
+XCrossingEvent.send_event 8
+XCrossingEvent.display 12
+XCrossingEvent.window 16
+XCrossingEvent.root 20
+XCrossingEvent.subwindow 24
+XCrossingEvent.time 28
+XCrossingEvent.x 32
+XCrossingEvent.y 36
+XCrossingEvent.x_root 40
+XCrossingEvent.y_root 44
+XCrossingEvent.mode 48
+XCrossingEvent.detail 52
+XCrossingEvent.same_screen 56
+XCrossingEvent.focus 60
+XCrossingEvent.state 64
+XCrossingEvent 68
+XSelectionRequestEvent.type 0
+XSelectionRequestEvent.serial 4
+XSelectionRequestEvent.send_event 8
+XSelectionRequestEvent.display 12
+XSelectionRequestEvent.owner 16
+XSelectionRequestEvent.requestor 20
+XSelectionRequestEvent.selection 24
+XSelectionRequestEvent.target 28
+XSelectionRequestEvent.property 32
+XSelectionRequestEvent.time 36
+XSelectionRequestEvent 40
+XNoExposeEvent.type 0
+XNoExposeEvent.serial 4
+XNoExposeEvent.send_event 8
+XNoExposeEvent.display 12
+XNoExposeEvent.drawable 16
+XNoExposeEvent.major_code 20
+XNoExposeEvent.minor_code 24
+XNoExposeEvent 28
+XHostAddress.family 0
+XHostAddress.length 4
+XHostAddress.address 8
+XHostAddress 12
+XColormapEvent.type 0
+XColormapEvent.serial 4
+XColormapEvent.send_event 8
+XColormapEvent.display 12
+XColormapEvent.window 16
+XColormapEvent.colormap 20
+XColormapEvent.new 24
+XColormapEvent.state 28
+XColormapEvent 32
+ColorEntry.r 0
+ColorEntry.g 1
+ColorEntry.b 2
+ColorEntry.flags 3
+ColorEntry 4
+XResizeRequestEvent.type 0
+XResizeRequestEvent.serial 4
+XResizeRequestEvent.send_event 8
+XResizeRequestEvent.display 12
+XResizeRequestEvent.window 16
+XResizeRequestEvent.width 20
+XResizeRequestEvent.height 24
+XResizeRequestEvent 28
+Depth.depth 0
+Depth.nvisuals 4
+Depth.visuals 8
+Depth 12
+XPropertyEvent.type 0
+XPropertyEvent.serial 4
+XPropertyEvent.send_event 8
+XPropertyEvent.display 12
+XPropertyEvent.window 16
+XPropertyEvent.atom 20
+XPropertyEvent.time 24
+XPropertyEvent.state 28
+XPropertyEvent 32
+XDestroyWindowEvent.type 0
+XDestroyWindowEvent.serial 4
+XDestroyWindowEvent.send_event 8
+XDestroyWindowEvent.display 12
+XDestroyWindowEvent.event 16
+XDestroyWindowEvent.window 20
+XDestroyWindowEvent 24
+XStandardColormap.colormap 0
+XStandardColormap.red_max 4
+XStandardColormap.red_mult 8
+XStandardColormap.green_max 12
+XStandardColormap.green_mult 16
+XStandardColormap.blue_max 20
+XStandardColormap.blue_mult 24
+XStandardColormap.base_pixel 28
+XStandardColormap.visualid 32
+XStandardColormap.killid 36
+XStandardColormap 40
+XComposeStatus.compose_ptr 0
+XComposeStatus.chars_matched 4
+XComposeStatus 8
+AwtGraphicsConfigData.awt_depth 0
+AwtGraphicsConfigData.awt_cmap 4
+AwtGraphicsConfigData.awt_visInfo 8
+AwtGraphicsConfigData.awt_num_colors 48
+AwtGraphicsConfigData.awtImage 52
+AwtGraphicsConfigData.AwtColorMatch 56
+AwtGraphicsConfigData.monoImage 60
+AwtGraphicsConfigData.monoPixmap 64
+AwtGraphicsConfigData.monoPixmapWidth 68
+AwtGraphicsConfigData.monoPixmapHeight 72
+AwtGraphicsConfigData.monoPixmapGC 76
+AwtGraphicsConfigData.pixelStride 80
+AwtGraphicsConfigData.color_data 84
+AwtGraphicsConfigData.glxInfo 88
+AwtGraphicsConfigData.isTranslucencySupported 92
+AwtGraphicsConfigData.renderPictFormat 96
+AwtGraphicsConfigData 128
+XColor.pixel 0
+XColor.red 4
+XColor.green 6
+XColor.blue 8
+XColor.flags 10
+XColor.pad 11
+XColor 12
+XTextProperty.value 0
+XTextProperty.encoding 4
+XTextProperty.format 8
+XTextProperty.nitems 12
+XTextProperty 16
Index: jdk9-fe8466adaef8/jdk/make/gensrc/GensrcX11Wrappers.gmk
===================================================================
--- jdk9-fe8466adaef8.orig/jdk/make/gensrc/GensrcX11Wrappers.gmk
+++ jdk9-fe8466adaef8/jdk/make/gensrc/GensrcX11Wrappers.gmk
@@ -57,12 +57,16 @@ else
GENSRC_X11_VERSION := 32 64
endif
endif
+GENSRC_X11_VERSION_VARIANT :=
+ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), linux-m68k)
+ GENSRC_X11_VERSION_VARIANT := -linux-m68k
+endif
GENSRC_X11_SIZES_USED := $(addprefix $(GENSRC_X11WRAPPERS_TMP)/sizes., $(GENSRC_X11_VERSION))
# Copy only the sizes.* files that are actually needed. WrapperGenerator picks up any it finds from the
# file prefix it is given so those not needed need to be hidden.
-$(GENSRC_X11WRAPPERS_TMP)/sizes.%: $(GENSRC_SIZER_DIR)/sizes.%
+$(GENSRC_X11WRAPPERS_TMP)/sizes.%: $(GENSRC_SIZER_DIR)/sizes.%$(GENSRC_X11_VERSION_VARIANT)
$(call MakeDir, $(@D))
$(RM) '$@'
$(SORT) $< > $@
Index: jdk9-fe8466adaef8/jdk/src/java.base/unix/native/libjli/java_md_solinux.c
===================================================================
--- jdk9-fe8466adaef8.orig/jdk/src/java.base/unix/native/libjli/java_md_solinux.c
+++ jdk9-fe8466adaef8/jdk/src/java.base/unix/native/libjli/java_md_solinux.c
@@ -884,12 +884,24 @@ void SplashFreeLibrary() {
}
}
+struct call_continuation_args {
+ int (JNICALL *continuation)(void *);
+ void *args;
+};
+
+static void *call_continuation(void *_args)
+{
+ struct call_continuation_args *args = _args;
+ return (void *)args->continuation(args->args);
+}
+
/*
* Block current thread and continue execution in a new thread
*/
int
ContinueInNewThread0(int (JNICALL *continuation)(void *), jlong stack_size, void * args) {
int rslt;
+ struct call_continuation_args ccargs = { continuation, args };
#ifndef __solaris__
pthread_t tid;
pthread_attr_t attr;
@@ -900,7 +912,7 @@ ContinueInNewThread0(int (JNICALL *conti
pthread_attr_setstacksize(&attr, stack_size);
}
- if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) {
+ if (pthread_create(&tid, &attr, call_continuation, &ccargs) == 0) {
void * tmp;
pthread_join(tid, &tmp);
rslt = (int)(intptr_t)tmp;
@@ -918,7 +930,7 @@ ContinueInNewThread0(int (JNICALL *conti
#else /* __solaris__ */
thread_t tid;
long flags = 0;
- if (thr_create(NULL, stack_size, (void *(*)(void *))continuation, args, flags, &tid) == 0) {
+ if (thr_create(NULL, stack_size, call_continuation, &ccargs, flags, &tid) == 0) {
void * tmp;
thr_join(tid, NULL, &tmp);
rslt = (int)(intptr_t)tmp;