Subject: 2.9.8 fails to build on 32bit (armv7l and i586)
From: Jonathan Brielmaier <[email-masked]>
To: [email-masked]
Date: Fri, 3 Jan 2020 12:15:25 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

While building guile 2.9.8 on openSUSE Tumbleweed, you get the same
build failure on armv7l and i586. So I assume it has something to do
with 32bit.

libtool: compile:  gcc -std=gnu11 -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1
-I.. -I.. -I../lib -I../lib -iquote. -I../libguile/lightening
-I/home/abuild/rpmbuild/BUILD/guile-2.9.8 -pthread -Wall
-Wmissing-prototypes -Wpointer-arith -fno-strict-aliasing -fwrapv
-fvisibility=hidden -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
-fstack-clash-protection -Werror=return-type -flto=auto -c jit.c  -fPIC
-DPIC -o .libs/libguile_3.0_la-jit.o
jit.c: In function 'compile_s64_to_f64':
jit.c:5007:27: error: incompatible type for argument 3 of 'emit_sp_ref_s64'
5007 |   emit_sp_ref_s64 (j, T0, src);
     |                           ^~~
     |                           |
     |                           uint16_t {aka short unsigned int}
jit.c:1082:64: note: expected 'jit_gpr_t' {aka 'struct jit_gpr'} but
argument is of type 'uint16_t' {aka 'short unsigned int'}
1082 | emit_sp_ref_s64 (scm_jit_state *j, jit_gpr_t dst_lo, jit_gpr_t
dst_hi,
     |                                                   ~~~~~~~~~^~~~~~
jit.c:5007:3: error: too few arguments to function 'emit_sp_ref_s64'
5007 |   emit_sp_ref_s64 (j, T0, src);
     |   ^~~~~~~~~~~~~~~
jit.c:1082:1: note: declared here
1082 | emit_sp_ref_s64 (scm_jit_state *j, jit_gpr_t dst_lo, jit_gpr_t
dst_hi,
     | ^~~~~~~~~~~~~~~
At top level:
jit.c:1028:1: warning: 'sp_s32_operand' defined but not used
[-Wunused-function]
1028 | sp_s32_operand (scm_jit_state *j, uint32_t src)
     | ^~~~~~~~~~~~~~
jit.c:974:1: warning: 'sp_u64_operand' defined but not used
[-Wunused-function]
974 | sp_u64_operand (scm_jit_state *j, uint32_t slot)
    | ^~~~~~~~~~~~~~