diff --git a/flang-rt/test/Driver/ctofortran.f90 b/flang-rt/test/Driver/ctofortran.f90 index e385e7974cdc1..4979a4e68da59 100644 --- a/flang-rt/test/Driver/ctofortran.f90 +++ b/flang-rt/test/Driver/ctofortran.f90 @@ -2,8 +2,8 @@ ! UNSUPPORTED: offload-cuda ! RUN: split-file %s %t -! RUN: %clang -I"%include/flang" -c %t/cfile.c -o %t/cfile.o -! RUN: %flang -L"%libdir" %t/ffile.f90 %t/cfile.o -o %t/ctofortran +! RUN: %clang %isysroot -I"%include/flang" -c %t/cfile.c -o %t/cfile.o +! RUN: %flang %isysroot -L"%libdir" %t/ffile.f90 %t/cfile.o -o %t/ctofortran ! RUN: env LD_LIBRARY_PATH="$LD_LIBRARY_PATH:%libdir" %t/ctofortran | FileCheck %s !--- ffile.f90 diff --git a/flang-rt/test/Runtime/no-cpp-dep.c b/flang-rt/test/Runtime/no-cpp-dep.c index c98678b69aa14..006f44b4aff7a 100644 --- a/flang-rt/test/Runtime/no-cpp-dep.c +++ b/flang-rt/test/Runtime/no-cpp-dep.c @@ -7,7 +7,7 @@ UNSUPPORTED: system-windows UNSUPPORTED: offload-cuda RUN: %if system-aix %{ export OBJECT_MODE=64 %} -RUN: %cc -std=c99 %s -I%include -L"%libdir" -lflang_rt.runtime -lm \ +RUN: %cc -std=c99 %s %isysroot -I%include -L"%libdir" -lflang_rt.runtime -lm \ RUN: %if system-aix %{-lpthread %} RUN: rm a.out */ diff --git a/flang-rt/test/lit.cfg.py b/flang-rt/test/lit.cfg.py index 032aeef2d5bf6..27f4666a4a42a 100644 --- a/flang-rt/test/lit.cfg.py +++ b/flang-rt/test/lit.cfg.py @@ -62,25 +62,24 @@ def shjoin(args, sep=" "): # lit writes a '.lit_test_times.txt' file into this directory. config.test_exec_root = config.flang_rt_binary_test_dir -# On MacOS, -isysroot is needed to build binaries. +# On MacOS, some tests need -isysroot to build binaries. isysroot_flag = [] if config.osx_sysroot: isysroot_flag = ["-isysroot", config.osx_sysroot] +config.substitutions.append(("%isysroot", " ".join(isysroot_flag))) tools = [ ToolSubst( "%flang", command=config.flang, - extra_args=isysroot_flag, unresolved="fatal", ), ToolSubst( "%clang", command=FindTool("clang"), - extra_args=isysroot_flag, unresolved="fatal", ), - ToolSubst("%cc", command=config.cc, extra_args=isysroot_flag, unresolved="fatal"), + ToolSubst("%cc", command=config.cc, unresolved="fatal"), ] llvm_config.add_tool_substitutions(tools) diff --git a/flang/CMakeLists.txt b/flang/CMakeLists.txt index 1d16c33f44900..c01eb56d5e496 100644 --- a/flang/CMakeLists.txt +++ b/flang/CMakeLists.txt @@ -495,6 +495,9 @@ endif() include(AddFlang) include(FlangCommon) +include(GetClangResourceDir) + +get_clang_resource_dir(HEADER_BINARY_DIR PREFIX ${LLVM_LIBRARY_OUTPUT_INTDIR}/.. SUBDIR include) if (FLANG_INCLUDE_TESTS) add_compile_definitions(FLANG_INCLUDE_TESTS=1) @@ -575,8 +578,6 @@ endif() # Put ISO_Fortran_binding.h into the include files of the build area now # so that we can run tests before installing -include(GetClangResourceDir) -get_clang_resource_dir(HEADER_BINARY_DIR PREFIX ${LLVM_LIBRARY_OUTPUT_INTDIR}/.. SUBDIR include) configure_file( ${FLANG_SOURCE_DIR}/include/flang/ISO_Fortran_binding.h ${HEADER_BINARY_DIR}/ISO_Fortran_binding.h COPYONLY) diff --git a/flang/test/Integration/iso-fortran-binding.cpp b/flang/test/Integration/iso-fortran-binding.cpp index aaafd7cccd07d..36ae35d9d29f7 100644 --- a/flang/test/Integration/iso-fortran-binding.cpp +++ b/flang/test/Integration/iso-fortran-binding.cpp @@ -1,9 +1,9 @@ +// REQUIRES: clang // UNSUPPORTED: system-windows -// RUN: split-file %s %t -// RUN: chmod +x %t/runtest.sh -// RUN: %t/runtest.sh %t %t/cppfile.cpp %flang | FileCheck %s +// RUN: rm -rf %t && mkdir %t +// RUN: %clangxx %isysroot -I%flang_include %s -o %t/a.out +// RUN: %t/a.out | FileCheck %s -//--- cppfile.cpp extern "C" { #include "ISO_Fortran_binding.h" } @@ -15,19 +15,3 @@ int main() { } // CHECK: PASS -// clang-format off -//--- runtest.sh -#!/bin/bash -TMPDIR=$1 -CPPFILE=$2 -FLANG=$3 -BINDIR=`dirname $FLANG` -CPPCOMP=$BINDIR/clang++ -if [ -x $CPPCOMP ] -then - $CPPCOMP $CPPFILE -o $TMPDIR/a.out - $TMPDIR/a.out # should print "PASS" -else - # No clang compiler, just pass by default - echo "PASS" -fi diff --git a/flang/test/lit.cfg.py b/flang/test/lit.cfg.py index 7eb57670ac767..9d81aa41384ed 100644 --- a/flang/test/lit.cfg.py +++ b/flang/test/lit.cfg.py @@ -118,10 +118,11 @@ "PATH", config.flang_llvm_tools_dir, append_path=True ) -# On MacOS, -isysroot is needed to build binaries. +# On MacOS, some tests need -isysroot to build binaries. isysroot_flag = [] if config.osx_sysroot: isysroot_flag = ["-isysroot", config.osx_sysroot] +config.substitutions.append(("%isysroot", " ".join(isysroot_flag))) # Check for DEFAULT_SYSROOT, because when it is set -isysroot has no effect. if config.default_sysroot: @@ -133,7 +134,6 @@ ToolSubst( "%flang", command=FindTool("flang"), - extra_args=isysroot_flag, unresolved="fatal", ), ToolSubst( @@ -172,6 +172,11 @@ else: llvm_config.add_tool_substitutions(tools, config.llvm_tools_dir) +llvm_config.use_clang(required=False) + +# Clang may need the include path for ISO_fortran_binding.h. +config.substitutions.append(("%flang_include", config.flang_headers_dir)) + # Enable libpgmath testing result = lit_config.params.get("LIBPGMATH") if result: diff --git a/flang/test/lit.site.cfg.py.in b/flang/test/lit.site.cfg.py.in index ae5144010bc8b..cc1f4fa6cc9c5 100644 --- a/flang/test/lit.site.cfg.py.in +++ b/flang/test/lit.site.cfg.py.in @@ -6,6 +6,7 @@ import lit.util config.llvm_tools_dir = lit_config.substitute("@LLVM_TOOLS_DIR@") config.llvm_shlib_dir = lit_config.substitute(path(r"@SHLIBDIR@")) config.llvm_plugin_ext = "@LLVM_PLUGIN_EXT@" +config.host_triple = "@LLVM_HOST_TRIPLE@" config.target_triple = "@LLVM_TARGET_TRIPLE@" config.llvm_target_triple_env = "@LLVM_TARGET_TRIPLE_ENV@" config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" @@ -13,6 +14,7 @@ config.errc_messages = "@LLVM_LIT_ERRC_MESSAGES@" config.flang_obj_root = "@FLANG_BINARY_DIR@" config.flang_tools_dir = lit_config.substitute("@FLANG_TOOLS_DIR@") config.flang_intrinsic_modules_dir = "@FLANG_INTRINSIC_MODULES_DIR@" +config.flang_headers_dir = "@HEADER_BINARY_DIR@" config.flang_llvm_tools_dir = "@CMAKE_BINARY_DIR@/bin" config.flang_test_triple = "@FLANG_TEST_TARGET_TRIPLE@" config.flang_examples = @LLVM_BUILD_EXAMPLES@