Skip to content
Snippets Groups Projects
Commit 12bff9a9 authored by brinn's avatar brinn
Browse files

fix: go LSF for Linux and Solaris 32bit in order to avoid problem stating files larger than 2GB

change: on MacOSX 64bit: use the new Leopard stat64() and lstat64() calls

SVN: 11771
parent 64ffaf0e
No related branches found
No related tags found
No related merge requests found
#! /bin/bash
gcc -shared -O3 unix.c -I/usr/java/jdk5/include -I/usr/java/jdk5/include/linux -o libunix.so
gcc -shared -O3 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/usr/java/jdk5/include -I/usr/java/jdk5/include/linux unix.c -o libunix.so
# MACHINE_BYTE_ORDER=1 corresponds to 'little endian'
gcc -shared -O3 -fPIC -DMACHINE_BYTE_ORDER=1 copy*.c -I/usr/java/jdk5/include -I/usr/java/jdk5/include/linux -o libnativedata.so
#! /bin/bash
gcc -m64 -dynamiclib -O3 -D_POSIX_C_SOURCE unix.c -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -o libunix.jnilib
gcc -m64 -dynamiclib -D__STAT=stat64 -D__LSTAT=lstat64 -O3 unix.c -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -o libunix.jnilib
# MACHINE_BYTE_ORDER=1 corresponds to 'little endian'
gcc -m64 -dynamiclib -O3 -DMACHINE_BYTE_ORDER=1 copy*.c -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -o libnativedata.jnilib
#! /bin/bash
cc -G -KPIC -fast -I/usr/java/include -I/usr/java/include/solaris unix.c -o libunix.so
cc -G -KPIC -fast -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/usr/java/include -I/usr/java/include/solaris unix.c -o libunix.so
# MACHINE_BYTE_ORDER=2 corresponds to 'big endian'
cc -G -KPIC -fast -DMACHINE_BYTE_ORDER=2 copy*.c -I/usr/java/include -I/usr/java/include/solaris -o libnativedata.so
#! /bin/bash
cc -G -KPIC -fast -I/usr/java/include -I/usr/java/include/solaris unix.c -o libunix.so
cc -G -KPIC -fast -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/usr/java/include -I/usr/java/include/solaris unix.c -o libunix.so
# MACHINE_BYTE_ORDER=1 corresponds to 'little endian'
cc -G -KPIC -fast -DMACHINE_BYTE_ORDER=1 copy*.c -I/usr/java/include -I/usr/java/include/solaris -o libnativedata.so
......@@ -28,6 +28,14 @@
#define SYMLINK 2
#define OTHER 3
#ifndef __STAT
#define __STAT stat
#endif
#ifndef __LSTAT
#define __LSTAT lstat
#endif
/* Global references. */
jclass stringClass;
jclass passwordClass;
......@@ -126,12 +134,12 @@ JNIEXPORT jint JNICALL Java_ch_systemsx_cisd_base_unix_Unix_symlink
}
/* Function pointer for stat function calls. */
typedef int (*stat_func_ptr)(const char *path, struct stat *buf);
typedef int (*stat_func_ptr)(const char *path, struct __STAT *buf);
jobject call_stat(JNIEnv *env, jclass clss, jstring filename, stat_func_ptr statf)
{
const char* pfilename;
struct stat s;
struct __STAT s;
jobject result;
int retval;
jbyte type;
......@@ -167,12 +175,12 @@ jobject call_stat(JNIEnv *env, jclass clss, jstring filename, stat_func_ptr stat
JNIEXPORT jobject JNICALL Java_ch_systemsx_cisd_base_unix_Unix_stat(JNIEnv *env, jclass clss, jstring filename)
{
return call_stat(env, clss, filename, &stat);
return call_stat(env, clss, filename, &__STAT);
}
JNIEXPORT jobject JNICALL Java_ch_systemsx_cisd_base_unix_Unix_lstat(JNIEnv *env, jclass clss, jstring filename)
{
return call_stat(env, clss, filename, &lstat);
return call_stat(env, clss, filename, &__LSTAT);
}
JNIEXPORT jstring JNICALL Java_ch_systemsx_cisd_base_unix_Unix_readlink(JNIEnv *env, jclass clss, jstring linkname, jint linkvallen)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment