summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Kokubun <[email protected]>2025-02-06 10:55:12 -0500
committerTakashi Kokubun <[email protected]>2025-04-18 21:52:55 +0900
commit8ad08f112684acf5eff590363be6f3035cb242a2 (patch)
treebb967b06a9913e7e1cab161721a91d255dda2ede
parent6e9cc0e7bdfb5ed9a63a8eeebe5feb2b513b9acc (diff)
Fix template/Makefile.in
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/13131
-rw-r--r--common.mk12
-rw-r--r--configure.ac9
-rw-r--r--template/Makefile.in10
-rw-r--r--zjit.c0
-rw-r--r--zjit/zjit.mk2
5 files changed, 29 insertions, 4 deletions
diff --git a/common.mk b/common.mk
index ab493734a5..9cd4065fa7 100644
--- a/common.mk
+++ b/common.mk
@@ -344,6 +344,16 @@ YJIT_RUSTC_ARGS = --crate-name=yjit \
'--out-dir=$(CARGO_TARGET_DIR)/release/' \
$(top_srcdir)/yjit/src/lib.rs
+ZJIT_RUSTC_ARGS = --crate-name=zjit \
+ --crate-type=staticlib \
+ --edition=2021 \
+ -g \
+ -C lto=thin \
+ -C opt-level=3 \
+ -C overflow-checks=on \
+ '--out-dir=$(ZJIT_CARGO_TARGET_DIR)/release/' \
+ $(top_srcdir)/zjit/src/lib.rs
+
all: $(SHOWFLAGS) main
main: $(SHOWFLAGS) exts $(ENCSTATIC:static=lib)encs
@@ -368,6 +378,7 @@ showflags:
" MFLAGS = $(MFLAGS)" \
" RUSTC = $(RUSTC)" \
" YJIT_RUSTC_ARGS = $(YJIT_RUSTC_ARGS)" \
+ " ZJIT_RUSTC_ARGS = $(ZJIT_RUSTC_ARGS)" \
$(MESSAGE_END)
-@$(CC_VERSION)
@@ -20916,4 +20927,5 @@ yjit.$(OBJEXT): {$(VPATH)}vm_sync.h
yjit.$(OBJEXT): {$(VPATH)}yjit.c
yjit.$(OBJEXT): {$(VPATH)}yjit.h
yjit.$(OBJEXT): {$(VPATH)}yjit.rbinc
+zjit.$(OBJEXT): {$(VPATH)}zjit.c
# AUTOGENERATED DEPENDENCIES END
diff --git a/configure.ac b/configure.ac
index 28cfb66605..498cde3f47 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3972,6 +3972,7 @@ AS_CASE(["${YJIT_SUPPORT}"],
AC_DEFINE(USE_YJIT, 0)
])
+ZJIT_CARGO_BUILD_ARGS=
ZJIT_LIBS=
AS_CASE(["${ZJIT_SUPPORT}"],
[yes|dev], [
@@ -3985,11 +3986,11 @@ AS_CASE(["${ZJIT_SUPPORT}"],
],
[dev], [
rb_rust_target_subdir=debug
- CARGO_BUILD_ARGS='--features disasm,runtime_checks'
+ ZJIT_CARGO_BUILD_ARGS='--features disasm,runtime_checks'
AC_DEFINE(RUBY_DEBUG, 1)
])
- AS_IF([test -n "${CARGO_BUILD_ARGS}"], [
+ AS_IF([test -n "${ZJIT_CARGO_BUILD_ARGS}"], [
AC_CHECK_TOOL(CARGO, [cargo], [no])
AS_IF([test x"$CARGO" = "xno"],
AC_MSG_ERROR([cargo is required. Installation instructions available at https://www.rust-lang.org/tools/install])
@@ -4016,6 +4017,9 @@ AC_SUBST(CARGO)dnl Cargo command for Rust builds
AC_SUBST(CARGO_BUILD_ARGS)dnl for selecting Rust build profiles
AC_SUBST(YJIT_LIBS)dnl for optionally building the Rust parts of YJIT
AC_SUBST(YJIT_OBJ)dnl for optionally building the C parts of YJIT
+AC_SUBST(ZJIT_SUPPORT)dnl what flavor of ZJIT the Ruby build includes
+AC_SUBST(ZJIT_LIBS)dnl for optionally building the Rust parts of YJIT
+AC_SUBST(ZJIT_OBJ)dnl for optionally building the C parts of YJIT
}
[begin]_group "build section" && {
@@ -4738,6 +4742,7 @@ config_summary "hardenflags" "$hardenflags"
config_summary "strip command" "$STRIP"
config_summary "install doc" "$DOCTARGETS"
config_summary "YJIT support" "$YJIT_SUPPORT"
+config_summary "ZJIT support" "$ZJIT_SUPPORT"
config_summary "man page type" "$MANTYPE"
config_summary "search path" "$search_path"
config_summary "static-linked-ext" ${EXTSTATIC:+"yes"}
diff --git a/template/Makefile.in b/template/Makefile.in
index 91c68a1594..77924f33da 100644
--- a/template/Makefile.in
+++ b/template/Makefile.in
@@ -101,12 +101,19 @@ XCFLAGS = @XCFLAGS@ $(INCFLAGS) $(_RUBY_DEVEL_enabled:yes=-DRUBY_DEVEL=1) -Dmodu
USE_RUBYGEMS = @USE_RUBYGEMS@
USE_RUBYGEMS_ = $(USE_RUBYGEMS:yes=)
CPPFLAGS = @CPPFLAGS@ $(USE_RUBYGEMS_:no=-DDISABLE_RUBYGEMS=1)
+TOP_BUILD_DIR=@abs_top_builddir@
YJIT_SUPPORT=@YJIT_SUPPORT@
YJIT_LIBS=@YJIT_LIBS@
YJIT_OBJ=@YJIT_OBJ@
YJIT_LIBOBJ = $(YJIT_LIBS:.a=.@OBJEXT@)
+ZJIT_SUPPORT=@ZJIT_SUPPORT@
+ZJIT_LIBS=@ZJIT_LIBS@
+ZJIT_OBJ=@ZJIT_OBJ@
+ZJIT_LIBOBJ = $(ZJIT_LIBS:.a=.@OBJEXT@)
CARGO_TARGET_DIR=@abs_top_builddir@/yjit/target
CARGO_BUILD_ARGS=@CARGO_BUILD_ARGS@
+ZJIT_CARGO_TARGET_DIR=@abs_top_builddir@/zjit/target
+ZJIT_CARGO_BUILD_ARGS=@CARGO_BUILD_ARGS@
LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
EXE_LDFLAGS = $(LDFLAGS)
EXTLDFLAGS = @EXTLDFLAGS@
@@ -201,7 +208,8 @@ DTRACE_DEPENDENT_OBJS = array.$(OBJEXT) \
string.$(OBJEXT) \
symbol.$(OBJEXT) \
vm.$(OBJEXT) \
- $(YJIT_OBJ)
+ $(YJIT_OBJ) \
+ $(ZJIT_OBJ)
THREAD_MODEL = @THREAD_MODEL@
diff --git a/zjit.c b/zjit.c
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/zjit.c
diff --git a/zjit/zjit.mk b/zjit/zjit.mk
index be584df749..7edaff3a02 100644
--- a/zjit/zjit.mk
+++ b/zjit/zjit.mk
@@ -33,7 +33,7 @@ else ifeq ($(ZJIT_SUPPORT),$(filter dev dev_nodebug stats,$(ZJIT_SUPPORT)))
$(ZJIT_LIBS): $(ZJIT_SRC_FILES)
$(ECHO) 'building Rust ZJIT ($(ZJIT_SUPPORT) mode)'
+$(Q)$(CHDIR) $(top_srcdir)/zjit && \
- CARGO_TARGET_DIR='$(CARGO_TARGET_DIR)' \
+ CARGO_TARGET_DIR='$(ZJIT_CARGO_TARGET_DIR)' \
CARGO_TERM_PROGRESS_WHEN='never' \
$(CARGO) $(CARGO_VERBOSE) build $(CARGO_BUILD_ARGS)
$(ZJIT_LIB_TOUCH)