diff options
author | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-01-14 07:28:34 +0000 |
---|---|---|
committer | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-01-14 07:28:34 +0000 |
commit | ec3cdb34ce6f19be7a6d887357fd1763f97992d1 (patch) | |
tree | e011be7ec15455fa2390e6a6636c87f6c8903933 /mjit_worker.c | |
parent | b32fb23083912c37a2601c66531ed786a7c9f3e5 (diff) | |
download | ruby-ec3cdb34ce6f19be7a6d887357fd1763f97992d1.tar.gz |
mjit_worker.c: pass -nostdlib when making pch as well
[Bug #15513]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'mjit_worker.c')
-rw-r--r-- | mjit_worker.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/mjit_worker.c b/mjit_worker.c index bb5174aed6..0b6ea75966 100644 --- a/mjit_worker.c +++ b/mjit_worker.c @@ -247,6 +247,14 @@ static char *libruby_pathflag; # 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_ARGS[] = { 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) # 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, }; |