https://github.com/wenju-he updated https://github.com/llvm/llvm-project/pull/187190
>From 6fbdd1f8d262b35b40bd29c2ed9952f6524a9f36 Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Wed, 18 Mar 2026 05:26:02 +0100 Subject: [PATCH 1/4] [libclc] Replace shell-based external symbol check with lit test using llvm-nm Move check_external_funcs.test into libclc/test/AMDGPU folder. Each target can add it own check_external_funcs.test if desired. FileCheck and llvm-nm are are covered by extra_deps in runtime build when LLVM_INCLUDE_TESTS is true. --- libclc/CMakeLists.txt | 3 +- libclc/test/AMDGPU/check-external-funcs.test | 3 ++ libclc/test/CMakeLists.txt | 56 +++++--------------- libclc/test/check_external_funcs.sh | 30 ----------- libclc/test/lit.cfg.py | 15 +++--- libclc/test/lit.site.cfg.py.in | 5 +- llvm/runtimes/CMakeLists.txt | 2 +- 7 files changed, 25 insertions(+), 89 deletions(-) create mode 100644 libclc/test/AMDGPU/check-external-funcs.test delete mode 100755 libclc/test/check_external_funcs.sh diff --git a/libclc/CMakeLists.txt b/libclc/CMakeLists.txt index 77979e1b92add..1103711298ce3 100644 --- a/libclc/CMakeLists.txt +++ b/libclc/CMakeLists.txt @@ -48,7 +48,7 @@ if( LIBCLC_STANDALONE_BUILD OR CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DI message( STATUS "libclc LLVM version: ${LLVM_PACKAGE_VERSION}" ) - foreach( tool IN ITEMS llvm-link llvm-dis opt ) + foreach( tool IN ITEMS llvm-link opt ) find_program( LLVM_TOOL_${tool} ${tool} PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH ) set( ${tool}_exe ${LLVM_TOOL_${tool}} ) set( ${tool}_target ) @@ -73,7 +73,6 @@ else() endif() get_host_tool_path( llvm-link LLVM_LINK llvm-link_exe llvm-link_target ) - get_host_tool_path( llvm-dis LLVM_DIS llvm-dis_exe llvm-dis_target ) get_host_tool_path( opt OPT opt_exe opt_target ) # Setup the paths where libclc runtimes should be stored. By default, in an diff --git a/libclc/test/AMDGPU/check-external-funcs.test b/libclc/test/AMDGPU/check-external-funcs.test new file mode 100644 index 0000000000000..478480ea1c002 --- /dev/null +++ b/libclc/test/AMDGPU/check-external-funcs.test @@ -0,0 +1,3 @@ +; RUN: llvm-nm -u "%libclc_library_dir/amdgcn-amd-amdhsa-llvm/libclc.bc" | FileCheck %s --allow-empty + +; CHECK-NOT: {{.+}} diff --git a/libclc/test/CMakeLists.txt b/libclc/test/CMakeLists.txt index 3b16b5ab3f651..7a6b99de0e80e 100644 --- a/libclc/test/CMakeLists.txt +++ b/libclc/test/CMakeLists.txt @@ -1,50 +1,18 @@ -set(LIBCLC_LIBRARY_DIR ${LIBCLC_OUTPUT_LIBRARY_DIR}) set(LLVM_TOOLS_DIR ${LLVM_TOOLS_BINARY_DIR}) set(LIBCLC_TEST_DEPS - ${llvm-dis_target} + libclc-opencl-builtins ) -umbrella_lit_testsuite_begin(check-libclc) - -# Testing unresolved symbols. -# check_external_funcs.sh does not work on Windows -if(NOT WIN32) - foreach(t ${LIBCLC_TARGETS_TO_BUILD}) - string(REPLACE "-" ";" TRIPLE ${t}) - list(GET TRIPLE 0 ARCH) - - # Skip nvptx, clspv, spirv targets - if(ARCH MATCHES "^(nvptx|clspv)(64)?$" OR ARCH MATCHES "^spirv(64)?$") - continue() - endif() - - # Get the output file from the target property - get_target_property(target_file libclc-${t} TARGET_FILE) - get_filename_component(output_file ${target_file} NAME) - - set(LIBCLC_TARGET_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/${t}) - file(MAKE_DIRECTORY ${LIBCLC_TARGET_TEST_DIR}) - file(WRITE ${LIBCLC_TARGET_TEST_DIR}/check-external-funcs.test -"// RUN: %check_external_funcs %libclc_library_dir/${t}/${output_file} %llvm_tools_dir - -// This test verifies that the libclc library for ${t} has no -// unresolved external functions (except LLVM intrinsics). -") - - configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in - ${LIBCLC_TARGET_TEST_DIR}/lit.site.cfg.py - MAIN_CONFIG - ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py - ) - - add_lit_testsuite(check-libclc-external-funcs-${t} "Running ${t} tests" - ${LIBCLC_TARGET_TEST_DIR} - DEPENDS libclc-${t} ${LIBCLC_TEST_DEPS} - ) - set_target_properties(check-libclc-external-funcs-${t} PROPERTIES FOLDER "libclc tests") - endforeach() -endif() +configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in + ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py + MAIN_CONFIG + ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py +) -umbrella_lit_testsuite_end(check-libclc) +add_lit_testsuite(check-libclc + "Running the libclc regression tests" + ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${LIBCLC_TEST_DEPS} +) diff --git a/libclc/test/check_external_funcs.sh b/libclc/test/check_external_funcs.sh deleted file mode 100755 index 7de1488fc895c..0000000000000 --- a/libclc/test/check_external_funcs.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -FILE=$1 -BIN_DIR=$2 -if [ ! -f $FILE ]; then - echo "ERROR: Not a file: $FILE" - exit 3 -fi -ret=0 - -DIS="$BIN_DIR/llvm-dis" -if [ ! -x $DIS ]; then - echo "ERROR: Disassembler '$DIS' is not executable" - exit 3 -fi - -TMP_FILE=$(mktemp) - -# Check for external functions. Calls to llvm intrinsics are OK -$DIS < $FILE | grep '^[[:space:]]*declare ' | grep -v '@llvm' > "$TMP_FILE" -COUNT=$(wc -l < "$TMP_FILE") - -if [ "$COUNT" -ne "0" ]; then - echo "ERROR: $COUNT unresolved external functions detected in $FILE" - cat $TMP_FILE - ret=1 -else - echo "File $FILE is OK" -fi -exit $ret diff --git a/libclc/test/lit.cfg.py b/libclc/test/lit.cfg.py index d5a9b5e366e37..ab16c080c32e7 100644 --- a/libclc/test/lit.cfg.py +++ b/libclc/test/lit.cfg.py @@ -6,6 +6,8 @@ import lit.formats +from lit.llvm import llvm_config + # Configuration file for the 'lit' test runner. # name: The name of this test suite. @@ -21,8 +23,7 @@ config.excludes = ["CMakeLists.txt"] # test_source_root: The root path where tests are located. -# For per-target tests, this is the target's test directory. -config.test_source_root = config.libclc_obj_root +config.test_source_root = os.path.dirname(__file__) # test_exec_root: The root path where tests should be run. config.test_exec_root = config.libclc_obj_root @@ -37,10 +38,6 @@ # Define substitutions for the test files config.substitutions.append(("%libclc_library_dir", config.libclc_library_dir)) -config.substitutions.append(("%llvm_tools_dir", config.llvm_tools_dir)) -config.substitutions.append( - ( - "%check_external_funcs", - os.path.join(config.libclc_test_root, "check_external_funcs.sh"), - ) -) + +tools = ["llvm-nm"] +llvm_config.add_tool_substitutions(tools, config.llvm_tools_dir) diff --git a/libclc/test/lit.site.cfg.py.in b/libclc/test/lit.site.cfg.py.in index d43d6111f4ae9..e0f5087ba4587 100644 --- a/libclc/test/lit.site.cfg.py.in +++ b/libclc/test/lit.site.cfg.py.in @@ -3,9 +3,8 @@ import sys config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" -config.libclc_obj_root = "@LIBCLC_TARGET_TEST_DIR@" -config.libclc_test_root = "@CMAKE_CURRENT_SOURCE_DIR@" -config.libclc_library_dir = "@LIBCLC_LIBRARY_DIR@" +config.libclc_library_dir = "@LIBCLC_OUTPUT_LIBRARY_DIR@" +config.libclc_obj_root = "@CMAKE_CURRENT_BINARY_DIR@" import lit.llvm lit.llvm.initialize(lit_config, config) diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt index 3ba32e415d712..5c71944856f6f 100644 --- a/llvm/runtimes/CMakeLists.txt +++ b/llvm/runtimes/CMakeLists.txt @@ -554,7 +554,7 @@ if(build_runtimes) # TODO: We need to consider passing it as '-DRUNTIMES_x86_64_LLVM_ENABLE_RUNTIMES'. if("libclc" IN_LIST LLVM_ENABLE_RUNTIMES) - foreach(dep clang llvm-as llvm-dis llvm-link opt llvm-ar llvm-ranlib) + foreach(dep clang llvm-link opt llvm-ar llvm-ranlib) if(TARGET ${dep}) list(APPEND extra_deps ${dep}) endif() >From 959116d6b56b2f5da1c59b79fb7968f36d6d178e Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Wed, 18 Mar 2026 06:38:07 +0100 Subject: [PATCH 2/4] address copilot comments --- libclc/test/AMDGPU/check-external-funcs.test | 2 +- libclc/test/AMDGPU/lit.local.cfg | 2 ++ libclc/test/CMakeLists.txt | 1 + libclc/test/lit.cfg.py | 15 +++++++++------ libclc/test/lit.site.cfg.py.in | 1 + 5 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 libclc/test/AMDGPU/lit.local.cfg diff --git a/libclc/test/AMDGPU/check-external-funcs.test b/libclc/test/AMDGPU/check-external-funcs.test index 478480ea1c002..45d5aadce25d5 100644 --- a/libclc/test/AMDGPU/check-external-funcs.test +++ b/libclc/test/AMDGPU/check-external-funcs.test @@ -1,3 +1,3 @@ -; RUN: llvm-nm -u "%libclc_library_dir/amdgcn-amd-amdhsa-llvm/libclc.bc" | FileCheck %s --allow-empty +; RUN: llvm-nm -u "%libclc_library_dir/amdgcn-amd-amdhsa-llvm/libclc.bc" 2>&1 | FileCheck %s --allow-empty ; CHECK-NOT: {{.+}} diff --git a/libclc/test/AMDGPU/lit.local.cfg b/libclc/test/AMDGPU/lit.local.cfg new file mode 100644 index 0000000000000..c853e3fdf09b8 --- /dev/null +++ b/libclc/test/AMDGPU/lit.local.cfg @@ -0,0 +1,2 @@ +if "amdgcn" not in config.available_features: + config.unsupported = True diff --git a/libclc/test/CMakeLists.txt b/libclc/test/CMakeLists.txt index 7a6b99de0e80e..1576f8d373917 100644 --- a/libclc/test/CMakeLists.txt +++ b/libclc/test/CMakeLists.txt @@ -1,4 +1,5 @@ set(LLVM_TOOLS_DIR ${LLVM_TOOLS_BINARY_DIR}) +string(REPLACE ";" " " LIBCLC_TARGETS_TO_BUILD "${LIBCLC_TARGETS_TO_BUILD}") set(LIBCLC_TEST_DEPS libclc-opencl-builtins diff --git a/libclc/test/lit.cfg.py b/libclc/test/lit.cfg.py index ab16c080c32e7..b9c424543b0ea 100644 --- a/libclc/test/lit.cfg.py +++ b/libclc/test/lit.cfg.py @@ -5,7 +5,6 @@ import os import lit.formats - from lit.llvm import llvm_config # Configuration file for the 'lit' test runner. @@ -13,8 +12,8 @@ # name: The name of this test suite. config.name = "libclc" -# testFormat: The test format to use to interpret tests. -config.test_format = lit.formats.ShTest(True) +# test format +config.test_format = lit.formats.ShTest() # suffixes: A list of file extensions to treat as test files. config.suffixes = [".test"] @@ -36,8 +35,12 @@ else: config.environment["PATH"] = config.llvm_tools_dir +for target in config.libclc_targets_to_build.split(): + if target: + arch = target.split("-")[0] + config.available_features.add(arch) + +llvm_config.use_default_substitutions() + # Define substitutions for the test files config.substitutions.append(("%libclc_library_dir", config.libclc_library_dir)) - -tools = ["llvm-nm"] -llvm_config.add_tool_substitutions(tools, config.llvm_tools_dir) diff --git a/libclc/test/lit.site.cfg.py.in b/libclc/test/lit.site.cfg.py.in index e0f5087ba4587..b7feebc72f7c1 100644 --- a/libclc/test/lit.site.cfg.py.in +++ b/libclc/test/lit.site.cfg.py.in @@ -5,6 +5,7 @@ import sys config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" config.libclc_library_dir = "@LIBCLC_OUTPUT_LIBRARY_DIR@" config.libclc_obj_root = "@CMAKE_CURRENT_BINARY_DIR@" +config.libclc_targets_to_build = "@LIBCLC_TARGETS_TO_BUILD@" import lit.llvm lit.llvm.initialize(lit_config, config) >From 69c85d18d031de79f8f5e8139e390187f24c14cd Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Thu, 19 Mar 2026 09:40:23 +0100 Subject: [PATCH 3/4] restore check_external_funcs.sh --- libclc/test/AMDGPU/check-external-funcs.test | 3 -- libclc/test/AMDGPU/lit.local.cfg | 2 - libclc/test/CMakeLists.txt | 54 +++++++++++++++----- libclc/test/check_external_funcs.sh | 30 +++++++++++ libclc/test/lit.cfg.py | 22 ++++---- libclc/test/lit.site.cfg.py.in | 4 +- 6 files changed, 85 insertions(+), 30 deletions(-) delete mode 100644 libclc/test/AMDGPU/check-external-funcs.test delete mode 100644 libclc/test/AMDGPU/lit.local.cfg create mode 100755 libclc/test/check_external_funcs.sh diff --git a/libclc/test/AMDGPU/check-external-funcs.test b/libclc/test/AMDGPU/check-external-funcs.test deleted file mode 100644 index 45d5aadce25d5..0000000000000 --- a/libclc/test/AMDGPU/check-external-funcs.test +++ /dev/null @@ -1,3 +0,0 @@ -; RUN: llvm-nm -u "%libclc_library_dir/amdgcn-amd-amdhsa-llvm/libclc.bc" 2>&1 | FileCheck %s --allow-empty - -; CHECK-NOT: {{.+}} diff --git a/libclc/test/AMDGPU/lit.local.cfg b/libclc/test/AMDGPU/lit.local.cfg deleted file mode 100644 index c853e3fdf09b8..0000000000000 --- a/libclc/test/AMDGPU/lit.local.cfg +++ /dev/null @@ -1,2 +0,0 @@ -if "amdgcn" not in config.available_features: - config.unsupported = True diff --git a/libclc/test/CMakeLists.txt b/libclc/test/CMakeLists.txt index 1576f8d373917..dd8dfa8346722 100644 --- a/libclc/test/CMakeLists.txt +++ b/libclc/test/CMakeLists.txt @@ -1,19 +1,49 @@ set(LLVM_TOOLS_DIR ${LLVM_TOOLS_BINARY_DIR}) -string(REPLACE ";" " " LIBCLC_TARGETS_TO_BUILD "${LIBCLC_TARGETS_TO_BUILD}") set(LIBCLC_TEST_DEPS libclc-opencl-builtins ) -configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in - ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py - MAIN_CONFIG - ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py -) +umbrella_lit_testsuite_begin(check-libclc) -add_lit_testsuite(check-libclc - "Running the libclc regression tests" - ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS ${LIBCLC_TEST_DEPS} -) +# Testing unresolved symbols. +# check_external_funcs.sh does not work on Windows +if(NOT WIN32) + foreach(t ${LIBCLC_TARGETS_TO_BUILD}) + string(REPLACE "-" ";" TRIPLE ${t}) + list(GET TRIPLE 0 ARCH) + + # Skip nvptx, clspv, spirv targets + if(ARCH MATCHES "^(nvptx|clspv)(64)?$" OR ARCH MATCHES "^spirv(64)?$") + continue() + endif() + + # Get the output file from the target property + get_target_property(target_file libclc-${t} TARGET_FILE) + get_filename_component(output_file ${target_file} NAME) + + set(LIBCLC_TARGET_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/${t}) + file(MAKE_DIRECTORY ${LIBCLC_TARGET_TEST_DIR}) + file(WRITE ${LIBCLC_TARGET_TEST_DIR}/check-external-funcs.test +"// RUN: %check_external_funcs %libclc_library_dir/${t}/${output_file} %llvm_tools_dir + +// This test verifies that the libclc library for ${t} has no +// unresolved external functions (except LLVM intrinsics). +") + + configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in + ${LIBCLC_TARGET_TEST_DIR}/lit.site.cfg.py + MAIN_CONFIG + ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py + ) + + add_lit_testsuite(check-libclc-external-funcs-${t} "Running ${t} tests" + ${LIBCLC_TARGET_TEST_DIR} + DEPENDS libclc-${t} ${LIBCLC_TEST_DEPS} + ) + set_target_properties(check-libclc-external-funcs-${t} PROPERTIES FOLDER "libclc tests") + endforeach() +endif() + +umbrella_lit_testsuite_end(check-libclc) diff --git a/libclc/test/check_external_funcs.sh b/libclc/test/check_external_funcs.sh new file mode 100755 index 0000000000000..57261ede09979 --- /dev/null +++ b/libclc/test/check_external_funcs.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +FILE=$1 +BIN_DIR=$2 +if [ ! -f $FILE ]; then + echo "ERROR: Not a file: $FILE" + exit 3 +fi +ret=0 + +LLVM_NM="$BIN_DIR/llvm-nm" +if [ ! -x $LLVM_NM ]; then + echo "ERROR: Disassembler '$LLVM_NM' is not executable" + exit 3 +fi + +TMP_FILE=$(mktemp) + +# Check for external functions +"$LLVM_NM" -u "$FILE" > "$TMP_FILE" +COUNT=$(wc -l < "$TMP_FILE") + +if [ "$COUNT" -ne "0" ]; then + echo "ERROR: $COUNT unresolved external functions detected in $FILE" + cat $TMP_FILE + ret=1 +else + echo "File $FILE is OK" +fi +exit $ret diff --git a/libclc/test/lit.cfg.py b/libclc/test/lit.cfg.py index b9c424543b0ea..d5a9b5e366e37 100644 --- a/libclc/test/lit.cfg.py +++ b/libclc/test/lit.cfg.py @@ -5,15 +5,14 @@ import os import lit.formats -from lit.llvm import llvm_config # Configuration file for the 'lit' test runner. # name: The name of this test suite. config.name = "libclc" -# test format -config.test_format = lit.formats.ShTest() +# testFormat: The test format to use to interpret tests. +config.test_format = lit.formats.ShTest(True) # suffixes: A list of file extensions to treat as test files. config.suffixes = [".test"] @@ -22,7 +21,8 @@ config.excludes = ["CMakeLists.txt"] # test_source_root: The root path where tests are located. -config.test_source_root = os.path.dirname(__file__) +# For per-target tests, this is the target's test directory. +config.test_source_root = config.libclc_obj_root # test_exec_root: The root path where tests should be run. config.test_exec_root = config.libclc_obj_root @@ -35,12 +35,12 @@ else: config.environment["PATH"] = config.llvm_tools_dir -for target in config.libclc_targets_to_build.split(): - if target: - arch = target.split("-")[0] - config.available_features.add(arch) - -llvm_config.use_default_substitutions() - # Define substitutions for the test files config.substitutions.append(("%libclc_library_dir", config.libclc_library_dir)) +config.substitutions.append(("%llvm_tools_dir", config.llvm_tools_dir)) +config.substitutions.append( + ( + "%check_external_funcs", + os.path.join(config.libclc_test_root, "check_external_funcs.sh"), + ) +) diff --git a/libclc/test/lit.site.cfg.py.in b/libclc/test/lit.site.cfg.py.in index b7feebc72f7c1..56212e6c9d533 100644 --- a/libclc/test/lit.site.cfg.py.in +++ b/libclc/test/lit.site.cfg.py.in @@ -3,9 +3,9 @@ import sys config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" +config.libclc_obj_root = "@LIBCLC_TARGET_TEST_DIR@" +config.libclc_test_root = "@CMAKE_CURRENT_SOURCE_DIR@" config.libclc_library_dir = "@LIBCLC_OUTPUT_LIBRARY_DIR@" -config.libclc_obj_root = "@CMAKE_CURRENT_BINARY_DIR@" -config.libclc_targets_to_build = "@LIBCLC_TARGETS_TO_BUILD@" import lit.llvm lit.llvm.initialize(lit_config, config) >From 18bccfd43790a8d257ae389bc12d84b8d6008bbe Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Thu, 19 Mar 2026 09:57:38 +0100 Subject: [PATCH 4/4] delete check_external_funcs.sh --- libclc/test/CMakeLists.txt | 6 ++---- libclc/test/check_external_funcs.sh | 30 ----------------------------- libclc/test/lit.cfg.py | 7 ------- libclc/test/lit.site.cfg.py.in | 1 - 4 files changed, 2 insertions(+), 42 deletions(-) delete mode 100755 libclc/test/check_external_funcs.sh diff --git a/libclc/test/CMakeLists.txt b/libclc/test/CMakeLists.txt index dd8dfa8346722..b9e447833c1cf 100644 --- a/libclc/test/CMakeLists.txt +++ b/libclc/test/CMakeLists.txt @@ -7,7 +7,6 @@ set(LIBCLC_TEST_DEPS umbrella_lit_testsuite_begin(check-libclc) # Testing unresolved symbols. -# check_external_funcs.sh does not work on Windows if(NOT WIN32) foreach(t ${LIBCLC_TARGETS_TO_BUILD}) string(REPLACE "-" ";" TRIPLE ${t}) @@ -25,10 +24,9 @@ if(NOT WIN32) set(LIBCLC_TARGET_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/${t}) file(MAKE_DIRECTORY ${LIBCLC_TARGET_TEST_DIR}) file(WRITE ${LIBCLC_TARGET_TEST_DIR}/check-external-funcs.test -"// RUN: %check_external_funcs %libclc_library_dir/${t}/${output_file} %llvm_tools_dir +"; RUN: llvm-nm -u \"%libclc_library_dir/${t}/${output_file}\" | FileCheck %s --allow-empty -// This test verifies that the libclc library for ${t} has no -// unresolved external functions (except LLVM intrinsics). +; CHECK-NOT: {{.+}} ") configure_lit_site_cfg( diff --git a/libclc/test/check_external_funcs.sh b/libclc/test/check_external_funcs.sh deleted file mode 100755 index 57261ede09979..0000000000000 --- a/libclc/test/check_external_funcs.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -FILE=$1 -BIN_DIR=$2 -if [ ! -f $FILE ]; then - echo "ERROR: Not a file: $FILE" - exit 3 -fi -ret=0 - -LLVM_NM="$BIN_DIR/llvm-nm" -if [ ! -x $LLVM_NM ]; then - echo "ERROR: Disassembler '$LLVM_NM' is not executable" - exit 3 -fi - -TMP_FILE=$(mktemp) - -# Check for external functions -"$LLVM_NM" -u "$FILE" > "$TMP_FILE" -COUNT=$(wc -l < "$TMP_FILE") - -if [ "$COUNT" -ne "0" ]; then - echo "ERROR: $COUNT unresolved external functions detected in $FILE" - cat $TMP_FILE - ret=1 -else - echo "File $FILE is OK" -fi -exit $ret diff --git a/libclc/test/lit.cfg.py b/libclc/test/lit.cfg.py index d5a9b5e366e37..5b824aa4df872 100644 --- a/libclc/test/lit.cfg.py +++ b/libclc/test/lit.cfg.py @@ -37,10 +37,3 @@ # Define substitutions for the test files config.substitutions.append(("%libclc_library_dir", config.libclc_library_dir)) -config.substitutions.append(("%llvm_tools_dir", config.llvm_tools_dir)) -config.substitutions.append( - ( - "%check_external_funcs", - os.path.join(config.libclc_test_root, "check_external_funcs.sh"), - ) -) diff --git a/libclc/test/lit.site.cfg.py.in b/libclc/test/lit.site.cfg.py.in index 56212e6c9d533..c03943bebd267 100644 --- a/libclc/test/lit.site.cfg.py.in +++ b/libclc/test/lit.site.cfg.py.in @@ -4,7 +4,6 @@ import sys config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" config.libclc_obj_root = "@LIBCLC_TARGET_TEST_DIR@" -config.libclc_test_root = "@CMAKE_CURRENT_SOURCE_DIR@" config.libclc_library_dir = "@LIBCLC_OUTPUT_LIBRARY_DIR@" import lit.llvm _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
