summaryrefslogtreecommitdiff
path: root/mjit_worker.c
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-01-19 09:08:10 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-01-19 09:08:10 +0000
commit46549d6b11eb88d02bd2ac4561ab3c7b775cd241 (patch)
treea79dbf063872a7d2b3d9f3067eb430de01200703 /mjit_worker.c
parente90d826de7d661ef091761bf7d13c9fc70a9d956 (diff)
Revert "mjit_worker.c: try to simplify CC_DLDFLAGS_ARGS"
This reverts commit 405940234eb7876a063eb7129ca61fcc318a633c. Not working on MinGW https://ci.appveyor.com/project/ruby/ruby/builds/21737578/job/09a2tr94vof6fstt git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'mjit_worker.c')
-rw-r--r--mjit_worker.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/mjit_worker.c b/mjit_worker.c
index adb3610..5f52d40 100644
--- a/mjit_worker.c
+++ b/mjit_worker.c
@@ -247,10 +247,10 @@ static char *libruby_pathflag;
# define MJIT_CFLAGS_PIPE 0
#endif
-// Use `-nostartfiles -nodefaultlibs -nostdlib` for GCC where possible, which does not work on mingw, cygwin, AIX, and OpenBSD.
-// This seems to improve MJIT performance on GCC. TODO: Check if it works with MJIT and add it on configure.
+// Use `-nodefaultlibs -nostdlib` for GCC where possible, which does not work on mingw, cygwin, AIX, and OpenBSD.
+// This seems to improve MJIT performance on GCC.
#if defined __GNUC__ && !defined __clang__ && !defined(_WIN32) && !defined(__CYGWIN__) && !defined(_AIX) && !defined(__OpenBSD__)
-# define GCC_NOSTDLIB_FLAGS "-nostartfiles", "-nodefaultlibs", "-nostdlib",
+# define GCC_NOSTDLIB_FLAGS "-nodefaultlibs", "-nostdlib",
#else
# define GCC_NOSTDLIB_FLAGS /* empty */
#endif
@@ -264,7 +264,13 @@ static const char *const CC_DEBUG_ARGS[] = {MJIT_DEBUGFLAGS NULL};
static const char *const CC_OPTIMIZE_ARGS[] = {MJIT_OPTFLAGS NULL};
static const char *const CC_LDSHARED_ARGS[] = {MJIT_LDSHARED GCC_PIC_FLAGS NULL};
-static const char *const CC_DLDFLAGS_ARGS[] = {MJIT_DLDFLAGS GCC_NOSTDLIB_FLAGS NULL};
+static const char *const CC_DLDFLAGS_ARGS[] = {
+ MJIT_DLDFLAGS
+#if defined __GNUC__ && !defined __clang__ && !defined(__OpenBSD__)
+ "-nostartfiles",
+#endif
+ GCC_NOSTDLIB_FLAGS NULL
+};
static const char *const CC_LIBS[] = {
#if defined(_WIN32) || defined(__CYGWIN__)
@@ -274,7 +280,7 @@ static const char *const CC_LIBS[] = {
# if defined(_WIN32)
"-lmsvcrt", // mingw
# endif
- "-lgcc", // all platforms using GCC
+ "-lgcc", // mingw, cygwin, and GCC platforms using `-nodefaultlibs -nostdlib`
#endif
NULL
};