Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3f5d6edef06e
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1495127636b3
Choose a head ref
  • 2 commits
  • 2 files changed
  • 2 contributors

Commits on Aug 12, 2014

  1. Add PowerPC64 little endian support in FFI

    Adds support for the ppc64le architecture in JRuby FFI.
    Vitor de Lima committed Aug 12, 2014
    Copy the full SHA
    17c7a15 View commit details

Commits on Nov 2, 2014

  1. Merge pull request #1897 from vitordelima/ppc64le

    Add PowerPC64 little endian support in FFI
    headius committed Nov 2, 2014
    Copy the full SHA
    1495127 View commit details
Showing with 104 additions and 0 deletions.
  1. +4 −0 core/src/main/java/org/jruby/ext/ffi/Platform.java
  2. +100 −0 lib/ruby/shared/ffi/platform/ppc64le-linux/types.conf
4 changes: 4 additions & 0 deletions core/src/main/java/org/jruby/ext/ffi/Platform.java
Original file line number Diff line number Diff line change
@@ -79,6 +79,7 @@ public enum CPU_TYPE {
X86_64,
POWERPC,
POWERPC64,
POWERPC64LE,
SPARC,
SPARCV9,
S390X,
@@ -134,6 +135,8 @@ private static final CPU_TYPE determineCPU() {
return CPU.POWERPC;
} else if ("ppc64".equals(archString)) {
return CPU.POWERPC64;
} else if ("ppc64le".equals(archString)) {
return CPU.POWERPC64LE;
} else if ("sparc".equals(archString)) {
return CPU.SPARC;
} else if ("sparcv9".equals(archString)) {
@@ -197,6 +200,7 @@ protected Platform(OS_TYPE os) {
break;
case X86_64:
case POWERPC64:
case POWERPC64LE:
case SPARCV9:
case S390X:
dataModel = 64;
100 changes: 100 additions & 0 deletions lib/ruby/shared/ffi/platform/ppc64le-linux/types.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
rbx.platform.typedef.__u_char = uchar
rbx.platform.typedef.__u_short = ushort
rbx.platform.typedef.__u_int = uint
rbx.platform.typedef.__u_long = ulong
rbx.platform.typedef.__int8_t = char
rbx.platform.typedef.__uint8_t = uchar
rbx.platform.typedef.__int16_t = short
rbx.platform.typedef.__uint16_t = ushort
rbx.platform.typedef.__int32_t = int
rbx.platform.typedef.__uint32_t = uint
rbx.platform.typedef.__int64_t = long
rbx.platform.typedef.__uint64_t = ulong
rbx.platform.typedef.__quad_t = long
rbx.platform.typedef.__u_quad_t = ulong
rbx.platform.typedef.__dev_t = ulong
rbx.platform.typedef.__uid_t = uint
rbx.platform.typedef.__gid_t = uint
rbx.platform.typedef.__ino_t = ulong
rbx.platform.typedef.__ino64_t = ulong
rbx.platform.typedef.__mode_t = uint
rbx.platform.typedef.__nlink_t = ulong
rbx.platform.typedef.__off_t = long
rbx.platform.typedef.__off64_t = long
rbx.platform.typedef.__pid_t = int
rbx.platform.typedef.__clock_t = long
rbx.platform.typedef.__rlim_t = ulong
rbx.platform.typedef.__rlim64_t = ulong
rbx.platform.typedef.__id_t = uint
rbx.platform.typedef.__time_t = long
rbx.platform.typedef.__useconds_t = uint
rbx.platform.typedef.__suseconds_t = long
rbx.platform.typedef.__daddr_t = int
rbx.platform.typedef.__swblk_t = long
rbx.platform.typedef.__key_t = int
rbx.platform.typedef.__clockid_t = int
rbx.platform.typedef.__timer_t = pointer
rbx.platform.typedef.__blksize_t = long
rbx.platform.typedef.__blkcnt_t = long
rbx.platform.typedef.__blkcnt64_t = long
rbx.platform.typedef.__fsblkcnt_t = ulong
rbx.platform.typedef.__fsblkcnt64_t = ulong
rbx.platform.typedef.__fsfilcnt_t = ulong
rbx.platform.typedef.__fsfilcnt64_t = ulong
rbx.platform.typedef.__ssize_t = long
rbx.platform.typedef.__loff_t = long
rbx.platform.typedef.*__qaddr_t = long
rbx.platform.typedef.*__caddr_t = char
rbx.platform.typedef.__intptr_t = long
rbx.platform.typedef.__socklen_t = uint
rbx.platform.typedef.u_char = uchar
rbx.platform.typedef.u_short = ushort
rbx.platform.typedef.u_int = uint
rbx.platform.typedef.u_long = ulong
rbx.platform.typedef.quad_t = long
rbx.platform.typedef.u_quad_t = ulong
rbx.platform.typedef.loff_t = long
rbx.platform.typedef.ino_t = ulong
rbx.platform.typedef.dev_t = ulong
rbx.platform.typedef.gid_t = uint
rbx.platform.typedef.mode_t = uint
rbx.platform.typedef.nlink_t = ulong
rbx.platform.typedef.uid_t = uint
rbx.platform.typedef.off_t = long
rbx.platform.typedef.pid_t = int
rbx.platform.typedef.id_t = uint
rbx.platform.typedef.ssize_t = long
rbx.platform.typedef.daddr_t = int
rbx.platform.typedef.key_t = int
rbx.platform.typedef.time_t = long
rbx.platform.typedef.clockid_t = int
rbx.platform.typedef.timer_t = pointer
rbx.platform.typedef.size_t = ulong
rbx.platform.typedef.ulong = ulong
rbx.platform.typedef.ushort = ushort
rbx.platform.typedef.uint = uint
rbx.platform.typedef.int8_t = char
rbx.platform.typedef.int16_t = short
rbx.platform.typedef.int32_t = int
rbx.platform.typedef.int64_t = long
rbx.platform.typedef.u_int8_t = uchar
rbx.platform.typedef.u_int16_t = ushort
rbx.platform.typedef.u_int32_t = uint
rbx.platform.typedef.u_int64_t = ulong
rbx.platform.typedef.register_t = long
rbx.platform.typedef.__sig_atomic_t = int
rbx.platform.typedef.suseconds_t = long
rbx.platform.typedef.__fd_mask = long
rbx.platform.typedef.fd_mask = long
rbx.platform.typedef.blkcnt_t = long
rbx.platform.typedef.fsblkcnt_t = ulong
rbx.platform.typedef.fsfilcnt_t = ulong
rbx.platform.typedef.pthread_t = ulong
rbx.platform.typedef.pthread_key_t = uint
rbx.platform.typedef.pthread_once_t = int
rbx.platform.typedef.socklen_t = uint
rbx.platform.typedef.sa_family_t = ushort
rbx.platform.typedef.rlim_t = ulong
rbx.platform.typedef.__rlimit_resource_t = int
rbx.platform.typedef.__rusage_who_t = int
rbx.platform.typedef.__priority_which_t = int