Skip to content

Instantly share code, notes, and snippets.

@ericdwhite
Created September 1, 2012 13:05
Show Gist options
  • Select an option

  • Save ericdwhite/3572794 to your computer and use it in GitHub Desktop.

Select an option

Save ericdwhite/3572794 to your computer and use it in GitHub Desktop.
libjxs MacOSX Patch
diff --git a/build.xml b/build.xml
index ace1c13..ae15832 100644
--- a/build.xml
+++ b/build.xml
@@ -35,8 +35,8 @@
<property name="class.jni5" value="io.crossroads.jni.XsErrors"/>
<property name="dir.xs" location="../libxs"/>
<property name="dir.xs.inc" location="${dir.xs}/include"/>
- <property name="dir.xs.lib" location="${dir.xs}/lib/Win32"/>
- <property name="dir.xs.libname" value="libxs_d"/>
+ <property name="dir.xs.lib" location="${dir.xs}/lib"/>
+ <property name="dir.xs.libname" value="xs"/>
<property name="dir.src.test" location="${dir.src}/test"/>
<property name="dir.src.test.java" location="${dir.src.test}/java"/>
@@ -50,15 +50,16 @@
<property name="dir.jbuild.perf" location="${dir.jbuild}/perf"/>
<property name="dir.jbuild.jar" location="${dir.jbuild}/jar"/>
+ <property name="dir.jni.headers" location="/System/Library/Frameworks/JavaVM.framework/Headers/"/>
<property name="dir.cbuild" location="${dir.build}/c"/>
<property name="dir.cbuild.main" location="${dir.cbuild}/main"/>
<property name="dir.cbuild.main.jni" location="${dir.cbuild}/main/jni"/>
- <property name="dir.cbuild.dll" location="${dir.cbuild}/dll"/>
+ <property name="dir.cbuild.sharedlibrary" location="${dir.cbuild}/sharedlibrary"/>
<property name="file.jar.main" value="${dir.jbuild.jar}/${project}-${version}.jar"/>
<property name="file.jar.test" value="${dir.jbuild.jar}/${project}-${version}-test.jar"/>
<property name="file.jar.perf" value="${dir.jbuild.jar}/${project}-${version}-perf.jar"/>
- <property name="file.dll.main" value="${dir.cbuild.dll}/${project}"/>
+ <property name="file.sharedlibrary.main" value="${dir.cbuild.sharedlibrary}/${project}"/>
<!-- CLASSPATHS -->
@@ -153,7 +154,7 @@
<mkdir dir="${dir.cbuild}"/>
<mkdir dir="${dir.cbuild.main}"/>
<mkdir dir="${dir.cbuild.main.jni}"/>
- <mkdir dir="${dir.cbuild.dll}"/>
+ <mkdir dir="${dir.cbuild.sharedlibrary}"/>
</target>
<target name="compile.main" depends="create.dirs">
@@ -182,11 +183,12 @@
<target name="jni.geno" depends="jni.genh">
<cpptasks:cc warnings="none"
subsystem="console"
- name="msvc"
+ name="gcc"
objdir="${dir.cbuild.main.jni}"
outtype="shared"
- outfile="${file.dll.main}">
- <includepath path="${dir.cbuild.main.jni};${dir.xs.inc}"/>
+ outfile="${file.sharedlibrary.main}">
+ <includepath path="${dir.cbuild.main.jni};${dir.xs.inc};${dir.jni.headers}"/>
+ <compilerarg value="-fnested-functions"/>
<fileset dir="${dir.src.main.c.jni}" includes="*.c"/>
<libset dir="${dir.xs.lib}" libs="${dir.xs.libname}"/>
</cpptasks:cc>
@@ -261,7 +263,7 @@
<target name="run" depends="jni.geno,jar.main">
<java fork="true" classname="${cn}">
- <sysproperty key="java.library.path" value="${dir.cbuild.dll}"/>
+ <sysproperty key="java.library.path" value="${dir.cbuild.sharedlibrary}"/>
<classpath refid="cp.run-main"/>
<arg line="${args}"/>
</java>
@@ -269,7 +271,7 @@
<target name="perf" depends="jni.geno,jar.main,jar.perf">
<java fork="true" classname="${cn}">
- <sysproperty key="java.library.path" value="${dir.cbuild.dll}"/>
+ <sysproperty key="java.library.path" value="${dir.cbuild.sharedlibrary}"/>
<classpath refid="cp.run-perf"/>
<arg line="${args}"/>
</java>
diff --git a/src/main/c/jni/XsOption.c b/src/main/c/jni/XsOption.c
index 7dc50b5..02ee732 100644
--- a/src/main/c/jni/XsOption.c
+++ b/src/main/c/jni/XsOption.c
@@ -1,5 +1,5 @@
#include "XsUtil.h"
-
+#include <inttypes.h>
#include "io_crossroads_jni_XsOption.h"
JNIEXPORT jint JNICALL Java_io_crossroads_jni_XsOption_call_1getsockopt_1int(JNIEnv* env,
@@ -94,7 +94,8 @@ JNIEXPORT jint JNICALL Java_io_crossroads_jni_XsOption_call_1getsockopt_1long(JN
jfieldID i_socket = 0;
long f_socket = 0;
void* sock = 0;
- unsigned __int64 oval = 0;
+ //unsigned __int64 oval = 0;
+ uint64_t oval = 0;
size_t olen = sizeof(oval);
// The class for the calling object
@@ -263,7 +264,8 @@ JNIEXPORT jint JNICALL Java_io_crossroads_jni_XsOption_call_1setsockopt_1long(JN
jfieldID i_socket = 0;
long f_socket = 0;
void* sock = 0;
- unsigned __int64 oval = 0;
+ //unsigned __int64 oval = 0;
+ uint64_t oval = 0;
size_t olen = sizeof(oval);
// The class for the calling object
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment