当前位置: 首页 > 工具软件 > ux-js > 使用案例 >

python 源码编译 ffi. h文件无路径_hp-ux-ia64:jffi/ffi 编译总结

晏弘雅
2023-12-01

在HP-UX-IA64下编译JFFI及FFI遇到很多问题,官网jffi文档中也并没有在hp-ux-ia64平台上有编译过。

次文档仅为记录之用。记录编译过程,但并不意味着本人遇到的问题已经解决。

注意点:

1. hpux上装的gcc 4.3.2.编译时默认是32位。编64位需要加参数: -mlp64

2. hpux上的jdk(1.6)目录结构与linux上jdk目录不一致。64位版本java/javac/javah命令行在$JAVA_HOME/bin/IA64W目录下。ant启用$JAVA_HOME/bin的java命令,默认是32位的。解决的方法可以建文件夹然后 ln -s 三个命令连接,修改相应的$JAVA_HOME。

3. ant jar生成complete.jar,jffi.jar 等jar包时,脚本能识别机器。但是jffi的java代码里面并不支持ia-64-hpux导致打包的目录是unknown-HP-UX.查看jffi-1.2.7/src/main/java/com/kenai/jffi/internal/StubLoader.java文件,源代码中CPU未定义IA64,OS也未定义HPUX。导致取不到CPU,OS值是unknown。

如不改源代码。build.xml中需要修改打jar包时的目录。否则ant test会报can't load jni/unknown-HP-UX/libjffi-1.2.so文件

4.需要修改makefile内容及.h头文件如下:

export CC="gcc -mbig-endian -mlp64 -pthread"

export LD="gcc -shared -fPIC -mbig-endian -mlp64 -mt -static-libgcc -Wl -O1 -lrt -ldl -lpthread"

jffi-1.2.7/GNUmakefile

SRC_DIR ?= $(shell pwd)/jni

==>

SRC_DIR ?= $(shell pwd)

JFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing -DNDEBUG

==>

JFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing -DNDEBUG -DMAP_ANON=MAP_ANONYMOUS -DFFI_NATIVE_RAW_API=0

FFI_CC = $(CCACHE) $(CC)

==>

FFI_CC = $(CC)

jffi-1.2.7/libtest/GNUmakefile

$(CCACHE) $(CC) $(CFLAGS) -c $< -o $@

==>

$(CC) $(CFLAGS) -c $< -o $@

SOFLAGS = -shared -Wl,-O1

==>

SOFLAGS = -shared -Wl -O1

jffi-1.2.7/jni/jffi/endian.h

添加

# define LITTLE_ENDIAN 1234

# define BIG_ENDIAN 4321

# define BYTE_ORDER BIG_ENDIAN

jffi-1.2.7/jni/jffi/jffi.h

添加,免得很多文件都要加这个.h文件

#include

jffi-1.2.7/jni/jffi/LongDouble.c

ld = strtold(tmp, NULL);

==>此处修改有点不负责任。128位的long double改成64位的double。实际应该用得不多,先将就下。。。

ld = strtod(tmp, NULL);

Oracle 11203 &plus; ASM安装 for HP UX

一,安装前准备 1.创建所需组和用户 /usr/sbin/groupadd -g 1000 oinstall/usr/sbin/groupadd -g 1020 asmadmin/usr/sbin/g ...

编译安装tree命令

查看当前的tree [12:33:33 root@C8[ ~]#rpm -qi tree Name : tree Version : 1.7.0 Release : 15.el8 Architectu ...

hp unix&lowbar;ssh

http://www.cyberciti.biz/faq/howto-hpux-sshd-service-startup-shutdown/ http://searchnetworking.techt ...

Ubuntu 15&period;04 编译UE4 for Linux版

源 起 Unreal Engine 4 是全球最先进的Realtime Illumination & Physical 引擎: 长期以来,UE4都只有Windows版和Mac版,今年终于向Li ...

【夯实Nginx基础】Nginx工作原理和优化、漏洞

 类似资料: