Issue #19683 has been updated by jeremyevans0 (Jeremy Evans).
I tried the following patch and I was able to build master (which requires BASERUBY) and
3.3.0-rc1 (which does not) with it using OpenBSD make:
```diff
diff --git a/common.mk b/common.mk
index 0125645e37..6c637e0936 100644
--- a/common.mk
+++ b/common.mk
@@ -395,8 +395,7 @@ configure-ext: $(EXTS_MK)
build-ext: $(EXTS_MK)
$(Q)$(MAKE) -f $(EXTS_MK) $(mflags) libdir="$(libdir)"
LIBRUBY_EXTS=$(LIBRUBY_EXTS) \
- EXTENCS="$(ENCOBJS)" BASERUBY="$(BASERUBY)"
MINIRUBY="$(MINIRUBY)" \
- UPDATE_LIBRARIES=no $(EXTSTATIC)
+ EXTENCS="$(ENCOBJS)" MINIRUBY="$(MINIRUBY)"
UPDATE_LIBRARIES=no $(EXTSTATIC)
$(Q)$(MAKE) $(EXTS_NOTE)
exts-note: $(EXTS_MK)
```
It passed on CI except on Windows when compiling with Visual Studio. It failed on Windows
due to `ripper`. `ext/ripper/depend` uses `BASERUBY`:
```
BISON = $(BASERUBY) $(top_srcdir)/tool/lrama/exe/lrama
```
This cannot be easily switched to `RUBY`, because `lrama` requires `strscan`, and
`strscan` is currently not built until after `ripper`. Even if you work around that to
build `strscan` before `ripper`, `RUBY` here does not allow loading the `strscan`
extension library:
```
../../miniruby -I'../..' -I'../.././lib'
-I'../../.ext/x86_64-openbsd7.4' -I'../../.ext/common'
../.././tool/lrama/exe/lrama -t -v -oripper.c - ripper.y < ripper.y
/home/jeremy/tmp/ruby/tool/lrama/lib/lrama/lexer.rb:1:in `require': this executable
file can't load extension libraries (LoadError)
```
For Ruby 3.3.0, the `tool/missing-baseruby` approach I mentioned earlier appears to work.
I submitted a pull request for that approach:
https://github.com/ruby/ruby/pull/9299
Longer term alternative possible solutions to avoid need for `BASERUBY` in `build-ext`
task for use by `ripper`:
* Change `lrama` so it doesn't need `strscan` and can use `RUBY` instead of
`BASERUBY`
* Create `ripper.y.c` when `parse.y.c` is created, at top level
* Maybe `ripper` will be removed or replaced by prism and will not need lrama?
----------------------------------------
Bug #19683: ruby-3.3.0-preview1 does not build with BSD make without --with-baseruby
https://bugs.ruby-lang.org/issues/19683#change-105742
* Author: jeremyevans0 (Jeremy Evans)
* Status: Open
* Priority: Normal
* Target version: 3.3
* ruby -v: ruby 3.3.0preview1 (2023-05-12 master a1b01e7701) [x86_64-openbsd7.3]
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
ruby-3.3.0-preview1 does not build with BSD make without `--with-baseruby`. However, it
builds fine with GNU make and when using BSD make with `--with-baseruby`. Previous Ruby
tarball releases have built fine with BSD make without `--with-baseruby`, so this issue
has been introduced recently.
When building with BSD make without `--with-baseruby`, building fails after generating RI
format with:
```
/bin/sh: false: not found
*** Error 127 in . (exts.mk:94 'ruby': @make UPDATE_LIBRARIES=no
EXTENCS=dmyenc.o BASERUBY=echo\ executable\ host\ ruby\ is\ required.\ \ ...)
*** Error 2 in /home/jeremy/local/ruby-3.3.0-preview1 (Makefile:948 'build-ext':
@make -f exts.mk libdir="/usr/local/lib" LIBRUBY_EXTS=./...)
```
--
https://bugs.ruby-lang.org/