エラー詳細
以下どドキュメントに従い、ビルドしようとした。
ディレクトリ構成は以下。Rubyのコミットバージョンは、e1683b4
- workdir
- ruby
- build
workdir/ruby/build
配下で、以下を叩いた。
$ make miniruby V=1
file2lastrev.rb: Command failed with exit 128: git
BASERUBY = /Users/daiki-kudo/.rbenv/shims/ruby --disable=gems
CC = clang
LD = ld
LDSHARED = clang -dynamiclib
CFLAGS = -fdeclspec -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -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 -Wundef -pipe
XCFLAGS = -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -I. -I.ext/include/x86_64-darwin22 -I../include -I.. -I../enc/unicode/15.0.0
CPPFLAGS = -I/usr/local/opt/llvm/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT
DLDFLAGS = -L/usr/local/opt/llvm/lib -Wl,-multiply_defined,suppress -Wl,-undefined,dynamic_lookup -fstack-protector-strong -Wl,-pie -framework CoreFoundation
SOLIBS = -ldl -lobjc -lpthread
LANG =
LC_ALL =
LC_CTYPE = UTF-8
MFLAGS =
RUSTC = rustc
YJIT_RUSTC_ARGS = --crate-name=yjit --crate-type=staticlib --edition=2021 -g -C lto=thin -C opt-level=3 -C overflow-checks=on '--out-dir=/Users/daiki-kudo/repos/ruby/ruby/build/yjit/target/release/' ../yjit/src/lib.rs
Homebrew clang version 16.0.6
Target: x86_64-apple-darwin22.1.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin
/Users/daiki-kudo/.rbenv/shims/ruby --disable=gems ../tool/file2lastrev.rb -q --revision.h --srcdir=".." --output=revision.h --timestamp=.revision.time
file2lastrev.rb: git rev-parse failed
fatal: failed to expand user dir in: '~/.gitignore'
make: *** [.revision.time] Error 1
(短期的)解決方法
workdir/ruby/tool/lib/vcs.rb
を以下のように書き換えた。
diff --git a/tool/lib/vcs.rb b/tool/lib/vcs.rb
index 8566d72349..0436c0665e 100644
--- a/tool/lib/vcs.rb
+++ b/tool/lib/vcs.rb
@@ -451,7 +451,9 @@ def cmd_pipe_at(srcdir, cmds, &block)
end
def cmd_read_at(srcdir, cmds)
- result = without_gitconfig { IO.pread(*cmd_args(cmds, srcdir)) }
+ # result = without_gitconfig { IO.pread(*cmd_args(cmds, srcdir)) }
+ result = IO.pread(*cmd_args(cmds, srcdir))
+
VCS.dump(result, "result: ") if debug?
result
end