From a089324fb303dcee87c64f0a9a7a42096432b508 Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Aug 16 2020 10:32:26 +0000 Subject: Fix fallback logic on non-intel architectures --- diff --git a/0001-Convert-int-to-boolean-like-C-does-nonzero-is-true.patch b/0001-Convert-int-to-boolean-like-C-does-nonzero-is-true.patch new file mode 100644 index 0000000..2a741cf --- /dev/null +++ b/0001-Convert-int-to-boolean-like-C-does-nonzero-is-true.patch @@ -0,0 +1,31 @@ +From 759d6bddb616278a13713376c4ed82422e655892 Mon Sep 17 00:00:00 2001 +From: Charles Oliver Nutter +Date: Tue, 21 Apr 2020 16:19:37 -0500 +Subject: [PATCH] Convert int to boolean like C does (nonzero is true) + +Fixes #200 +--- + src/main/java/jnr/ffi/provider/jffi/NumberUtil.java | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/main/java/jnr/ffi/provider/jffi/NumberUtil.java b/src/main/java/jnr/ffi/provider/jffi/NumberUtil.java +index 3ca02c5..89bdb8f 100644 +--- a/src/main/java/jnr/ffi/provider/jffi/NumberUtil.java ++++ b/src/main/java/jnr/ffi/provider/jffi/NumberUtil.java +@@ -158,9 +158,10 @@ public final class NumberUtil { + mv.i2c(); + + } else if (boolean.class == to) { +- // Ensure only 0x0 and 0x1 values are used for boolean +- mv.iconst_1(); +- mv.iand(); ++ // allow all non-zero values to be treated as true ++ mv.i2l(); ++ mv.lconst_0(); ++ mv.lcmp(); + } + } + } +-- +2.26.2 + diff --git a/jnr-ffi.spec b/jnr-ffi.spec index d4fda32..2340875 100644 --- a/jnr-ffi.spec +++ b/jnr-ffi.spec @@ -1,11 +1,14 @@ Name: jnr-ffi Version: 2.1.8 -Release: 8%{?dist} +Release: 9%{?dist} Summary: Java Abstracted Foreign Function Layer License: ASL 2.0 URL: http://github.com/jnr/%{name}/ Source0: https://github.com/jnr/%{name}/archive/%{name}-%{version}.tar.gz +# Taken from https://github.com/jnr/jnr-ffi/commit/edda8cfe60b77ceeba301d20db0f5c996b958f5a +Patch1: 0001-Convert-int-to-boolean-like-C-does-nonzero-is-true.patch + BuildRequires: gcc BuildRequires: make @@ -22,12 +25,9 @@ BuildRequires: mvn(org.ow2.asm:asm-analysis) BuildRequires: mvn(org.ow2.asm:asm-commons) BuildRequires: mvn(org.ow2.asm:asm-tree) BuildRequires: mvn(org.ow2.asm:asm-util) -BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:) BuildArch: noarch -# don't obsolete/provide jaffl, gradle is using both jaffl and jnr-ffi... - %description An abstracted interface to invoking native functions from java @@ -39,11 +39,13 @@ This package contains the API documentation for %{name}. %prep %setup -q -n %{name}-%{name}-%{version} +%patch1 -p1 # remove all builtin jars find -name '*.jar' -o -name '*.class' -exec rm -f '{}' \; # Unnecessary for RPM builds +%pom_remove_parent %pom_remove_plugin ":maven-javadoc-plugin" # don't fail on unused parameters... (TODO: send patch upstream) @@ -62,6 +64,9 @@ sed -i 's|-Werror||' libtest/GNUmakefile %license LICENSE %changelog +* Tue Aug 04 2020 Mat Booth - 2.1.8-9 +- Fix fallback logic on non-intel architectures + * Sat Aug 01 2020 Fedora Release Engineering - 2.1.8-8 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild