Tuesday, March 13, 2018

Building Ruby 2.5.0

This post is more of a continuous effort in order to learn how to build by myself some more up-to-date artifacts, this time Ruby version 2.5.0, to my preferred software platform: Solaris 11.

In particular, I'm still considering Solaris 11.3 GA, which by the time of this writing is about 3 years old with GCC 4.8.2. Solaris 11.4 GA is expected to arrive late this year (2018), but curiously I wasn't yet able to succeed in building Ruby 2.5.0 in Solaris 11.4 Beta (already available) with GCC 5.5.0.

This very latest stable Ruby version 2.5.0 isn't yet available on the package repositories of any Solaris version and that's why I'm doing all this. For instance, on Solaris 11.3 GA:

$ pkg search -H -o pkg.shortfmri *:set:pkg.fmri:runtime/ruby* \
  |sort -u
pkg:/runtime/ruby-18@1.8.7.374-0.175.3.0.0.24.0
pkg:/runtime/ruby-19@1.9.3.551-0.175.3.0.0.30.0
pkg:/runtime/ruby-19/ruby-tk@1.9.3.551-0.175.3.0.0.30.0
pkg:/runtime/ruby-21@2.1.6-0.175.3.0.0.30.0
pkg:/runtime/ruby-21/ruby-tk@2.1.6-0.175.3.0.0.30.0
pkg:/runtime/ruby@1.9-0.175.3.0.0.30.0


In my previous learning path towards building myself a few open-source software to Solaris 11.3 I've ended up with a facility script presented on another post, GNU build preparation, which was the result from a few early experiments (which I shall review at some point in the near future, I hope):


I assume the developer-gnu IPS package has been installed and that the following ZFS delegations are already in place:

$ zfs allow rpool/software/build
---- Permissions on rpool/software/build ------------------
Permission sets:
    @descendent clone,compression,destroy,promote,quota,

                readonly,rename,reservation,share,sharenfs
    @generic create,diff,hold,mount,receive,

             release,rollback,send,snapshot,userprop
Descendent permissions:
    user user1 @descendent
Local+Descendent permissions:
    user user1 @generic


$ zfs allow rpool/software/prototype
---- Permissions on rpool/software/prototype --------------
Permission sets:
    @descendent clone,compression,destroy,promote,quota,

                readonly,rename,reservation,share,sharenfs
    @generic create,diff,hold,mount,receive,

             release,rollback,send,snapshot,userprop
Descendent permissions:
    user user1 @descendent
Local+Descendent permissions:
    user user1 @generic


After downloading and verifying the checksum of a compressed source-code tarball and using the gnu-build-prepration script from the GNU build preparation post I end up with the following build structure mounted at /software (the details of running the GNU build preparation script are presented in the last example of that that post):
  
rpool/software/build/ruby
rpool/software/build/ruby/ruby-2.5.0
rpool/software/build/ruby/ruby-2.5.0@source 
rpool/software/build/ruby/ruby-2.5.0-gnu32 
rpool/software/build/ruby/ruby-2.5.0-gnu32@start
rpool/software/build/ruby/ruby-2.5.0-gnu64 
rpool/software/build/ruby/ruby-2.5.0-gnu64@start
 
rpool/software/prototype/ruby 
rpool/software/prototype/ruby/ruby-2.5.0
rpool/software/prototype/ruby/ruby-2.5.0/gnu32
rpool/software/prototype/ruby/ruby-2.5.0/gnu64

NOTE
Since the original writing of this post I have revised some important assumptions and recommendations which would lead to an extensive rewriting. Instead of doing it all over again, I'm kindly asking that you pay attention to the following changes:
  1. I've adjusted all the ZFS tree datasets' names
    (the development tree is now rooted at /stage)
     
  2. I've started using DESTDIR and a different --prefix
    (DESTDIR=/stage/prototype/ruby/2.5.0/64)
    (--prefix=/opt/sfw/ruby/2.5.0)
     
  3. I'm taking a final ZFS snapshot as the deployment closing.
    (zfs snapshot -r .../opt/sfw/ruby/2.5.0@release)
Hence, in what follows just keep an eye on adjusting accordingly.

The next step is to edit the configuration script (setenv) that is delivered in the previous step in order to adjust / tune up some environment variables which are influential to the build process. Then, before starting the build, extend the environment accordingly. For instance, to prepare a 64-bits build on my particular machine I do as follows:

$ cd ruby/ruby-2.5.0-64

$ source ../setenv 64

--prefix=/software/prototype/.../gnu64
--build=x86_64-pc-solaris2.11

CONFIG_SHELL=

CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu99

CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++11

LD=/usr/bin/ld LDFLAGS=-m64 -march=core2

PATH=/usr/gnu/bin:/usr/bin:/usr/sbin

PKG_CONFIG_PATH=


Now everything should be ready to running the standard GNU configure script. Again, for a 64-btis build, the line should be similar to the following:

$ ./configure \
  --build=x86-64-pc-solaris2.11 \
  --prefix=/software/prototype/ruby/ruby-2.5.0/gnu64 \
  --enable-shared

The output of the above command is extensive, about 9 console screens on my display. This time, instead of copy-pasting text, I'll try to attach the screenshots which shows some colored stuff which might be more helpful in some cases:


 After a successful configuration everything should be ready for the build. My machine has 4 cores, hence I'll specify -j4 for the build process to be as fast as possible (for documentation purposes I'm appending all text output from the build):

$ gmake -j4
    CC = /usr/bin/gcc
    LD = /usr/bin/ld
    LDSHARED = /usr/bin/gcc -shared
    CFLAGS = -march=core2 -std=gnu99 -fPIC -m64
    XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT
    CPPFLAGS =   -I. -I.ext/include/x86_64-solaris2.11 -I./include -I. -I./enc/unicode/10.0.0
    DLDFLAGS = -march=core2 -m64 -Wl,--compress-debug-sections=zlib -Wl,-h,showflags -fstack-protector -R/software/prototype/ruby/ruby-2.5.0/gnu64/lib  -m64
    SOLIBS = -lpthread -lsocket -ldl -lcrypt -lm 
    LANG = en_US.UTF-8
    LC_ALL =
    LC_CTYPE =


gcc (GCC) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


compiling dmydln.c
compiling ./main.c
compiling miniinit.c
compiling dmyext.c
compiling miniprelude.c
translating probes probes.d
compiling bignum.c
compiling class.c
compiling compar.c
compiling compile.c
compiling complex.c
compiling cont.c
compiling debug.c
compiling debug_counter.c
compiling dir.c
compiling dln_find.c
compiling encoding.c
compiling enum.c
compiling enumerator.c
compiling error.c
compiling eval.c
compiling file.c
compiling gc.c
compiling hash.c
compiling inits.c
compiling io.c
compiling iseq.c
compiling load.c
compiling marshal.c
compiling math.c
compiling node.c
compiling numeric.c
compiling object.c
compiling pack.c
compiling parse.c
compiling proc.c
compiling process.c
compiling random.c
process.c: In function ‘retry_fork_async_signal_safe’:
process.c:3586:9: warning: ‘fork’ is deprecated (declared at /usr/include/unistd.h:301) [-Wdeprecated-declarations]
         pid = fork();
         ^
process.c: In function ‘rb_fork_ruby’:
process.c:3656:2: warning: ‘fork’ is deprecated (declared at /usr/include/unistd.h:301) [-Wdeprecated-declarations]
  pid = fork();
  ^
compiling range.c
compiling rational.c
compiling re.c
compiling regcomp.c
compiling regenc.c
compiling regerror.c
compiling regexec.c
compiling regparse.c
compiling regsyntax.c
compiling ruby.c
compiling safe.c
compiling signal.c
compiling sprintf.c
compiling st.c
compiling strftime.c
In file included from ./include/ruby/ruby.h:24:0,
                 from strftime.c:50:
timev.h:4:32: note: offset of packed bit-field ‘mday’ has changed in GCC 4.4
 PACKED_STRUCT_UNALIGNED(struct vtm {
                                ^
.ext/include/x86_64-solaris2.11/ruby/config.h:75:26: note: in definition of macro ‘PACKED_STRUCT’
 #define PACKED_STRUCT(x) x __attribute__((packed))
                          ^
timev.h:4:1: note: in expansion of macro ‘PACKED_STRUCT_UNALIGNED’
 PACKED_STRUCT_UNALIGNED(struct vtm {
 ^
timev.h:4:32: note: offset of packed bit-field ‘min’ has changed in GCC 4.4
 PACKED_STRUCT_UNALIGNED(struct vtm {
                                ^
.ext/include/x86_64-solaris2.11/ruby/config.h:75:26: note: in definition of macro ‘PACKED_STRUCT’
 #define PACKED_STRUCT(x) x __attribute__((packed))
                          ^
timev.h:4:1: note: in expansion of macro ‘PACKED_STRUCT_UNALIGNED’
 PACKED_STRUCT_UNALIGNED(struct vtm {
 ^
timev.h:4:32: note: offset of packed bit-field ‘sec’ has changed in GCC 4.4
 PACKED_STRUCT_UNALIGNED(struct vtm {
                                ^
.ext/include/x86_64-solaris2.11/ruby/config.h:75:26: note: in definition of macro ‘PACKED_STRUCT’
 #define PACKED_STRUCT(x) x __attribute__((packed))
                          ^
timev.h:4:1: note: in expansion of macro ‘PACKED_STRUCT_UNALIGNED’
 PACKED_STRUCT_UNALIGNED(struct vtm {
 ^
compiling string.c
compiling struct.c
compiling symbol.c
compiling thread.c
In file included from ./include/ruby/ruby.h:24:0,
                 from eval_intern.h:4,
                 from thread.c:66:
timev.h:4:32: note: offset of packed bit-field ‘mday’ has changed in GCC 4.4
 PACKED_STRUCT_UNALIGNED(struct vtm {
                                ^
.ext/include/x86_64-solaris2.11/ruby/config.h:75:26: note: in definition of macro ‘PACKED_STRUCT’
 #define PACKED_STRUCT(x) x __attribute__((packed))
                          ^
timev.h:4:1: note: in expansion of macro ‘PACKED_STRUCT_UNALIGNED’
 PACKED_STRUCT_UNALIGNED(struct vtm {
 ^
timev.h:4:32: note: offset of packed bit-field ‘min’ has changed in GCC 4.4
 PACKED_STRUCT_UNALIGNED(struct vtm {
                                ^
.ext/include/x86_64-solaris2.11/ruby/config.h:75:26: note: in definition of macro ‘PACKED_STRUCT’
 #define PACKED_STRUCT(x) x __attribute__((packed))
                          ^
timev.h:4:1: note: in expansion of macro ‘PACKED_STRUCT_UNALIGNED’
 PACKED_STRUCT_UNALIGNED(struct vtm {
 ^
timev.h:4:32: note: offset of packed bit-field ‘sec’ has changed in GCC 4.4
 PACKED_STRUCT_UNALIGNED(struct vtm {
                                ^
.ext/include/x86_64-solaris2.11/ruby/config.h:75:26: note: in definition of macro ‘PACKED_STRUCT’
 #define PACKED_STRUCT(x) x __attribute__((packed))
                          ^
timev.h:4:1: note: in expansion of macro ‘PACKED_STRUCT_UNALIGNED’
 PACKED_STRUCT_UNALIGNED(struct vtm {
 ^
thread_pthread.c: In function ‘ubf_wakeup_thread’:
thread.c:281:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 # define thread_id_str(th) ((void *)(th)->thread_id)
                             ^
thread_pthread.c:1191:67: note: in expansion of macro ‘thread_id_str’
     thread_debug("thread_wait_queue_wakeup (%"PRI_THREAD_ID")\n", thread_id_str(th));
                                                                   ^
thread.c: In function ‘terminate_all’:
thread.c:281:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 # define thread_id_str(th) ((void *)(th)->thread_id)
                             ^
thread.c:454:5: note: in expansion of macro ‘thread_id_str’
     thread_id_str(th), thread_status_name(th, TRUE));
     ^
thread.c:281:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 # define thread_id_str(th) ((void *)(th)->thread_id)
                             ^
thread.c:458:5: note: in expansion of macro ‘thread_id_str’
     thread_id_str(th), thread_status_name(th, TRUE));
     ^
thread.c: In function ‘thread_join_sleep’:
thread.c:281:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 # define thread_id_str(th) ((void *)(th)->thread_id)
                             ^
thread.c:897:9: note: in expansion of macro ‘thread_id_str’
         thread_id_str(target_th));
         ^
thread.c:281:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 # define thread_id_str(th) ((void *)(th)->thread_id)
                             ^
thread.c:907:8: note: in expansion of macro ‘thread_id_str’
        thread_id_str(target_th), thread_status_name(target_th, TRUE));
        ^
compiling time.c
thread.c: In function ‘thread_join’:
thread.c:281:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 # define thread_id_str(th) ((void *)(th)->thread_id)
                             ^
thread.c:930:4: note: in expansion of macro ‘thread_id_str’
    thread_id_str(target_th), thread_status_name(target_th, TRUE));
    ^
thread.c:281:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 # define thread_id_str(th) ((void *)(th)->thread_id)
                             ^
thread.c:944:4: note: in expansion of macro ‘thread_id_str’
    thread_id_str(target_th), thread_status_name(target_th, TRUE));
    ^
thread.c:281:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 # define thread_id_str(th) ((void *)(th)->thread_id)
                             ^
thread.c:953:9: note: in expansion of macro ‘thread_id_str’
         thread_id_str(target_th), thread_status_name(target_th, TRUE));
         ^
thread.c: In function ‘rb_thread_kill’:
thread.c:281:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 # define thread_id_str(th) ((void *)(th)->thread_id)
                             ^
thread.c:2317:73: note: in expansion of macro ‘thread_id_str’
     thread_debug("rb_thread_kill: %p (%"PRI_THREAD_ID")\n", (void *)th, thread_id_str(th));
                                                                         ^
compiling transcode.c
thread.c: In function ‘debug_deadlock_check’:
thread.c:281:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 # define thread_id_str(th) ((void *)(th)->thread_id)
                             ^
thread.c:4975:21: note: in expansion of macro ‘thread_id_str’
       th->self, th, thread_id_str(th), th->ec->interrupt_flag);
                     ^
In file included from ./include/ruby/ruby.h:24:0,
                 from ./include/ruby.h:33,
                 from internal.h:15,
                 from time.c:14:
timev.h:4:32: note: offset of packed bit-field ‘mday’ has changed in GCC 4.4
 PACKED_STRUCT_UNALIGNED(struct vtm {
                                ^
.ext/include/x86_64-solaris2.11/ruby/config.h:75:26: note: in definition of macro ‘PACKED_STRUCT’
 #define PACKED_STRUCT(x) x __attribute__((packed))
                          ^
timev.h:4:1: note: in expansion of macro ‘PACKED_STRUCT_UNALIGNED’
 PACKED_STRUCT_UNALIGNED(struct vtm {
 ^
timev.h:4:32: note: offset of packed bit-field ‘min’ has changed in GCC 4.4
 PACKED_STRUCT_UNALIGNED(struct vtm {
                                ^
.ext/include/x86_64-solaris2.11/ruby/config.h:75:26: note: in definition of macro ‘PACKED_STRUCT’
 #define PACKED_STRUCT(x) x __attribute__((packed))
                          ^
timev.h:4:1: note: in expansion of macro ‘PACKED_STRUCT_UNALIGNED’
 PACKED_STRUCT_UNALIGNED(struct vtm {
 ^
timev.h:4:32: note: offset of packed bit-field ‘sec’ has changed in GCC 4.4
 PACKED_STRUCT_UNALIGNED(struct vtm {
                                ^
.ext/include/x86_64-solaris2.11/ruby/config.h:75:26: note: in definition of macro ‘PACKED_STRUCT’
 #define PACKED_STRUCT(x) x __attribute__((packed))
                          ^
timev.h:4:1: note: in expansion of macro ‘PACKED_STRUCT_UNALIGNED’
 PACKED_STRUCT_UNALIGNED(struct vtm {
 ^
compiling util.c
compiling variable.c
compiling version.c
compiling vm.c
compiling vm_backtrace.c
compiling vm_dump.c
compiling vm_trace.c
compiling ./missing/explicit_bzero.c
vm_dump.c: In function ‘rb_vmdebug_stack_dump_all_threads’:
vm_dump.c:1086:49: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  fprintf(stderr, "th: %p, native_id: %p\n", th, (void *)th->thread_id);
                                                 ^
compiling ./missing/flock.c
compiling ./missing/isinf.c
compiling ./missing/setproctitle.c
compiling addr2line.c
compiling dmyenc.c
compiling dln.c
compiling localeinit.c
compiling prelude.c
compiling array.c
compiling enc/ascii.c
compiling enc/us_ascii.c
compiling enc/unicode.c
compiling enc/utf_8.c
compiling enc/trans/newline.c
processing probes in object files
linking miniruby
generating encdb.h
encdb.h updated
./tool/ifchange "--timestamp=.rbconfig.time" rbconfig.rb rbconfig.tmp
rbconfig.rb updated
generating enc.mk
creating verconf.h
verconf.h updatedcompiling loadpath.c
generating a glommed object with DTrace probes for static library
making srcs under enc
linking static-library libruby-static.a
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Nothing to be done for `srcs'.
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
generating transdb.h
linking shared-library libruby.so.2
making enc
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
compiling ./enc/encdb.c
compiling ./enc/big5.c
compiling ./enc/cp949.c
compiling ./enc/emacs_mule.c
compiling ./enc/euc_jp.c
compiling ./enc/euc_kr.c
compiling ./enc/euc_tw.c
compiling ./enc/gb2312.c
compiling ./enc/gb18030.c
compiling ./enc/gbk.c
compiling ./enc/iso_8859_1.c
compiling ./enc/iso_8859_2.c
compiling ./enc/iso_8859_3.c
compiling ./enc/iso_8859_4.c
compiling ./enc/iso_8859_5.c
compiling ./enc/iso_8859_6.c
compiling ./enc/iso_8859_7.c
compiling ./enc/iso_8859_8.c
compiling ./enc/iso_8859_9.c
compiling ./enc/iso_8859_10.c
compiling ./enc/iso_8859_11.c
compiling ./enc/iso_8859_13.c
compiling ./enc/iso_8859_14.c
compiling ./enc/iso_8859_15.c
compiling ./enc/iso_8859_16.c
compiling ./enc/koi8_r.c
compiling ./enc/koi8_u.c
compiling ./enc/shift_jis.c
compiling ./enc/utf_16be.c
compiling ./enc/utf_16le.c
compiling ./enc/utf_32be.c
compiling ./enc/utf_32le.c
compiling ./enc/windows_31j.c
compiling ./enc/windows_1250.c
compiling ./enc/windows_1251.c
compiling ./enc/windows_1252.c
compiling ./enc/windows_1253.c
compiling ./enc/windows_1254.c
compiling ./enc/windows_1257.c
linking encoding encdb.so
linking encoding big5.so
linking encoding cp949.so
linking encoding emacs_mule.so
linking encoding euc_jp.so
linking encoding euc_kr.so
linking encoding euc_tw.so
linking encoding gb2312.so
linking encoding gb18030.so
transdb.h updated
linking encoding gbk.so
generating makefiles ext/configure-ext.mk
linking encoding iso_8859_1.so
linking encoding iso_8859_2.so
linking encoding iso_8859_3.so
making trans
linking encoding iso_8859_4.so
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
compiling ./enc/trans/transdb.c
linking encoding iso_8859_5.so
compiling ./enc/trans/big5.c
linking encoding iso_8859_6.so
linking encoding iso_8859_7.so
ext/configure-ext.mk updated
compiling ./enc/trans/chinese.c
linking encoding iso_8859_8.so
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
linking encoding iso_8859_9.so
linking encoding iso_8859_10.so
linking encoding iso_8859_11.so
linking encoding iso_8859_13.so
linking encoding iso_8859_14.so
linking encoding iso_8859_15.so
linking encoding iso_8859_16.so
linking encoding koi8_r.so
configuring strscan
linking encoding koi8_u.so
linking encoding shift_jis.so
linking encoding utf_16be.so
linking encoding utf_16le.so
linking encoding utf_32be.so
linking encoding utf_32le.so
linking encoding windows_31j.so
linking encoding windows_1250.so
configuring digest
linking encoding windows_1251.so
configuring digest/bubblebabble
linking encoding windows_1252.so
configuring digest/md5
linking encoding windows_1253.so
linking encoding windows_1254.so
linking encoding windows_1257.so
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
compiling ./enc/trans/ebcdic.c
compiling ./enc/trans/emoji.c
compiling ./enc/trans/emoji_iso2022_kddi.c
configuring cgi/escape
compiling ./enc/trans/emoji_sjis_docomo.c
configuring digest/rmd160
compiling ./enc/trans/emoji_sjis_kddi.c
configuring date
configuring digest/sha1
configuring rubyvm
compiling ./enc/trans/emoji_sjis_softbank.c
configuring fiddle
configuring digest/sha2
compiling ./enc/trans/escape.c
compiling ./enc/trans/gb18030.c
configuring continuation
compiling ./enc/trans/gbk.c
compiling ./enc/trans/iso2022.c
compiling ./enc/trans/japanese.c
configuring objspace
compiling ./enc/trans/japanese_euc.c
compiling ./enc/trans/japanese_sjis.c
configuring psych
configuring pty
compiling ./enc/trans/korean.c
configuring ripper
compiling ./enc/trans/single_byte.c
configuring openssl
compiling ./enc/trans/utf8_mac.c
configuring etc
compiling ./enc/trans/utf_16_32.c
configuring gdbm
linking transcoder transdb.so
linking transcoder big5.so
linking transcoder chinese.so
linking transcoder ebcdic.so
linking transcoder emoji.so
linking transcoder emoji_iso2022_kddi.so
linking transcoder emoji_sjis_docomo.so
linking transcoder emoji_sjis_kddi.so
linking transcoder emoji_sjis_softbank.so
linking transcoder escape.so
linking transcoder gb18030.so
linking transcoder gbk.so
linking transcoder iso2022.so
linking transcoder japanese.so
linking transcoder japanese_euc.so
linking transcoder japanese_sjis.so
linking transcoder korean.so
linking transcoder single_byte.so
linking transcoder utf8_mac.so
configuring dbm
linking transcoder utf_16_32.so
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
making encs
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Nothing to be done for `encs'.
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
configuring readline
header: ndbm.h
library: libc
configuring socket
configuring sdbm
configuring bigdecimal
configuring json
configuring json/generator
configuring json/parser
configuring fcntl
configuring -test-/array/resize
configuring -test-/bignum
configuring -test-/bug-3571
configuring -test-/bug-5832
configuring -test-/bug_reporter
configuring -test-/class
configuring -test-/debug
configuring -test-/dln/empty
configuring -test-/exception
configuring -test-/fatal
configuring -test-/file
configuring racc/cparse
configuring -test-/float
configuring -test-/funcall
configuring -test-/gvl/call_without_gvl
configuring -test-/hash
configuring -test-/integer
configuring -test-/iseq_load
configuring -test-/iter
configuring -test-/load/dot.dot
configuring -test-/load/protect
configuring -test-/marshal/compat
configuring -test-/marshal/internal_ivar
configuring -test-/marshal/usr
configuring -test-/memory_status
configuring -test-/method
configuring -test-/notimplement
configuring coverage
configuring -test-/num2int
configuring -test-/path_to_class
configuring -test-/popen_deadlock
configuring -test-/postponed_job
configuring -test-/printf
configuring -test-/proc
configuring -test-/rational
configuring -test-/recursion
configuring -test-/regexp
configuring -test-/scan_args
configuring -test-/st/foreach
configuring -test-/st/numhash
configuring fiber
configuring -test-/st/update
configuring -test-/string
configuring -test-/struct
configuring -test-/symbol
configuring nkf
configuring -test-/thread_fd_close
configuring -test-/time
configuring -test-/tracepoint
configuring -test-/typeddata
configuring -test-/vm
configuring -test-/wait_for_single_fd
configuring zlib
configuring rbconfig/sizeof
configuring syslog
configuring io/console
configuring io/nonblock
configuring io/wait
configuring pathname
configuring stringio
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
generating makefile exts.mk
exts.mk updated
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/md5'
compiling digest.c
compiling md5init.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/strscan'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/bubblebabble'
compiling strscan.c
compiling bubblebabble.c
linking shared-object digest/md5.so
linking shared-object digest/bubblebabble.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/md5'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/rmd160'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/bubblebabble'
compiling rmd160init.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/sha1'
compiling sha1init.c
linking shared-object digest.so
installing digest libraries
installing default digest libraries
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/sha2'
compiling sha2init.c
linking shared-object digest/rmd160.so
linking shared-object digest/sha1.so
linking shared-object strscan.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/sha1'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/rmd160'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/strscan'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/cgi/escape'
compiling escape.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/date'
compiling date_core.c
installing default sha2 libraries
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/rubyvm'
installing default libraries
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/rubyvm'
linking shared-object digest/sha2.so
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fiddle'
compiling closure.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/sha2'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/continuation'
compiling continuation.c
linking shared-object cgi/escape.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/cgi/escape'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/objspace'
compiling object_tracing.c
compiling conversions.c
linking shared-object continuation.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/continuation'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/psych'
compiling psych_parser.c
compiling fiddle.c
compiling objspace.c
compiling psych_emitter.c
compiling function.c
compiling psych_to_ruby.c
compiling handle.c
compiling psych_yaml_tree.c
compiling objspace_dump.c
compiling pointer.c
compiling psych.c
compiling ../.././ext/psych/yaml/dumper.c
linking shared-object objspace.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/objspace'
compiling ../.././ext/psych/yaml/emitter.c
linking shared-object fiddle.so
installing default fiddle libraries
compiling ../.././ext/psych/yaml/reader.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fiddle'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/pty'
compiling pty.c
compiling date_parse.c
compiling ../.././ext/psych/yaml/scanner.c
installing default pty libraries
linking shared-object pty.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/pty'
compiling date_strftime.c
compiling date_strptime.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/ripper'
compiling ripper.c
compiling ../.././ext/psych/yaml/writer.c
installing default date_core libraries
linking shared-object date_core.so
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/openssl'
compiling openssl_missing.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/date'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/etc'
generating constant definitions
compiling ../.././ext/psych/yaml/loader.c
compiling etc.c
compiling ossl.c
compiling ../.././ext/psych/yaml/api.c
linking shared-object etc.so
ossl.c: In function ‘ossl_threadid_func’:
ossl.c:579:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     CRYPTO_THREADID_set_pointer(id, (void *)rb_nativethread_self());
                                     ^
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/etc'
compiling ../.././ext/psych/yaml/parser.c
compiling ossl_asn1.c
compiling ossl_bio.c
compiling ossl_bn.c
linking shared-object psych.so
compiling ossl_cipher.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/psych'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/gdbm'
compiling gdbm.c
checking ../.././parse.y and ../.././ext/ripper/eventids2.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/dbm'
compiling dbm.c
linking shared-object gdbm.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/gdbm'
compiling ossl_config.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/readline'
compiling readline.c
linking shared-object ripper.so
installing default ripper libraries
linking shared-object dbm.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/ripper'
compiling ossl_digest.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/dbm'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/socket'
compiling init.c
compiling ossl_engine.c
linking shared-object readline.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/readline'
compiling constants.c
compiling ossl_hmac.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/sdbm'
compiling _sdbm.c
compiling ossl_kdf.c
compiling init.c
compiling ossl_ns_spki.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/bigdecimal'
compiling bigdecimal.c
linking shared-object sdbm.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/sdbm'
compiling ossl_ocsp.c
installing default bigdecimal libraries
compiling ossl_pkcs12.c
compiling basicsocket.c
compiling socket.c
compiling ossl_pkcs7.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json'
compiling ipsocket.c
compiling ossl_pkey.c
compiling tcpsocket.c
linking shared-object bigdecimal.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/bigdecimal'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json/generator'
compiling ossl_pkey_dh.c
compiling generator.c
compiling tcpserver.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json/parser'
compiling parser.c
compiling sockssocket.c
compiling ossl_pkey_dsa.c
linking shared-object json/ext/generator.so
compiling udpsocket.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json/generator'
compiling unixsocket.c
linking shared-object json/ext/parser.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json/parser'
compiling unixserver.c
compiling ossl_pkey_ec.c
compiling ossl_pkey_rsa.c
compiling option.c
compiling ossl_rand.c
compiling ancdata.c
compiling ossl_ssl.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fcntl'
compiling raddrinfo.c
compiling fcntl.c
compiling ifaddr.c
linking shared-object fcntl.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fcntl'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/array/resize'
compiling resize.c
compiling ossl_ssl_session.c
linking shared-object -test-/array/resize.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/array/resize'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bignum'
compiling bigzero.c
compiling div.c
compiling mul.c
installing default socket libraries
linking shared-object socket.so
compiling ossl_x509.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/socket'
compiling intpack.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug-3571'
compiling bug.c
compiling ossl_x509attr.c
linking shared-object -test-/bug_3571.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug-3571'
compiling str2big.c
compiling ossl_x509cert.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug-5832'
compiling bug.c
compiling big2str.c
linking shared-object -test-/bug_5832.so
compiling ossl_x509crl.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug-5832'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug_reporter'
compiling bug_reporter.c
compiling init.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/class'
compiling init.c
linking shared-object -test-/bug_reporter.so
linking shared-object -test-/bignum.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug_reporter'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/debug'
compiling init.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bignum'
compiling ossl_x509ext.c
compiling class2name.c
compiling profile_frames.c
compiling inspector.c
linking shared-object -test-/class.so
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/dln/empty'
compiling empty.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/class'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/exception'
compiling enc_raise.c
linking shared-object -test-/dln/empty.so
linking shared-object -test-/debug.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/dln/empty'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/fatal'
compiling rb_fatal.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/debug'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/file'
compiling ossl_x509name.c
compiling fs.c
compiling ensured.c
linking shared-object -test-/fatal/rb_fatal.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/fatal'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/float'
compiling nextafter.c
compiling init.c
compiling init.c
compiling stat.c
compiling dataerror.c
compiling init.c
compiling ossl_x509req.c
linking shared-object -test-/exception.so
linking shared-object -test-/file.so
linking shared-object -test-/float.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/exception'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/file'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/funcall'
compiling passing_block.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/gvl/call_without_gvl'
compiling call_without_gvl.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/float'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/hash'
compiling init.c
linking shared-object -test-/funcall.so
linking shared-object -test-/gvl/call_without_gvl.so
compiling delete.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/funcall'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/integer'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/gvl/call_without_gvl'
compiling init.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/iseq_load'
compiling iseq_load.c
compiling ossl_x509revoked.c
linking shared-object -test-/hash.so
compiling my_integer.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/hash'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/iter'
compiling break.c
linking shared-object -test-/iseq_load.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/iseq_load'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/load/dot.dot'
compiling dot.dot.c
compiling core_ext.c
linking shared-object -test-/load/dot.dot.so
compiling yield.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/load/dot.dot'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/load/protect'
compiling protect.c
compiling init.c
linking shared-object -test-/integer.so
compiling ossl_x509store.c
linking shared-object -test-/load/protect.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/integer'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/compat'
compiling usrcompat.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/load/protect'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/internal_ivar'
compiling internal_ivar.c
linking shared-object -test-/iter.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/iter'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/usr'
compiling usrmarshal.c
linking shared-object -test-/marshal/compat.so
linking shared-object -test-/marshal/internal_ivar.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/compat'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/memory_status'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/memory_status'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/method'
compiling arity.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/internal_ivar'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/notimplement'
compiling bug.c
linking shared-object -test-/marshal/usr.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/usr'
compiling init.c
linking shared-object openssl.so
linking shared-object -test-/notimplement.so
installing default openssl libraries
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/notimplement'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/num2int'
compiling num2int.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/openssl'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/path_to_class'
compiling path_to_class.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/popen_deadlock'
compiling infinite_loop_dlsym.c
linking shared-object -test-/method.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/method'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/postponed_job'
compiling postponed_job.c
linking shared-object -test-/num2int.so
linking shared-object -test-/path_to_class.so
linking shared-object -test-/popen_deadlock/infinite_loop_dlsym.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/num2int'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/path_to_class'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/printf'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/proc'
compiling printf.c
compiling init.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/popen_deadlock'
linking shared-object -test-/postponed_job.so
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/rational'
compiling rat.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/postponed_job'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/recursion'
compiling recursion.c
compiling receiver.c
linking shared-object -test-/printf.so
linking shared-object -test-/rational.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/rational'
linking shared-object -test-/recursion.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/printf'
compiling super.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/regexp'
compiling init.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/recursion'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/scan_args'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/foreach'
compiling scan_args.c
compiling foreach.c
linking shared-object -test-/proc.so
compiling parse_depth_limit.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/proc'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/numhash'
compiling numhash.c
linking shared-object -test-/st/foreach.so
linking shared-object -test-/scan_args.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/foreach'
linking shared-object -test-/regexp.so
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/update'
compiling update.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/scan_args'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/regexp'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/string'
compiling capacity.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/struct'
compiling len.c
linking shared-object -test-/st/numhash.so
linking shared-object -test-/st/update.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/numhash'
compiling member.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/update'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/symbol'
compiling duplicate.c
compiling type.c
compiling enc_str_buf_cat.c
compiling init.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/thread_fd_close'
compiling thread_fd_close.c
compiling init.c
compiling nofree.c
linking shared-object -test-/struct.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/struct'
compiling fstring.c
linking shared-object -test-/symbol.so
linking shared-object -test-/thread_fd_close.so
compiling qsort.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/symbol'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/thread_fd_close'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/time'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/tracepoint'
compiling init.c
compiling gc_hook.c
compiling modify.c
compiling init.c
compiling new.c
compiling tracepoint.c
compiling enc_associate.c
compiling coderange.c
linking shared-object -test-/time.so
linking shared-object -test-/tracepoint.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/time'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/typeddata'
compiling typeddata.c
compiling cstr.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/tracepoint'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/vm'
compiling at_exit.c
compiling ellipsize.c
linking shared-object -test-/typeddata.so
linking shared-object -test-/vm/at_exit.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/typeddata'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/wait_for_single_fd'
compiling wait_for_single_fd.c
compiling normalize.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/vm'
compiling new.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/racc/cparse'
compiling cparse.c
linking shared-object -test-/wait_for_single_fd.so
compiling set_len.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/wait_for_single_fd'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fiber'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/coverage'
compiling fiber.c
compiling coverage.c
linking shared-object fiber.so
linking shared-object -test-/string.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fiber'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/nkf'
compiling nkf.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/string'
installing default nkf libraries
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/zlib'
compiling zlib.c
linking shared-object racc/cparse.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/racc/cparse'
linking shared-object coverage.so
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/rbconfig/sizeof'
compiling sizes.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/coverage'
compiling limits.c
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/syslog'
compiling syslog.c
linking shared-object rbconfig/sizeof.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/rbconfig/sizeof'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/console'
compiling console.c
linking shared-object syslog.so
installing default syslog libraries
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/syslog'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/nonblock'
compiling nonblock.c
linking shared-object io/console.so
installing default console libraries
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/console'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/wait'
compiling wait.c
linking shared-object io/nonblock.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/nonblock'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/pathname'
compiling pathname.c
linking shared-object io/wait.so
linking shared-object zlib.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/wait'
installing default pathname libraries
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/stringio'
compiling stringio.c
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/zlib'
linking shared-object pathname.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/pathname'
linking shared-object stringio.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/stringio'
linking shared-object nkf.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/nkf'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
rebuilding objects which were modified by "dtrace -G"
gmake[3]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
compiling array.c
compiling eval.c
compiling gc.c
compiling hash.c
compiling load.c
compiling object.c
compiling parse.c
compiling string.c
compiling symbol.c
compiling vm.c
gmake[3]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
processing probes in object files
linking miniruby
./tool/ifchange "--timestamp=.rbconfig.time" rbconfig.rb rbconfig.tmp
rbconfig.rb unchanged
creating verconf.h
verconf.h updated
compiling loadpath.c
generating a glommed object with DTrace probes for static library
linking static-library libruby-static.a
linking shared-library libruby.so.2
linking ruby
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Nothing to be done for `note'.
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
Generating RDoc documentation
Parsing sources...
100% [871/871]  vsnprintf.c                                                                          

Generating RI format into /software/build/ruby/ruby-2.5.0-gnu64/.ext/rdoc...


  Files:        871

  Classes:     1323 ( 564 undocumented)
  Modules:      286 ( 121 undocumented)
  Constants:   2181 ( 555 undocumented)
  Attributes:  1066 ( 251 undocumented)
  Methods:    10076 (2158 undocumented)

  Total:      14932 (3649 undocumented)
   75.56% documented

  Elapsed: 327.8s


At this point one could attempting testing the build via gmake test which I won't do this time. The last building step is to install the artifacts into the prefix directory initially chosen. This last step is generally done as root via sudo:

$ sudo gmake install
Password:
    CC = /usr/bin/gcc
    LD = /usr/bin/ld
    LDSHARED = /usr/bin/gcc -shared
    CFLAGS = -march=core2 -std=gnu99 -fPIC -m64
    XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT
    CPPFLAGS =   -I. -I.ext/include/x86_64-solaris2.11 -I./include -I. -I./enc/unicode/10.0.0
    DLDFLAGS = -march=core2 -m64 -Wl,--compress-debug-sections=zlib -Wl,-h,showflags -fstack-protector -R/software/prototype/ruby/ruby-2.5.0/gnu64/lib  -m64
    SOLIBS = -lpthread -lsocket -ldl -lcrypt -lm 
    LANG = en_US.UTF-8
    LC_ALL =
    LC_CTYPE = 


gcc (GCC) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

rebuilding objects which were modified by "dtrace -G"
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
compiling array.c
compiling eval.c
compiling gc.c
compiling hash.c
compiling load.c
compiling object.c
compiling parse.c
compiling string.c
compiling symbol.c
compiling vm.c
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
processing probes in object files
linking miniruby
generating encdb.h
encdb.h unchanged
./tool/ifchange "--timestamp=.rbconfig.time" rbconfig.rb rbconfig.tmp
rbconfig.rb unchanged
generating enc.mk
making srcs under enc
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Nothing to be done for `srcs'.
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
generating transdb.h
transdb.h unchanged
creating verconf.h
verconf.h updated
compiling loadpath.c
generating a glommed object with DTrace probes for static library
linking static-library libruby-static.a
linking shared-library libruby.so.2
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk updated
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
generating makefile exts.mk
exts.mk unchanged
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/strscan'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/strscan'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/bubblebabble'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/bubblebabble'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/md5'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/md5'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/rmd160'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/rmd160'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/sha1'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/sha1'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/sha2'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/digest/sha2'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/cgi/escape'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/cgi/escape'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/date'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/date'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/rubyvm'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/rubyvm'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fiddle'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fiddle'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/continuation'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/continuation'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/objspace'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/objspace'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/psych'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/psych'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/pty'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/pty'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/ripper'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/ripper'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/openssl'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/openssl'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/etc'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/etc'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/gdbm'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/gdbm'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/dbm'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/dbm'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/readline'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/readline'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/socket'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/socket'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/sdbm'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/sdbm'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/bigdecimal'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/bigdecimal'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json/generator'
linking shared-object json/ext/generator.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json/generator'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json/parser'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/json/parser'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fcntl'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fcntl'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/array/resize'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/array/resize'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bignum'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bignum'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug-3571'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug-3571'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug-5832'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug-5832'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug_reporter'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/bug_reporter'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/class'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/class'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/debug'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/debug'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/dln/empty'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/dln/empty'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/exception'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/exception'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/fatal'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/fatal'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/file'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/file'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/float'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/float'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/funcall'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/funcall'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/gvl/call_without_gvl'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/gvl/call_without_gvl'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/hash'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/hash'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/integer'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/integer'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/iseq_load'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/iseq_load'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/iter'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/iter'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/load/dot.dot'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/load/dot.dot'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/load/protect'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/load/protect'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/compat'
linking shared-object -test-/marshal/compat.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/compat'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/internal_ivar'
linking shared-object -test-/marshal/internal_ivar.so
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/internal_ivar'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/usr'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/marshal/usr'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/memory_status'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/memory_status'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/method'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/method'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/notimplement'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/notimplement'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/num2int'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/num2int'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/path_to_class'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/path_to_class'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/popen_deadlock'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/popen_deadlock'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/postponed_job'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/postponed_job'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/printf'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/printf'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/proc'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/proc'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/rational'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/rational'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/recursion'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/recursion'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/regexp'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/regexp'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/scan_args'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/scan_args'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/foreach'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/foreach'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/numhash'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/numhash'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/update'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/st/update'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/string'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/string'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/struct'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/struct'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/symbol'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/symbol'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/thread_fd_close'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/thread_fd_close'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/time'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/time'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/tracepoint'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/tracepoint'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/typeddata'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/typeddata'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/vm'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/vm'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/wait_for_single_fd'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/-test-/wait_for_single_fd'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/racc/cparse'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/racc/cparse'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/coverage'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/coverage'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fiber'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/fiber'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/nkf'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/nkf'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/zlib'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/zlib'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/rbconfig/sizeof'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/rbconfig/sizeof'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/syslog'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/syslog'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/console'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/console'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/nonblock'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/nonblock'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/wait'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/io/wait'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/pathname'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/pathname'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/stringio'
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64/ext/stringio'
gmake[2]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
rebuilding objects which were modified by "dtrace -G"
gmake[3]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
compiling array.c
compiling eval.c
compiling gc.c
compiling hash.c
compiling load.c
compiling object.c
compiling parse.c
compiling string.c
compiling symbol.c
compiling vm.c
gmake[3]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
processing probes in object files
linking miniruby
./tool/ifchange "--timestamp=.rbconfig.time" rbconfig.rb rbconfig.tmp
rbconfig.rb unchanged
creating verconf.h
verconf.h updated
compiling loadpath.c
generating a glommed object with DTrace probes for static library
linking static-library libruby-static.a
linking shared-library libruby.so.2
linking ruby
gmake[2]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Nothing to be done for `note'.
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
making enc
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Nothing to be done for `enc'.
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
making trans
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Nothing to be done for `./enc/trans'.
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
making encs
gmake[1]: Entering directory `/software/build/ruby/ruby-2.5.0-gnu64'
gmake[1]: Nothing to be done for `encs'.
gmake[1]: Leaving directory `/software/build/ruby/ruby-2.5.0-gnu64'
Generating RDoc documentation

No newer files.

  Files:      0

  Classes:    0 (0 undocumented)
  Modules:    0 (0 undocumented)
  Constants:  0 (0 undocumented)
  Attributes: 0 (0 undocumented)
  Methods:    0 (0 undocumented)

  Total:      0 (0 undocumented)
    0.00% documented

  Elapsed: 0.0s

generating x86_64-solaris2.11-fake.rb
x86_64-solaris2.11-fake.rb updated
./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems -r./x86_64-solaris2.11-fake ./tool/rbinstall.rb --make="gmake" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --mantype="man" --install=all --rdoc-output=".ext/rdoc"
installing binary commands:         /software/prototype/ruby/ruby-2.5.0/gnu64/bin
installing base libraries:          /software/prototype/ruby/ruby-2.5.0/gnu64/lib
installing arch files:              /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/2.5.0/x86_64-solaris2.11
installing pkgconfig data:          /software/prototype/ruby/ruby-2.5.0/gnu64/lib/pkgconfig
installing command scripts:         /software/prototype/ruby/ruby-2.5.0/gnu64/bin
installing library scripts:         /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/2.5.0
installing common headers:          /software/prototype/ruby/ruby-2.5.0/gnu64/include/ruby-2.5.0
installing manpages:                /software/prototype/ruby/ruby-2.5.0/gnu64/share/man/man1
installing extension objects:       /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/2.5.0/x86_64-solaris2.11
installing extension objects:       /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/site_ruby/2.5.0/x86_64-solaris2.11
installing extension objects:       /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/vendor_ruby/2.5.0/x86_64-solaris2.11
installing extension headers:       /software/prototype/ruby/ruby-2.5.0/gnu64/include/ruby-2.5.0/x86_64-solaris2.11
installing extension scripts:       /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/2.5.0
installing extension scripts:       /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/site_ruby/2.5.0
installing extension scripts:       /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/vendor_ruby/2.5.0
installing extension headers:       /software/prototype/ruby/ruby-2.5.0/gnu64/include/ruby-2.5.0/ruby
installing default gems from lib:   /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/gems/2.5.0 (build_info, cache, doc, extensions, gems, specifications)
                                    cmath 1.0.0
                                    csv 1.0.0
                                    fileutils 1.0.2
                                    ipaddr 1.2.0
                                    rdoc 6.0.1
                                    scanf 1.0.0
                                    webrick 1.4.2
installing default gems from ext:   /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/gems/2.5.0 (build_info, cache, doc, extensions, gems, specifications)
                                    bigdecimal 1.3.4
                                    date 1.0.0
                                    dbm 1.0.0
                                    etc 1.0.0
                                    fcntl 1.0.0
                                    fiddle 1.0.0
                                    gdbm 2.0.0
                                    io-console 0.4.6
                                    json 2.1.0
                                    openssl 2.1.0
                                    psych 3.0.2
                                    sdbm 1.0.0
                                    stringio 0.0.1
                                    strscan 1.0.0
                                    zlib 1.0.0
installing bundled gems:            /software/prototype/ruby/ruby-2.5.0/gnu64/lib/ruby/gems/2.5.0 (build_info, cache, doc, extensions, gems, specifications)
                                    power_assert 1.1.1
                                    minitest 5.10.3
                                    net-telnet 0.1.1
                                    rake 12.3.0
                                    test-unit 3.2.7
                                    did_you_mean 1.2.0
                                    xmlrpc 0.3.0
installing rdoc:                    /software/prototype/ruby/ruby-2.5.0/gnu64/share/ri/2.5.0/system
installing capi-docs:               /software/prototype/ruby/ruby-2.5.0/gnu64/share/doc/ruby


Finally, basically check the delivered results:

$ l /software/prototype/ruby/ruby-2.5.0/gnu64/*
/software/prototype/ruby/ruby-2.5.0/gnu64/bin:
total 37
-rwxr-xr-x   1 root  root  ... erb
-rwxr-xr-x   1 root  root  ... gem
-rwxr-xr-x   1 root  root  ... irb
-rwxr-xr-x   1 root  root  ... rake
-rwxr-xr-x   1 root  root  ... rdoc
-rwxr-xr-x   1 root  root  ... ri
-rwxr-xr-x   1 root  root  ... ruby

/software/prototype/ruby/ruby-2.5.0/gnu64/include:
total 3
drwxr-xr-x   4 root  root  ... ruby-2.5.0

/software/prototype/ruby/ruby-2.5.0/gnu64/lib:
total 4313
lrwxrwxrwx   1 root  root  ... libruby.so -> libruby.so.2
-rwxr-xr-x   1 root  root  ... libruby.so.2
lrwxrwxrwx   1 root  root  ... libruby.so.2.5.0 -> libruby.so.2
drwxr-xr-x   2 root  root  ... pkgconfig
drwxr-xr-x   6 root  root  ... ruby


Once the bin directory gets in PATH you should get:

$ file $(which ruby)
.../gnu64/bin/ruby: ELF 64-bit LSB executable AMD64 ...


$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-solaris2.11]


The 32-bits build is analogous and with no pitfalls.
Happy quickstart with Ruby in 20 minutes.
Good luck!