- Notifications
You must be signed in to change notification settings - Fork 15.3k
Reapply "[Support] Remove terminfo dependency (#92865)" #93889
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reapply "[Support] Remove terminfo dependency (#92865)" #93889
Conversation
| @llvm/pr-subscribers-compiler-rt-sanitizer @llvm/pr-subscribers-lldb Author: Aaron Siddhartha Mondal (aaronmondal) ChangesThis reverts commit fe82a3d. This broke LLDB on MacOS due to a missing symbol during linking. The fix has been applied in c6c08ee. Patch is 21.36 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/93889.diff 26 Files Affected:
diff --git a/clang/cmake/caches/Fuchsia-stage2.cmake b/clang/cmake/caches/Fuchsia-stage2.cmake index d5546e20873b3c..66e764968e85ce 100644 --- a/clang/cmake/caches/Fuchsia-stage2.cmake +++ b/clang/cmake/caches/Fuchsia-stage2.cmake @@ -19,7 +19,6 @@ set(LLVM_ENABLE_LLD ON CACHE BOOL "") set(LLVM_ENABLE_LTO ON CACHE BOOL "") set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "") set(LLVM_ENABLE_PLUGINS OFF CACHE BOOL "") -set(LLVM_ENABLE_TERMINFO OFF CACHE BOOL "") set(LLVM_ENABLE_UNWIND_TABLES OFF CACHE BOOL "") set(LLVM_ENABLE_Z3_SOLVER OFF CACHE BOOL "") set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") diff --git a/clang/cmake/caches/Fuchsia.cmake b/clang/cmake/caches/Fuchsia.cmake index 30a3b9116a461f..4d3af3ad3f4031 100644 --- a/clang/cmake/caches/Fuchsia.cmake +++ b/clang/cmake/caches/Fuchsia.cmake @@ -12,7 +12,6 @@ set(LLVM_ENABLE_DIA_SDK OFF CACHE BOOL "") set(LLVM_ENABLE_LIBEDIT OFF CACHE BOOL "") set(LLVM_ENABLE_LIBXML2 OFF CACHE BOOL "") set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "") -set(LLVM_ENABLE_TERMINFO OFF CACHE BOOL "") set(LLVM_ENABLE_UNWIND_TABLES OFF CACHE BOOL "") set(LLVM_ENABLE_Z3_SOLVER OFF CACHE BOOL "") set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") @@ -34,7 +33,6 @@ set(_FUCHSIA_BOOTSTRAP_PASSTHROUGH LibXml2_ROOT LLVM_ENABLE_CURL LLVM_ENABLE_HTTPLIB - LLVM_ENABLE_TERMINFO LLVM_ENABLE_LIBEDIT CURL_ROOT OpenSSL_ROOT @@ -47,11 +45,6 @@ set(_FUCHSIA_BOOTSTRAP_PASSTHROUGH CURSES_LIBRARIES PANEL_LIBRARIES - # Deprecated - Terminfo_ROOT - - Terminfo_LIBRARIES - # Deprecated LibEdit_ROOT diff --git a/clang/cmake/caches/VectorEngine.cmake b/clang/cmake/caches/VectorEngine.cmake index 2f968a21cc407e..b429fb0997d7a0 100644 --- a/clang/cmake/caches/VectorEngine.cmake +++ b/clang/cmake/caches/VectorEngine.cmake @@ -13,9 +13,7 @@ # ninja # -# Disable TERMINFO, ZLIB, and ZSTD for VE since there is no pre-compiled -# libraries. -set(LLVM_ENABLE_TERMINFO OFF CACHE BOOL "") +# Disable ZLIB, and ZSTD for VE since there is no pre-compiled libraries. set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") set(LLVM_ENABLE_ZSTD OFF CACHE BOOL "") diff --git a/clang/utils/analyzer/entrypoint.py b/clang/utils/analyzer/entrypoint.py index ff877060bad69e..4deb42db0a0b1f 100644 --- a/clang/utils/analyzer/entrypoint.py +++ b/clang/utils/analyzer/entrypoint.py @@ -54,7 +54,7 @@ def is_cmake_needed(): "cmake -G Ninja -DCMAKE_BUILD_TYPE=Release " "-DCMAKE_INSTALL_PREFIX=/analyzer -DLLVM_TARGETS_TO_BUILD=X86 " '-DLLVM_ENABLE_PROJECTS="clang;openmp" -DLLVM_BUILD_RUNTIME=OFF ' - "-DLLVM_ENABLE_TERMINFO=OFF -DCLANG_ENABLE_ARCMT=OFF " + "-DCLANG_ENABLE_ARCMT=OFF " "-DCLANG_ENABLE_STATIC_ANALYZER=ON" ) diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake index 42edbe15edafb5..bddaa37579fd7b 100644 --- a/compiler-rt/cmake/config-ix.cmake +++ b/compiler-rt/cmake/config-ix.cmake @@ -182,21 +182,6 @@ check_library_exists(m pow "" COMPILER_RT_HAS_LIBM) check_library_exists(pthread pthread_create "" COMPILER_RT_HAS_LIBPTHREAD) check_library_exists(execinfo backtrace "" COMPILER_RT_HAS_LIBEXECINFO) -# Look for terminfo library, used in unittests that depend on LLVMSupport. -if(LLVM_ENABLE_TERMINFO STREQUAL FORCE_ON) - set(MAYBE_REQUIRED REQUIRED) -else() - set(MAYBE_REQUIRED) -endif() -if(LLVM_ENABLE_TERMINFO) - find_library(COMPILER_RT_TERMINFO_LIB NAMES terminfo tinfo curses ncurses ncursesw ${MAYBE_REQUIRED}) -endif() -if(COMPILER_RT_TERMINFO_LIB) - set(LLVM_ENABLE_TERMINFO 1) -else() - set(LLVM_ENABLE_TERMINFO 0) -endif() - if (ANDROID AND COMPILER_RT_HAS_LIBDL) # Android's libstdc++ has a dependency on libdl. list(APPEND CMAKE_REQUIRED_LIBRARIES dl) diff --git a/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh b/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh index 005bd6d584c593..b4702339db59cc 100755 --- a/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh +++ b/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh @@ -139,7 +139,6 @@ if [[ ! -f ${LLVM_BUILD}/build.ninja ]]; then -DLLVM_INCLUDE_TESTS=OFF \ -DLLVM_ENABLE_ZLIB=ON \ -DLLVM_ENABLE_ZSTD=OFF \ - -DLLVM_ENABLE_TERMINFO=OFF \ -DLLVM_ENABLE_THREADS=OFF \ $LLVM_SRC fi diff --git a/compiler-rt/lib/xray/tests/CMakeLists.txt b/compiler-rt/lib/xray/tests/CMakeLists.txt index 0a428b9a30b18b..4c7e92b6ecc3d2 100644 --- a/compiler-rt/lib/xray/tests/CMakeLists.txt +++ b/compiler-rt/lib/xray/tests/CMakeLists.txt @@ -54,11 +54,6 @@ set(XRAY_UNITTEST_LINK_FLAGS ${COMPILER_RT_CXX_LINK_LIBS}) if (NOT APPLE) - # Needed by LLVMSupport. - append_list_if( - LLVM_ENABLE_TERMINFO - -l${COMPILER_RT_TERMINFO_LIB} XRAY_UNITTEST_LINK_FLAGS) - # We add the library directories one at a time in our CFLAGS. foreach (DIR ${LLVM_LIBRARY_DIR}) list(APPEND XRAY_UNITTEST_LINK_FLAGS -L${DIR}) diff --git a/lldb/docs/resources/build.rst b/lldb/docs/resources/build.rst index 09d3d15a940836..33b6a6f79def4b 100644 --- a/lldb/docs/resources/build.rst +++ b/lldb/docs/resources/build.rst @@ -477,7 +477,6 @@ further by passing the appropriate cmake options, such as: -DLLDB_ENABLE_PYTHON=0 -DLLDB_ENABLE_LIBEDIT=0 -DLLDB_ENABLE_CURSES=0 - -DLLVM_ENABLE_TERMINFO=0 (see :ref:`Optional Dependencies` for more) diff --git a/lldb/source/Core/CMakeLists.txt b/lldb/source/Core/CMakeLists.txt index 471fd9c1a33e59..dbc620b91b1ed1 100644 --- a/lldb/source/Core/CMakeLists.txt +++ b/lldb/source/Core/CMakeLists.txt @@ -11,9 +11,6 @@ set(LLDB_LIBEDIT_LIBS) if (LLDB_ENABLE_CURSES) list(APPEND LLDB_CURSES_LIBS ${PANEL_LIBRARIES} ${CURSES_LIBRARIES}) - if(LLVM_ENABLE_TERMINFO) - list(APPEND LLDB_CURSES_LIBS ${Terminfo_LIBRARIES}) - endif() if (LLVM_BUILD_STATIC) list(APPEND LLDB_CURSES_LIBS gpm) endif() diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index cbf4db60a6e185..64898ab09772f4 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -539,8 +539,6 @@ set(FFI_INCLUDE_DIR "" CACHE PATH "Additional directory, where CMake should sear set(LLVM_TARGET_ARCH "host" CACHE STRING "Set target to use for LLVM JIT or use \"host\" for automatic detection.") -option(LLVM_ENABLE_TERMINFO "Use terminfo database if available." ON) - set(LLVM_ENABLE_LIBXML2 "ON" CACHE STRING "Use libxml2 if available. Can be ON, OFF, or FORCE_ON") option(LLVM_ENABLE_LIBEDIT "Use libedit if available." ON) diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake index 7d2a49337e1e86..0aae13e30f2ab4 100644 --- a/llvm/cmake/config-ix.cmake +++ b/llvm/cmake/config-ix.cmake @@ -240,21 +240,11 @@ if(NOT LLVM_USE_SANITIZER MATCHES "Memory.*") else() set(HAVE_LIBEDIT 0) endif() - if(LLVM_ENABLE_TERMINFO) - if(LLVM_ENABLE_TERMINFO STREQUAL FORCE_ON) - find_package(Terminfo REQUIRED) - else() - find_package(Terminfo) - endif() - set(LLVM_ENABLE_TERMINFO "${Terminfo_FOUND}") - endif() else() set(HAVE_LIBEDIT 0) - set(LLVM_ENABLE_TERMINFO 0) endif() else() set(HAVE_LIBEDIT 0) - set(LLVM_ENABLE_TERMINFO 0) endif() if(LLVM_HAS_LOGF128) diff --git a/llvm/cmake/modules/FindTerminfo.cmake b/llvm/cmake/modules/FindTerminfo.cmake deleted file mode 100644 index 163af669706771..00000000000000 --- a/llvm/cmake/modules/FindTerminfo.cmake +++ /dev/null @@ -1,55 +0,0 @@ -# Attempts to discover terminfo library with a linkable setupterm function. -# -# Example usage: -# -# find_package(Terminfo) -# -# If successful, the following variables will be defined: -# Terminfo_FOUND -# Terminfo_LIBRARIES -# -# Additionally, the following import target will be defined: -# Terminfo::terminfo - -find_library(Terminfo_LIBRARIES NAMES terminfo tinfo curses ncurses ncursesw) - -if(Terminfo_LIBRARIES) - include(CMakePushCheckState) - cmake_push_check_state() - list(APPEND CMAKE_REQUIRED_LIBRARIES ${Terminfo_LIBRARIES}) - set(Terminfo_LINKABLE_SRC [=[ - #ifdef __cplusplus - extern "C" { - #endif - int setupterm(char *term, int filedes, int *errret); - #ifdef __cplusplus - } - #endif - int main(void) { return setupterm(0, 0, 0); } - ]=]) - if(DEFINED CMAKE_C_COMPILER) - include(CheckCSourceCompiles) - check_c_source_compiles("${Terminfo_LINKABLE_SRC}" Terminfo_LINKABLE) - else() - include(CheckCXXSourceCompiles) - check_cxx_source_compiles("${Terminfo_LINKABLE_SRC}" Terminfo_LINKABLE) - endif() - cmake_pop_check_state() -endif() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Terminfo - FOUND_VAR - Terminfo_FOUND - REQUIRED_VARS - Terminfo_LIBRARIES - Terminfo_LINKABLE) -mark_as_advanced(Terminfo_LIBRARIES - Terminfo_LINKABLE) - -if(Terminfo_FOUND) - if(NOT TARGET Terminfo::terminfo) - add_library(Terminfo::terminfo UNKNOWN IMPORTED) - set_target_properties(Terminfo::terminfo PROPERTIES IMPORTED_LOCATION "${Terminfo_LIBRARIES}") - endif() -endif() diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in index 397bd5815b64e9..7e1501a89354c8 100644 --- a/llvm/cmake/modules/LLVMConfig.cmake.in +++ b/llvm/cmake/modules/LLVMConfig.cmake.in @@ -60,11 +60,6 @@ if(LLVM_ENABLE_LIBEDIT) find_package(LibEdit) endif() -set(LLVM_ENABLE_TERMINFO @LLVM_ENABLE_TERMINFO@) -if(LLVM_ENABLE_TERMINFO) - find_package(Terminfo) -endif() - set(LLVM_ENABLE_THREADS @LLVM_ENABLE_THREADS@) set(LLVM_ENABLE_UNWIND_TABLES @LLVM_ENABLE_UNWIND_TABLES@) diff --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst index 1e1ccb495c3669..c7c2c2825f58b9 100644 --- a/llvm/docs/ReleaseNotes.rst +++ b/llvm/docs/ReleaseNotes.rst @@ -63,6 +63,10 @@ Changes to LLVM infrastructure Changes to building LLVM ------------------------ +- The ``LLVM_ENABLE_TERMINFO`` flag has been removed. LLVM no longer depends on + terminfo and now always uses the ``TERM`` environment variable for color + support autodetection. + Changes to TableGen ------------------- diff --git a/llvm/include/llvm/Config/config.h.cmake b/llvm/include/llvm/Config/config.h.cmake index 977c182e9d2b0d..ff30741c8f360a 100644 --- a/llvm/include/llvm/Config/config.h.cmake +++ b/llvm/include/llvm/Config/config.h.cmake @@ -209,9 +209,6 @@ /* Define to 1 if you have the <sys/types.h> header file. */ #cmakedefine HAVE_SYS_TYPES_H ${HAVE_SYS_TYPES_H} -/* Define if the setupterm() function is supported this platform. */ -#cmakedefine LLVM_ENABLE_TERMINFO ${LLVM_ENABLE_TERMINFO} - /* Define to 1 if you have the <termios.h> header file. */ #cmakedefine HAVE_TERMIOS_H ${HAVE_TERMIOS_H} diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt index 03e888958a0711..be4badc09efa58 100644 --- a/llvm/lib/Support/CMakeLists.txt +++ b/llvm/lib/Support/CMakeLists.txt @@ -56,9 +56,6 @@ elseif( CMAKE_HOST_UNIX ) STRING(REGEX REPLACE "^lib" "" Backtrace_LIBFILE ${Backtrace_LIBFILE}) set(system_libs ${system_libs} ${Backtrace_LIBFILE}) endif() - if( LLVM_ENABLE_TERMINFO ) - set(imported_libs ${imported_libs} Terminfo::terminfo) - endif() set(system_libs ${system_libs} ${LLVM_ATOMIC_LIB}) set(system_libs ${system_libs} ${LLVM_PTHREAD_LIB}) if( UNIX AND NOT (BEOS OR HAIKU) ) @@ -325,14 +322,6 @@ if(LLVM_ENABLE_ZSTD) set(llvm_system_libs ${llvm_system_libs} "${zstd_library}") endif() -if(LLVM_ENABLE_TERMINFO) - if(NOT terminfo_library) - get_property(terminfo_library TARGET Terminfo::terminfo PROPERTY LOCATION) - endif() - get_library_name(${terminfo_library} terminfo_library) - set(llvm_system_libs ${llvm_system_libs} "${terminfo_library}") -endif() - set_property(TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS "${llvm_system_libs}") diff --git a/llvm/lib/Support/Unix/Process.inc b/llvm/lib/Support/Unix/Process.inc index ae90924cae1b9b..84b10ff5d1d08a 100644 --- a/llvm/lib/Support/Unix/Process.inc +++ b/llvm/lib/Support/Unix/Process.inc @@ -341,17 +341,9 @@ unsigned Process::StandardErrColumns() { return getColumns(); } -#ifdef LLVM_ENABLE_TERMINFO -// We manually declare these extern functions because finding the correct -// headers from various terminfo, curses, or other sources is harder than -// writing their specs down. -extern "C" int setupterm(char *term, int filedes, int *errret); -extern "C" struct term *set_curterm(struct term *termp); -extern "C" int del_curterm(struct term *termp); -extern "C" int tigetnum(char *capname); -#endif - -bool checkTerminalEnvironmentForColors() { +static bool terminalHasColors() { + // Check if the current terminal is one of terminals that are known to support + // ANSI color escape codes. if (const char *TermStr = std::getenv("TERM")) { return StringSwitch<bool>(TermStr) .Case("ansi", true) @@ -368,54 +360,10 @@ bool checkTerminalEnvironmentForColors() { return false; } -static bool terminalHasColors(int fd) { -#ifdef LLVM_ENABLE_TERMINFO - // First, acquire a global lock because these C routines are thread hostile. - static std::mutex TermColorMutex; - std::lock_guard<std::mutex> G(TermColorMutex); - - struct term *previous_term = set_curterm(nullptr); - int errret = 0; - if (setupterm(nullptr, fd, &errret) != 0) - // Regardless of why, if we can't get terminfo, we shouldn't try to print - // colors. - return false; - - // Test whether the terminal as set up supports color output. How to do this - // isn't entirely obvious. We can use the curses routine 'has_colors' but it - // would be nice to avoid a dependency on curses proper when we can make do - // with a minimal terminfo parsing library. Also, we don't really care whether - // the terminal supports the curses-specific color changing routines, merely - // if it will interpret ANSI color escape codes in a reasonable way. Thus, the - // strategy here is just to query the baseline colors capability and if it - // supports colors at all to assume it will translate the escape codes into - // whatever range of colors it does support. We can add more detailed tests - // here if users report them as necessary. - // - // The 'tigetnum' routine returns -2 or -1 on errors, and might return 0 if - // the terminfo says that no colors are supported. - int colors_ti = tigetnum(const_cast<char *>("colors")); - bool HasColors = - colors_ti >= 0 ? colors_ti : checkTerminalEnvironmentForColors(); - - // Now extract the structure allocated by setupterm and free its memory - // through a really silly dance. - struct term *termp = set_curterm(previous_term); - (void)del_curterm(termp); // Drop any errors here. - - // Return true if we found a color capabilities for the current terminal. - return HasColors; -#else - // When the terminfo database is not available, check if the current terminal - // is one of terminals that are known to support ANSI color escape codes. - return checkTerminalEnvironmentForColors(); -#endif -} - bool Process::FileDescriptorHasColors(int fd) { // A file descriptor has colors if it is displayed and the terminal has // colors. - return FileDescriptorIsDisplayed(fd) && terminalHasColors(fd); + return FileDescriptorIsDisplayed(fd) && terminalHasColors(); } bool Process::StandardOutHasColors() { diff --git a/llvm/utils/gn/README.rst b/llvm/utils/gn/README.rst index 9ca545061099d8..52d03be533e55e 100644 --- a/llvm/utils/gn/README.rst +++ b/llvm/utils/gn/README.rst @@ -131,7 +131,7 @@ configure is used for three classes of feature checks: For the last two points, it would be nice if LLVM didn't have a single ``config.h`` header, but one header per toggle. That way, when e.g. -``llvm_enable_terminfo`` is toggled, only the 3 files caring about that setting +``llvm_enable_zlib`` is toggled, only the 3 files caring about that setting would need to be rebuilt, instead of everything including ``config.h``. GN doesn't believe in users setting arbitrary cflags from an environment diff --git a/llvm/utils/gn/build/libs/terminfo/BUILD.gn b/llvm/utils/gn/build/libs/terminfo/BUILD.gn deleted file mode 100644 index 10003d61c4df91..00000000000000 --- a/llvm/utils/gn/build/libs/terminfo/BUILD.gn +++ /dev/null @@ -1,12 +0,0 @@ -import("//llvm/utils/gn/build/libs/terminfo/enable.gni") - -config("terminfo_config") { - visibility = [ ":terminfo" ] - libs = [ "ncurses" ] -} - -group("terminfo") { - if (llvm_enable_terminfo) { - public_configs = [ ":terminfo_config" ] - } -} diff --git a/llvm/utils/gn/build/libs/terminfo/enable.gni b/llvm/utils/gn/build/libs/terminfo/enable.gni deleted file mode 100644 index 79ea2b601857ff..00000000000000 --- a/llvm/utils/gn/build/libs/terminfo/enable.gni +++ /dev/null @@ -1,4 +0,0 @@ -declare_args() { - # Whether to link against terminfo. - llvm_enable_terminfo = false -} diff --git a/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn b/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn index 2da26d102e7723..d8266fee05014b 100644 --- a/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn @@ -10,7 +10,6 @@ import("//llvm/utils/gn/build/buildflags.gni") import("//llvm/utils/gn/build/libs/curl/enable.gni") import("//llvm/utils/gn/build/libs/edit/enable.gni") import("//llvm/utils/gn/build/libs/pthread/enable.gni") -import("//llvm/utils/gn/build/libs/terminfo/enable.gni") import("//llvm/utils/gn/build/libs/xar/enable.gni") import("//llvm/utils/gn/build/libs/xml/enable.gni") import("//llvm/utils/gn/build/libs/zlib/enable.gni") @@ -294,12 +293,6 @@ write_cmake_config("config") { values += [ "HAVE_LIBEDIT=" ] } - if (llvm_enable_terminfo) { - values += [ "LLVM_ENABLE_TERMINFO=1" ] - } else { - values += [ "LLVM_ENABLE_TERMINFO=" ] - } - if (llvm_enable_libxml2) { values += [ "LLVM_ENABLE_LIBXML2=1" ] } else { diff --git a/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn index 941d448b3367c1..7728455499bf3d 100644 --- a/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn @@ -6,7 +6,6 @@ static_library("Support") { "//llvm/include/llvm/Support:write_vcsrevision", "//llvm/lib/Demangle", "//llvm/utils/gn/build/libs/pthread", - "//llvm/utils/gn/build/libs/terminfo", "//llvm/utils/gn/build/libs/zlib", ] diff --git a/llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn b/llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn index bf50cd0fce46bd..711e4e3b431511 100644 --- a/llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn @@ -1,7 +1,6 @@ import("//llvm/lib/Target/targets_string.gni") import("//llvm/utils/gn/build/buildflags.gni") import("//llvm/utils/gn/build/libs/pthread/enable.gni") -import("//llvm/utils/gn/build/libs/terminfo/enable.gni") import("//llvm/utils/gn/build/libs/xml/enable.gni") import("//llvm/utils/gn/build/libs/zlib/enable.gni") import("//llvm/utils/gn/build/write_cmake_config.gni") @@ -36,7 +35,7 @@ write_cmake_config("BuildVariables.inc") { lib = "" } - # Windows doesn't use any of libxml2, terminfo, zlib by default. + # Windows doesn't use any of libxml2, zlib by default. # Make GN not warn about these variables being unused. not_needed([ "l", @@ -63,9 +62,6 @@ write_cmake_config("BuildVariables.inc") { if (llvm_enable_libxml2) { system_libs += " ${l}xml2${lib}" } - if (llvm_enable_terminfo) { - system_libs += " ${l}ncurses${lib}" - } if (llvm_enable_zlib) { system_libs += " ${l}z${lib}" } diff --git a/utils/bazel/.bazelrc b/utils/bazel/.bazelrc index 5a6d1889076afa..09111bcdc834ec 100644 --- a/utils/bazel/.bazelrc +++ b/utils/bazel/.bazelrc @@ -51,9 +51,6 @@ build --experimental_cc_shared_library build:zlib_external --repo_env=BAZEL_LLVM_ZLIB_STRATEGY=external build:zlib_system --repo_env=BAZEL_LLVM_ZLIB_STRATEGY=system -build:terminfo_external --repo_env=BAZEL_LLVM_TERMINFO_STRATEGY=external -build:terminfo_system --repo_env=BAZEL_LLVM_TERMINFO_STRATEGY=system - ############################################################################### # Options for "generic_clang" b... [truncated] |
| cc @Michael137 |
| Consider copying the original description to ensure that the linked issues will be properly closed. |
The filenames changed significantly, so I had to add new logic. On the other hand, the file names are much easier to construct now, especially on Linux where there are no longer distro-specific variants as non-hermetic dynamic library dependencies like [`libtinfo5` have been removed](llvm/llvm-project#93889).
terminfo is no longer a dependency llvm/llvm-project#93889 Change-Id: Idf3d7a47e67bb994c505d0bedf5e0ce341de2e1d
terminfo is no longer a dependency llvm/llvm-project#93889 Change-Id: Idf3d7a47e67bb994c505d0bedf5e0ce341de2e1d
terminfo is no longer a dependency llvm/llvm-project#93889 Change-Id: Idf3d7a47e67bb994c505d0bedf5e0ce341de2e1d
This reverts commit fe82a3d.
This broke LLDB on MacOS due to a missing symbol during linking.
The fix has been applied in c6c08ee.
Original commit:
The terminfo dependency introduces a significant nonhermeticity into the build. It doesn't respect
--no-undefined-versionmeaning that it's not a dependency that can be built with Clang 17+. This forces maintainers of source-based distributions to implement patches or ignore linker errors.Remove it to reduce the closure size and improve portability of LLVM-based tools. Users can still use command line arguments to toggle color support expliticly.
Fixes #75490
Closes #53294 #23355