From: "stes (David Stes)" Date: 2021-11-28T13:09:45+00:00 Subject: [ruby-core:106302] [Ruby master Misc#18335] openindiana ruby 3.1 --enable-dtrace requires CFLAGS="-g" Issue #18335 has been updated by stes (David Stes). Subject changed from openindiana ruby 3.1 preview needs --disable-dtrace to openindiana ruby 3.1 --enable-dtrace requires CFLAGS="-g" I've changed the subject to "--enable-dtrace" requires CFLAGS="-g" To be honest, what I tested so far is : with gnu-binutils 2.36 (gar version 2.36) installed, I can say that gar itself works, as long as I set CFLAGS="-g -O2". However I suspect the -O2 is irrelevant, presumably "-O3" (which is the default in Ruby 3.1) also works. However I think the -g flag adds debug info. It seems possible to me that the "dtrace" rebuild is scanning the symbol tables (perhaps debug info) to generate code that support DTrace, and that the DTrace build depends on -g. Ruby 2.7 has CFLAGS="-g -O2". This made me test those flags with Ruby 3.0 as well and Ruby 3.1. The situation is certainly not bad, because I am just and simply reporting that Ruby 3.1 with DTrace enabled works fine for me on OpenIndiana, even with gar 2.36, as long as I use CFLAGS="-g -O2" for the build which was the default in Ruby 2.7 but not in Ruby 3.x any longer. Assuming the Ruby teams supports DTrace, this is also a Ruby build issue, it is not only an OpenIndiana issue. Although that I agree that this issue can be closed. It is OK by me to close the issue , thanks for your feedback, and perhaps my investigation can help somebody with a similar Ruby/DTrace issue. Thanks, ---------------------------------------- Misc #18335: openindiana ruby 3.1 --enable-dtrace requires CFLAGS="-g" https://bugs.ruby-lang.org/issues/18335#change-94927 * Author: stes (David Stes) * Status: Third Party's Issue * Priority: Normal ---------------------------------------- Hello, I tried compiling ruby 3.1 preview on OpenIndiana (Illumos) and this works: ./configure --prefix=$HOME/ruby-31 --with-gcc --disable-dtrace gmake gmake install It works: $HOME/ruby-31/bin/ruby --version ruby 3.1.0preview1 (2021-11-09 master 5a3b2e6141) [i386-solaris2.11] It succesfully compiles with the above config line and seems to work. You can see in the above that it builds a 32bit by default, I did not yet try a full 64bit compile. Note that I use the --with-gcc to select the OpenIndiana GCC compiler (not OpenIndiana clang). I compiled with the default gcc 7.5. Now for some reason it seems I have to use --disable-dtrace. In older versions < 3.0 this works with DTRACE enabled, but this is apparently broken since 3.0.x If I compile with dtrace enabled I get: checking whether dtrace USDT is available... yes(-xnolibs) checking whether dtrace needs post processing... rebuild and then during compile compiling builtin.c generating a glommed object with DTrace probes for static library linking static-library libruby-static.a gar: ruby-glommed.o: SHT_GROUP section [index 52] has no SHF_GROUP sections gar: ruby-glommed.o: SHT_GROUP section [index 53] has no SHF_GROUP sections gar: ruby-glommed.o: SHT_GROUP section [index 54] has no SHF_GROUP sections gar: ruby-glommed.o: SHT_GROUP section [index 55] has no SHF_GROUP sections ... lots of similar messages gar: ruby-glommed.o: unknown type [0] section `' in group [.group] gar: ruby-glommed.o: unknown type [0] section `' in group [.group] gar: ruby-glommed.o: unknown type [0] section `' in group [.group] Does anyone know what ruby-glommed is and what exactly broke here ? It seems some sort of rebuild code generation is done in the dtrace case , but I am not familiar with the ruby config/build system to see what exactly. The problem seems to be with GNU ar (gar). There exist similar reports for FreeBSD like https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/95aff214687a5e12c3eb57d056665741e734c188 "The latest ruby cannot compile with FreeBSD Dtrace enabled." Is there a way please to compile with dtrace enabled ? Thank you, David Stes -- https://bugs.ruby-lang.org/ Unsubscribe: