diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2012-08-13 15:04:03 +0200 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2012-08-13 15:33:27 +0200 |
commit | 100e163dda5ea0d16bb1c2f69e9ae75815978f12 (patch) | |
tree | 9bf59fd38bb3830232ac6105a8ecbadd181c1c62 | |
parent | 9f26130a0eb87d88aa61ac08a90a0c309266342c (diff) | |
download | node-100e163dda5ea0d16bb1c2f69e9ae75815978f12.tar.gz |
build: compile with -fno-tree-vrp when gcc >= 4.0
-rw-r--r-- | common.gypi | 7 | ||||
-rwxr-xr-x | configure | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/common.gypi b/common.gypi index 3ceedc774..d8cb5323a 100644 --- a/common.gypi +++ b/common.gypi @@ -7,6 +7,8 @@ 'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds 'component%': 'static_library', # NB. these names match with what V8 expects 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way + 'gcc_version%': 'unknown', + 'clang%': 0, # Turn on optimizations that may trigger compiler bugs. # Use at your own risk. Do *NOT* report bugs if this option is enabled. @@ -53,7 +55,7 @@ 'cflags': [ '-O3', '-ffunction-sections', '-fdata-sections' ], 'ldflags': [ '-Wl,--gc-sections' ], }, { - 'cflags': [ '-O2', '-fno-strict-aliasing', '-fno-tree-vrp' ], + 'cflags': [ '-O2', '-fno-strict-aliasing' ], 'cflags!': [ '-O3', '-fstrict-aliasing' ], 'conditions': [ # Required by the dtrace post-processor. Unfortunately, @@ -64,6 +66,9 @@ }, { 'cflags!': [ '-ffunction-sections', '-fdata-sections' ], }], + ['clang==1 or gcc_version >= 40', { + 'cflags': [ '-fno-tree-vrp' ], + }], ], }], ['OS=="solaris"', { @@ -339,8 +339,13 @@ def configure_node(o): o['variables']['v8_use_arm_eabi_hardfloat'] = b(hard_float) o['variables']['armv7'] = 1 if is_arch_armv7() else 0 - # clang has always supported -fvisibility=hidden, right? cc_version, is_clang = compiler_version() + o['variables']['clang'] = 1 if is_clang else 0 + + if not is_clang: + o['variables']['gcc_version'] = 10 * cc_version[0] + cc_version[1] + + # clang has always supported -fvisibility=hidden, right? if not is_clang and cc_version < (4,0,0): o['variables']['visibility'] = '' |