[前][次][番号順一覧][スレッド一覧]

ruby-changes:60163

From: Nobuyoshi <ko1@a...>
Date: Sat, 22 Feb 2020 16:05:02 +0900 (JST)
Subject: [ruby-changes:60163] c7b71af9e2 (master): Prefer `exe/ruby` to execute from it

https://git.ruby-lang.org/ruby.git/commit/?id=c7b71af9e2

From c7b71af9e21b3f0b8fe413a3c20cf4bd633c40d0 Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Sat, 22 Feb 2020 15:03:18 +0900
Subject: Prefer `exe/ruby` to execute from it


diff --git a/common.mk b/common.mk
index 5680573..200bf71 100644
--- a/common.mk
+++ b/common.mk
@@ -878,7 +878,7 @@ $(PLATFORM_D): https://github.com/ruby/ruby/blob/trunk/common.mk#L878
 	@$(NULLCMD) > $@
 
 exe/$(PROGRAM): ruby-runner.c ruby-runner.h exe/.time miniruby$(EXEEXT) {$(VPATH)}config.h
-	$(Q) $(CC) $(CFLAGS) $(INCFLAGS) $(CPPFLAGS) -DRUBY_INSTALL_NAME=$(@F) $(COUTFLAG)ruby-runner.$(OBJEXT) -c $(CSRCFLAG)$(srcdir)/ruby-runner.c
+	$(Q) $(CC) $(CFLAGS) $(INCFLAGS) $(CPPFLAGS) -DRUBY_RUNNER_PATH=$(@D) -DRUBY_INSTALL_NAME=$(@F) $(COUTFLAG)ruby-runner.$(OBJEXT) -c $(CSRCFLAG)$(srcdir)/ruby-runner.c
 	$(Q) $(PURIFY) $(CC) $(CFLAGS) $(LDFLAGS) $(OUTFLAG)$@ ruby-runner.$(OBJEXT) $(LIBS)
 	$(Q) $(POSTLINK)
 	$(Q) ./miniruby$(EXEEXT) \
diff --git a/ruby-runner.c b/ruby-runner.c
index d41ba27..7e0ed6e 100644
--- a/ruby-runner.c
+++ b/ruby-runner.c
@@ -17,7 +17,7 @@ const char MJIT_HEADER[] = BUILDDIR "/" MJIT_MIN_HEADER; https://github.com/ruby/ruby/blob/trunk/ruby-runner.c#L17
 #define STRINGIZE0(expr) #expr
 
 static void
-insert_env_path(const char *envname, const char *paths, size_t size, int prepend)
+insert_env_path(const char *envname, const char *paths, size_t size, int prepend, int add)
 {
     const char *env = getenv(envname);
     char c = 0;
@@ -28,6 +28,9 @@ insert_env_path(const char *envname, const char *paths, size_t size, int prepend https://github.com/ruby/ruby/blob/trunk/ruby-runner.c#L28
 	n = strlen(env);
 	while (n > 0 && env[n-1] == PATH_SEP) --n;
     }
+    else if (!add) {
+        return;
+    }
     if (c) {
 	char *e = malloc(size+n+1);
 	size_t pos = 0;
@@ -56,6 +59,7 @@ int https://github.com/ruby/ruby/blob/trunk/ruby-runner.c#L59
 main(int argc, char **argv)
 {
     static const char builddir[] = BUILDDIR;
+    static const char exedir[] = BUILDDIR"/"STRINGIZE(RUBY_RUNNER_PATH);
     static const char rubypath[] = BUILDDIR"/"STRINGIZE(RUBY_INSTALL_NAME);
     static const char rubylib[] =
 	ABS_SRCDIR"/lib"
@@ -73,11 +77,12 @@ main(int argc, char **argv) https://github.com/ruby/ruby/blob/trunk/ruby-runner.c#L77
     const char *rubyname = rubypath + dirsize;
     char *arg0 = argv[0], *p;
 
-    insert_env_path(LIBPATHENV, builddir, dirsize, 1);
-    insert_env_path("RUBYLIB", rubylib, sizeof(rubylib), 0);
+    insert_env_path(LIBPATHENV, builddir, dirsize, 1, 1);
+    insert_env_path("RUBYLIB", rubylib, sizeof(rubylib), 0, 1);
+    insert_env_path("PATH", exedir, sizeof(exedir), 1, 0);
 #ifndef LOAD_RELATIVE
     if (PRELOADENV[0] && stat(mjit_build_dir, &stbuf) == 0) {
-        insert_env_path(PRELOADENV, mjit_build_dir, sizeof(mjit_build_dir), 1);
+        insert_env_path(PRELOADENV, mjit_build_dir, sizeof(mjit_build_dir), 1, 1);
         setenv("MJIT_SEARCH_BUILD_DIR", "true", 0);
     }
 #endif
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]