[SCM] Debian packaging for swt-gtk. branch, experimental, updated. debian/3.5.1-5-10-ga5d1a05

Ahmed El-Mahmoudy aelmahmoudy-guest at alioth.debian.org
Tue Mar 29 15:48:36 UTC 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Debian packaging for swt-gtk.".

The branch, experimental has been updated
       via  a5d1a053f2e6f8a379aae8d52c8992ee2b378588 (commit)
       via  74a0504bd0807ae044a8215bc3523d483999f658 (commit)
      from  951200237bdf54925e2e33d23ba53987b7b10f2a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a5d1a053f2e6f8a379aae8d52c8992ee2b378588
Merge: 9512002 74a0504
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
Date:   Sun Mar 27 22:18:17 2011 +0200

    Merge commit 'upstream/3.6.2' into experimental

commit 74a0504bd0807ae044a8215bc3523d483999f658
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
Date:   Sun Mar 27 22:18:15 2011 +0200

    Imported Upstream version 3.6.2

-----------------------------------------------------------------------

Summary of changes:
 build.sh                                           |   55 ++-
 cairo_custom.h                                     |   16 +-
 gnome.h                                            |   14 +-
 make_aix.mak                                       |  198 ++++++++
 make_common.mak                                    |    4 +-
 .../swt/accessibility/AccessibleObject.java        |   40 +-
 org/eclipse/swt/browser/Mozilla.java               |    2 -
 org/eclipse/swt/browser/WebKit.java                |    6 +-
 org/eclipse/swt/graphics/Device.java               |   25 +-
 org/eclipse/swt/internal/Library.java              |    2 +-
 org/eclipse/swt/internal/gtk/OS.java               |   27 +-
 org/eclipse/swt/internal/webkit/WebKitGTK.java     |   16 +-
 org/eclipse/swt/program/Program.java               |   13 +-
 os.c                                               |   48 ++
 os_custom.c                                        |   31 +-
 os_custom.h                                        |  469 +++++++++++---------
 os_stats.c                                         |    8 +-
 os_stats.h                                         |    4 +
 swt.h                                              |    7 +-
 version.txt                                        |    2 +-
 webkitgtk.c                                        |   16 +-
 21 files changed, 682 insertions(+), 321 deletions(-)

diff --git a/build.sh b/build.sh
index 032587e..55f98da 100755
--- a/build.sh
+++ b/build.sh
@@ -29,12 +29,22 @@ if [ "${OS}" = "" ]; then
 	OS=`uname -s`
 fi
 case $OS in
+	"AIX")
+		SWT_OS=aix
+		MAKEFILE=make_aix.mak
+		;;
+	"HP-UX")
+		SWT_OS=hpux
+		MAKEFILE=make_hpux.mak
+		;;
 	"SunOS")
 		SWT_OS=solaris
 		PROC=`uname -i`
 		MAKEFILE=make_solaris.mak
-		if uname -p > /dev/null 2>&1; then
-			MODEL=`uname -p`
+		if [ "${MODEL}" = "" ]; then
+			if uname -p > /dev/null 2>&1; then
+				MODEL=`uname -p`
+			fi
 		fi
 		if [ ${MODEL} = 'i386' ]; then
 			MAKEFILE=make_solaris_x86.mak
@@ -67,6 +77,10 @@ case $MODEL in
 		SWT_ARCH=x86_64
 		AWT_ARCH=amd64
 		;;
+	"sparc64")
+		SWT_ARCH=$MODEL
+		AWT_ARCH=sparcv9
+		;;
 	i?86)
 		SWT_ARCH=x86
 		AWT_ARCH=i386
@@ -78,17 +92,36 @@ case $MODEL in
 esac
 echo "Model is ${MODEL}"
 # For 64-bit CPUs, we have a switch
-if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64' -o ${MODEL} = 'ia64' -o ${MODEL} = 's390x' ]; then
+if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64' -o ${MODEL} = 'ia64' -o ${MODEL} = 'sparc64'  -o ${MODEL} = 's390x' ]; then
 	SWT_PTR_CFLAGS=-DJNI64
 	if [ -d /lib64 ]; then
 		XLIB64=-L/usr/X11R6/lib64
 		export XLIB64
 	fi
 	if [ ${MODEL} = 'ppc64' ]; then
-		SWT_PTR_CFLAGS="${SWT_PTR_CFLAGS} -m64"	
-		XLIB64="${XLIB64} -L/usr/lib64"
-		SWT_LFLAGS=-m64
-		export SWT_LFLAGS
+		if [ ${OS} = 'AIX' ]; then
+			SWT_PTR_CFLAGS="${SWT_PTR_CFLAGS} -maix64"
+			SWT_LFLAGS=-maix64
+			export SWT_LFLAGS
+		else
+			SWT_PTR_CFLAGS="${SWT_PTR_CFLAGS} -m64"	
+			XLIB64="${XLIB64} -L/usr/lib64"
+			SWT_LFLAGS=-m64
+			export SWT_LFLAGS
+		fi
+	fi
+	if [ ${MODEL} = 'ia64' ]; then
+		if [ ${OS} = 'HP-UX' ]; then
+			SWT_PTR_CFLAGS="${SWT_PTR_CFLAGS} -mlp64"
+			SWT_LFLAGS=-mlp64
+			export SWT_LFLAGS
+		fi
+	fi
+	if [ ${MODEL} = 'sparc64' ]; then
+			SWT_PTR_CFLAGS="${SWT_PTR_CFLAGS} -xarch=v9"
+			SWT_LFLAGS="-xarch=v9"
+			SWT_CDE_64SUFFIX="/64"
+			export SWT_LFLAGS SWT_CDE_64SUFFIX
 	fi
 	export SWT_PTR_CFLAGS
 fi
@@ -98,7 +131,7 @@ if [ ${MODEL} = 's390' ]; then
 	export SWT_LFLAGS SWT_PTR_CFLAGS
 fi
 
-if [ x`pkg-config --exists gnome-vfs-module-2.0 libgnome-2.0 libgnomeui-2.0 && echo YES` = "xYES" ]; then
+if [ x`pkg-config --exists gnome-vfs-module-2.0 libgnome-2.0 libgnomeui-2.0 && echo YES` = "xYES"  -a 	 ${MODEL} != "sparc64" 	]; then
 	echo "libgnomeui-2.0 found, compiling SWT program support using GNOME"
 	MAKE_GNOME=make_gnome
 else
@@ -114,7 +147,7 @@ else
 	echo "    *** Advanced graphics support using cairo will not be compiled."
 fi
 
-if [ -z "${MOZILLA_INCLUDES}" -a -z "${MOZILLA_LIBS}" ]; then
+if [ -z "${MOZILLA_INCLUDES}" -a -z "${MOZILLA_LIBS}" -a ${MODEL} != 'sparc64' ]; then
 	if [ x`pkg-config --exists mozilla-xpcom && echo YES` = "xYES" ]; then
 		MOZILLA_INCLUDES=`pkg-config --cflags mozilla-xpcom`
 		MOZILLA_LIBS=`pkg-config --libs mozilla-xpcom`
@@ -149,7 +182,7 @@ fi
 
 # Find AWT if available
 if [ -z "${AWT_LIB_PATH}" ]; then
-	if [ -f ${JAVA_HOME}/jre/lib/${AWT_ARCH}/libjawt.so ]; then
+	if [ -f ${JAVA_HOME}/jre/lib/${AWT_ARCH}/libjawt.* ]; then
 		AWT_LIB_PATH=${JAVA_HOME}/jre/lib/${AWT_ARCH}
 		export AWT_LIB_PATH
 	else
@@ -158,7 +191,7 @@ if [ -z "${AWT_LIB_PATH}" ]; then
 	fi
 fi
 
-if [ -f ${AWT_LIB_PATH}/libjawt.so ]; then
+if [ -f ${AWT_LIB_PATH}/libjawt.* ]; then
 	echo "libjawt.so found, the SWT/AWT integration library will be compiled."
 	MAKE_AWT=make_awt
 else
diff --git a/cairo_custom.h b/cairo_custom.h
index 9d0ae8d..44c5e55 100644
--- a/cairo_custom.h
+++ b/cairo_custom.h
@@ -20,7 +20,15 @@
  * ***** END LICENSE BLOCK ***** */
 
 /* Libraries for dynamic loaded functions */
-#define cairo_pdf_surface_set_size_LIB "libcairo.so.2"
-#define cairo_ps_surface_set_size_LIB "libcairo.so.2"
-#define cairo_surface_set_fallback_resolution_LIB "libcairo.so.2"
-#define cairo_surface_get_type_LIB "libcairo.so.2"
+#ifdef AIX
+#define LIB_CAIRO "libcairo.a(libcairo.so.2)"
+#elif HPUX
+#define LIB_CAIRO "libcairo.so"
+#else
+#define LIB_CAIRO "libcairo.so.2"
+#endif
+
+#define cairo_pdf_surface_set_size_LIB LIB_CAIRO
+#define cairo_ps_surface_set_size_LIB LIB_CAIRO
+#define cairo_surface_set_fallback_resolution_LIB LIB_CAIRO
+#define cairo_surface_get_type_LIB LIB_CAIRO
diff --git a/gnome.h b/gnome.h
index 6caca74..4cebd6d 100644
--- a/gnome.h
+++ b/gnome.h
@@ -28,8 +28,16 @@
 #include <libgnomevfs/gnome-vfs-mime-handlers.h>
 #include <libgnomevfs/gnome-vfs-mime-info.h>
 
-#define gnome_vfs_url_show_LIB "libgnomevfs-2.so.0"
-#define gnome_vfs_make_uri_from_input_with_dirs_LIB "libgnomevfs-2.so.0"
-#define gnome_vfs_mime_application_launch_LIB "libgnomevfs-2.so.0"
+#ifdef AIX
+#define LIB_VFS "libgnomevfs-2.a(libgnomevfs-2.so.0)"
+#elif HPUX
+#define LIB_VFS "libgnomevfs-2.so"
+#else
+#define LIB_VFS "libgnomevfs-2.so.0"
+#endif
+
+#define gnome_vfs_url_show_LIB LIB_VFS
+#define gnome_vfs_make_uri_from_input_with_dirs_LIB LIB_VFS
+#define gnome_vfs_mime_application_launch_LIB LIB_VFS
 
 #endif
diff --git a/make_aix.mak b/make_aix.mak
new file mode 100644
index 0000000..a951b1b
--- /dev/null
+++ b/make_aix.mak
@@ -0,0 +1,198 @@
+#*******************************************************************************
+# Copyright (c) 2000, 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+#*******************************************************************************
+
+# Makefile for creating SWT libraries for Linux GTK
+
+include make_common.mak
+
+SWT_VERSION=$(maj_ver)$(min_ver)
+
+# Define the various shared libraries to be build.
+WS_PREFIX = gtk
+SWT_PREFIX = swt
+CDE_PREFIX = swt-cde
+AWT_PREFIX = swt-awt
+SWTPI_PREFIX = swt-pi
+CAIRO_PREFIX = swt-cairo
+ATK_PREFIX = swt-atk
+GNOME_PREFIX = swt-gnome
+GLX_PREFIX = swt-glx
+
+SWT_LIB = lib$(SWT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
+CDE_LIB = lib$(CDE_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
+AWT_LIB = lib$(AWT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
+SWTPI_LIB = lib$(SWTPI_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
+CAIRO_LIB = lib$(CAIRO_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
+ATK_LIB = lib$(ATK_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
+GNOME_LIB = lib$(GNOME_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
+GLX_LIB = lib$(GLX_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
+
+CAIROCFLAGS = `pkg-config --cflags cairo`
+CAIROLIBS = `pkg-config --libs cairo` -lcairo
+
+GTKCFLAGS = `pkg-config --cflags gtk+-2.0`
+GTKLIBS = `pkg-config --libs gtk+-2.0 gthread-2.0` $(XLIB64) -L/usr/X11R6/lib -lXtst -lX11
+
+CDE_LIBS = -L$(CDE_HOME)/lib -R$(CDE_HOME)/lib -lXt -lX11 -lDtSvc
+
+AWT_LFLAGS = -shared -s ${SWT_LFLAGS} 
+AWT_LIBS = -L$(AWT_LIB_PATH) -ljawt -lX11
+
+ATKCFLAGS = `pkg-config --cflags atk gtk+-2.0`
+ATKLIBS = `pkg-config --libs atk gtk+-2.0`
+
+GNOMECFLAGS = `pkg-config --cflags gnome-vfs-module-2.0 libgnome-2.0 libgnomeui-2.0`
+GNOMELIBS = `pkg-config --libs-only-L gnome-vfs-module-2.0 libgnome-2.0 libgnomeui-2.0` -lgnomevfs-2 -lgnome-2 -lgnomeui-2
+
+GLXLIBS = -L/usr/X11R6/lib -lGL -lGLU -lm
+
+# Uncomment for Native Stats tool
+#NATIVE_STATS = -DNATIVE_STATS
+
+SWT_OBJECTS = swt.o c.o c_stats.o callback.o
+CDE_OBJECTS = swt.o cde.o cde_structs.o cde_stats.o
+AWT_OBJECTS = swt_awt.o
+SWTPI_OBJECTS = swt.o os.o os_structs.o os_custom.o os_stats.o
+CAIRO_OBJECTS = swt.o cairo.o cairo_structs.o cairo_stats.o
+ATK_OBJECTS = swt.o atk.o atk_structs.o atk_custom.o atk_stats.o
+GNOME_OBJECTS = swt.o gnome.o gnome_structs.o gnome_stats.o
+GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o
+
+CFLAGS = -O -Wall \
+		-DSWT_VERSION=$(SWT_VERSION) \
+		$(NATIVE_STATS) \
+		-DAIX -DGTK \
+		-I$(JAVA_HOME)/include \
+		${SWT_PTR_CFLAGS}
+LFLAGS = -shared -s ${SWT_LFLAGS}
+
+
+all: make_swt make_atk #make_glx
+
+#
+# SWT libs
+#
+make_swt: $(SWT_LIB) $(SWTPI_LIB)
+
+$(SWT_LIB): $(SWT_OBJECTS)
+	$(CC) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
+
+callback.o: callback.c callback.h
+	$(CC) $(CFLAGS) -DUSE_ASSEMBLER -c callback.c
+
+$(SWTPI_LIB): $(SWTPI_OBJECTS)
+	$(CC) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
+
+swt.o: swt.c swt.h
+	$(CC) $(CFLAGS) -c swt.c
+os.o: os.c os.h swt.h os_custom.h
+	$(CC) $(CFLAGS) $(GTKCFLAGS) -c os.c
+os_structs.o: os_structs.c os_structs.h os.h swt.h
+	$(CC) $(CFLAGS) $(GTKCFLAGS) -c os_structs.c 
+os_custom.o: os_custom.c os_structs.h os.h swt.h
+	$(CC) $(CFLAGS) $(GTKCFLAGS) -c os_custom.c
+os_stats.o: os_stats.c os_structs.h os.h os_stats.h swt.h
+	$(CC) $(CFLAGS) $(GTKCFLAGS) -c os_stats.c
+
+#
+# CAIRO libs
+#
+make_cairo: $(CAIRO_LIB)
+
+$(CAIRO_LIB): $(CAIRO_OBJECTS)
+	$(CC) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
+
+cairo.o: cairo.c cairo.h swt.h
+	$(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo.c
+cairo_structs.o: cairo_structs.c cairo_structs.h cairo.h swt.h
+	$(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo_structs.c
+cairo_stats.o: cairo_stats.c cairo_structs.h cairo.h cairo_stats.h swt.h
+	$(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo_stats.c
+
+#
+# CDE lib
+#
+
+make_cde: $(CDE_LIB)
+
+$(CDE_LIB): $(CDE_OBJECTS)
+	$(CC) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
+
+#
+# AWT lib
+#
+make_awt:$(AWT_LIB)
+
+$(AWT_LIB): $(AWT_OBJECTS)
+	$(CC) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
+
+#
+# Atk lib
+#
+make_atk: $(ATK_LIB)
+
+$(ATK_LIB): $(ATK_OBJECTS)
+	$(CC) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
+
+atk.o: atk.c atk.h
+	$(CC) $(CFLAGS) $(ATKCFLAGS) -c atk.c
+atk_structs.o: atk_structs.c atk_structs.h atk.h
+	$(CC) $(CFLAGS) $(ATKCFLAGS) -c atk_structs.c
+atk_custom.o: atk_custom.c atk_structs.h atk.h
+	$(CC) $(CFLAGS) $(ATKCFLAGS) -c atk_custom.c
+atk_stats.o: atk_stats.c atk_structs.h atk_stats.h atk.h
+	$(CC) $(CFLAGS) $(ATKCFLAGS) -c atk_stats.c
+
+#
+# Gnome lib
+#
+make_gnome: $(GNOME_LIB)
+
+$(GNOME_LIB): $(GNOME_OBJECTS)
+	$(CC) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
+
+gnome.o: gnome.c 
+	$(CC) $(CFLAGS) $(GNOMECFLAGS) -c gnome.c
+
+gnome_structs.o: gnome_structs.c 
+	$(CC) $(CFLAGS) $(GNOMECFLAGS) -c gnome_structs.c
+	
+gnome_stats.o: gnome_stats.c gnome_stats.h
+	$(CC) $(CFLAGS) $(GNOMECFLAGS) -c gnome_stats.c
+
+#
+# GLX lib
+#
+make_glx: $(GLX_LIB)
+
+$(GLX_LIB): $(GLX_OBJECTS)
+	$(CC) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
+
+glx.o: glx.c 
+	$(CC) $(CFLAGS) $(GLXCFLAGS) -c glx.c
+
+glx_structs.o: glx_structs.c 
+	$(CC) $(CFLAGS) $(GLXCFLAGS) -c glx_structs.c
+	
+glx_stats.o: glx_stats.c glx_stats.h
+	$(CC) $(CFLAGS) $(GLXCFLAGS) -c glx_stats.c
+
+#
+# Install
+#
+install: all
+	cp *.a $(OUTPUT_DIR)
+
+#
+# Clean
+#
+clean:
+	rm -f *.o *.a
diff --git a/make_common.mak b/make_common.mak
index af8082b..7182563 100644
--- a/make_common.mak
+++ b/make_common.mak
@@ -10,5 +10,5 @@
 #*******************************************************************************
 
 maj_ver=3
-min_ver=655
-comma_ver=3,6,5,5
+min_ver=659
+comma_ver=3,6,5,9
diff --git a/org/eclipse/swt/accessibility/AccessibleObject.java b/org/eclipse/swt/accessibility/AccessibleObject.java
index 07ef376..ec4c646 100644
--- a/org/eclipse/swt/accessibility/AccessibleObject.java
+++ b/org/eclipse/swt/accessibility/AccessibleObject.java
@@ -545,42 +545,42 @@ class AccessibleObject {
 					attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_LEFT_MARGIN));
 					attr.value = getStringPtr (String.valueOf(event.leftMargin));
 					ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-					parentResult = OS.g_list_append(parentResult, attrPtr);
+					parentResult = OS.g_slist_append(parentResult, attrPtr);
 				}
 				if (event.rightMargin != -1) {
 					int /*long*/ attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 					attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_RIGHT_MARGIN));
 					attr.value = getStringPtr (String.valueOf(event.rightMargin));
 					ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-					parentResult = OS.g_list_append(parentResult, attrPtr);
+					parentResult = OS.g_slist_append(parentResult, attrPtr);
 				}
 				if (event.topMargin != -1) {
 					int /*long*/ attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 					attr.name = getStringPtr ("top-margin"); //$NON-NLS-1$
 					attr.value = getStringPtr (String.valueOf(event.topMargin));
 					ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-					parentResult = OS.g_list_append(parentResult, attrPtr);
+					parentResult = OS.g_slist_append(parentResult, attrPtr);
 				}
 				if (event.bottomMargin != -1) {
 					int /*long*/ attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 					attr.name = getStringPtr ("bottom-margin"); //$NON-NLS-1$
 					attr.value = getStringPtr (String.valueOf(event.bottomMargin));
 					ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-					parentResult = OS.g_list_append(parentResult, attrPtr);
+					parentResult = OS.g_slist_append(parentResult, attrPtr);
 				}
 				if (event.indent != -1) {
 					int /*long*/ attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 					attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_INDENT));
 					attr.value = getStringPtr (String.valueOf(event.indent));
 					ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-					parentResult = OS.g_list_append(parentResult, attrPtr);
+					parentResult = OS.g_slist_append(parentResult, attrPtr);
 				}
 				if (event.justify) {
 					int /*long*/ attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 					attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_JUSTIFICATION));
 					attr.value = getStringPtr ("fill"); //$NON-NLS-1$
 					ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-					parentResult = OS.g_list_append(parentResult, attrPtr);
+					parentResult = OS.g_slist_append(parentResult, attrPtr);
 				} else if (event.alignment != -1) {
 					int /*long*/ attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 					attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_JUSTIFICATION));
@@ -592,7 +592,7 @@ class AccessibleObject {
 					}
 					attr.value = getStringPtr (str);
 					ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-					parentResult = OS.g_list_append(parentResult, attrPtr);
+					parentResult = OS.g_slist_append(parentResult, attrPtr);
 				}
 				//TODO - tabStops
 				if (event.attributes != null) {
@@ -602,7 +602,7 @@ class AccessibleObject {
 						attr.name = getStringPtr (event.attributes[i]);
 						attr.value = getStringPtr (event.attributes[i + 1]);
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						parentResult = OS.g_list_append(parentResult, attrPtr);
+						parentResult = OS.g_slist_append(parentResult, attrPtr);
 					}
 				}
 			}
@@ -1729,7 +1729,7 @@ class AccessibleObject {
 						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_RISE));
 						attr.value = getStringPtr (String.valueOf(style.rise));
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 					}
 					if (style.underline) {
 						int /*long*/ attrPtr = OS.g_malloc(AtkAttribute.sizeof);
@@ -1743,14 +1743,14 @@ class AccessibleObject {
 						}
 						attr.value = getStringPtr (str);
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 					}
 					if (style.strikeout) {
 						int /*long*/ attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STRIKETHROUGH));
 						attr.value = getStringPtr ("1");
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 					}
 					Font font = style.font;
 					if (font != null && !font.isDisposed()) {
@@ -1760,37 +1760,37 @@ class AccessibleObject {
 						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_FAMILY_NAME));
 						attr.value = ATK.g_strdup (OS.pango_font_description_get_family (font.handle));
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 						
 						attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_SIZE));
 						attr.value = getStringPtr (String.valueOf (OS.pango_font_description_get_size(font.handle) / OS.PANGO_SCALE));
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 						
 						attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STYLE));
 						attr.value = ATK.g_strdup (ATK.atk_text_attribute_get_value(ATK.ATK_TEXT_ATTR_STYLE, OS.pango_font_description_get_style(font.handle)));
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 						
 						attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_VARIANT));
 						attr.value = ATK.g_strdup (ATK.atk_text_attribute_get_value(ATK.ATK_TEXT_ATTR_VARIANT, OS.pango_font_description_get_variant(font.handle)));
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 						
 						attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STRETCH));
 						attr.value = ATK.g_strdup (ATK.atk_text_attribute_get_value(ATK.ATK_TEXT_ATTR_STRETCH, OS.pango_font_description_get_stretch(font.handle)));
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 						
 						attrPtr = OS.g_malloc(AtkAttribute.sizeof);
 						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_WEIGHT));
 						attr.value = getStringPtr (String.valueOf (OS.pango_font_description_get_weight(font.handle)));
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 					}
 					Color color = style.foreground;
 					if (color != null && !color.isDisposed()) {
@@ -1798,7 +1798,7 @@ class AccessibleObject {
 						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_FG_COLOR));
 						attr.value = getStringPtr ((color.handle.red & 0xFFFF) + "," + (color.handle.blue & 0xFFFF) + "," + (color.handle.blue & 0xFFFF)); //$NON-NLS-1$ //$NON-NLS-2$
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 					}
 					color = style.background;
 					if (color != null && !color.isDisposed()) {
@@ -1806,7 +1806,7 @@ class AccessibleObject {
 						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_BG_COLOR));
 						attr.value = getStringPtr ((color.handle.red & 0xFFFF) + "," + (color.handle.blue & 0xFFFF) + "," + (color.handle.blue & 0xFFFF)); //$NON-NLS-1$ //$NON-NLS-2$
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 					}
 				}
 				if (event.attributes != null) {
@@ -1816,7 +1816,7 @@ class AccessibleObject {
 						attr.name = getStringPtr (event.attributes[i]);
 						attr.value = getStringPtr (event.attributes[i + 1]);
 						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-						result = OS.g_list_append(result, attrPtr);
+						result = OS.g_slist_append(result, attrPtr);
 					}
 				}
 				return result;
diff --git a/org/eclipse/swt/browser/Mozilla.java b/org/eclipse/swt/browser/Mozilla.java
index 30d6b71..af44dda 100644
--- a/org/eclipse/swt/browser/Mozilla.java
+++ b/org/eclipse/swt/browser/Mozilla.java
@@ -3719,8 +3719,6 @@ int SetVisibility (int aVisibility) {
 				visibilityWindowListeners[i].hide (event);
 			}
 		}
-	} else {
-		visible = aVisibility != 0;
 	}
 	return XPCOM.NS_OK;     	
 }
diff --git a/org/eclipse/swt/browser/WebKit.java b/org/eclipse/swt/browser/WebKit.java
index 1244c84..fa8840b 100644
--- a/org/eclipse/swt/browser/WebKit.java
+++ b/org/eclipse/swt/browser/WebKit.java
@@ -116,7 +116,7 @@ public class WebKit extends WebBrowser {
 			public void run () {
 				if (!LibraryLoaded) return;
 				int /*long*/ session = WebKitGTK.webkit_get_default_session ();
-				int type = WebKitGTK.soup_cookie_jar_get_type ();
+				int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
 				int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
 				if (jar == 0) return;
 				int /*long*/ cookies = WebKitGTK.soup_cookie_jar_all_cookies (jar);
@@ -139,7 +139,7 @@ public class WebKit extends WebBrowser {
 			public void run () {
 				if (!LibraryLoaded) return;
 				int /*long*/ session = WebKitGTK.webkit_get_default_session ();
-				int type = WebKitGTK.soup_cookie_jar_get_type ();
+				int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
 				int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
 				if (jar == 0) return;
 				byte[] bytes = Converter.wcsToMbcs (null, CookieUrl, true);
@@ -173,7 +173,7 @@ public class WebKit extends WebBrowser {
 			public void run () {
 				if (!LibraryLoaded) return;
 				int /*long*/ session = WebKitGTK.webkit_get_default_session ();
-				int type = WebKitGTK.soup_cookie_jar_get_type ();
+				int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
 				int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
 				if (jar == 0) {
 					/* this happens if a navigation has not occurred yet */
diff --git a/org/eclipse/swt/graphics/Device.java b/org/eclipse/swt/graphics/Device.java
index 7393351..32e16e8 100644
--- a/org/eclipse/swt/graphics/Device.java
+++ b/org/eclipse/swt/graphics/Device.java
@@ -161,8 +161,17 @@ void checkCairo() {
 	if (CAIRO_LOADED) return;
 	try {
 		/* Check if cairo is available on the system */
-		byte[] buffer = Converter.wcsToMbcs(null, "libcairo.so.2", true);
-		int /*long*/ libcairo = OS.dlopen(buffer, OS.RTLD_LAZY);
+		byte[] buffer ;
+		int flags = OS.RTLD_LAZY;
+		if (OS.IsAIX) {
+			 buffer = Converter.wcsToMbcs(null, "libcairo.a(libcairo.so.2)", true);
+			 flags |= OS.RTLD_MEMBER;
+		} else  if (OS.IsHPUX) {
+			 buffer = Converter.wcsToMbcs(null, "libcairo.so", true);
+		} else {
+			buffer =  Converter.wcsToMbcs(null, "libcairo.so.2", true);
+		}
+		int /*long*/ libcairo = OS.dlopen(buffer, flags);
 		if (libcairo != 0) {
 			OS.dlclose(libcairo);
 		} else {
@@ -567,8 +576,10 @@ protected void init () {
 			useXRender = major_versionp[0] > 0 || (major_versionp[0] == 0 && minor_versionp[0] >= 8);
 		}
 	}
-
-	if (debug) {
+	//TODO: Remove; temporary code only
+	boolean fixAIX = OS.IsAIX && OS.PTR_SIZEOF == 8;
+	
+	if (debug || fixAIX) {
 		if (xDisplay != 0) {
 			/* Create the warning and error callbacks */
 			Class clazz = getClass ();
@@ -589,7 +600,7 @@ protected void init () {
 					XIOErrorProc = OS.XSetIOErrorHandler (XNullIOErrorProc);
 				}
 			}
-			OS.XSynchronize (xDisplay, true);
+			if (debug) OS.XSynchronize (xDisplay, true);
 		}
 	}
 	
@@ -883,7 +894,9 @@ static int /*long*/ XErrorProc (int /*long*/ xDisplay, int /*long*/ xErrorEvent)
 			if (DEBUG || device.debug) {
 				new SWTError ().printStackTrace ();
 			}
-			OS.Call (XErrorProc, xDisplay, xErrorEvent);
+			//TODO: Remove; temporary code only
+			boolean fixAIX = OS.IsAIX && OS.PTR_SIZEOF == 8;
+			if (!fixAIX) OS.Call (XErrorProc, xDisplay, xErrorEvent);
 		}
 	} else {
 		if (DEBUG) new SWTError ().printStackTrace ();
diff --git a/org/eclipse/swt/internal/Library.java b/org/eclipse/swt/internal/Library.java
index b1586d6..87d1355 100644
--- a/org/eclipse/swt/internal/Library.java
+++ b/org/eclipse/swt/internal/Library.java
@@ -24,7 +24,7 @@ public class Library {
 	/**
 	 * SWT Minor version number (must be in the range 0..999)
 	 */
-    static int MINOR_VERSION = 655;
+    static int MINOR_VERSION = 659;
 	
 	/**
 	 * SWT revision number (must be >= 0)
diff --git a/org/eclipse/swt/internal/gtk/OS.java b/org/eclipse/swt/internal/gtk/OS.java
index 7bdd8a6..41ed3fa 100644
--- a/org/eclipse/swt/internal/gtk/OS.java
+++ b/org/eclipse/swt/internal/gtk/OS.java
@@ -422,9 +422,10 @@ public class OS extends C {
 	public static final int PANGO_WEIGHT_NORMAL = 0x190;
 	public static final int PANGO_WRAP_WORD = 0;
 	public static final int PANGO_WRAP_WORD_CHAR = 2;
-	public static final int RTLD_GLOBAL = 0x100;
-	public static final int RTLD_LAZY = 1;
-	public static final int RTLD_NOW = 2;
+	public static final int RTLD_GLOBAL = OS.RTLD_GLOBAL();
+	public static final int RTLD_LAZY = OS.RTLD_LAZY();
+	public static final int RTLD_MEMBER = 0x00040000;
+	public static final int RTLD_NOW = OS.RTLD_NOW();
 	public static final int X_OK = 0x01;
 	public static final int XA_CARDINAL = 6;
 	public static final int XA_WINDOW = 33;
@@ -1286,6 +1287,13 @@ public static final native void memmove(XFocusChangeEvent dest, int /*long*/ src
  */
 public static final native void memmove(XVisibilityEvent dest, int /*long*/ src, int /*long*/ size);
 
+/** @method flags=const*/
+public static final native int RTLD_GLOBAL();
+/** @method flags=const */
+public static final native int RTLD_NOW();
+/** @method flags=const */
+public static final native int RTLD_LAZY();
+
 /** X render natives and constants */
 public static final int PictStandardARGB32 = 0;
 public static final int PictStandardRGB24 = 1;
@@ -3046,6 +3054,19 @@ public static final boolean /*long*/ g_source_remove (int /*long*/ tag) {
 		lock.unlock();
 	}
 }
+/**
+ * @param list cast=(GSList *)
+ * @param data cast=(gpointer)
+ */
+public static final native int /*long*/ _g_slist_append(int /*long*/ list, int /*long*/ data);
+public static final int /*long*/ g_slist_append(int /*long*/ list, int /*long*/ data) {
+	lock.lock();
+	try {
+		return _g_slist_append(list, data);
+	} finally {
+		lock.unlock();
+	}
+}
 /** @param list cast=(GSList *) */
 public static final native int /*long*/ _g_slist_data (int /*long*/ list);
 public static final int /*long*/ g_slist_data (int /*long*/ list) {
diff --git a/org/eclipse/swt/internal/webkit/WebKitGTK.java b/org/eclipse/swt/internal/webkit/WebKitGTK.java
index a564b4d..0b1717e 100644
--- a/org/eclipse/swt/internal/webkit/WebKitGTK.java
+++ b/org/eclipse/swt/internal/webkit/WebKitGTK.java
@@ -537,8 +537,8 @@ public static final int /*long*/ soup_cookie_jar_get_cookies (int /*long*/ jar,
 	}
 }
 
-public static final native int _soup_cookie_jar_get_type ();
-public static final int soup_cookie_jar_get_type () {
+public static final native int /*long*/ _soup_cookie_jar_get_type ();
+public static final int /*long*/ soup_cookie_jar_get_type () {
 	lock.lock();
 	try {
 		return _soup_cookie_jar_get_type ();
@@ -689,8 +689,8 @@ public static final void soup_message_headers_append (int /*long*/ headers, byte
  * @param session cast=(SoupSession *)
  * @param type cast=(GType)
  */
-public static final native void _soup_session_add_feature_by_type (int /*long*/ session, int type);
-public static final void soup_session_add_feature_by_type (int /*long*/ session, int type) {
+public static final native void _soup_session_add_feature_by_type (int /*long*/ session, int /*long*/ type);
+public static final void soup_session_add_feature_by_type (int /*long*/ session, int /*long*/ type) {
 	lock.lock();
 	try {
 		_soup_session_add_feature_by_type (session, type);
@@ -703,8 +703,8 @@ public static final void soup_session_add_feature_by_type (int /*long*/ session,
  * @param session cast=(SoupSession *)
  * @param feature_type cast=(GType)
  */
-public static final native int /*long*/ _soup_session_get_feature (int /*long*/ session, int feature_type);
-public static final int /*long*/ soup_session_get_feature (int /*long*/ session, int feature_type) {
+public static final native int /*long*/ _soup_session_get_feature (int /*long*/ session, int /*long*/ feature_type);
+public static final int /*long*/ soup_session_get_feature (int /*long*/ session, int /*long*/ feature_type) {
 	lock.lock();
 	try {
 		return _soup_session_get_feature (session, feature_type);
@@ -963,8 +963,8 @@ public static final int /*long*/ webkit_network_request_new (byte[] uri) {
 	}
 }
 
-public static final native int _webkit_soup_auth_dialog_get_type ();
-public static final int webkit_soup_auth_dialog_get_type () {
+public static final native int /*long*/ _webkit_soup_auth_dialog_get_type ();
+public static final int /*long*/ webkit_soup_auth_dialog_get_type () {
 	lock.lock();
 	try {
 		return _webkit_soup_auth_dialog_get_type ();
diff --git a/org/eclipse/swt/program/Program.java b/org/eclipse/swt/program/Program.java
index 6f78ce2..9d4d4fe 100644
--- a/org/eclipse/swt/program/Program.java
+++ b/org/eclipse/swt/program/Program.java
@@ -115,8 +115,17 @@ static int getDesktop(final Display display) {
 				}
 			});
 			/* Check for the existence of libgio libraries */
-			byte[] buffer = Converter.wcsToMbcs(null, "libgio-2.0.so.0", true);
-			int /*long*/ libgio = OS.dlopen(buffer, OS.RTLD_LAZY);
+			byte[] buffer ;
+			int flags = OS.RTLD_LAZY;
+			if (OS.IsAIX) {
+				 buffer = Converter.wcsToMbcs(null, "libgio-2.0.a(libgio-2.0.so.0)", true);
+				 flags |= OS.RTLD_MEMBER;
+			} else  if (OS.IsHPUX) {
+				 buffer = Converter.wcsToMbcs(null, "libgio-2.0.so", true);
+			} else {
+				buffer =  Converter.wcsToMbcs(null, "libgio-2.0.so.0", true);
+			}
+			int /*long*/ libgio = OS.dlopen(buffer, flags);
 			if (libgio != 0) {
 				buffer = Converter.wcsToMbcs(null, "g_app_info_launch_default_for_uri", true);
 				int /*long*/ g_app_info_launch_default_for_uri = OS.dlsym(libgio, buffer);
diff --git a/os.c b/os.c
index 90076c4..04527a3 100644
--- a/os.c
+++ b/os.c
@@ -1107,6 +1107,42 @@ JNIEXPORT jint JNICALL OS_NATIVE(PangoRectangle_1sizeof)
 }
 #endif
 
+#ifndef NO_RTLD_1GLOBAL
+JNIEXPORT jint JNICALL OS_NATIVE(RTLD_1GLOBAL)
+	(JNIEnv *env, jclass that)
+{
+	jint rc = 0;
+	OS_NATIVE_ENTER(env, that, RTLD_1GLOBAL_FUNC);
+	rc = (jint)RTLD_GLOBAL;
+	OS_NATIVE_EXIT(env, that, RTLD_1GLOBAL_FUNC);
+	return rc;
+}
+#endif
+
+#ifndef NO_RTLD_1LAZY
+JNIEXPORT jint JNICALL OS_NATIVE(RTLD_1LAZY)
+	(JNIEnv *env, jclass that)
+{
+	jint rc = 0;
+	OS_NATIVE_ENTER(env, that, RTLD_1LAZY_FUNC);
+	rc = (jint)RTLD_LAZY;
+	OS_NATIVE_EXIT(env, that, RTLD_1LAZY_FUNC);
+	return rc;
+}
+#endif
+
+#ifndef NO_RTLD_1NOW
+JNIEXPORT jint JNICALL OS_NATIVE(RTLD_1NOW)
+	(JNIEnv *env, jclass that)
+{
+	jint rc = 0;
+	OS_NATIVE_ENTER(env, that, RTLD_1NOW_FUNC);
+	rc = (jint)RTLD_NOW;
+	OS_NATIVE_EXIT(env, that, RTLD_1NOW_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO_XAnyEvent_1sizeof
 JNIEXPORT jint JNICALL OS_NATIVE(XAnyEvent_1sizeof)
 	(JNIEnv *env, jclass that)
@@ -4207,6 +4243,18 @@ fail:
 }
 #endif
 
+#ifndef NO__1g_1slist_1append
+JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1slist_1append)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
+{
+	jintLong rc = 0;
+	OS_NATIVE_ENTER(env, that, _1g_1slist_1append_FUNC);
+	rc = (jintLong)g_slist_append((GSList *)arg0, (gpointer)arg1);
+	OS_NATIVE_EXIT(env, that, _1g_1slist_1append_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO__1g_1slist_1data
 JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1slist_1data)
 	(JNIEnv *env, jclass that, jintLong arg0)
diff --git a/os_custom.c b/os_custom.c
index 5d757b0..704af6c 100644
--- a/os_custom.c
+++ b/os_custom.c
@@ -66,8 +66,6 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1file_1chooser_1dialog_1new)
 	rc = (jintLong)gtk_file_chooser_dialog_new(lparg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
 */
 	{
-		static int initialized = 0;
-		static void *handle = NULL;
 		/*
 		* On AMD64, it is critical that functions which have a variable number of
 		* arguments, indicated by '...', include the '...' in their prototype.  This
@@ -76,17 +74,10 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1file_1chooser_1dialog_1new)
 		* For some reason, we must also explicitly declare all of the arguments we
 		* are passing in, otherwise it crashes.
 		*/
-/*		typedef jintLong (*FPTR)(jbyte *, jintLong, jint, jintLong, ...); */
-		typedef jintLong (*FPTR)(jbyte *, jintLong, jint, jintLong, jint, jintLong, jint, jintLong, ...);
-		static FPTR fptr;
-		rc = 0;
-		if (!initialized) {
-			if (!handle) handle = dlopen(gtk_file_chooser_dialog_new_LIB, RTLD_LAZY);
-			if (handle) fptr = (FPTR)dlsym(handle, "gtk_file_chooser_dialog_new");
-			initialized = 1;
-		}
-		if (fptr) {
-			rc = (jintLong)(*fptr)(lparg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+		typedef jintLong (CALLING_CONVENTION* FPTR)(jbyte *, jintLong, jint, jintLong, jint, jintLong, jint, jintLong, ...);
+		LOAD_FUNCTION(fp, gtk_file_chooser_dialog_new)
+		if (fp) {
+			rc = (jintLong)((FPTR) fp)(lparg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
 		}
 	}
 fail:
@@ -107,8 +98,6 @@ JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1cell_1layout_1set_1attributes)
 	gtk_cell_layout_set_attributes(arg0, arg1, lparg2, arg3, arg4);
 */
 	{
-		static int initialized = 0;
-		static void *handle = NULL;
 		/*
 		* On AMD64, it is critical that functions which have a variable number of
 		* arguments, indicated by '...', include the '...' in their prototype.  This
@@ -117,16 +106,10 @@ JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1cell_1layout_1set_1attributes)
 		* For some reason, we must also explicitly declare all of the arguments we
 		* are passing in, otherwise it crashes.
 		*/
-/*		typedef void (*FPTR)(jintLong, jintLong, ...); */
 		typedef void (*FPTR)(jintLong, jintLong, jbyte *, jint, jintLong, ...);
-		static FPTR fptr;
-		if (!initialized) {
-			if (!handle) handle = dlopen(gtk_cell_layout_set_attributes_LIB, RTLD_LAZY);
-			if (handle) fptr = (FPTR)dlsym(handle, "gtk_cell_layout_set_attributes");
-			initialized = 1;
-		}
-		if (fptr) {
-			(*fptr)(arg0, arg1, lparg2, arg3, arg4);
+		LOAD_FUNCTION(fp, gtk_cell_layout_set_attributes)
+		if (fp) {
+			((FPTR)fp)(arg0, arg1, lparg2, arg3, arg4);
 		}
 	}
 fail:
diff --git a/os_custom.h b/os_custom.h
index 90533e5..1f2b7de 100644
--- a/os_custom.h
+++ b/os_custom.h
@@ -25,229 +25,258 @@
 #define GtkTextIter_sizeof() sizeof(GtkTextIter)
 #define GtkTreeIter_sizeof() sizeof(GtkTreeIter)
 
+#ifdef AIX
+#define LIB_XRENDER "libXrender.a(libXrender.so)"
+#define LIB_GTK "libgtk-x11-2.0.a(libgtk-x11-2.0.so.0)"
+#define LIB_GDK "libgdk-x11-2.0.a(libgdk-x11-2.0.so.0)"
+#define LIB_ATK "libatk-1.0.a(libatk-1.0.so.0)"
+#define LIB_PANGO "libpango-1.0.a(libpango-1.0.so.0"
+#define LIB_PANGOCAIRO "libpangocairo-1.0.a(libpangocairo-1.0.so.0)"
+#define LIB_GIO "libgio-2.0.a(libgio-2.0.so.0)"
+#define LIB_FONTCONFIG "libfontconfig.a(libfontconfig.so.1)"
+#elif HPUX
+#define LIB_XRENDER "libXrender.so"
+#define LIB_GTK "libgtk-x11-2.0.so"
+#define LIB_GDK "libgdk-x11-2.0.so"
+#define LIB_ATK "libatk-1.0.so"
+#define LIB_PANGO "libpango-1.0.so"
+#define LIB_PANGOCAIRO "libpangocairo-1.0.so"
+#define LIB_GIO "libgio-2.0.so"
+#define LIB_FONTCONFIG "libfontconfig.so"
+#else
+#define LIB_XRENDER "libXrender.so"
+#define LIB_GTK "libgtk-x11-2.0.so.0"
+#define LIB_GDK "libgdk-x11-2.0.so.0"
+#define LIB_ATK "libatk-1.0.so.0"
+#define LIB_PANGO "libpango-1.0.so.0"
+#define LIB_PANGOCAIRO "libpangocairo-1.0.so.0"
+#define LIB_GIO "libgio-2.0.so.0"
+#define LIB_FONTCONFIG "libfontconfig.so.1"
+#endif
+
 /* Libraries for dynamic loaded functions */
-#define XRenderQueryExtension_LIB "libXrender.so"
-#define XRenderQueryVersion_LIB "libXrender.so"
-#define XRenderFindStandardFormat_LIB "libXrender.so"
-#define XRenderFindVisualFormat_LIB "libXrender.so"
-#define XRenderComposite_LIB "libXrender.so"
-#define XRenderCreatePicture_LIB "libXrender.so"
-#define XRenderFreePicture_LIB "libXrender.so"
-#define XRenderSetPictureClipRectangles_LIB "libXrender.so"
-#define XRenderSetPictureTransform_LIB "libXrender.so"
-#define gtk_calendar_display_options_LIB "libgtk-x11-2.0.so.0"
-#define gtk_calendar_get_date_LIB "libgtk-x11-2.0.so.0"
-#define gtk_calendar_new_LIB "libgtk-x11-2.0.so.0"
-#define gtk_calendar_select_day_LIB "libgtk-x11-2.0.so.0"
-#define gtk_calendar_select_month_LIB "libgtk-x11-2.0.so.0"
-#define gtk_calendar_set_display_options_LIB "libgtk-x11-2.0.so.0"
-#define gtk_cell_layout_set_attributes_LIB "libgtk-x11-2.0.so.0"
-#define gtk_cell_layout_clear_LIB "libgtk-x11-2.0.so.0"
-#define gtk_cell_layout_pack_start_LIB "libgtk-x11-2.0.so.0"
-#define gtk_combo_box_entry_new_text_LIB "libgtk-x11-2.0.so.0"
-#define gtk_combo_box_new_text_LIB "libgtk-x11-2.0.so.0"
-#define gtk_combo_box_insert_text_LIB "libgtk-x11-2.0.so.0"
-#define gtk_combo_box_remove_text_LIB "libgtk-x11-2.0.so.0"
-#define gtk_combo_box_get_active_LIB "libgtk-x11-2.0.so.0"
-#define gtk_combo_box_get_model_LIB "libgtk-x11-2.0.so.0"
-#define gtk_combo_box_set_active_LIB "libgtk-x11-2.0.so.0"
-#define gtk_combo_box_set_focus_on_click_LIB "libgtk-x11-2.0.so.0"
-#define gtk_combo_box_popup_LIB "libgtk-x11-2.0.so.0"
-#define gtk_combo_box_popdown_LIB "libgtk-x11-2.0.so.0"
-#define gtk_entry_text_index_to_layout_index_LIB "libgtk-x11-2.0.so.0"
-#define gtk_entry_get_inner_border_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_add_filter_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_dialog_new_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_get_current_folder_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_get_filename_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_get_filenames_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_get_filter_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_get_uri_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_get_uris_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_set_current_folder_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_set_current_folder_uri_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_set_current_name_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_set_do_overwrite_confirmation_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_set_extra_widget_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_set_filename_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_set_filter_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_set_local_only_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_set_uri_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_chooser_set_select_multiple_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_filter_add_pattern_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_filter_new_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_filter_get_name_LIB "libgtk-x11-2.0.so.0"
-#define gtk_file_filter_set_name_LIB "libgtk-x11-2.0.so.0"
-#define gtk_expander_get_expanded_LIB "libgtk-x11-2.0.so.0"
-#define gtk_expander_get_label_widget_LIB "libgtk-x11-2.0.so.0"
-#define gtk_expander_new_LIB "libgtk-x11-2.0.so.0"
-#define gtk_expander_set_expanded_LIB "libgtk-x11-2.0.so.0"
-#define gtk_expander_set_label_LIB "libgtk-x11-2.0.so.0"
-#define gtk_expander_set_label_widget_LIB "libgtk-x11-2.0.so.0"
-#define gtk_label_set_line_wrap_mode_LIB "libgtk-x11-2.0.so.0"
-#define gtk_icon_info_load_icon_LIB "libgtk-x11-2.0.so.0"
-#define gtk_icon_info_free_LIB "libgtk-x11-2.0.so.0"
-#define gtk_icon_theme_lookup_by_gicon_LIB "libgtk-x11-2.0.so.0"
-#define gtk_icon_theme_get_default_LIB "libgtk-x11-2.0.so.0"
-#define gtk_menu_shell_set_take_focus_LIB "libgtk-x11-2.0.so.0"
-#define gtk_window_set_keep_below_LIB "libgtk-x11-2.0.so.0"
-#define gtk_tooltip_trigger_tooltip_query_LIB "libgtk-x11-2.0.so.0"
-#define gtk_tree_selection_count_selected_rows_LIB "libgtk-x11-2.0.so.0"
-#define gtk_tree_selection_get_selected_rows_LIB "libgtk-x11-2.0.so.0"
-#define gtk_tree_view_column_cell_get_position_LIB "libgtk-x11-2.0.so.0"
-#define gtk_tree_view_set_grid_lines_LIB "libgtk-x11-2.0.so.0"
-#define gtk_entry_set_alignment_LIB "libgtk-x11-2.0.so.0"
-#define gtk_entry_set_icon_from_stock_LIB "libgtk-x11-2.0.so.0"
-#define gtk_entry_set_icon_sensitive_LIB "libgtk-x11-2.0.so.0"
-#define gdk_cursor_new_from_pixbuf_LIB "libgdk-x11-2.0.so.0"
-#define gdk_display_get_default_LIB "libgdk-x11-2.0.so.0"
-#define gdk_display_supports_cursor_color_LIB "libgdk-x11-2.0.so.0"
-#define gdk_draw_pixbuf_LIB "libgdk-x11-2.0.so.0"
-#define gdk_pixbuf_save_to_bufferv_LIB "libgdk-x11-2.0.so.0"
-#define gdk_screen_get_default_LIB "libgdk-x11-2.0.so.0"
-#define gdk_screen_get_monitor_at_point_LIB "libgdk-x11-2.0.so.0"
-#define gdk_screen_get_monitor_at_window_LIB "libgdk-x11-2.0.so.0"
-#define gdk_screen_get_monitor_geometry_LIB "libgdk-x11-2.0.so.0"
-#define gdk_screen_get_n_monitors_LIB "libgdk-x11-2.0.so.0"
-#define gdk_screen_get_number_LIB "libgdk-x11-2.0.so.0"
-#define gtk_status_icon_get_geometry_LIB "libgtk-x11-2.0.so.0"
-#define gtk_status_icon_get_visible_LIB "libgtk-x11-2.0.so.0"
-#define gtk_status_icon_new_LIB "libgtk-x11-2.0.so.0"
-#define gtk_status_icon_set_from_pixbuf_LIB "libgtk-x11-2.0.so.0"
-#define gtk_status_icon_set_visible_LIB "libgtk-x11-2.0.so.0"
-#define gtk_status_icon_set_tooltip_LIB "libgtk-x11-2.0.so.0"
-#define gtk_window_get_group_LIB "libgtk-x11-2.0.so.0"
-#define gtk_window_get_opacity_LIB "libgtk-x11-2.0.so.0"
-#define gdk_window_restack_LIB "libgdk-x11-2.0.so.0"
-#define gdk_window_set_keep_above_LIB "libgdk-x11-2.0.so.0"
-#define gdk_window_set_accept_focus_LIB "libgdk-x11-2.0.so.0"
-#define gtk_window_set_opacity_LIB "libgtk-x11-2.0.so.0"
-#define gtk_window_set_skip_taskbar_hint_LIB "libgtk-x11-2.0.so.0"
-#define gtk_widget_is_composited_LIB "libgtk-x11-2.0.so.0"
-#define gtk_widget_set_tooltip_text_LIB "libgtk-x11-2.0.so.0"
-#define gdk_x11_screen_get_window_manager_name_LIB "libgdk-x11-2.0.so.0"
-#define gdk_x11_screen_lookup_visual_LIB "libgdk-x11-2.0.so.0"
+#define XRenderQueryExtension_LIB LIB_XRENDER
+#define XRenderQueryVersion_LIB LIB_XRENDER
+#define XRenderFindStandardFormat_LIB LIB_XRENDER
+#define XRenderFindVisualFormat_LIB LIB_XRENDER
+#define XRenderComposite_LIB LIB_XRENDER
+#define XRenderCreatePicture_LIB LIB_XRENDER
+#define XRenderFreePicture_LIB LIB_XRENDER
+#define XRenderSetPictureClipRectangles_LIB LIB_XRENDER
+#define XRenderSetPictureTransform_LIB LIB_XRENDER
+#define gtk_calendar_display_options_LIB LIB_GTK
+#define gtk_calendar_get_date_LIB LIB_GTK
+#define gtk_calendar_new_LIB LIB_GTK
+#define gtk_calendar_select_day_LIB LIB_GTK
+#define gtk_calendar_select_month_LIB LIB_GTK
+#define gtk_calendar_set_display_options_LIB LIB_GTK
+#define gtk_cell_layout_set_attributes_LIB LIB_GTK
+#define gtk_cell_layout_clear_LIB LIB_GTK
+#define gtk_cell_layout_pack_start_LIB LIB_GTK
+#define gtk_combo_box_entry_new_text_LIB LIB_GTK
+#define gtk_combo_box_new_text_LIB LIB_GTK
+#define gtk_combo_box_insert_text_LIB LIB_GTK
+#define gtk_combo_box_remove_text_LIB LIB_GTK
+#define gtk_combo_box_get_active_LIB LIB_GTK
+#define gtk_combo_box_get_model_LIB LIB_GTK
+#define gtk_combo_box_set_active_LIB LIB_GTK
+#define gtk_combo_box_set_focus_on_click_LIB LIB_GTK
+#define gtk_combo_box_popup_LIB LIB_GTK
+#define gtk_combo_box_popdown_LIB LIB_GTK
+#define gtk_entry_text_index_to_layout_index_LIB LIB_GTK
+#define gtk_entry_get_inner_border_LIB LIB_GTK
+#define gtk_file_chooser_add_filter_LIB LIB_GTK
+#define gtk_file_chooser_dialog_new_LIB LIB_GTK
+#define gtk_file_chooser_get_current_folder_LIB LIB_GTK
+#define gtk_file_chooser_get_filename_LIB LIB_GTK
+#define gtk_file_chooser_get_filenames_LIB LIB_GTK
+#define gtk_file_chooser_get_filter_LIB LIB_GTK
+#define gtk_file_chooser_get_uri_LIB LIB_GTK
+#define gtk_file_chooser_get_uris_LIB LIB_GTK
+#define gtk_file_chooser_set_current_folder_LIB LIB_GTK
+#define gtk_file_chooser_set_current_folder_uri_LIB LIB_GTK
+#define gtk_file_chooser_set_current_name_LIB LIB_GTK
+#define gtk_file_chooser_set_do_overwrite_confirmation_LIB LIB_GTK
+#define gtk_file_chooser_set_extra_widget_LIB LIB_GTK
+#define gtk_file_chooser_set_filename_LIB LIB_GTK
+#define gtk_file_chooser_set_filter_LIB LIB_GTK
+#define gtk_file_chooser_set_local_only_LIB LIB_GTK
+#define gtk_file_chooser_set_uri_LIB LIB_GTK
+#define gtk_file_chooser_set_select_multiple_LIB LIB_GTK
+#define gtk_file_filter_add_pattern_LIB LIB_GTK
+#define gtk_file_filter_new_LIB LIB_GTK
+#define gtk_file_filter_get_name_LIB LIB_GTK
+#define gtk_file_filter_set_name_LIB LIB_GTK
+#define gtk_expander_get_expanded_LIB LIB_GTK
+#define gtk_expander_get_label_widget_LIB LIB_GTK
+#define gtk_expander_new_LIB LIB_GTK
+#define gtk_expander_set_expanded_LIB LIB_GTK
+#define gtk_expander_set_label_LIB LIB_GTK
+#define gtk_expander_set_label_widget_LIB LIB_GTK
+#define gtk_label_set_line_wrap_mode_LIB LIB_GTK
+#define gtk_icon_info_load_icon_LIB LIB_GTK
+#define gtk_icon_info_free_LIB LIB_GTK
+#define gtk_icon_theme_lookup_by_gicon_LIB LIB_GTK
+#define gtk_icon_theme_get_default_LIB LIB_GTK
+#define gtk_menu_shell_set_take_focus_LIB LIB_GTK
+#define gtk_window_set_keep_below_LIB LIB_GTK
+#define gtk_tooltip_trigger_tooltip_query_LIB LIB_GTK
+#define gtk_tree_selection_count_selected_rows_LIB LIB_GTK
+#define gtk_tree_selection_get_selected_rows_LIB LIB_GTK
+#define gtk_tree_view_column_cell_get_position_LIB LIB_GTK
+#define gtk_tree_view_set_grid_lines_LIB LIB_GTK
+#define gtk_entry_set_alignment_LIB LIB_GTK
+#define gtk_entry_set_icon_from_stock_LIB LIB_GTK
+#define gtk_entry_set_icon_sensitive_LIB LIB_GTK
+#define gdk_cursor_new_from_pixbuf_LIB LIB_GDK
+#define gdk_display_get_default_LIB LIB_GDK
+#define gdk_display_supports_cursor_color_LIB LIB_GDK
+#define gdk_draw_pixbuf_LIB LIB_GDK
+#define gdk_pixbuf_save_to_bufferv_LIB LIB_GDK
+#define gdk_screen_get_default_LIB LIB_GDK
+#define gdk_screen_get_monitor_at_point_LIB LIB_GDK
+#define gdk_screen_get_monitor_at_window_LIB LIB_GDK
+#define gdk_screen_get_monitor_geometry_LIB LIB_GDK
+#define gdk_screen_get_n_monitors_LIB LIB_GDK
+#define gdk_screen_get_number_LIB LIB_GDK
+#define gtk_status_icon_get_geometry_LIB LIB_GTK
+#define gtk_status_icon_get_visible_LIB LIB_GTK
+#define gtk_status_icon_new_LIB LIB_GTK
+#define gtk_status_icon_set_from_pixbuf_LIB LIB_GTK
+#define gtk_status_icon_set_visible_LIB LIB_GTK
+#define gtk_status_icon_set_tooltip_LIB LIB_GTK
+#define gtk_window_get_group_LIB LIB_GTK
+#define gtk_window_get_opacity_LIB LIB_GTK
+#define gdk_window_restack_LIB LIB_GDK
+#define gdk_window_set_keep_above_LIB LIB_GDK
+#define gdk_window_set_accept_focus_LIB LIB_GDK
+#define gtk_window_set_opacity_LIB LIB_GTK
+#define gtk_window_set_skip_taskbar_hint_LIB LIB_GTK
+#define gtk_widget_is_composited_LIB LIB_GTK
+#define gtk_widget_set_tooltip_text_LIB LIB_GTK
+#define gdk_x11_screen_get_window_manager_name_LIB LIB_GDK
+#define gdk_x11_screen_lookup_visual_LIB LIB_GDK
 
-#define atk_object_add_relationship_LIB "libatk-1.0.so.0"
-#define atk_object_remove_relationship_LIB "libatk-1.0.so.0"
-#define pango_attr_underline_color_new_LIB "libpango-1.0.so.0"
-#define pango_attr_strikethrough_color_new_LIB "libpango-1.0.so.0"
-#define pango_font_metrics_get_underline_thickness_LIB "libpango-1.0.so.0"
-#define pango_font_metrics_get_underline_position_LIB "libpango-1.0.so.0"
-#define pango_font_metrics_get_strikethrough_thickness_LIB "libpango-1.0.so.0"
-#define pango_font_metrics_get_strikethrough_position_LIB "libpango-1.0.so.0"
-#define pango_layout_set_auto_dir_LIB "libpango-1.0.so.0"
-#define pango_cairo_create_layout_LIB "libpangocairo-1.0.so.0"
-#define pango_cairo_context_set_font_options_LIB "libpangocairo-1.0.so.0"
-#define pango_cairo_context_get_font_options_LIB "libpangocairo-1.0.so.0"
-#define pango_cairo_layout_path_LIB "libpangocairo-1.0.so.0"
-#define pango_cairo_show_layout_LIB "libpangocairo-1.0.so.0"
-#define pango_cairo_font_map_create_context_LIB "libpangocairo-1.0.so.0"
-#define pango_cairo_font_map_new_LIB "libpangocairo-1.0.so.0"
-#define pango_cairo_font_map_get_default_LIB "libpangocairo-1.0.so.0"
-#define pango_cairo_font_map_set_resolution_LIB "libpangocairo-1.0.so.0"
-#define gdk_cairo_set_source_color_LIB "libgdk-x11-2.0.so.0"
-#define gdk_cairo_region_LIB "libgdk-x11-2.0.so.0"
-#define gdk_cairo_create_LIB "libgdk-x11-2.0.so.0"
-#define gtk_enumerate_printers_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_get_bottom_margin_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_get_left_margin_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_get_orientation_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_get_page_height_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_get_page_width_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_get_paper_height_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_get_paper_size_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_get_paper_width_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_get_right_margin_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_get_top_margin_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_new_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_set_bottom_margin_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_set_left_margin_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_set_orientation_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_set_paper_size_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_set_right_margin_LIB "libgtk-x11-2.0.so.0"
-#define gtk_page_setup_set_top_margin_LIB "libgtk-x11-2.0.so.0"
-#define gtk_paper_size_free_LIB "libgtk-x11-2.0.so.0"
-#define gtk_paper_size_get_display_name_LIB "libgtk-x11-2.0.so.0"
-#define gtk_paper_size_get_name_LIB "libgtk-x11-2.0.so.0"
-#define gtk_paper_size_get_ppd_name_LIB "libgtk-x11-2.0.so.0"
-#define gtk_paper_size_get_height_LIB "libgtk-x11-2.0.so.0"
-#define gtk_paper_size_get_width_LIB "libgtk-x11-2.0.so.0"
-#define gtk_paper_size_is_custom_LIB "libgtk-x11-2.0.so.0"
-#define gtk_paper_size_new_LIB "libgtk-x11-2.0.so.0"
-#define gtk_paper_size_new_custom_LIB "libgtk-x11-2.0.so.0"
-#define gtk_paper_size_new_from_ppd_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_job_get_printer_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_job_get_settings_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_job_get_status_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_job_get_surface_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_job_get_title_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_job_new_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_job_send_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_job_set_source_file_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_foreach_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_get_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_get_collate_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_get_n_copies_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_get_orientation_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_get_page_ranges_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_get_paper_height_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_get_paper_width_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_get_print_pages_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_get_printer_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_get_resolution_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_new_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_set_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_set_collate_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_set_n_copies_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_set_orientation_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_set_page_ranges_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_set_print_pages_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_settings_set_printer_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_unix_dialog_get_current_page_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_unix_dialog_get_page_setup_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_unix_dialog_get_selected_printer_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_unix_dialog_get_settings_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_unix_dialog_new_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_unix_dialog_set_current_page_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_unix_dialog_set_manual_capabilities_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_unix_dialog_set_page_setup_LIB "libgtk-x11-2.0.so.0"
-#define gtk_print_unix_dialog_set_settings_LIB "libgtk-x11-2.0.so.0"
-#define gtk_printer_get_backend_LIB "libgtk-x11-2.0.so.0"
-#define gtk_printer_get_name_LIB "libgtk-x11-2.0.so.0"
-#define gtk_printer_is_default_LIB "libgtk-x11-2.0.so.0"
-#define FcConfigAppFontAddFile_LIB "libfontconfig.so.1"
+#define atk_object_add_relationship_LIB LIB_ATK
+#define atk_object_remove_relationship_LIB LIB_ATK
+#define pango_attr_underline_color_new_LIB LIB_PANGO
+#define pango_attr_strikethrough_color_new_LIB LIB_PANGO
+#define pango_font_metrics_get_underline_thickness_LIB LIB_PANGO
+#define pango_font_metrics_get_underline_position_LIB LIB_PANGO
+#define pango_font_metrics_get_strikethrough_thickness_LIB LIB_PANGO
+#define pango_font_metrics_get_strikethrough_position_LIB LIB_PANGO
+#define pango_layout_set_auto_dir_LIB LIB_PANGO
+#define pango_cairo_create_layout_LIB LIB_PANGOCAIRO
+#define pango_cairo_context_set_font_options_LIB LIB_PANGOCAIRO
+#define pango_cairo_context_get_font_options_LIB LIB_PANGOCAIRO
+#define pango_cairo_layout_path_LIB LIB_PANGOCAIRO
+#define pango_cairo_show_layout_LIB LIB_PANGOCAIRO
+#define pango_cairo_font_map_create_context_LIB LIB_PANGOCAIRO
+#define pango_cairo_font_map_new_LIB LIB_PANGOCAIRO
+#define pango_cairo_font_map_get_default_LIB LIB_PANGOCAIRO
+#define pango_cairo_font_map_set_resolution_LIB LIB_PANGOCAIRO
+#define gdk_cairo_set_source_color_LIB LIB_GDK
+#define gdk_cairo_region_LIB LIB_GDK
+#define gdk_cairo_create_LIB LIB_GDK
+#define gtk_enumerate_printers_LIB LIB_GTK
+#define gtk_page_setup_get_bottom_margin_LIB LIB_GTK
+#define gtk_page_setup_get_left_margin_LIB LIB_GTK
+#define gtk_page_setup_get_orientation_LIB LIB_GTK
+#define gtk_page_setup_get_page_height_LIB LIB_GTK
+#define gtk_page_setup_get_page_width_LIB LIB_GTK
+#define gtk_page_setup_get_paper_height_LIB LIB_GTK
+#define gtk_page_setup_get_paper_size_LIB LIB_GTK
+#define gtk_page_setup_get_paper_width_LIB LIB_GTK
+#define gtk_page_setup_get_right_margin_LIB LIB_GTK
+#define gtk_page_setup_get_top_margin_LIB LIB_GTK
+#define gtk_page_setup_new_LIB LIB_GTK
+#define gtk_page_setup_set_bottom_margin_LIB LIB_GTK
+#define gtk_page_setup_set_left_margin_LIB LIB_GTK
+#define gtk_page_setup_set_orientation_LIB LIB_GTK
+#define gtk_page_setup_set_paper_size_LIB LIB_GTK
+#define gtk_page_setup_set_right_margin_LIB LIB_GTK
+#define gtk_page_setup_set_top_margin_LIB LIB_GTK
+#define gtk_paper_size_free_LIB LIB_GTK
+#define gtk_paper_size_get_display_name_LIB LIB_GTK
+#define gtk_paper_size_get_name_LIB LIB_GTK
+#define gtk_paper_size_get_ppd_name_LIB LIB_GTK
+#define gtk_paper_size_get_height_LIB LIB_GTK
+#define gtk_paper_size_get_width_LIB LIB_GTK
+#define gtk_paper_size_is_custom_LIB LIB_GTK
+#define gtk_paper_size_new_LIB LIB_GTK
+#define gtk_paper_size_new_custom_LIB LIB_GTK
+#define gtk_paper_size_new_from_ppd_LIB LIB_GTK
+#define gtk_print_job_get_printer_LIB LIB_GTK
+#define gtk_print_job_get_settings_LIB LIB_GTK
+#define gtk_print_job_get_status_LIB LIB_GTK
+#define gtk_print_job_get_surface_LIB LIB_GTK
+#define gtk_print_job_get_title_LIB LIB_GTK
+#define gtk_print_job_new_LIB LIB_GTK
+#define gtk_print_job_send_LIB LIB_GTK
+#define gtk_print_job_set_source_file_LIB LIB_GTK
+#define gtk_print_settings_foreach_LIB LIB_GTK
+#define gtk_print_settings_get_LIB LIB_GTK
+#define gtk_print_settings_get_collate_LIB LIB_GTK
+#define gtk_print_settings_get_n_copies_LIB LIB_GTK
+#define gtk_print_settings_get_orientation_LIB LIB_GTK
+#define gtk_print_settings_get_page_ranges_LIB LIB_GTK
+#define gtk_print_settings_get_paper_height_LIB LIB_GTK
+#define gtk_print_settings_get_paper_width_LIB LIB_GTK
+#define gtk_print_settings_get_print_pages_LIB LIB_GTK
+#define gtk_print_settings_get_printer_LIB LIB_GTK
+#define gtk_print_settings_get_resolution_LIB LIB_GTK
+#define gtk_print_settings_new_LIB LIB_GTK
+#define gtk_print_settings_set_LIB LIB_GTK
+#define gtk_print_settings_set_collate_LIB LIB_GTK
+#define gtk_print_settings_set_n_copies_LIB LIB_GTK
+#define gtk_print_settings_set_orientation_LIB LIB_GTK
+#define gtk_print_settings_set_page_ranges_LIB LIB_GTK
+#define gtk_print_settings_set_print_pages_LIB LIB_GTK
+#define gtk_print_settings_set_printer_LIB LIB_GTK
+#define gtk_print_unix_dialog_get_current_page_LIB LIB_GTK
+#define gtk_print_unix_dialog_get_page_setup_LIB LIB_GTK
+#define gtk_print_unix_dialog_get_selected_printer_LIB LIB_GTK
+#define gtk_print_unix_dialog_get_settings_LIB LIB_GTK
+#define gtk_print_unix_dialog_new_LIB LIB_GTK
+#define gtk_print_unix_dialog_set_current_page_LIB LIB_GTK
+#define gtk_print_unix_dialog_set_manual_capabilities_LIB LIB_GTK
+#define gtk_print_unix_dialog_set_page_setup_LIB LIB_GTK
+#define gtk_print_unix_dialog_set_settings_LIB LIB_GTK
+#define gtk_printer_get_backend_LIB LIB_GTK
+#define gtk_printer_get_name_LIB LIB_GTK
+#define gtk_printer_is_default_LIB LIB_GTK
+#define FcConfigAppFontAddFile_LIB LIB_FONTCONFIG
 
-#define g_app_info_create_from_commandline_LIB "libgio-2.0.so.0"
-#define g_app_info_get_all_LIB "libgio-2.0.so.0"
-#define g_app_info_get_executable_LIB "libgio-2.0.so.0"
-#define g_app_info_get_icon_LIB "libgio-2.0.so.0"
-#define g_app_info_get_id_LIB "libgio-2.0.so.0"
-#define g_app_info_get_name_LIB "libgio-2.0.so.0"
-#define g_app_info_launch_LIB "libgio-2.0.so.0"
-#define g_app_info_get_default_for_type_LIB "libgio-2.0.so.0"
-#define g_app_info_launch_default_for_uri_LIB "libgio-2.0.so.0"
-#define g_app_info_supports_uris_LIB "libgio-2.0.so.0"
-#define g_app_info_should_show_LIB "libgio-2.0.so.0"
-#define g_data_input_stream_new_LIB "libgio-2.0.so.0"
-#define g_data_input_stream_read_line_LIB "libgio-2.0.so.0"
-#define g_content_type_equals_LIB "libgio-2.0.so.0"
-#define g_content_type_get_mime_type_LIB "libgio-2.0.so.0"
-#define g_content_type_is_a_LIB "libgio-2.0.so.0"
-#define g_content_types_get_registered_LIB "libgio-2.0.so.0"
-#define g_desktop_app_info_new_from_filename_LIB "libgio-2.0.so.0"
-#define g_file_get_path_LIB "libgio-2.0.so.0"
-#define g_file_get_uri_LIB "libgio-2.0.so.0"
-#define g_file_icon_get_file_LIB "libgio-2.0.so.0"
-#define g_file_info_get_content_type_LIB "libgio-2.0.so.0"
-#define g_file_info_get_modification_time_LIB "libgio-2.0.so.0"
-#define g_file_new_for_path_LIB "libgio-2.0.so.0"
-#define g_file_new_for_uri_LIB "libgio-2.0.so.0"
-#define g_file_read_LIB "libgio-2.0.so.0"
-#define g_file_test_LIB "libgio-2.0.so.0"
-#define g_icon_to_string_LIB "libgio-2.0.so.0"
-#define g_icon_new_for_string_LIB "libgio-2.0.so.0"
-#define g_file_query_info_LIB "libgio-2.0.so.0"
+#define g_app_info_create_from_commandline_LIB LIB_GIO
+#define g_app_info_get_all_LIB LIB_GIO
+#define g_app_info_get_executable_LIB LIB_GIO
+#define g_app_info_get_icon_LIB LIB_GIO
+#define g_app_info_get_id_LIB LIB_GIO
+#define g_app_info_get_name_LIB LIB_GIO
+#define g_app_info_launch_LIB LIB_GIO
+#define g_app_info_get_default_for_type_LIB LIB_GIO
+#define g_app_info_launch_default_for_uri_LIB LIB_GIO
+#define g_app_info_supports_uris_LIB LIB_GIO
+#define g_app_info_should_show_LIB LIB_GIO
+#define g_data_input_stream_new_LIB LIB_GIO
+#define g_data_input_stream_read_line_LIB LIB_GIO
+#define g_content_type_equals_LIB LIB_GIO
+#define g_content_type_get_mime_type_LIB LIB_GIO
+#define g_content_type_is_a_LIB LIB_GIO
+#define g_content_types_get_registered_LIB LIB_GIO
+#define g_desktop_app_info_new_from_filename_LIB LIB_GIO
+#define g_file_get_path_LIB LIB_GIO
+#define g_file_get_uri_LIB LIB_GIO
+#define g_file_icon_get_file_LIB LIB_GIO
+#define g_file_info_get_content_type_LIB LIB_GIO
+#define g_file_info_get_modification_time_LIB LIB_GIO
+#define g_file_new_for_path_LIB LIB_GIO
+#define g_file_new_for_uri_LIB LIB_GIO
+#define g_file_read_LIB LIB_GIO
+#define g_file_test_LIB LIB_GIO
+#define g_icon_to_string_LIB LIB_GIO
+#define g_icon_new_for_string_LIB LIB_GIO
+#define g_file_query_info_LIB LIB_GIO
 
 /* Field accessors */
 #define G_OBJECT_CLASS_CONSTRUCTOR(arg0) (arg0)->constructor
diff --git a/os_stats.c b/os_stats.c
index 7f522de..9e17829 100644
--- a/os_stats.c
+++ b/os_stats.c
@@ -18,8 +18,8 @@
 
 #ifdef NATIVE_STATS
 
-int OS_nativeFunctionCount = 1366;
-int OS_nativeFunctionCallCount[1366];
+int OS_nativeFunctionCount = 1370;
+int OS_nativeFunctionCallCount[1370];
 char * OS_nativeFunctionNames[] = {
 #ifndef JNI64
 	"Call__IIII",
@@ -120,6 +120,9 @@ char * OS_nativeFunctionNames[] = {
 	"PangoLayoutRun_1sizeof",
 	"PangoLogAttr_1sizeof",
 	"PangoRectangle_1sizeof",
+	"RTLD_1GLOBAL",
+	"RTLD_1LAZY",
+	"RTLD_1NOW",
 	"XAnyEvent_1sizeof",
 	"XClientMessageEvent_1sizeof",
 	"XCrossingEvent_1sizeof",
@@ -364,6 +367,7 @@ char * OS_nativeFunctionNames[] = {
 	"_1g_1signal_1lookup",
 	"_1g_1signal_1remove_1emission_1hook",
 	"_1g_1signal_1stop_1emission_1by_1name",
+	"_1g_1slist_1append",
 	"_1g_1slist_1data",
 	"_1g_1slist_1free",
 	"_1g_1slist_1length",
diff --git a/os_stats.h b/os_stats.h
index aa4c4d3..6901aa2 100644
--- a/os_stats.h
+++ b/os_stats.h
@@ -128,6 +128,9 @@ typedef enum {
 	PangoLayoutRun_1sizeof_FUNC,
 	PangoLogAttr_1sizeof_FUNC,
 	PangoRectangle_1sizeof_FUNC,
+	RTLD_1GLOBAL_FUNC,
+	RTLD_1LAZY_FUNC,
+	RTLD_1NOW_FUNC,
 	XAnyEvent_1sizeof_FUNC,
 	XClientMessageEvent_1sizeof_FUNC,
 	XCrossingEvent_1sizeof_FUNC,
@@ -372,6 +375,7 @@ typedef enum {
 	_1g_1signal_1lookup_FUNC,
 	_1g_1signal_1remove_1emission_1hook_FUNC,
 	_1g_1signal_1stop_1emission_1by_1name_FUNC,
+	_1g_1slist_1append_FUNC,
 	_1g_1slist_1data_FUNC,
 	_1g_1slist_1free_FUNC,
 	_1g_1slist_1length_FUNC,
diff --git a/swt.h b/swt.h
index b955471..55756a6 100644
--- a/swt.h
+++ b/swt.h
@@ -119,11 +119,16 @@ extern int IS_JNI_1_2;
 		}
 #else
 #define CALLING_CONVENTION
+#ifdef AIX
+#define LOAD_FLAGS RTLD_LAZY | RTLD_MEMBER
+#else
+#define LOAD_FLAGS RTLD_LAZY
+#endif 
 #define LOAD_FUNCTION(var, name) \
 		static int initialized = 0; \
 		static void *var = NULL; \
 		if (!initialized) { \
-			void* handle = dlopen(name##_LIB, RTLD_LAZY); \
+			void* handle = dlopen(name##_LIB, LOAD_FLAGS); \
 			if (handle) var = dlsym(handle, #name); \
 			initialized = 1; \
 		}
diff --git a/version.txt b/version.txt
index 5a7cbe9..2e1a874 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-version 3.655
\ No newline at end of file
+version 3.659
\ No newline at end of file
diff --git a/webkitgtk.c b/webkitgtk.c
index 1d6037a..3ce68d9 100644
--- a/webkitgtk.c
+++ b/webkitgtk.c
@@ -526,12 +526,12 @@ JNIEXPORT jintLong JNICALL WebKitGTK_NATIVE(_1soup_1cookie_1jar_1get_1cookies)
 #endif
 
 #ifndef NO__1soup_1cookie_1jar_1get_1type
-JNIEXPORT jint JNICALL WebKitGTK_NATIVE(_1soup_1cookie_1jar_1get_1type)
+JNIEXPORT jintLong JNICALL WebKitGTK_NATIVE(_1soup_1cookie_1jar_1get_1type)
 	(JNIEnv *env, jclass that)
 {
-	jint rc = 0;
+	jintLong rc = 0;
 	WebKitGTK_NATIVE_ENTER(env, that, _1soup_1cookie_1jar_1get_1type_FUNC);
-	rc = (jint)soup_cookie_jar_get_type();
+	rc = (jintLong)soup_cookie_jar_get_type();
 	WebKitGTK_NATIVE_EXIT(env, that, _1soup_1cookie_1jar_1get_1type_FUNC);
 	return rc;
 }
@@ -604,7 +604,7 @@ fail:
 
 #ifndef NO__1soup_1session_1add_1feature_1by_1type
 JNIEXPORT void JNICALL WebKitGTK_NATIVE(_1soup_1session_1add_1feature_1by_1type)
-	(JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
 {
 	WebKitGTK_NATIVE_ENTER(env, that, _1soup_1session_1add_1feature_1by_1type_FUNC);
 	soup_session_add_feature_by_type((SoupSession *)arg0, (GType)arg1);
@@ -634,7 +634,7 @@ JNIEXPORT void JNICALL WebKitGTK_NATIVE(_1soup_1session_1feature_1detach)
 
 #ifndef NO__1soup_1session_1get_1feature
 JNIEXPORT jintLong JNICALL WebKitGTK_NATIVE(_1soup_1session_1get_1feature)
-	(JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
 {
 	jintLong rc = 0;
 	WebKitGTK_NATIVE_ENTER(env, that, _1soup_1session_1get_1feature_FUNC);
@@ -855,12 +855,12 @@ fail:
 #endif
 
 #ifndef NO__1webkit_1soup_1auth_1dialog_1get_1type
-JNIEXPORT jint JNICALL WebKitGTK_NATIVE(_1webkit_1soup_1auth_1dialog_1get_1type)
+JNIEXPORT jintLong JNICALL WebKitGTK_NATIVE(_1webkit_1soup_1auth_1dialog_1get_1type)
 	(JNIEnv *env, jclass that)
 {
-	jint rc = 0;
+	jintLong rc = 0;
 	WebKitGTK_NATIVE_ENTER(env, that, _1webkit_1soup_1auth_1dialog_1get_1type_FUNC);
-	rc = (jint)webkit_soup_auth_dialog_get_type();
+	rc = (jintLong)webkit_soup_auth_dialog_get_type();
 	WebKitGTK_NATIVE_EXIT(env, that, _1webkit_1soup_1auth_1dialog_1get_1type_FUNC);
 	return rc;
 }


hooks/post-receive
-- 
Debian packaging for swt-gtk.



More information about the pkg-java-commits mailing list