postmodern / ruby-install

Installs Ruby, JRuby, TruffleRuby, or mruby
MIT License
1.9k stars 252 forks source link

ruby-install 0.8.0 is breaking ruby installations on macOS due to missing OpenSSL paths when setting CPPFLAGS and DLDFLAGS #387

Closed monfresh closed 3 years ago

monfresh commented 3 years ago

Hi. I maintain a script that sets up a Ruby dev environment on macOS using chruby and ruby-install, and it has been working wonderfully so far. I think the last time I tested it on a fresh installation of Catalina was earlier this week, and it ran successfully. A few days ago, I started getting reports that the script wasn't working for some people due to cannot load such file -- openssl. The confusing part is that even though the Ruby installation ran into OpenSSL errors, it still installed Ruby in ~/.rubies and running chruby 2.7.2 and which ruby seemed to indicate everything was fine, but when they tried to install a gem, they ran into this error:

ERROR:  Loading command: install (LoadError)
    cannot load such file -- openssl
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

On my main computer, I tried to see if I could reproduce this by removing a Ruby version that I didn't need: rm -rf ~/.rubies/ruby-2.7.0/, and then reinstalled it with ruby-install 2.7.0. I got the same OpenSSL errors. I'm pretty sure this is the first time I have run into this with ruby-install.

Another thing I tried to see if it was a problem specific to my computer or if it was due to ruby-install was to install Ruby 2.7.0 via asdf, and that worked just fine.

Any idea why this would be failing all of a sudden?

Here's the output of sw_vers on my machine:

sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.7
BuildVersion:   19H114
monfresh commented 3 years ago
Here's the full log from another attempt this morning to install 2.7.1 ```text ~/.rubies λ ruby-install ruby-2.7.1 >>> Installing ruby 2.7.1 into /Users/moncef/.rubies/ruby-2.7.1 ... >>> Downloading https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.1.tar.xz into /Users/moncef/src ... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 11.4M 100 11.4M 0 0 6783k 0 0:00:01 0:00:01 --:--:-- 6779k >>> Verifying ruby-2.7.1.tar.xz ... >>> Extracting ruby-2.7.1.tar.xz to /Users/moncef/src/ruby-2.7.1 ... >>> Configuring ruby 2.7.1 ... configure: WARNING: you should use --build, --host, --target checking for ruby... /usr/bin/ruby tool/config.guess already exists tool/config.sub already exists checking build system type... x86_64-apple-darwin19.6.0 checking host system type... x86_64-apple-darwin19.6.0 checking target system type... x86_64-apple-darwin19.6.0 checking for clang... clang checking for gcc... (cached) clang checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether clang accepts -g... yes checking for clang option to accept ISO C89... none needed checking for clang option to accept ISO C99... none needed checking for clang++... clang++ checking whether we are using the GNU C++ compiler... yes checking whether clang++ accepts -g... yes checking how to run the C preprocessor... clang -E checking if minimum required OS X version is supported... yes checking whether we are using the GNU C++ compiler... (cached) yes checking whether clang++ accepts -g... (cached) yes checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking whether clang needs -traditional... no checking for ld... ld checking whether the linker is GNU ld... no checking whether clang -E accepts -o... yes checking for clang... /usr/bin/clang checking for real target cpu... x86_64 checking for clang-ranlib... (cached) : checking for clang-ar... (cached) libtool -static checking for libtool -static flags... (cached) -no_warning_for_no_symbols -o checking for as... as checking for objdump... objdump checking for objcopy... no checking for gobjcopy... no checking for clang-nm... no checking for nm... nm checking whether ln -s works... yes checking whether make sets $(MAKE)... yes checking for a BSD-compatible install... /usr/local/bin/ginstall -c checking for a thread-safe mkdir -p... /usr/local/bin/gmkdir -p checking for dtrace... dtrace checking for dot... no checking for doxygen... no checking for pkg-config... pkg-config checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking for cd using physical directory... cd -P checking whether CFLAGS is valid... yes checking whether LDFLAGS is valid... yes checking whether -Wl,-R. is accepted as LDFLAGS... no checking whether -Wl,-rpath,. is accepted as LDFLAGS... yes checking whether -Wdeprecated-declarations is accepted as CFLAGS... yes checking whether -Wdivision-by-zero is accepted as CFLAGS... yes checking whether -Wduplicated-cond is accepted as CFLAGS... no checking whether -Wimplicit-function-declaration is accepted as CFLAGS... yes checking whether -Wimplicit-int is accepted as CFLAGS... yes checking whether -Wmisleading-indentation is accepted as CFLAGS... yes checking whether -Wpointer-arith is accepted as CFLAGS... yes checking whether -Wshorten-64-to-32 is accepted as CFLAGS... yes checking whether -Wwrite-strings is accepted as CFLAGS... yes checking whether -Wimplicit-fallthrough=0 is accepted as CFLAGS... no checking whether -Wmissing-noreturn is accepted as CFLAGS... yes checking whether -Wno-cast-function-type is accepted as CFLAGS... no checking whether -Wno-constant-logical-operand is accepted as CFLAGS... yes checking whether -Wno-long-long is accepted as CFLAGS... yes checking whether -Wno-missing-field-initializers is accepted as CFLAGS... yes checking whether -Wno-overlength-strings is accepted as CFLAGS... yes checking whether -Wno-packed-bitfield-compat is accepted as CFLAGS... no checking whether -Wno-parentheses-equality is accepted as CFLAGS... yes checking whether -Wno-self-assign is accepted as CFLAGS... yes checking whether -Wno-tautological-compare is accepted as CFLAGS... yes checking whether -Wno-unused-parameter is accepted as CFLAGS... yes checking whether -Wno-unused-value is accepted as CFLAGS... yes checking whether -Wsuggest-attribute=format is accepted as CFLAGS... no checking whether -Wsuggest-attribute=noreturn is accepted as CFLAGS... no checking whether -Wunused-variable is accepted as CFLAGS... yes checking whether -diag-disable=175,188,2259 is accepted as CFLAGS... no checking whether -Wextra-tokens is accepted as CFLAGS... yes checking whether -Wall -Wextra is accepted as CFLAGS... yes checking whether -Qunused-arguments is accepted as CFLAGS... yes checking whether -D_FORTIFY_SOURCE=2 is accepted as CFLAGS... yes checking whether -fstack-protector-strong is accepted as CFLAGS... yes checking whether -fstack-protector-strong is accepted as LDFLAGS... yes checking whether -Wl,--compress-debug-sections=zlib is accepted as LDFLAGS... no checking whether -std=gnu99 is accepted as CFLAGS... yes checking whether -fno-strict-overflow is accepted as CFLAGS... yes checking whether -ggdb3 is accepted as CFLAGS... yes checking whether -fvisibility=hidden is accepted as CFLAGS... yes checking whether -fno-fast-math is accepted as CFLAGS... yes checking whether -fexcess-precision=standard is accepted as CFLAGS... no checking whether -fp-model precise is accepted as CFLAGS... no checking whether compiler has statement and declarations in expressions... yes checking whether syscall(2) is deprecated... yes checking for broken crypt with 8bit chars... yes checking for codesign... codesign checking for dsymutil... dsymutil checking for crt_externs.h... yes checking for crypt in -lcrypt... (cached) no checking for dlopen in -ldl... yes checking for shl_load in -ldld... no checking for shutdown in -lsocket... no checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for sys/wait.h that is POSIX.1 compatible... yes checking a.out.h usability... no checking a.out.h presence... no checking for a.out.h... no checking atomic.h usability... no checking atomic.h presence... no checking for atomic.h... no checking copyfile.h usability... yes checking copyfile.h presence... yes checking for copyfile.h... yes checking direct.h usability... no checking direct.h presence... no checking for direct.h... no checking grp.h usability... yes checking grp.h presence... yes checking for grp.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking float.h usability... yes checking float.h presence... yes checking for float.h... yes checking ieeefp.h usability... no checking ieeefp.h presence... no checking for ieeefp.h... no checking intrinsics.h usability... no checking intrinsics.h presence... no checking for intrinsics.h... no checking langinfo.h usability... yes checking langinfo.h presence... yes checking for langinfo.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking locale.h usability... yes checking locale.h presence... yes checking for locale.h... yes checking malloc.h usability... no checking malloc.h presence... no checking for malloc.h... no checking malloc/malloc.h usability... yes checking malloc/malloc.h presence... yes checking for malloc/malloc.h... yes checking malloc_np.h usability... no checking malloc_np.h presence... no checking for malloc_np.h... no checking net/socket.h usability... no checking net/socket.h presence... no checking for net/socket.h... no checking process.h usability... no checking process.h presence... no checking for process.h... no checking pwd.h usability... yes checking pwd.h presence... yes checking for pwd.h... yes checking sanitizer/asan_interface.h usability... yes checking sanitizer/asan_interface.h presence... yes checking for sanitizer/asan_interface.h... yes checking sanitizer/msan_interface.h usability... yes checking sanitizer/msan_interface.h presence... yes checking for sanitizer/msan_interface.h... yes checking setjmpex.h usability... no checking setjmpex.h presence... no checking for setjmpex.h... no checking stdalign.h usability... yes checking stdalign.h presence... yes checking for stdalign.h... yes checking sys/attr.h usability... yes checking sys/attr.h presence... yes checking for sys/attr.h... yes checking sys/eventfd.h usability... no checking sys/eventfd.h presence... no checking for sys/eventfd.h... no checking sys/fcntl.h usability... yes checking sys/fcntl.h presence... yes checking for sys/fcntl.h... yes checking sys/file.h usability... yes checking sys/file.h presence... yes checking for sys/file.h... yes checking sys/id.h usability... no checking sys/id.h presence... no checking for sys/id.h... no checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/mkdev.h usability... no checking sys/mkdev.h presence... no checking for sys/mkdev.h... no checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking sys/prctl.h usability... no checking sys/prctl.h presence... no checking for sys/prctl.h... no checking sys/resource.h usability... yes checking sys/resource.h presence... yes checking for sys/resource.h... yes checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking sys/sendfile.h usability... no checking sys/sendfile.h presence... no checking for sys/sendfile.h... no checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking for sys/syscall.h... (cached) no checking sys/sysmacros.h usability... no checking sys/sysmacros.h presence... no checking for sys/sysmacros.h... no checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking sys/times.h usability... yes checking sys/times.h presence... yes checking for sys/times.h... yes checking sys/uio.h usability... yes checking sys/uio.h presence... yes checking for sys/uio.h... yes checking sys/utime.h usability... no checking sys/utime.h presence... no checking for sys/utime.h... no checking for syscall.h... (cached) no checking time.h usability... yes checking time.h presence... yes checking for time.h... yes checking ucontext.h usability... yes checking ucontext.h presence... yes checking for ucontext.h... yes checking utime.h usability... yes checking utime.h presence... yes checking for utime.h... yes checking gmp.h usability... no checking gmp.h presence... no checking for gmp.h... no checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking whether byte ordering is bigendian... no checking for an ANSI C-conforming const... yes checking whether char is unsigned... no checking for inline... inline checking for working volatile... yes checking for typeof syntax and keyword spelling... typeof checking for C/C++ restrict keyword... __restrict checking for long long... yes checking for off_t... yes checking char bit... 8 checking size of int... 4 checking size of short... 2 checking size of long... 8 checking size of long long... 8 checking size of __int64... 0 checking size of __int128... 16 checking size of off_t... 8 checking size of void*... 8 checking size of float... 4 checking size of double... 8 checking size of time_t... 8 checking size of clock_t... 8 checking packed struct attribute... x __attribute__((packed)) checking whether -Wno-address-of-packed-member is accepted as CFLAGS... yes checking for printf prefix for long long... ll checking for pid_t... yes checking for convertible type of pid_t... INT checking for uid_t... yes checking for convertible type of uid_t... UINT checking for gid_t... yes checking for convertible type of gid_t... UINT checking for time_t... yes checking for convertible type of time_t... LONG checking for dev_t... yes checking for convertible type of dev_t... INT checking for mode_t... yes checking for convertible type of mode_t... USHORT checking for rlim_t... yes checking for convertible type of rlim_t... ULL checking for off_t... (cached) yes checking for convertible type of off_t... LL checking for clockid_t... yes checking for convertible type of clockid_t... UINT checking for prototypes... yes checking token paste string... ansi checking stringization... #expr checking string literal concatenation... yes checking for variable length prototypes and stdarg.h... yes checking for variable length macro... yes checking for alignas() syntax... __attribute__((__aligned__(x))) checking for alignof() syntax... alignof checking for CONSTFUNC function attribute... __attribute__ ((__const__)) x checking for PUREFUNC function attribute... __attribute__ ((__pure__)) x checking for NORETURN function attribute... __attribute__ ((__noreturn__)) x checking for DEPRECATED function attribute... __attribute__ ((__deprecated__)) x checking for DEPRECATED_BY function attribute... __attribute__ ((__deprecated__("by "#n))) x checking for DEPRECATED_TYPE type attribute... x __attribute__ ((__deprecated__ mesg)) checking for NOINLINE function attribute... __attribute__ ((__noinline__)) x checking for ALWAYS_INLINE function attribute... __attribute__ ((__always_inline__)) x checking for NO_SANITIZE function attribute... __attribute__ ((__no_sanitize__(san))) x checking for NO_SANITIZE_ADDRESS function attribute... __attribute__ ((__no_sanitize_address__)) x checking for NO_ADDRESS_SAFETY_ANALYSIS function attribute... __attribute__ ((__no_address_safety_analysis__)) x checking for WARN_UNUSED_RESULT function attribute... __attribute__ ((__warn_unused_result__)) x checking for MAYBE_UNUSED function attribute... __attribute__ ((__unused__)) x checking for ERRORFUNC function attribute... x checking for WARNINGFUNC function attribute... x checking for WEAK function attribute... __attribute__ ((__weak__)) x checking for __attribute__((__depreacted__(msg))) in C++... yes checking for FUNC_STDCALL function attribute... x checking for FUNC_CDECL function attribute... __attribute__ ((__cdecl__)) x checking for FUNC_FASTCALL function attribute... x checking for FUNC_UNOPTIMIZED function attribute... x checking for FUNC_MINIMIZED function attribute... x checking for function alias... no checking for __atomic builtins... yes checking for __sync builtins... yes checking for __builtin_unreachable... yes checking for exported function attribute... __attribute__ ((__visibility__("default"))) checking for RUBY_FUNC_NONNULL function attribute... __attribute__ ((__nonnull__(n))) x checking for function name string predefined identifier... __func__ checking if enum over int is allowed... yes checking whether sys_nerr is declared... yes checking whether getenv is declared... yes checking for size_t... yes checking size of size_t... 8 checking size of ptrdiff_t... 8 checking for printf prefix for size_t... z checking for printf prefix for ptrdiff_t... t checking for struct stat.st_blksize... yes checking for struct stat.st_blocks... yes checking for struct stat.st_rdev... yes checking size of struct stat.st_size... SIZEOF_OFF_T checking size of struct stat.st_blocks... SIZEOF_OFF_T checking size of struct stat.st_ino... SIZEOF_LONG checking for struct stat.st_atim... no checking for struct stat.st_atimespec... yes checking for struct stat.st_atimensec... no checking for struct stat.st_mtim... no checking for struct stat.st_mtimespec... yes checking for struct stat.st_mtimensec... no checking for struct stat.st_ctim... no checking for struct stat.st_ctimespec... yes checking for struct stat.st_ctimensec... no checking for struct stat.st_birthtimespec... yes checking for struct timeval... yes checking size of struct timeval.tv_sec... SIZEOF_TIME_T checking for struct timespec... yes checking for struct timezone... yes checking for fd_mask... yes checking for int8_t... yes checking size of int8_t... 1 checking for uint8_t... yes checking size of uint8_t... 1 checking for int16_t... yes checking size of int16_t... 2 checking for uint16_t... yes checking size of uint16_t... 2 checking for int32_t... yes checking size of int32_t... 4 checking for uint32_t... yes checking size of uint32_t... 4 checking for int64_t... yes checking size of int64_t... 8 checking for uint64_t... yes checking size of uint64_t... 8 checking for int128_t... __int128 checking for uint128_t... unsigned __int128 checking for intptr_t... yes checking size of intptr_t... 8 checking for uintptr_t... yes checking size of uintptr_t... 8 checking for printf prefix for intptr_t... l checking for ssize_t... yes checking size of ssize_t... 8 checking for printf prefix for int64_t... ll checking for stack end address... no checking for uid_t in sys/types.h... (cached) yes checking type of array argument to getgroups... (cached) gid_t checking return type of signal handlers... void checking for working alloca.h... yes checking for alloca... yes checking for dynamic size alloca... ok checking for working memcmp... yes checking for acosh... yes checking for cbrt... yes checking for crypt... yes checking for dup2... yes checking for erf... yes checking for explicit_bzero... no checking for ffs... yes checking for flock... yes checking for hypot... yes checking for lgamma_r... yes checking for memmove... yes checking for nan... yes checking for nextafter... yes checking for setproctitle... no checking for strchr... yes checking for strerror... yes checking for strlcat... yes checking for strlcpy... yes checking for strstr... yes checking for tgamma... yes checking whether finite is declared... yes checking whether isinf is declared... yes checking whether isnan is declared... yes checking sys/pstat.h usability... no checking sys/pstat.h presence... no checking for sys/pstat.h... no checking for signbit... yes checking for pid_t... (cached) yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... yes checking for vfork... (cached) no checking for working fork... yes checking for __syscall... (cached) no checking for _longjmp... yes checking for arc4random_buf... yes checking for atan2l... yes checking for atan2f... yes checking for chroot... yes checking for chsize... no checking for clock_gettime... yes checking for copy_file_range... no checking for cosh... yes checking for crypt_r... no checking for daemon... (cached) no checking for dirfd... yes checking for dl_iterate_phdr... no checking for dlopen... yes checking for dladdr... yes checking for dup... yes checking for dup3... no checking for eaccess... no checking for endgrent... yes checking for eventfd... no checking for explicit_memset... no checking for fcopyfile... yes checking for fchmod... yes checking for fchown... yes checking for fcntl... yes checking for fdatasync... (cached) no checking for fdopendir... yes checking for fgetattrlist... yes checking for fmod... yes checking for fstatat... yes checking for fsync... yes checking for ftruncate... yes checking for ftruncate64... no checking for getattrlist... yes checking for getcwd... yes checking for getgidx... no checking for getgrnam... yes checking for getgrnam_r... yes checking for getgroups... yes checking for getpgid... yes checking for getpgrp... yes checking for getpriority... yes checking for getpwnam_r... yes checking for getrandom... no checking for getresgid... no checking for getresuid... no checking for getrlimit... yes checking for getsid... yes checking for gettimeofday... yes checking for getuidx... no checking for gmtime_r... yes checking for grantpt... yes checking for initgroups... yes checking for ioctl... yes checking for isfinite... no checking for issetugid... yes checking for killpg... yes checking for lchmod... yes checking for lchown... yes checking for link... yes checking for llabs... yes checking for lockf... yes checking for log2... yes checking for lstat... yes checking for lutimes... yes checking for malloc_usable_size... no checking for malloc_size... yes checking for mblen... yes checking for memalign... no checking for memset_s... yes checking for writev... yes checking for memrchr... no checking for memmem... yes checking for mkfifo... yes checking for mknod... yes checking for mktime... yes checking for openat... yes checking for pipe2... no checking for poll... yes checking for posix_fadvise... no checking for posix_memalign... yes checking for ppoll... no checking for pread... yes checking for pwrite... yes checking for qsort_r... yes checking for qsort_s... no checking for readlink... yes checking for realpath... yes checking for round... yes checking for sched_getaffinity... no checking for seekdir... yes checking for select_large_fdset... no checking for sendfile... yes checking for setegid... yes checking for setenv... yes checking for seteuid... yes checking for setgid... yes checking for setgroups... yes checking for setpgid... yes checking for setpgrp... yes checking for setregid... yes checking for setresgid... no checking for setresuid... no checking for setreuid... yes checking for setrgid... yes checking for setrlimit... yes checking for setruid... yes checking for setsid... yes checking for setuid... yes checking for shutdown... yes checking for sigaction... yes checking for sigaltstack... yes checking for sigprocmask... yes checking for sinh... yes checking for spawnv... no checking for symlink... yes checking for syscall... (cached) no checking for sysconf... yes checking for tanh... yes checking for telldir... yes checking for timegm... yes checking for times... yes checking for truncate... yes checking for truncate64... no checking for unsetenv... yes checking for utimensat... yes checking for utimes... yes checking for wait4... yes checking for waitpid... yes checking if getcwd allocates buffer if NULL is given... yes checking for __builtin_alloca_with_align... yes checking for __builtin_assume_aligned... yes checking for __builtin_bswap16... yes checking for __builtin_bswap32... yes checking for __builtin_bswap64... yes checking for __builtin_popcount... yes checking for __builtin_popcountll... yes checking for __builtin_clz... yes checking for __builtin_clzl... yes checking for __builtin_clzll... yes checking for __builtin_ctz... yes checking for __builtin_ctzll... yes checking for __builtin_add_overflow... yes checking for __builtin_sub_overflow... yes checking for __builtin_mul_overflow... yes checking for __builtin_mul_overflow_p... no checking for __builtin_constant_p... yes checking for __builtin_choose_expr... yes checking for __builtin_choose_expr_constant_p... yes checking for __builtin_types_compatible_p... yes checking for __builtin_trap... yes checking whether qsort_r is GNU version... no checking whether qsort_r is BSD version... yes checking whether atan2 handles Inf as C99... yes checking for clock_getres... yes checking for timer_create in -lrt... no checking for timer_settime in -lrt... no checking for unsetenv returns a value... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for struct tm.tm_zone... yes checking for struct tm.tm_gmtoff... yes checking for external int daylight... yes checking for negative time_t for gmtime(3)... yes checking for localtime(3) overflow correctly... yes checking for sig_t... yes checking whether right shift preserve sign bit... yes checking whether _SC_CLK_TCK is supported... yes checking stack growing direction on x86_64... -1 checking native coroutine implementation for x86_64-darwin19... amd64 checking for pthread_create in -lthr... no checking for pthread_create in -lpthread... yes checking for pthread_np.h... no checking whether pthread_t is scalar type... yes checking for sched_yield... yes checking for pthread_attr_setinheritsched... yes checking for pthread_attr_get_np... no checking for pthread_attr_getstack... yes checking for pthread_attr_getguardsize... yes checking for pthread_get_stackaddr_np... yes checking for pthread_get_stacksize_np... yes checking for thr_stksegment... no checking for pthread_stackseg_np... no checking for pthread_getthrds_np... no checking for pthread_condattr_setclock... no checking for pthread_sigmask... yes checking for pthread_setname_np... yes checking for pthread_set_name_np... no checking for pthread_getattr_np... no checking arguments of pthread_setname_np... (name) checking if mcontext_t is a pointer... yes checking for getcontext... (cached) no checking for setcontext... (cached) no checking if fork works with pthread... yes checking whether ELF binaries are produced... no checking mach-o/loader.h usability... yes checking mach-o/loader.h presence... yes checking for mach-o/loader.h... yes checking whether OS depend dynamic link works... yes checking whether -Wl,-undefined,dynamic_lookup is accepted as LDFLAGS... yes checking whether -Wl,-multiply_defined,suppress is accepted as LDFLAGS... yes checking libproc.h usability... yes checking libproc.h presence... yes checking for libproc.h... yes checking execinfo.h usability... yes checking execinfo.h presence... yes checking for execinfo.h... yes checking for backtrace in -lexecinfo... no checking libunwind.h usability... yes checking libunwind.h presence... yes checking for libunwind.h... yes checking for backtrace... yes checking for broken backtrace... yes checking valgrind/memcheck.h usability... no checking valgrind/memcheck.h presence... no checking for valgrind/memcheck.h... no checking for strip... strip checking whether -fPIE is accepted as CFLAGS... yes checking whether -pie is accepted as LDFLAGS... no checking whether -Wl,-pie is accepted as LDFLAGS... yes checking whether wrapper for DYLD_FALLBACK_LIBRARY_PATH is needed... yes checking whether dtrace USDT is available... yes(-xnolibs) checking whether dtrace needs post processing... no checking for __builtin_setjmp... (cached) no checking for _setjmpex as a macro or function... no checking for _setjmp as a macro or function... yes checking for sigsetjmp as a macro or function... yes checking for setjmp type... sigsetjmp,0 checking for prefix of external symbols... _ checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking if make is GNU make... yes .ext/include/x86_64-darwin19/ruby/config.h unchanged configure: ruby library version = 2.7.0 configure: creating ./config.status config.status: creating GNUmakefile config.status: creating Makefile config.status: creating ruby-2.7.pc --- Configuration summary for ruby version 2.7.1 * Installation prefix: /Users/moncef/.rubies/ruby-2.7.1 * exec prefix: ${prefix} * arch: x86_64-darwin19 * site arch: ${arch} * RUBY_BASE_NAME: ruby * ruby lib prefix: ${libdir}/${RUBY_BASE_NAME} * site libraries path: ${rubylibprefix}/${sitearch} * vendor path: ${rubylibprefix}/vendor_ruby * target OS: darwin19 * compiler: clang * with pthread: yes * with coroutine: amd64 * enable shared libs: no * dynamic library ext: bundle * CFLAGS: ${optflags} ${debugflags} ${warnflags} * LDFLAGS: -L. -fstack-protector-strong -L/usr/local/lib * DLDFLAGS: -Wl,-undefined,dynamic_lookup \ -Wl,-multiply_defined,suppress * optflags: -O3 * debugflags: -ggdb3 * warnflags: -Wall -Wextra -Wdeprecated-declarations \ -Wdivision-by-zero \ -Wimplicit-function-declaration -Wimplicit-int \ -Wmisleading-indentation -Wpointer-arith \ -Wshorten-64-to-32 -Wwrite-strings \ -Wmissing-noreturn -Wno-constant-logical-operand \ -Wno-long-long -Wno-missing-field-initializers \ -Wno-overlength-strings -Wno-parentheses-equality \ -Wno-self-assign -Wno-tautological-compare \ -Wno-unused-parameter -Wno-unused-value \ -Wunused-variable -Wextra-tokens * strip command: strip -A -n * install doc: rdoc * JIT support: yes * man page type: doc * BASERUBY -v: ruby 2.6.3p62 (2019-04-16 revision 67580) \ [universal.x86_64-darwin19] --- >>> Cleaning ruby 2.7.1 ... cleaning ext/-test-/arith_seq/extract cleaning ext/-test-/array/resize cleaning ext/-test-/bignum cleaning ext/-test-/bug-14834 cleaning ext/-test-/bug-3571 cleaning ext/-test-/bug-5832 cleaning ext/-test-/bug_reporter cleaning ext/-test-/class cleaning ext/-test-/cxxanyargs cleaning ext/-test-/debug cleaning ext/-test-/dln/empty cleaning ext/-test-/enumerator_kw cleaning ext/-test-/exception cleaning ext/-test-/fatal cleaning ext/-test-/file cleaning ext/-test-/float cleaning ext/-test-/funcall cleaning ext/-test-/gvl/call_without_gvl cleaning ext/-test-/hash cleaning ext/-test-/integer cleaning ext/-test-/iseq_load cleaning ext/-test-/iter cleaning ext/-test-/load/dot.dot cleaning ext/-test-/load/protect cleaning ext/-test-/marshal/compat cleaning ext/-test-/marshal/internal_ivar cleaning ext/-test-/marshal/usr cleaning ext/-test-/memory_status cleaning ext/-test-/method cleaning ext/-test-/notimplement cleaning ext/-test-/num2int cleaning ext/-test-/path_to_class cleaning ext/-test-/popen_deadlock cleaning ext/-test-/postponed_job cleaning ext/-test-/printf cleaning ext/-test-/proc cleaning ext/-test-/rational cleaning ext/-test-/rb_call_super_kw cleaning ext/-test-/recursion cleaning ext/-test-/regexp cleaning ext/-test-/scan_args cleaning ext/-test-/st/foreach cleaning ext/-test-/st/numhash cleaning ext/-test-/st/update cleaning ext/-test-/string cleaning ext/-test-/struct cleaning ext/-test-/symbol cleaning ext/-test-/thread_fd_close cleaning ext/-test-/time cleaning ext/-test-/tracepoint cleaning ext/-test-/typeddata cleaning ext/-test-/vm cleaning ext/-test-/wait_for_single_fd cleaning ext/bigdecimal cleaning ext/cgi/escape cleaning ext/continuation cleaning ext/coverage cleaning ext/date cleaning ext/dbm cleaning ext/digest cleaning ext/digest/bubblebabble cleaning ext/digest/md5 cleaning ext/digest/rmd160 cleaning ext/digest/sha1 cleaning ext/digest/sha2 cleaning ext/etc cleaning ext/fcntl cleaning ext/fiber cleaning ext/fiddle cleaning ext/gdbm cleaning ext/io/console cleaning ext/io/nonblock cleaning ext/io/wait cleaning ext/json cleaning ext/json/generator cleaning ext/json/parser cleaning ext/monitor cleaning ext/nkf cleaning ext/objspace cleaning ext/openssl cleaning ext/pathname cleaning ext/psych cleaning ext/pty cleaning ext/racc/cparse cleaning ext/rbconfig/sizeof cleaning ext/readline cleaning ext/ripper cleaning ext/rubyvm cleaning ext/sdbm cleaning ext/socket cleaning ext/stringio cleaning ext/strscan cleaning ext/syslog cleaning ext/zlib cleaning encodings cleaning rdoc cleaning HTML cleaning capi rm: miniruby.dSYM: is a directory rm: ruby.dSYM: is a directory >>> Compiling ruby 2.7.1 ... BASERUBY = /usr/bin/ruby --disable=gems CC = clang LD = ld LDSHARED = clang -dynamiclib CFLAGS = -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -std=gnu99 -pipe XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN -I. -I.ext/include/x86_64-darwin19 -I./include -I. -I./enc/unicode/12.1.0 CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -fstack-protector-strong -Wl,-pie -framework Security -framework Foundation SOLIBS = -lpthread -ldl -lobjc LANG = en_US.UTF-8 LC_ALL = LC_CTYPE = MFLAGS = Apple clang version 12.0.0 (clang-1200.0.32.28) Target: x86_64-apple-darwin19.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin compiling ./main.c compiling dmydln.c compiling miniinit.c compiling dmyext.c translating probes probes.d . ./vm_opts.h compiling array.c compiling ast.c 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 making mjit_config.h compiling mjit.c compiling mjit_compile.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 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 compiling string.c compiling struct.c compiling symbol.c compiling thread.c compiling time.c compiling transcode.c compiling transient_heap.c compiling util.c compiling variable.c ./revision.h unchanged compiling version.c compiling vm.c compiling vm_backtrace.c compiling vm_dump.c compiling vm_trace.c assembling coroutine/amd64/Context.S compiling enc/ascii.c compiling enc/us_ascii.c compiling enc/unicode.c compiling enc/utf_8.c compiling enc/trans/newline.c compiling ./missing/explicit_bzero.c compiling ./missing/setproctitle.c compiling addr2line.c compiling dmyenc.c linking miniruby config.status: creating ruby-runner.h generating encdb.h encdb.h updated ./tool/ifchange "--timestamp=.rbconfig.time" rbconfig.rb rbconfig.tmp rbconfig.rb updated generating enc.mk making srcs under enc make[1]: Nothing to be done for `srcs'. generating transdb.h transdb.h updated compiling dln.c compiling localeinit.c creating verconf.h verconf.h updated compiling loadpath.c compiling builtin.c linking static-library libruby.2.7-static.a generating makefiles ext/configure-ext.mk ext/configure-ext.mk unchanged configuring strscan configuring monitor configuring syslog configuring gdbm configuring pty configuring objspace configuring nkf configuring digest configuring digest/bubblebabble configuring digest/md5 configuring digest/rmd160 configuring digest/sha1 configuring digest/sha2 configuring date configuring readline configuring io/console configuring io/nonblock configuring io/wait configuring etc configuring bigdecimal configuring -test-/arith_seq/extract configuring -test-/array/resize configuring -test-/bignum configuring -test-/bug-14834 configuring -test-/bug-3571 configuring -test-/bug-5832 configuring -test-/bug_reporter configuring -test-/class configuring -test-/cxxanyargs configuring -test-/debug configuring -test-/dln/empty configuring -test-/enumerator_kw configuring -test-/exception configuring -test-/fatal configuring -test-/file 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 -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-/rb_call_super_kw configuring -test-/recursion configuring -test-/regexp configuring -test-/scan_args configuring -test-/st/foreach configuring -test-/st/numhash configuring -test-/st/update configuring -test-/string configuring -test-/struct configuring -test-/symbol configuring -test-/thread_fd_close configuring -test-/time configuring -test-/tracepoint configuring -test-/typeddata configuring -test-/vm configuring -test-/wait_for_single_fd configuring fiddle configuring rubyvm configuring zlib configuring psych configuring cgi/escape configuring json configuring json/generator configuring json/parser configuring stringio configuring racc/cparse configuring fiber configuring sdbm configuring continuation configuring rbconfig/sizeof configuring dbm header: ndbm.h library: libc configuring fcntl configuring openssl configuring ripper configuring pathname configuring coverage configuring socket generating makefile exts.mk exts.mk updated compiling strscan.c linking shared-object strscan.bundle compiling monitor.c linking shared-object monitor.bundle installing default monitor libraries compiling syslog.c linking shared-object syslog.bundle installing default syslog libraries compiling gdbm.c linking shared-object gdbm.bundle compiling pty.c linking shared-object pty.bundle installing default pty libraries compiling object_tracing.c compiling objspace.c compiling objspace_dump.c linking shared-object objspace.bundle compiling nkf.c linking shared-object nkf.bundle installing default nkf libraries compiling digest.c linking shared-object digest.bundle installing digest libraries installing default digest libraries compiling bubblebabble.c linking shared-object digest/bubblebabble.bundle compiling md5init.c compiling md5.c linking shared-object digest/md5.bundle compiling rmd160init.c compiling rmd160.c linking shared-object digest/rmd160.bundle compiling sha1init.c compiling sha1.c linking shared-object digest/sha1.bundle compiling sha2init.c compiling sha2.c linking shared-object digest/sha2.bundle installing default sha2 libraries compiling date_core.c compiling date_parse.c compiling date_strftime.c compiling date_strptime.c linking shared-object date_core.bundle installing default date_core libraries compiling readline.c linking shared-object readline.bundle compiling console.c linking shared-object io/console.bundle installing default console libraries compiling nonblock.c linking shared-object io/nonblock.bundle compiling wait.c linking shared-object io/wait.bundle compiling etc.c linking shared-object etc.bundle compiling bigdecimal.c linking shared-object bigdecimal.bundle installing default bigdecimal libraries compiling extract.c linking shared-object -test-/arith_seq/extract.bundle compiling resize.c linking shared-object -test-/array/resize.bundle compiling str2big.c compiling mul.c compiling init.c compiling div.c compiling intpack.c compiling big2str.c compiling bigzero.c linking shared-object -test-/bignum.bundle compiling bug-14384.c linking shared-object -test-/bug_14834.bundle compiling bug.c linking shared-object -test-/bug_3571.bundle compiling bug.c linking shared-object -test-/bug_5832.bundle compiling bug_reporter.c linking shared-object -test-/bug_reporter.bundle compiling init.c compiling class2name.c linking shared-object -test-/class.bundle compiling cxxanyargs.cpp linking shared-object -test-/cxxanyargs.bundle compiling inspector.c compiling init.c compiling profile_frames.c linking shared-object -test-/debug.bundle compiling empty.c linking shared-object -test-/dln/empty.bundle compiling enumerator_kw.c linking shared-object -test-/enumerator_kw.bundle compiling dataerror.c compiling init.c compiling enc_raise.c compiling ensured.c linking shared-object -test-/exception.bundle compiling rb_fatal.c linking shared-object -test-/fatal/rb_fatal.bundle compiling init.c compiling fs.c compiling stat.c linking shared-object -test-/file.bundle compiling init.c compiling nextafter.c linking shared-object -test-/float.bundle compiling funcall.c linking shared-object -test-/funcall.bundle compiling call_without_gvl.c linking shared-object -test-/gvl/call_without_gvl.bundle compiling init.c compiling delete.c linking shared-object -test-/hash.bundle compiling init.c compiling my_integer.c compiling core_ext.c linking shared-object -test-/integer.bundle compiling iseq_load.c linking shared-object -test-/iseq_load.bundle compiling init.c compiling break.c compiling yield.c linking shared-object -test-/iter.bundle compiling dot.dot.c linking shared-object -test-/load/dot.dot.bundle compiling protect.c linking shared-object -test-/load/protect.bundle compiling usrcompat.c linking shared-object -test-/marshal/compat.bundle compiling internal_ivar.c linking shared-object -test-/marshal/internal_ivar.bundle compiling usrmarshal.c linking shared-object -test-/marshal/usr.bundle compiling memory_status.c linking shared-object -test-/memory_status.bundle compiling init.c compiling arity.c linking shared-object -test-/method.bundle compiling bug.c linking shared-object -test-/notimplement.bundle compiling num2int.c linking shared-object -test-/num2int.bundle compiling path_to_class.c linking shared-object -test-/path_to_class.bundle compiling postponed_job.c linking shared-object -test-/postponed_job.bundle compiling printf.c linking shared-object -test-/printf.bundle compiling super.c compiling receiver.c compiling init.c linking shared-object -test-/proc.bundle compiling rat.c linking shared-object -test-/rational.bundle compiling rb_call_super_kw.c linking shared-object -test-/rb_call_super_kw.bundle compiling recursion.c linking shared-object -test-/recursion.bundle compiling parse_depth_limit.c compiling init.c linking shared-object -test-/regexp.bundle compiling scan_args.c linking shared-object -test-/scan_args.bundle compiling foreach.c linking shared-object -test-/st/foreach.bundle compiling numhash.c linking shared-object -test-/st/numhash.bundle compiling update.c linking shared-object -test-/st/update.bundle compiling coderange.c compiling capacity.c compiling fstring.c compiling enc_associate.c compiling init.c compiling rb_str_dup.c compiling cstr.c compiling qsort.c compiling nofree.c compiling ellipsize.c compiling normalize.c compiling modify.c compiling set_len.c compiling enc_str_buf_cat.c compiling new.c linking shared-object -test-/string.bundle compiling len.c compiling duplicate.c compiling init.c compiling member.c linking shared-object -test-/struct.bundle compiling init.c compiling type.c linking shared-object -test-/symbol.bundle compiling thread_fd_close.c linking shared-object -test-/thread_fd_close.bundle compiling init.c compiling leap_second.c compiling new.c linking shared-object -test-/time.bundle compiling gc_hook.c compiling tracepoint.c linking shared-object -test-/tracepoint.bundle compiling typeddata.c linking shared-object -test-/typeddata.bundle compiling at_exit.c linking shared-object -test-/vm/at_exit.bundle compiling wait_for_single_fd.c linking shared-object -test-/wait_for_single_fd.bundle compiling closure.c closure.c:264:14: warning: 'ffi_prep_closure' is deprecated [-Wdeprecated-declarations] result = ffi_prep_closure(pcl, cif, callback, (void *)self); ^ /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi/ffi.h:348:18: note: 'ffi_prep_closure' has been explicitly marked deprecated here __attribute__((deprecated)) ^ 1 warning generated. compiling conversions.c compiling fiddle.c compiling function.c compiling handle.c compiling pointer.c linking shared-object fiddle.bundle installing default fiddle libraries installing default libraries compiling zlib.c linking shared-object zlib.bundle compiling psych.c compiling psych_emitter.c compiling psych_parser.c compiling psych_to_ruby.c compiling psych_yaml_tree.c linking shared-object psych.bundle installing default psych libraries compiling escape.c linking shared-object cgi/escape.bundle installing default libraries compiling generator.c linking shared-object json/ext/generator.bundle compiling parser.c linking shared-object json/ext/parser.bundle compiling stringio.c linking shared-object stringio.bundle compiling cparse.c linking shared-object racc/cparse.bundle compiling fiber.c linking shared-object fiber.bundle compiling _sdbm.c compiling init.c linking shared-object sdbm.bundle compiling continuation.c linking shared-object continuation.bundle compiling sizes.c compiling limits.c linking shared-object rbconfig/sizeof.bundle compiling dbm.c linking shared-object dbm.bundle compiling fcntl.c linking shared-object fcntl.bundle extracting ripper.y from ../.././parse.y compiling compiler ripper.y generating eventids1.c from ../.././parse.y generating eventids2table.c from ../.././ext/ripper/eventids2.c compiling ripper.c linking shared-object ripper.bundle installing default ripper libraries checking ../.././parse.y and ../.././ext/ripper/eventids2.c compiling pathname.c linking shared-object pathname.bundle installing default pathname libraries compiling coverage.c linking shared-object coverage.bundle installing default coverage libraries compiling init.c compiling constants.c compiling basicsocket.c compiling socket.c compiling ipsocket.c compiling tcpsocket.c compiling tcpserver.c compiling sockssocket.c compiling udpsocket.c compiling unixsocket.c compiling unixserver.c compiling option.c compiling ancdata.c compiling raddrinfo.c compiling ifaddr.c linking shared-object socket.bundle installing default socket libraries ./revision.h unchanged linking ruby *** Following extensions are not compiled: openssl: Could not be configured. It will not be installed. /Users/moncef/src/ruby-2.7.1/ext/openssl/extconf.rb:97: OpenSSL library could not be found. You might want to use --with-openssl-dir= option to specify the prefix where OpenSSL is installed. Check ext/openssl/mkmf.log for more details. *** Fix the problems, then remove these directories and try again if you want. making enc compiling ./enc/encdb.c linking encoding encdb.bundle compiling ./enc/big5.c linking encoding big5.bundle compiling ./enc/cesu_8.c linking encoding cesu_8.bundle compiling ./enc/cp949.c linking encoding cp949.bundle compiling ./enc/emacs_mule.c linking encoding emacs_mule.bundle compiling ./enc/euc_jp.c linking encoding euc_jp.bundle compiling ./enc/euc_kr.c linking encoding euc_kr.bundle compiling ./enc/euc_tw.c linking encoding euc_tw.bundle compiling ./enc/gb2312.c linking encoding gb2312.bundle compiling ./enc/gb18030.c linking encoding gb18030.bundle compiling ./enc/gbk.c linking encoding gbk.bundle compiling ./enc/iso_8859_1.c linking encoding iso_8859_1.bundle compiling ./enc/iso_8859_2.c linking encoding iso_8859_2.bundle compiling ./enc/iso_8859_3.c linking encoding iso_8859_3.bundle compiling ./enc/iso_8859_4.c linking encoding iso_8859_4.bundle compiling ./enc/iso_8859_5.c linking encoding iso_8859_5.bundle compiling ./enc/iso_8859_6.c linking encoding iso_8859_6.bundle compiling ./enc/iso_8859_7.c linking encoding iso_8859_7.bundle compiling ./enc/iso_8859_8.c linking encoding iso_8859_8.bundle compiling ./enc/iso_8859_9.c linking encoding iso_8859_9.bundle compiling ./enc/iso_8859_10.c linking encoding iso_8859_10.bundle compiling ./enc/iso_8859_11.c linking encoding iso_8859_11.bundle compiling ./enc/iso_8859_13.c linking encoding iso_8859_13.bundle compiling ./enc/iso_8859_14.c linking encoding iso_8859_14.bundle compiling ./enc/iso_8859_15.c linking encoding iso_8859_15.bundle compiling ./enc/iso_8859_16.c linking encoding iso_8859_16.bundle compiling ./enc/koi8_r.c linking encoding koi8_r.bundle compiling ./enc/koi8_u.c linking encoding koi8_u.bundle compiling ./enc/shift_jis.c linking encoding shift_jis.bundle compiling ./enc/utf_16be.c linking encoding utf_16be.bundle compiling ./enc/utf_16le.c linking encoding utf_16le.bundle compiling ./enc/utf_32be.c linking encoding utf_32be.bundle compiling ./enc/utf_32le.c linking encoding utf_32le.bundle compiling ./enc/windows_31j.c linking encoding windows_31j.bundle compiling ./enc/windows_1250.c linking encoding windows_1250.bundle compiling ./enc/windows_1251.c linking encoding windows_1251.bundle compiling ./enc/windows_1252.c linking encoding windows_1252.bundle compiling ./enc/windows_1253.c linking encoding windows_1253.bundle compiling ./enc/windows_1254.c linking encoding windows_1254.bundle compiling ./enc/windows_1257.c linking encoding windows_1257.bundle making trans compiling ./enc/trans/transdb.c linking transcoder transdb.bundle compiling ./enc/trans/big5.c linking transcoder big5.bundle compiling ./enc/trans/cesu_8.c linking transcoder cesu_8.bundle compiling ./enc/trans/chinese.c linking transcoder chinese.bundle compiling ./enc/trans/ebcdic.c linking transcoder ebcdic.bundle compiling ./enc/trans/emoji.c linking transcoder emoji.bundle compiling ./enc/trans/emoji_iso2022_kddi.c linking transcoder emoji_iso2022_kddi.bundle compiling ./enc/trans/emoji_sjis_docomo.c linking transcoder emoji_sjis_docomo.bundle compiling ./enc/trans/emoji_sjis_kddi.c linking transcoder emoji_sjis_kddi.bundle compiling ./enc/trans/emoji_sjis_softbank.c linking transcoder emoji_sjis_softbank.bundle compiling ./enc/trans/escape.c linking transcoder escape.bundle compiling ./enc/trans/gb18030.c linking transcoder gb18030.bundle compiling ./enc/trans/gbk.c linking transcoder gbk.bundle compiling ./enc/trans/iso2022.c linking transcoder iso2022.bundle compiling ./enc/trans/japanese.c linking transcoder japanese.bundle compiling ./enc/trans/japanese_euc.c linking transcoder japanese_euc.bundle compiling ./enc/trans/japanese_sjis.c linking transcoder japanese_sjis.bundle compiling ./enc/trans/korean.c linking transcoder korean.bundle compiling ./enc/trans/single_byte.c linking transcoder single_byte.bundle compiling ./enc/trans/utf8_mac.c linking transcoder utf8_mac.bundle compiling ./enc/trans/utf_16_32.c linking transcoder utf_16_32.bundle making encs make[1]: Nothing to be done for `encs'. building rb_mjit_header.h rb_mjit_header.h updated building .ext/include/x86_64-darwin19/rb_mjit_min_header-2.7.1.h ./miniruby -I./lib -I. -I.ext/common ./tool/transform_mjit_header.rb "clang -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -std=gnu99 -pipe " rb_mjit_header.h .ext/include/x86_64-darwin19/rb_mjit_min_header-2.7.1.h Transforming external functions to static: transform_mjit_header: making external definition of 'rb_vm_lvar_exposed' static inline transform_mjit_header: making external definition of 'Init_vm_stack_canary' static inline transform_mjit_header: making external definition of 'rb_vm_opt_struct_aset' static inline transform_mjit_header: making external definition of 'rb_vm_opt_struct_aref' static inline transform_mjit_header: making external definition of 'rb_eql_opt' static inline transform_mjit_header: changing definition of 'rb_equal_opt' to declaration transform_mjit_header: changing definition of 'rb_vm_search_method_slowpath' to declaration transform_mjit_header: making external definition of 'rb_vm_rewrite_cref' static inline transform_mjit_header: making external definition of 'rb_vm_block_ep_update' static inline transform_mjit_header: making external definition of 'rb_vm_cref_new_toplevel' static inline transform_mjit_header: making external definition of 'rb_vm_frame_block_handler' static inline transform_mjit_header: making external definition of 'rb_vm_cframe_empty_keyword_p' static inline transform_mjit_header: making external definition of 'rb_vm_cframe_keyword_p' static inline transform_mjit_header: making external definition of 'rb_vm_ep_local_ep' static inline transform_mjit_header: making declaration of 'rb_vm_lvar_exposed' static inline transform_mjit_header: making declaration of 'rb_vm_rewrite_cref' static inline transform_mjit_header: making declaration of 'rb_vm_frame_block_handler' static inline transform_mjit_header: making declaration of 'rb_vm_block_ep_update' static inline transform_mjit_header: making declaration of 'rb_vm_ep_local_ep' static inline transform_mjit_header: SKIPPED to transform __sigbits transform_mjit_header: making declaration of 'Init_vm_stack_canary' static inline transform_mjit_header: making declaration of 'rb_eql_opt' static inline transform_mjit_header: SKIPPED to transform __sincospi transform_mjit_header: SKIPPED to transform __sincospif transform_mjit_header: SKIPPED to transform __sincos transform_mjit_header: SKIPPED to transform __sincosf transform_mjit_header: SKIPPED to transform __inline_isnormall transform_mjit_header: SKIPPED to transform __inline_isnormald transform_mjit_header: SKIPPED to transform __inline_isnormalf transform_mjit_header: SKIPPED to transform __inline_signbitl transform_mjit_header: SKIPPED to transform __inline_signbitd transform_mjit_header: SKIPPED to transform __inline_signbitf transform_mjit_header: SKIPPED to transform __inline_isnanl transform_mjit_header: SKIPPED to transform __inline_isnand transform_mjit_header: SKIPPED to transform __inline_isnanf transform_mjit_header: SKIPPED to transform __inline_isinfl transform_mjit_header: SKIPPED to transform __inline_isinfd transform_mjit_header: SKIPPED to transform __inline_isinff transform_mjit_header: SKIPPED to transform __inline_isfinitel transform_mjit_header: SKIPPED to transform __inline_isfinited transform_mjit_header: SKIPPED to transform __inline_isfinitef transform_mjit_header: SKIPPED to transform __darwin_fd_clr transform_mjit_header: SKIPPED to transform __darwin_fd_set transform_mjit_header: SKIPPED to transform __darwin_fd_isset transform_mjit_header: SKIPPED to transform __darwin_check_fd_set transform_mjit_header: SKIPPED to transform __sputc ln -sf ../../../.ext/include/x86_64-darwin19/rb_mjit_min_header-2.7.1.h include/ruby-2.7.0/x86_64-darwin19/rb_mjit_min_header-2.7.1.h Generating RDoc documentation Parsing sources... 100% [1141/1141] win32/README.win32 Generating RI format into /Users/moncef/src/ruby-2.7.1/.ext/rdoc... Files: 1141 Classes: 1614 ( 758 undocumented) Modules: 327 ( 134 undocumented) Constants: 2435 ( 726 undocumented) Attributes: 1488 ( 559 undocumented) Methods: 13019 (3991 undocumented) Total: 18883 (6168 undocumented) 67.34% documented Elapsed: 34.2s >>> Installing ruby 2.7.1 ... BASERUBY = /usr/bin/ruby --disable=gems CC = clang LD = ld LDSHARED = clang -dynamiclib CFLAGS = -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -std=gnu99 -pipe XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN -I. -I.ext/include/x86_64-darwin19 -I./include -I. -I./enc/unicode/12.1.0 CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -fstack-protector-strong -Wl,-pie -framework Security -framework Foundation SOLIBS = -lpthread -ldl -lobjc LANG = en_US.UTF-8 LC_ALL = LC_CTYPE = MFLAGS = Apple clang version 12.0.0 (clang-1200.0.32.28) Target: x86_64-apple-darwin19.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin ./revision.h unchanged generating enc.mk making srcs under enc make[1]: Nothing to be done for `srcs'. generating transdb.h transdb.h unchanged generating makefiles ext/configure-ext.mk ext/configure-ext.mk unchanged ./revision.h unchanged *** Following extensions are not compiled: openssl: Could not be configured. It will not be installed. /Users/moncef/src/ruby-2.7.1/ext/openssl/extconf.rb:97: OpenSSL library could not be found. You might want to use --with-openssl-dir= option to specify the prefix where OpenSSL is installed. Check ext/openssl/mkmf.log for more details. *** Fix the problems, then remove these directories and try again if you want. making enc make[1]: Nothing to be done for `enc'. making trans make[1]: Nothing to be done for `./enc/trans'. making encs make[1]: Nothing to be done for `encs'. Generating RDoc documentation Parsing sources... 100% [1141/1141] win32/README.win32 Generating RI format into /Users/moncef/src/ruby-2.7.1/.ext/rdoc... Files: 1141 Classes: 1614 ( 758 undocumented) Modules: 327 ( 134 undocumented) Constants: 2435 ( 726 undocumented) Attributes: 1488 ( 559 undocumented) Methods: 13019 (3991 undocumented) Total: 18883 (6168 undocumented) 67.34% documented Elapsed: 35.5s generating x86_64-darwin19-fake.rb x86_64-darwin19-fake.rb updated ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -r./x86_64-darwin19-fake ./tool/rbinstall.rb --make="/Library/Developer/CommandLineTools/usr/bin/make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --mantype="doc" --rdoc-output=".ext/rdoc" --html-output=".ext/html" installing binary commands: /Users/moncef/.rubies/ruby-2.7.1/bin installing base libraries: /Users/moncef/.rubies/ruby-2.7.1/lib installing arch files: /Users/moncef/.rubies/ruby-2.7.1/lib/ruby/2.7.0/x86_64-darwin19 installing extension objects: /Users/moncef/.rubies/ruby-2.7.1/lib/ruby/2.7.0/x86_64-darwin19 installing extension objects: /Users/moncef/.rubies/ruby-2.7.1/lib/ruby/site_ruby/2.7.0/x86_64-darwin19 installing extension objects: /Users/moncef/.rubies/ruby-2.7.1/lib/ruby/vendor_ruby/2.7.0/x86_64-darwin19 installing extension headers: /Users/moncef/.rubies/ruby-2.7.1/include/ruby-2.7.0/x86_64-darwin19 installing extension scripts: /Users/moncef/.rubies/ruby-2.7.1/lib/ruby/2.7.0 installing extension scripts: /Users/moncef/.rubies/ruby-2.7.1/lib/ruby/site_ruby/2.7.0 installing extension scripts: /Users/moncef/.rubies/ruby-2.7.1/lib/ruby/vendor_ruby/2.7.0 installing extension headers: /Users/moncef/.rubies/ruby-2.7.1/include/ruby-2.7.0/ruby installing rdoc: /Users/moncef/.rubies/ruby-2.7.1/share/ri/2.7.0/system installing html-docs: /Users/moncef/.rubies/ruby-2.7.1/share/doc/ruby installing capi-docs: /Users/moncef/.rubies/ruby-2.7.1/share/doc/ruby installing command scripts: /Users/moncef/.rubies/ruby-2.7.1/bin installing library scripts: /Users/moncef/.rubies/ruby-2.7.1/lib/ruby/2.7.0 installing common headers: /Users/moncef/.rubies/ruby-2.7.1/include/ruby-2.7.0 installing manpages: /Users/moncef/.rubies/ruby-2.7.1/share/man (man1, man5) installing default gems from lib: /Users/moncef/.rubies/ruby-2.7.1/lib/ruby/gems/2.7.0 (build_info, cache, doc, extensions, gems, specifications) benchmark 0.1.0 Traceback (most recent call last): 11: from ./tool/rbinstall.rb:947:in `
' 10: from ./tool/rbinstall.rb:947:in `each' 9: from ./tool/rbinstall.rb:950:in `block in
' 8: from ./tool/rbinstall.rb:799:in `block in
' 7: from ./tool/rbinstall.rb:835:in `install_default_gem' 6: from ./tool/rbinstall.rb:835:in `each' 5: from ./tool/rbinstall.rb:845:in `block in install_default_gem' 4: from ./tool/rbinstall.rb:279:in `open_for_install' 3: from ./tool/rbinstall.rb:846:in `block (2 levels) in install_default_gem' 2: from /Users/moncef/src/ruby-2.7.1/lib/rubygems/specification.rb:2426:in `to_ruby' 1: from /Users/moncef/src/ruby-2.7.1/lib/rubygems/core_ext/kernel_require.rb:92:in `require' /Users/moncef/src/ruby-2.7.1/lib/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- openssl (LoadError) make: *** [do-install-all] Error 1 !!! Installation of ruby 2.7.1 failed! ```

Next, I will try cloning this repo and trying it with ruby-install version 0.7.0. I wonder if something in 0.8.0 broke.

monfresh commented 3 years ago

I ended up uninstalling ruby-install 0.8.0 with brew uninstall ruby-install. Then I downloaded the zip file of ruby-install 0.7.1 via the releases page in this repo, then from the downloaded ruby-install-0.7.1 folder, I ran bin/ruby-install ruby-2.7.1 and it's working fine. So, I'm pretty sure there is a bug in 0.8.0. It looks like 0.7.1 was properly setting CPPFLAGS and DLDFLAGS, but 0.8.0 is not.

Here is the difference:

In 0.8.0:

CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT
DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -fstack-protector-strong -Wl,-pie -framework Security -framework Foundation

In 0.7.1:

CPPFLAGS = -I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/readline/include -I/usr/local/opt/libyaml/include -I/usr/local/opt/gdbm/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT
DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/gdbm/lib -fstack-protector-strong -Wl,-pie -framework Security -framework Foundation

@postmodern

monfresh commented 3 years ago

Installing with the --with-openssl-dir flag seems to do the trick:

ruby-install ruby-2.7.1 -- --with-openssl-dir=$(brew prefix openssl)

Was this an intentional change in 0.8.0? I don't see anything about this in the changelog or in the Readme.

postmodern commented 3 years ago

@monfresh it appears that the package manager detection isn't detecting homebrew. I am guessing this is due to uname -s not being "Darwin". https://github.com/postmodern/ruby-install/blob/3cb283cb587378f1065bf8de4c8b573a3a111423/share/ruby-install/package_manager.sh#L8-L36

monfresh commented 3 years ago

uname -s shows Darwin for me.

monfresh commented 3 years ago

@postmodern I added some debug statements. The problem is that $os_platform is nil when it reaches detect_package_manager. In 0.7.1, detect_package_manager did not depend on $os_platform, so it sounds like you perhaps forgot to set $os_platform so that detect_package_manager has access to it.

monfresh commented 3 years ago

Ha! You are sourcing package_manager before setting $os_platform :) Moving the source line to after the variable assignments fixes the problem.

postmodern commented 3 years ago

Found the culprit! package_manager.sh was being loaded before os_platform was being set... 0.8.1 will be released soon. https://github.com/postmodern/ruby-install/blob/3cb283cb587378f1065bf8de4c8b573a3a111423/share/ruby-install/package_manager.sh#L8-L36

monfresh commented 3 years ago

Yep. I came to that same conclusion. See my previous comment 👍

postmodern commented 3 years ago

0.8.1 has been released.

monfresh commented 3 years ago

Awesome. Thanks!