Details
-
Type:
Task
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: JRuby 1.4
-
Component/s: None
-
Labels:None
-
Number of attachments :4
Description
The current release of jffi bundled with JRuby has binaries for Darwin (all arches), i386-Linux, i386-Windows, i386-SunOS and x86_64-SunOS. It would be beneficial to have binaries for at least x86_64-Linux, and maybe more esoteric platforms like i386-FreeBSD and x86_64-FreeBSD.
To build jffi, do something like:
hg clone -r0.6 https://kenai.com/hg/jffi~core jffi-0.6 cd jffi-0.6 ant jar test cp dist/x86_64-Linux.jar /path/to/jruby/build_lib/jffi-x86_64-Linux.jar cd /path/to/jruby ant clean test
The resulting dist/$CPU-$OS.jar file could also be attached to this issue, and someone could commit it to jruby.
-
- ant.out.txt.bz2
- 26/Aug/09 2:22 AM
- 4 kB
- Albert Davidson Chou
-
Hide
- jffi-i386-FreeBSD.jar
- 29/Oct/09 2:34 PM
- 22 kB
- Philip Jenvey
-
- META-INF/MANIFEST.MF 0.1 kB
- jni/i386-FreeBSD/libjffi-0.6.so 51 kB
-
Hide
- x86_64-FreeBSD.jar
- 28/Oct/09 10:35 AM
- 26 kB
- Mike Burns
-
- META-INF/MANIFEST.MF 0.1 kB
- jni/x86_64-FreeBSD/libjffi-0.6.so 66 kB
-
Hide
- x86_64-Linux.jar
- 23/Sep/09 7:33 PM
- 29 kB
- Joseph LaFata
-
- META-INF/MANIFEST.MF 0.1 kB
- jni/x86_64-Linux/libjffi-0.6.so 72 kB
Issue Links
- is related to
-
JRUBY-3972
FFI is broken on X86_64 linux
-
Activity
James: Yeah, I suppose if we had some time to set up VBox or VMWare instances for all these platforms we'd be able to automate building binaries for them. That certainly takes time though. Maybe we could get community members to contribute images ready for use?
An automated build for this would be nice. But the time cost of setting up automated builds outweighs the ~5 minutes every couple of months it takes me to fire up an ubuntu vbox instance and roll the i386-Linux binaries, so I haven't looked into it in any serious way.
Automated builds would also be good from a trusted binary point of view, rather than contributed by J. Random Hacker.
I'm planning to build AIX and SPARC Solaris versions very soon. Definitely before 1.4 comes out (do you have a release date)?
Attached is the entire output of my attempt to build on PPC Mac OS X 10.4.11, in case, as is likely, you can figure out from it what is wrong more quickly than I can.
Albert: The jffi-Darwin.jar in jruby should already contain ppc code (its a universal binary - ppc+i386+x86_64 built against the 10.4 universal SDK), so there should be no need to recompile. The recompilation is failing because it is trying to compile+link x86_64 code, which is apparently not supported on your system. If you want to make it compile, edit jni/GNUmakefile and remove x86_64 from the "ARCHES = i386 x86_64 ppc" line.
Testing is another matter. ppc JNI binaries cannot be use on intel macs, hence it hasn't been tested at all, so you might want to make sure that 'ant test' in JRuby runs. If it fails somewhere, file another jira ticket for it.
Looks like the attached x86_64-Linux.jar works and it has been commited to the repo, BUT, it was after 1.4.0RC1 and hence FFI doesn't work in JRuby 1.4.0RC1 under Linux x64. This needs to be backported from master to 1.4 branch.
The attached jar worked when I copied it to the lib/ directory of a 1.4.0RC1 release.
Added in commit 9d76664 on jruby-1_4 branch and already committed on master. Resolving
Looks like Thom forgot to cherry-pick commits 38b1deed2d8bc705dea54646eb5d32bb1b92fb0b and f6246772a8c658246a06d0f535be65a6a8c09508
Two forgotten commits applied to branch. Resolving for real now. ![]()
Attaching the FreeBSD AMD64 JFFI jar because the one in jruby-1.4.0RC2 was empty.
Mike: Added your jar to JRuby master and 1.4. Thank you!
Phil: It looks like there's already a, i386-FreeBSD.jar in JFFI...is yours a more up-to-date version? The one we have in jruby/build_lib is definitely not the complete version, though...so I'm trying to decide which jar is the best one.
Because there's already an i386-FreeBSD.jar of the expected size in JFFI, I've copied that to build_lib/jffi-i386-FreeBSD.jar. Pushed to master in bab330d and 1.4 in 1d7de2d.
There is still no windows x64 dll file ![]()
copying the i386 file and repacking it in the jar didn't work.
does anybody have a 64 bit version of the dll for windows?
Marc,
I suspect that files are missing because no one has the machine necessary to produce them.
Do you have one for x86_64 Windows? If so, what (else) do you need to create it?
I do have access to a windows x86_64 machine.
What I am missing is the proper knowledge to actually be able to compile the dll ![]()
I opened a new bug for it: JRUBY-4358
Apologies if this is not the right venue to post this question. I am trying to build the binaries for JFFI for the s390x architecture for JFFI 1.0.2 but receive the following error when I run 'ant jar test' and receive the following error after a while:
-build-native-library:
[exec] env: /bsc/jruby/jffi-1.0.2/jni/libffi/configure: No such file or directory
[exec] make: *** [/bsc/jruby/jffi-1.0.2/build/jni/libffi-s390x-linux/.libs/libffi_convenience.a] Error 127
[exec] Configuring libffi for s390x-linux
BUILD FAILED
/bsc/jruby/jffi-1.0.2/custom-build.xml:125: exec returned: 2
Can someone describe how ones goes about building binaries for specific architectures?
Thanks.
I've done some one-off builds for x86_64 Linux. I would hope to be able to set something up in Hudson to do this on a more regular basis? Is anyone else already using Hudson like that?