Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion emranlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@

from tools import shared

shared.exec_process([shared.LLVM_RANLIB, *sys.argv[1:]])
LLVM_RANLIB = shared.llvm_tool_path('llvm-ranlib')

shared.exec_process([LLVM_RANLIB, *sys.argv[1:]])
4 changes: 3 additions & 1 deletion emscan-deps.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@
# Add any clang flags that emcc would add.
newargs += compile.get_cflags(tuple(argv))

shared.exec_process([shared.CLANG_SCAN_DEPS, *newargs])
CLANG_SCAN_DEPS = shared.llvm_tool_path('clang-scan-deps')

shared.exec_process([CLANG_SCAN_DEPS, *newargs])
3 changes: 1 addition & 2 deletions test/benchmark/benchmark_sse.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@
sys.path.insert(0, __testdir__)

import clang_native
from common import EMCC, EMRUN, test_file
from common import CLANG_CXX, EMCC, EMRUN, test_file

from tools import config
from tools.shared import CLANG_CXX
from tools.utils import WINDOWS, run_process, write_file

# System info
Expand Down
10 changes: 6 additions & 4 deletions test/clang_native.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
import os
import platform
import sys
from subprocess import PIPE

import common

from tools.shared import CLANG_CC, CLANG_CXX, PIPE
from tools.utils import MACOS, WINDOWS, path_from_root, run_process

logger = logging.getLogger('clang_native')
Expand Down Expand Up @@ -63,9 +65,9 @@ def get_clang_native_env():
return CACHED_CLANG_NATIVE_ENV
env = os.environ.copy()

env['CC'] = CLANG_CC
env['CXX'] = CLANG_CXX
env['LD'] = CLANG_CXX
env['CC'] = common.CLANG_CC
env['CXX'] = common.CLANG_CXX
env['LD'] = common.CLANG_CXX

if MACOS:
path = run_process(['xcrun', '--show-sdk-path'], stdout=PIPE).stdout.strip()
Expand Down
20 changes: 15 additions & 5 deletions test/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
from tools import building, config, shared, utils
from tools.feature_matrix import Feature
from tools.settings import COMPILE_TIME_SETTINGS
from tools.shared import get_canonical_temp_dir
from tools.utils import (
WINDOWS,
exe_path_from_root,
Expand Down Expand Up @@ -68,8 +67,7 @@
LAST_TEST = path_from_root('out/last_test.txt')
PREVIOUS_TEST_RUN_RESULTS_FILE = path_from_root('out/previous_test_run_results.json')

WEBIDL_BINDER = exe_path_from_root('tools/webidl_binder')

# emscripten tools
EMBUILDER = exe_path_from_root('embuilder')
EMMAKE = exe_path_from_root('emmake')
EMCMAKE = exe_path_from_root('emcmake')
Expand All @@ -81,11 +79,23 @@
EMAR = exe_path_from_root('emar')
EMRANLIB = exe_path_from_root('emranlib')
FILE_PACKAGER = exe_path_from_root('tools/file_packager')
WEBIDL_BINDER = exe_path_from_root('tools/webidl_binder')

# binaryen tools
WASM_DIS = os.path.join(building.get_binaryen_bin(), 'wasm-dis')

# llvm tools
WASM_LD = shared.llvm_tool_path('wasm-ld')
LLVM_DWARFDUMP = shared.llvm_tool_path('llvm-dwarfdump')
LLVM_AR = shared.llvm_tool_path('llvm-ar')
LLVM_NM = shared.llvm_tool_path('llvm-nm')
LLVM_DWP = shared.llvm_tool_path('llvm-dwp')
LLVM_COV = shared.llvm_tool_path('llvm-cov')
CLANG_CC = shared.clang_tool_path('clang')
CLANG_CXX = shared.clang_tool_path('clang++')
LLVM_OBJDUMP = shared.llvm_tool_path('llvm-objdump')
LLVM_PROFDATA = shared.llvm_tool_path('llvm-profdata')

PYTHON = sys.executable


Expand Down Expand Up @@ -446,7 +456,7 @@ class RunnerCore(RetryableTestCase, metaclass=RunnerMeta):
# default temporary directory settings. set_temp_dir may be called later to
# override these
temp_dir = shared.TEMP_DIR
canonical_temp_dir = get_canonical_temp_dir(shared.TEMP_DIR)
canonical_temp_dir = shared.get_canonical_temp_dir(shared.TEMP_DIR)

library_cache: dict[str, tuple[str, object]] = {}

Expand Down Expand Up @@ -697,7 +707,7 @@ def setup_wasmfs_test(self):

def set_temp_dir(self, temp_dir):
self.temp_dir = temp_dir
self.canonical_temp_dir = get_canonical_temp_dir(self.temp_dir)
self.canonical_temp_dir = shared.get_canonical_temp_dir(self.temp_dir)
# Explicitly set dedicated temporary directory for parallel tests
os.environ['EMCC_TEMP_DIR'] = self.temp_dir

Expand Down
6 changes: 3 additions & 3 deletions test/runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
import jsrun
import parallel_testsuite
from color_runner import ColorTextRunner
from common import errlog
from common import CLANG_CC, errlog
from single_line_runner import SingleLineTestRunner

from tools import building, colored_logger, config, shared, utils
Expand Down Expand Up @@ -652,8 +652,8 @@ def find_llvm_git_root(dir):
print(f'LLVM git directory: "{llvm_git_root}"')
print_repository_info(llvm_git_root, 'LLVM')

clang_version = utils.run_process([shared.CLANG_CC, '--version'], stdout=subprocess.PIPE).stdout.strip()
print(f'Clang: "{shared.CLANG_CC}"\n{clang_version}\n')
clang_version = utils.run_process([CLANG_CC, '--version'], stdout=subprocess.PIPE).stdout.strip()
print(f'Clang: "{CLANG_CC}"\n{clang_version}\n')

print(f'EMTEST_BROWSER: {browser_common.EMTEST_BROWSER}')
if browser_common.is_firefox():
Expand Down
3 changes: 1 addition & 2 deletions test/sockets_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,10 @@

import clang_native
import common
from common import EMCC, PYTHON
from common import CLANG_CC, EMCC, PYTHON
from decorators import test_file

from tools import config
from tools.shared import CLANG_CC
from tools.utils import run_process

npm_checked = False
Expand Down
14 changes: 11 additions & 3 deletions test/test_benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,19 @@
import clang_native
import common
import jsrun
from common import EMCC, compiler_for, copy_asset, read_binary, read_file, test_file
from common import (
CLANG_CC,
CLANG_CXX,
EMCC,
compiler_for,
copy_asset,
read_binary,
read_file,
test_file,
)
from decorators import needs_make, parameterized

from tools import utils
from tools.shared import CLANG_CC, CLANG_CXX, config
from tools import config, utils
from tools.utils import run_process

# standard arguments for timing:
Expand Down
22 changes: 12 additions & 10 deletions test/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,14 @@
import clang_native
import common
from common import (
CLANG_CXX,
EMAR,
EMBUILDER,
EMCC,
EMXX,
FILE_PACKAGER,
LLVM_COV,
LLVM_DWARFDUMP,
LLVM_PROFDATA,
NON_ZERO,
PYTHON,
Expand Down Expand Up @@ -6710,7 +6712,7 @@ def test_neon_wasm_simd(self):
@no_big_endian('SIMD support is currently not compatible with big endian')
def test_sse1(self, args):
src = test_file('sse/test_sse1.cpp')
self.run_process([shared.CLANG_CXX, src, '-msse', '-o', 'test_sse1', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
self.run_process([CLANG_CXX, src, '-msse', '-o', 'test_sse1', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
native_result = self.run_process('./test_sse1', stdout=PIPE).stdout

self.maybe_closure()
Expand All @@ -6731,7 +6733,7 @@ def test_sse1(self, args):
@no_big_endian('SIMD support is currently not compatible with big endian')
def test_sse2(self, args):
src = test_file('sse/test_sse2.cpp')
self.run_process([shared.CLANG_CXX, src, '-msse2', '-Wno-argument-outside-range', '-o', 'test_sse2', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
self.run_process([CLANG_CXX, src, '-msse2', '-Wno-argument-outside-range', '-o', 'test_sse2', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
native_result = self.run_process('./test_sse2', stdout=PIPE).stdout

self.cflags += ['-I' + test_file('sse'), '-msse2', '-fno-inline-functions', '-Wno-argument-outside-range', '-sSTACK_SIZE=1MB'] + args
Expand All @@ -6745,7 +6747,7 @@ def test_sse2(self, args):
@no_big_endian('SIMD support is currently not compatible with big endian')
def test_sse3(self):
src = test_file('sse/test_sse3.cpp')
self.run_process([shared.CLANG_CXX, src, '-msse3', '-Wno-argument-outside-range', '-o', 'test_sse3', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
self.run_process([CLANG_CXX, src, '-msse3', '-Wno-argument-outside-range', '-o', 'test_sse3', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
native_result = self.run_process('./test_sse3', stdout=PIPE).stdout

self.cflags += ['-I' + test_file('sse'), '-msse3', '-Wno-argument-outside-range']
Expand All @@ -6759,7 +6761,7 @@ def test_sse3(self):
@no_big_endian('SIMD support is currently not compatible with big endian')
def test_ssse3(self):
src = test_file('sse/test_ssse3.cpp')
self.run_process([shared.CLANG_CXX, src, '-mssse3', '-Wno-argument-outside-range', '-o', 'test_ssse3', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
self.run_process([CLANG_CXX, src, '-mssse3', '-Wno-argument-outside-range', '-o', 'test_ssse3', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
native_result = self.run_process('./test_ssse3', stdout=PIPE).stdout

self.cflags += ['-I' + test_file('sse'), '-mssse3', '-Wno-argument-outside-range']
Expand All @@ -6776,7 +6778,7 @@ def test_ssse3(self):
def test_sse4_1(self):
src = test_file('sse/test_sse4_1.cpp')
# Run with inlining disabled to avoid slow LLVM behavior with lots of macro expanded loops inside a function body.
self.run_process([shared.CLANG_CXX, src, '-msse4.1', '-fno-inline-functions', '-Wno-argument-outside-range', '-o', 'test_sse4_1', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
self.run_process([CLANG_CXX, src, '-msse4.1', '-fno-inline-functions', '-Wno-argument-outside-range', '-o', 'test_sse4_1', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
native_result = self.run_process('./test_sse4_1', stdout=PIPE).stdout

self.cflags += ['-I' + test_file('sse'), '-msse4.1', '-fno-inline-functions', '-Wno-argument-outside-range', '-sSTACK_SIZE=1MB']
Expand All @@ -6795,7 +6797,7 @@ def test_sse4_1(self):
def test_sse4(self, use_4_2):
msse4 = '-msse4.2' if use_4_2 else '-msse4'
src = test_file('sse/test_sse4_2.cpp')
self.run_process([shared.CLANG_CXX, src, msse4, '-Wno-argument-outside-range', '-o', 'test_sse4_2', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
self.run_process([CLANG_CXX, src, msse4, '-Wno-argument-outside-range', '-o', 'test_sse4_2', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
native_result = self.run_process('./test_sse4_2', stdout=PIPE).stdout

self.cflags += ['-I' + test_file('sse'), msse4, '-Wno-argument-outside-range']
Expand All @@ -6816,7 +6818,7 @@ def test_sse4(self, use_4_2):
@no_big_endian('SIMD support is currently not compatible with big endian')
def test_avx(self, args):
src = test_file('sse/test_avx.cpp')
self.run_process([shared.CLANG_CXX, src, '-mavx', '-Wno-argument-outside-range', '-Wpedantic', '-o', 'test_avx', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
self.run_process([CLANG_CXX, src, '-mavx', '-Wno-argument-outside-range', '-Wpedantic', '-o', 'test_avx', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
native_result = self.run_process('./test_avx', stdout=PIPE).stdout

self.cflags += ['-I' + test_file('sse'), '-mavx', '-fno-inline-functions', '-Wno-argument-outside-range', '-sSTACK_SIZE=1MB'] + args
Expand All @@ -6837,7 +6839,7 @@ def test_avx(self, args):
@no_big_endian('SIMD support is currently not compatible with big endian')
def test_avx2(self, args):
src = test_file('sse/test_avx2.cpp')
self.run_process([shared.CLANG_CXX, src, '-mavx2', '-Wno-argument-outside-range', '-Wpedantic', '-o', 'test_avx2', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
self.run_process([CLANG_CXX, src, '-mavx2', '-Wno-argument-outside-range', '-Wpedantic', '-o', 'test_avx2', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args(), stdout=PIPE)
native_result = self.run_process('./test_avx2', stdout=PIPE).stdout

self.cflags += ['-I' + test_file('sse'), '-mavx2', '-Wno-argument-outside-range', '-sSTACK_SIZE=1MB'] + args
Expand All @@ -6861,7 +6863,7 @@ def test_fma(self):
@no_big_endian('SIMD support is currently not compatible with big endian')
def test_fma_relaxed(self):
src = test_file('sse/test_fma_relaxed.cpp')
self.run_process([shared.CLANG_CXX, src, '-mfma', '-mavx', '-o', 'test_fma_relaxed', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args())
self.run_process([CLANG_CXX, src, '-mfma', '-mavx', '-o', 'test_fma_relaxed', '-D_CRT_SECURE_NO_WARNINGS=1'] + clang_native.get_clang_native_args())
native_result = self.run_process('./test_fma_relaxed', stdout=PIPE).stdout

self.do_runf(src, native_result,
Expand Down Expand Up @@ -8073,7 +8075,7 @@ def test_dwarf(self):

self.emcc('test_dwarf.c')

out = self.run_process([shared.LLVM_DWARFDUMP, 'a.out.wasm', '-all'], stdout=PIPE).stdout
out = self.run_process([LLVM_DWARFDUMP, 'a.out.wasm', '-all'], stdout=PIPE).stdout

# parse the sections
sections = {}
Expand Down
23 changes: 10 additions & 13 deletions test/test_other.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
import jsrun
import line_endings
from common import (
CLANG_CC,
CLANG_CXX,
EMAR,
EMBUILDER,
EMCC,
Expand All @@ -46,6 +48,10 @@
EMRANLIB,
EMXX,
FILE_PACKAGER,
LLVM_AR,
LLVM_DWARFDUMP,
LLVM_DWP,
LLVM_NM,
NON_ZERO,
PYTHON,
TEST_ROOT,
Expand Down Expand Up @@ -106,18 +112,9 @@
with_env_modify,
)

from tools import building, cache, response_file, shared, utils, webassembly
from tools import building, cache, config, response_file, shared, utils, webassembly
from tools.building import get_building_env
from tools.link import binary_encode
from tools.shared import (
CLANG_CC,
CLANG_CXX,
LLVM_AR,
LLVM_DWARFDUMP,
LLVM_DWP,
LLVM_NM,
config,
)
from tools.system_libs import DETERMINISTIC_PREFIX
from tools.utils import (
MACOS,
Expand Down Expand Up @@ -6607,7 +6604,7 @@ def check(what, args, fail=True, expect=''):
import os
print(os.environ.get('NM'))
''')
check(EMCONFIGURE, [PYTHON, 'test.py'], expect=shared.LLVM_NM, fail=False)
check(EMCONFIGURE, [PYTHON, 'test.py'], expect=LLVM_NM, fail=False)

create_file('test.c', 'int main() { return 0; }')
os.mkdir('test_cache')
Expand Down Expand Up @@ -12163,12 +12160,12 @@ def test_emranlib(self):

# Create a library with no archive map
self.run_process([EMAR, 'crS', 'liba.a', 'foo.o', 'bar.o'])
output = self.run_process([shared.LLVM_NM, '--print-armap', 'liba.a'], stdout=PIPE).stdout
output = self.run_process([LLVM_NM, '--print-armap', 'liba.a'], stdout=PIPE).stdout
self.assertNotContained('Archive map', output)

# Add an archive map
self.run_process([EMRANLIB, 'liba.a'])
output = self.run_process([shared.LLVM_NM, '--print-armap', 'liba.a'], stdout=PIPE).stdout
output = self.run_process([LLVM_NM, '--print-armap', 'liba.a'], stdout=PIPE).stdout
self.assertContained('Archive map', output)

def test_pthread_stub(self):
Expand Down
8 changes: 4 additions & 4 deletions tools/building.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,6 @@
EMCC,
EMRANLIB,
EMXX,
LLVM_DWARFDUMP,
LLVM_NM,
LLVM_OBJCOPY,
LLVM_OBJDUMP,
asmjs_mangle,
check_call,
demangle_c_symbol_name,
Expand All @@ -57,6 +53,10 @@
binaryen_checked = False
EXPECTED_BINARYEN_VERSION = 132
WASM_LD = shared.llvm_tool_path('wasm-ld')
LLVM_DWARFDUMP = shared.llvm_tool_path('llvm-dwarfdump')
LLVM_OBJCOPY = shared.llvm_tool_path('llvm-objcopy')
LLVM_OBJDUMP = shared.llvm_tool_path('llvm-objdump')
LLVM_NM = shared.llvm_tool_path('llvm-nm')

# the exports the user requested
user_requested_exports: set[str] = set()
Expand Down
4 changes: 3 additions & 1 deletion tools/emdwp.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@

from tools import shared

shared.exec_process([shared.LLVM_DWP, *sys.argv[1:]])
LLVM_DWP = shared.llvm_tool_path('llvm-dwp')

shared.exec_process([LLVM_DWP, *sys.argv[1:]])
4 changes: 3 additions & 1 deletion tools/emnm.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@

from tools import shared

shared.exec_process([shared.LLVM_NM, *sys.argv[1:]])
LLVM_NM = shared.llvm_tool_path('llvm-nm')

shared.exec_process([LLVM_NM, *sys.argv[1:]])
2 changes: 1 addition & 1 deletion tools/emscripten.py
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,7 @@ def finalize_wasm(infile, outfile, js_syms):
with shared.get_temp_files().get_file('.bin') as url_file:
utils.write_binary(url_file,
leb128.u.encode(len(base_url)) + base_url.encode('utf-8'))
cmd = [shared.LLVM_OBJCOPY,
cmd = [building.LLVM_OBJCOPY,
'--add-section',
'sourceMappingURL=' + url_file,
infile]
Expand Down
7 changes: 0 additions & 7 deletions tools/shared.py
Original file line number Diff line number Diff line change
Expand Up @@ -629,14 +629,7 @@ def init():

CLANG_CC = clang_tool_path('clang')
CLANG_CXX = clang_tool_path('clang++')
CLANG_SCAN_DEPS = llvm_tool_path('clang-scan-deps')
LLVM_AR = llvm_tool_path('llvm-ar')
LLVM_DWP = llvm_tool_path('llvm-dwp')
LLVM_RANLIB = llvm_tool_path('llvm-ranlib')
LLVM_NM = llvm_tool_path('llvm-nm')
LLVM_DWARFDUMP = llvm_tool_path('llvm-dwarfdump')
LLVM_OBJCOPY = llvm_tool_path('llvm-objcopy')
LLVM_OBJDUMP = llvm_tool_path('llvm-objdump')

EMCC = exe_path_from_root('emcc')
EMXX = exe_path_from_root('em++')
Expand Down
Loading