From: "stes (David Stes)" Date: 2021-12-02T07:58:08+00:00 Subject: [ruby-core:106383] [Ruby master Misc#18335] openindiana ruby 3.1 --enable-dtrace requires debugflags="-g1" Issue #18335 has been updated by stes (David Stes). Subject changed from openindiana ruby 3.1 --enable-dtrace requires CFLAGS="-g" to openindiana ruby 3.1 --enable-dtrace requires debugflags="-g1" Thanks for explaining. Indeed, I tested I can confirm that, by default it seems to set debugflags to "-g3" (or -ggdb3 actually) but I think -ggdb3 is equivalent to -g3. So by default it uses level 3 debug info -ggdb3. For the --enable-dtrace build, where extra DTrace related operations are being done, it seems the build fails when compiling with -ggdb3 but it works when setting debugflags='-g1' So the following config line works for me with DTrace and gnu-binutils (gar) 2.36 and gcc 10.3: ./configure --with-gcc --enable-dtrace debugflags="-g1" Would it be possible to change the default -g3 to -g1 ? My investigation in what is different with ruby 2.7 (which works with DTrace enabled) indicates that Ruby 2.7 uses -g1. ---------------------------------------- Misc #18335: openindiana ruby 3.1 --enable-dtrace requires debugflags="-g1" https://bugs.ruby-lang.org/issues/18335#change-95019 * Author: stes (David Stes) * Status: Rejected * 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: