Public bug reported:

ruby3.3 version 3.3.8-2ubuntu1 on questing is FTBFS on arm64, here are
the relevant logs

```
vm_callinfo.h: In function ‘vm_ci_dump’:
internal.h:93:72: error: ‘RUBY_FUNCTION_NAME_STRING’ undeclared (first use in 
this function)
   93 | #define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, 
RUBY_FUNCTION_NAME_STRING)
      |                                                                        
^~~~~~~~~~~~~~~~~~~~~~~~~
vm_callinfo.h:179:9: note: in expansion of macro ‘rp’
  179 |         rp(ci);
      |         ^~
internal.h:93:72: note: each undeclared identifier is reported only once for 
each function it appears in
   93 | #define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, 
RUBY_FUNCTION_NAME_STRING)
      |                                                                        
^~~~~~~~~~~~~~~~~~~~~~~~~
vm_callinfo.h:179:9: note: in expansion of macro ‘rp’
  179 |         rp(ci);
      |         ^~
vm_callinfo.h: In function ‘vm_ci_new_’:
internal.h:93:72: error: ‘RUBY_FUNCTION_NAME_STRING’ undeclared (first use in 
this function)
   93 | #define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, 
RUBY_FUNCTION_NAME_STRING)
      |                                                                        
^~~~~~~~~~~~~~~~~~~~~~~~~
vm_callinfo.h:216:16: note: in expansion of macro ‘rp’
  216 |     if (debug) rp(ci);
      |                ^~
aarch64-linux-gnu-gcc -g -O2 -Werror=implicit-function-declaration 
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer 
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security 
-mbranch-protection=standard 
-fdebug-prefix-map=/<<PKGBUILDDIR>>=/usr/src/ruby3.3-3.3.8-2ubuntu1 -fPIC  
-fstack-protector-strong -mbranch-protection=pac-ret -fno-strict-overflow 
-fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -I. 
-I.ext/include/aarch64-linux-gnu -I./include -I. -I./prism 
-I./enc/unicode/15.0.0   -Wdate-time -D_FORTIFY_SOURCE=3    -o debug.o -c 
debug.c
aarch64-linux-gnu-gcc -g -O2 -Werror=implicit-function-declaration 
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer 
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security 
-mbranch-protection=standard 
-fdebug-prefix-map=/<<PKGBUILDDIR>>=/usr/src/ruby3.3-3.3.8-2ubuntu1 -fPIC  
-fstack-protector-strong -mbranch-protection=pac-ret -fno-strict-overflow 
-fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -I. 
-I.ext/include/aarch64-linux-gnu -I./include -I. -I./prism 
-I./enc/unicode/15.0.0   -Wdate-time -D_FORTIFY_SOURCE=3    -o debug_counter.o 
-c debug_counter.c
In file included from vm_core.h:94,
                 from eval_intern.h:5,
                 from debug.c:16:
vm_callinfo.h: In function ‘vm_ci_dump’:
internal.h:93:72: error: ‘RUBY_FUNCTION_NAME_STRING’ undeclared (first use in 
this function)
   93 | #define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, 
RUBY_FUNCTION_NAME_STRING)
      |                                                                        
^~~~~~~~~~~~~~~~~~~~~~~~~
vm_callinfo.h:179:9: note: in expansion of macro ‘rp’
  179 |         rp(ci);
      |         ^~
internal.h:93:72: note: each undeclared identifier is reported only once for 
each function it appears in
   93 | #define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, 
RUBY_FUNCTION_NAME_STRING)
      |                                                                        
^~~~~~~~~~~~~~~~~~~~~~~~~
vm_callinfo.h:179:9: note: in expansion of macro ‘rp’
  179 |         rp(ci);
      |         ^~
vm_callinfo.h: In function ‘vm_ci_new_’:
internal.h:93:72: error: ‘RUBY_FUNCTION_NAME_STRING’ undeclared (first use in 
this function)
   93 | #define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, 
RUBY_FUNCTION_NAME_STRING)
      |                                                                        
^~~~~~~~~~~~~~~~~~~~~~~~~
vm_callinfo.h:216:16: note: in expansion of macro ‘rp’
  216 |     if (debug) rp(ci);
      |                ^~
make[2]: *** [Makefile:447: debug.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:447: compile.o] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: error: make -j8 main V=1 returned exit code 2
make[1]: *** [debian/rules:113: override_dh_auto_build-arch] Error 25
```

here, you can find the full logs:
https://launchpad.net/~0xnishit/+archive/ubuntu/devel-packages-ppa

this error remains same with/without enabling -proposed pocket as ppa
deps

The same issue reported on RH as well:
https://bugzilla.redhat.com/show_bug.cgi?id=2343981

so as a temporary fix, adding these changes in d/rules should solve the
above error

```
# See: Fix FTBFS on arm64 https://bugzilla.redhat.com/show_bug.cgi?id=2343981
ifneq (,$(filter $(DEB_HOST_ARCH),arm64))
export DEB_CFLAGS_MAINT_APPEND += -Wl,-z,gcs-report-dynamic=none
endif
```

but solving this issue is not enough to solve FTBFS, after this, the
test failure has been seen similar to https://bugs.ruby-
lang.org/issues/17878

here is the relevant log for the test failure on arm64
```
Finished in 54.74 sec

Fiber count: 10000 (skipping)
#1247 test_ractor.rb:259: 
     def test n
       rs = (1..n).map do |i|
         Ractor.new(i) do |i|
           "r#{i}"
         end
       end
       as = []
       all_rs = rs.dup
   
       n.times{
         r, obj = Ractor.select(*rs)
         as << [r, obj]
         rs.delete(r)
       }
   
       if as.map{|r, o| r.object_id}.sort == all_rs.map{|r| r.object_id}.sort &&
          as.map{|r, o| o}.sort == (1..n).map{|i| "r#{i}"}.sort
         'ok'
       else
         'ng'
       end
     end
   
     30.times.map{|i|
       test i
     }
  #=> "" (expected "[\"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", 
\"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", 
\"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", 
\"ok\", \"ok\", \"ok\"]")  
FAIL 1/1886 tests failed
make[2]: *** [uncommon.mk:886: yes-btest-ruby] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: *** [debian/rules:130: override_dh_auto_test-arch] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:95: binary-arch] Error 2
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit 
status 2
```

Currently, as a temporary fix, I am skipping this test on arm64 in the
newer version on questing

** Affects: ruby3.3 (Ubuntu)
     Importance: Undecided
     Assignee: Athos Ribeiro (athos-ribeiro)
         Status: New

** Changed in: ruby3.3 (Ubuntu)
     Assignee: (unassigned) => Athos Ribeiro (athos-ribeiro)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2122520

Title:
  FTBFS ruby 3.3.8-2ubuntu1 on arm64 questing

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ruby3.3/+bug/2122520/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to