diff --git a/common.gypi b/common.gypi index ea08e80365b5c6..6677274f3abe80 100644 --- a/common.gypi +++ b/common.gypi @@ -407,9 +407,15 @@ 'libraries': [ '-lelf' ], }], ['OS=="freebsd"', { - # Use this flag because on FreeBSD std::pairs copy constructor is non-trivial - # https://lists.freebsd.org/pipermail/freebsd-toolchain/2016-March/002094.html - 'cflags': [ '-D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1' ], + 'conditions': [ + ['llvm_version < "4.0"', { + # Use this flag because on FreeBSD std::pairs copy constructor is non-trivial. + # Doesn't apply to llvm 4.0 (FreeBSD 11.1) or later. + # Refs: https://lists.freebsd.org/pipermail/freebsd-toolchain/2016-March/002094.html + # Refs: https://svnweb.freebsd.org/ports/head/www/node/Makefile?revision=444555&view=markup + 'cflags': [ '-D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1' ], + }], + ], 'ldflags': [ '-Wl,--export-dynamic', ], diff --git a/configure b/configure index eae46392ab5713..4f2e9e563c7cf8 100755 --- a/configure +++ b/configure @@ -635,12 +635,14 @@ def check_compiler(o): # to a version that is not completely ancient. warn('C compiler too old, need gcc 4.2 or clang 3.2 (CC=%s)' % CC) - # Need llvm_version or gas_version when openssl asm files are compiled + if is_clang: + o['variables']['llvm_version'] = get_llvm_version(CC) + + # Need xcode_version or gas_version when openssl asm files are compiled. if options.without_ssl or options.openssl_no_asm or options.shared_openssl: return if is_clang: - o['variables']['llvm_version'] = get_llvm_version(CC) if sys.platform == 'darwin': o['variables']['xcode_version'] = get_xcode_version(CC) else: