diff options
author | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-03 12:32:01 +0000 |
---|---|---|
committer | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-03 12:32:01 +0000 |
commit | 60989daa1b1960468933a2ab85352d95829c329e (patch) | |
tree | 3362832c21f1d0c508dafc97c22449f2ea0bf225 /mjit.c | |
parent | edbac1b986d6cbacf191bd1fde15e5de801a4935 (diff) |
mjit.c: eliminate -save-temps flag
in a new variable cc_common_args.
`cflags=-save-temps=obj` makes MJIT fail like:
https://rubyci.org/logs/www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20181203T095000Z.log.html.gz
This rubyci specifies -save-temps=obj in CFLAGS to use update-deps, and
the flag is harmful when we want to use -pipe flag.
mjit_worker.c: prefer cc_common_args over CC_COMMON_ARGS
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'mjit.c')
-rw-r--r-- | mjit.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -640,6 +640,19 @@ mjit_init(struct mjit_options *opts) #endif cc_path = CC_COMMON_ARGS[0]; verbose(2, "MJIT: CC defaults to %s", cc_path); + cc_common_args = xmalloc(sizeof(CC_COMMON_ARGS)); + memcpy(cc_common_args, CC_COMMON_ARGS, sizeof(CC_COMMON_ARGS)); +#if MJIT_CFLAGS_PIPE + { /* eliminate a flag incompatible with `-pipe` */ + size_t i, j; + for (i = 0, j = 0; i < sizeof(CC_COMMON_ARGS) / sizeof(char *); i++) { + if (CC_COMMON_ARGS[i] && strncmp("-save-temps", CC_COMMON_ARGS[i], strlen("-save-temps")) == 0) + continue; /* skip -save-temps flag */ + cc_common_args[j] = CC_COMMON_ARGS[i]; + j++; + } + } +#endif tmp_dir = system_tmpdir(); verbose(2, "MJIT: tmp_dir is %s", tmp_dir); @@ -826,6 +839,7 @@ mjit_finish(int close_handle_p) xfree(header_file); header_file = NULL; #endif + xfree(cc_common_args); cc_common_args = NULL; xfree(tmp_dir); tmp_dir = NULL; xfree(pch_file); pch_file = NULL; |