Skip to content

Commit

Permalink
build: harmonize Clang checks
Browse files Browse the repository at this point in the history
- Set the clang variable in `config.gypi` so it depends on compiler
  checks made by the configure script.
- Replace gyp conditions with `llvm_version` and "0.0" with conditions
  that use the `clang` variable.
- Always use `clang==1` or `clang==0` in gyp conditions

PR-URL: nodejs#52873
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
  • Loading branch information
targos authored and EliphazBouye committed Jun 20, 2024
1 parent eaae7e1 commit 0db327d
Show file tree
Hide file tree
Showing 7 changed files with 13 additions and 13 deletions.
7 changes: 3 additions & 4 deletions common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@
'v8_base': '<(PRODUCT_DIR)/obj.target/tools/v8_gypfiles/libv8_snapshot.a',
}],
['OS=="mac"', {
'clang%': 1,
'obj_dir%': '<(PRODUCT_DIR)/obj.target',
'v8_base': '<(PRODUCT_DIR)/libv8_snapshot.a',
}],
Expand Down Expand Up @@ -182,10 +181,10 @@
}, {
'MSVC_runtimeType': 2 # MultiThreadedDLL (/MD)
}],
['llvm_version=="0.0"', {
'lto': ' -flto=4 -fuse-linker-plugin -ffat-lto-objects ', # GCC
}, {
['clang==1', {
'lto': ' -flto ', # Clang
}, {
'lto': ' -flto=4 -fuse-linker-plugin -ffat-lto-objects ', # GCC
}],
],
},
Expand Down
2 changes: 2 additions & 0 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1042,6 +1042,7 @@ def get_gas_version(cc):
# quite prepared to go that far yet.
def check_compiler(o):
if sys.platform == 'win32':
o['variables']['clang'] = 0
o['variables']['llvm_version'] = '0.0'
if not options.openssl_no_asm and options.dest_cpu in ('x86', 'x64'):
nasm_version = get_nasm_version('nasm')
Expand All @@ -1051,6 +1052,7 @@ def check_compiler(o):
return

ok, is_clang, clang_version, gcc_version = try_check_compiler(CXX, 'c++')
o['variables']['clang'] = B(is_clang)
version_str = ".".join(map(str, clang_version if is_clang else gcc_version))
print_verbose(f"Detected {'clang ' if is_clang else ''}C++ compiler (CXX={CXX}) version: {version_str}")
if not ok:
Expand Down
2 changes: 1 addition & 1 deletion deps/openssl/openssl_common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
'TERMIOS',
],
'conditions': [
[ 'llvm_version=="0.0"', {
[ 'clang==0', {
'cflags': ['-Wno-old-style-declaration',],
}],
],
Expand Down
7 changes: 3 additions & 4 deletions deps/zlib/zlib.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
'ZLIB_ROOT': '.',
'use_system_zlib%': 0,
'arm_fpu%': '',
'llvm_version%': '0.0',
},
'conditions': [
['use_system_zlib==0', {
Expand All @@ -24,7 +23,7 @@
},{
'defines': [ 'X86_NOT_WINDOWS' ],
}],
['OS!="win" or llvm_version!="0.0"', {
['OS!="win" or clang==1', {
'cflags': [ '-mssse3' ],
'xcode_settings': {
'OTHER_CFLAGS': [ '-mssse3' ],
Expand Down Expand Up @@ -65,7 +64,7 @@
'conditions': [
['OS!="ios"', {
'conditions': [
['OS!="win" and llvm_version=="0.0"', {
['OS!="win" and clang==0', {
'cflags': [ '-march=armv8-a+aes+crc' ],
}],
['OS=="android"', {
Expand Down Expand Up @@ -111,7 +110,7 @@
# 'target_name': 'zlib_crc32_simd',
# 'type': 'static_library',
# 'conditions': [
# ['OS!="win" or llvm_version!="0.0"', {
# ['OS!="win" or clang==1', {
# 'cflags': [
# '-msse4.2',
# '-mpclmul',
Expand Down
2 changes: 1 addition & 1 deletion node.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -504,7 +504,7 @@
'-Wl,-bnoerrmsg',
],
}],
['OS == "linux" and llvm_version != "0.0"', {
['OS=="linux" and clang==1', {
'libraries': ['-latomic'],
}],
],
Expand Down
4 changes: 2 additions & 2 deletions tools/v8_gypfiles/toolchain.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@
'<(V8_ROOT)/include',
],
'conditions': [
['clang', {
['clang==1', {
'cflags': [ '-Werror', '-Wno-unknown-pragmas' ],
},{
'cflags!': [ '-Wall', '-Wextra' ],
Expand All @@ -144,7 +144,7 @@
'-flax-vector-conversions',
],
}],
['clang or OS!="win"', {
['clang==1 or OS!="win"', {
'cflags': [ '-Wno-invalid-offsetof' ],
'xcode_settings': {
'WARNING_CFLAGS': ['-Wno-invalid-offsetof']
Expand Down
2 changes: 1 addition & 1 deletion tools/v8_gypfiles/v8.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -1879,7 +1879,7 @@
['enable_lto=="true"', {
'cflags_cc': [ '-fno-lto' ],
}],
['clang or OS!="win"', {
['clang==1 or OS!="win"', {
'conditions': [
['_toolset == "host" and host_arch == "x64" or _toolset == "target" and target_arch=="x64"', {
'sources': [
Expand Down

0 comments on commit 0db327d

Please sign in to comment.