From: "stes (David Stes)" Date: 2021-11-18T18:43:19+00:00 Subject: [ruby-core:106156] [Ruby master Misc#18335] openindiana ruby 3.1 preview needs --disable-dtrace Issue #18335 has been updated by stes (David Stes). The actual configure line that works for me on OpenIndiana 2021.10 with gcc 10.3 (or gcc 7.5) is: ./configure --prefix=$HOME/ruby-31 --with-gcc --enable-dtrace CFLAGS="-g -O2" AR=/usr/bin/ar STRIP=/usr/bin/strip Note that I compile with gcc either 7.5 (32bit) or 10.3 (64bit). I use --enable-dtrace which uses something called a "glommed object" as discussed in https://marc.info/?l=opensolaris-dtrace-discuss&m=114761203110734&w=4 which is a link that is in the Ruby Makefile to explain the idea behind the glommed object. Finally I have to add CFLAGS="-g -O2" to the configure line. If not, then it uses the -O3 flag which is set in the configure.ac script as optflags, but this crashes 'ld' (signal 11) in a text in bigdecimal as can be seen in the ext/bigdecimal/mkmf.log The ruby-2.7.4 configuration is easier since (1) it does not use GNU ar (gar) and (2) the ruby 2.7.4 configure script sets CFLAGS to -g -O2 and optflags to -O3 and it seems it is not setting both flags to -O3. ---------------------------------------- Misc #18335: openindiana ruby 3.1 preview needs --disable-dtrace https://bugs.ruby-lang.org/issues/18335#change-94757 * Author: stes (David Stes) * Status: Open * 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: