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

ruby-changes:54602

From: k0kubun <ko1@a...>
Date: Mon, 14 Jan 2019 16:28:40 +0900 (JST)
Subject: [ruby-changes:54602] k0kubun:r66817 (trunk): mjit_worker.c: pass -nostdlib when making pch as well

k0kubun	2019-01-14 16:28:34 +0900 (Mon, 14 Jan 2019)

  New Revision: 66817

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=66817

  Log:
    mjit_worker.c: pass -nostdlib when making pch as well
    
    [Bug #15513]

  Modified files:
    trunk/mjit_worker.c
Index: mjit_worker.c
===================================================================
--- mjit_worker.c	(revision 66816)
+++ mjit_worker.c	(revision 66817)
@@ -247,6 +247,14 @@ static char *libruby_pathflag; https://github.com/ruby/ruby/blob/trunk/mjit_worker.c#L247
 # define MJIT_CFLAGS_PIPE 0
 #endif
 
+// Use `-nodefaultlibs -nostdlib` for GCC where possible, which does not work on mingw and cygwin.
+// This seems to improve MJIT performance on GCC.
+#if defined __GNUC__ && !defined __clang__ && !defined(_WIN32) && !defined(__CYGWIN__)
+# define GCC_NOSTDLIB_FLAGS "-nodefaultlibs", "-nostdlib",
+#else
+# define GCC_NOSTDLIB_FLAGS /* empty */
+#endif
+
 static const char *const CC_COMMON_ARGS[] = {
     MJIT_CC_COMMON MJIT_CFLAGS GCC_PIC_FLAGS
     NULL
@@ -260,11 +268,8 @@ static const char *const CC_DLDFLAGS_ARG https://github.com/ruby/ruby/blob/trunk/mjit_worker.c#L268
     MJIT_DLDFLAGS
 #if defined __GNUC__ && !defined __clang__
     "-nostartfiles",
-# if !defined(_WIN32) && !defined(__CYGWIN__)
-    "-nodefaultlibs", "-nostdlib",
-# endif
 #endif
-    NULL
+    GCC_NOSTDLIB_FLAGS NULL
 };
 
 static const char *const CC_LIBS[] = {
@@ -734,6 +739,9 @@ make_pch(void) https://github.com/ruby/ruby/blob/trunk/mjit_worker.c#L739
 # ifdef __clang__
         "-emit-pch",
 # endif
+        // -nodefaultlibs is a linker flag, but it may affect cc1 behavior on Gentoo, which should NOT be changed on pch:
+        // https://gitweb.gentoo.org/proj/gcc-patches.git/tree/7.3.0/gentoo/13_all_default-ssp-fix.patch
+        GCC_NOSTDLIB_FLAGS
         "-o", NULL, NULL,
         NULL,
     };

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

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