Issue #20447 has been updated by vo.x (Vit Ondruch).
And it should also be reproducible on local environment, having 32bit user space libraries
installed. And the same applies for container. Having x86_64 container with 32bit
userspace libraries should be fine. You just need to use `./configure --target=i686` I
believe (but I'm not expert).
----------------------------------------
Bug #20447: Ruby 3.3.1 broken on i686 due to "incompatible pointer type" error
https://bugs.ruby-lang.org/issues/20447#change-108120
* Author: vo.x (Vit Ondruch)
* Status: Open
* ruby -v: ruby 3.3.1 (2024-04-23 revision c56cd86388) [i686-linux]
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
~~~
gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall
-Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3
-Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=i686
-mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables
-fstack-clash-protection -fPIC -m32 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
-fstack-protector-strong -fno-strict-overflow -fvisibility=hidden
-fexcess-precision=standard -DRUBY_EXPORT -I. -I.ext/include/i386-linux
-I/builddir/build/BUILD/ruby-3.3.1/include -I/builddir/build/BUILD/ruby-3.3.1
-I/builddir/build/BUILD/ruby-3.3.1/prism
-I/builddir/build/BUILD/ruby-3.3.1/enc/unicode/15.0.0 -o time.o -c
/builddir/build/BUILD/ruby-3.3.1/time.c
make: Leaving directory '/builddir/build/BUILD/ruby-3.3.1/redhat-linux-build'
/builddir/build/BUILD/ruby-3.3.1/time.c: In function ‘zone_timelocal’:
/builddir/build/BUILD/ruby-3.3.1/time.c:2345:35: error: passing argument 3 of
‘split_second’ from incompatible pointer type [-Wincompatible-pointer-types]
2345 | split_second(tobj->timew, &t, &s);
| ^~
| |
| wideval_t * {aka long long unsigned int *}
/builddir/build/BUILD/ruby-3.3.1/time.c:616:58: note: expected ‘VALUE *’ {aka ‘long
unsigned int *’} but argument is of type ‘wideval_t *’ {aka ‘long long unsigned int *’}
616 | split_second(wideval_t timew, wideval_t *timew_p, VALUE *subsecx_p)
| ~~~~~~~^~~~~~~~~
make: *** [Makefile:447: time.o] Error 1
make: *** Waiting for unfinished jobs....
make: Entering directory '/builddir/build/BUILD/ruby-3.3.1/redhat-linux-build'
~~~
This is presumably due to #20327 /
https://github.com/ruby/ruby/pull/10332. There seems to
be medicine in master commit:git|055613fd868a8c94e43893f8c58a00cdd2a81f6d or maybe the
whole
https://github.com/ruby/ruby/pull/10332, not sure
--
https://bugs.ruby-lang.org/