summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2012-08-13 15:04:03 +0200
committerBen Noordhuis <info@bnoordhuis.nl>2012-08-13 15:33:27 +0200
commit100e163dda5ea0d16bb1c2f69e9ae75815978f12 (patch)
tree9bf59fd38bb3830232ac6105a8ecbadd181c1c62
parent9f26130a0eb87d88aa61ac08a90a0c309266342c (diff)
downloadnode-100e163dda5ea0d16bb1c2f69e9ae75815978f12.tar.gz
build: compile with -fno-tree-vrp when gcc >= 4.0
-rw-r--r--common.gypi7
-rwxr-xr-xconfigure7
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"', {
diff --git a/configure b/configure
index 3b9c9a382..530473058 100755
--- a/configure
+++ b/configure
@@ -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'] = ''