diff options
author | adam <adam@pkgsrc.org> | 2019-06-02 08:35:55 +0000 |
---|---|---|
committer | adam <adam@pkgsrc.org> | 2019-06-02 08:35:55 +0000 |
commit | cdade2ea1faa2c9ea4a3530b6de47dedffbb73de (patch) | |
tree | e2b1c3c441dd8930fcf6f889b9b0fce64e8a2c16 /lang/llvm/patches | |
parent | 81a0b14b1d7c0b5addde51e4e2f4159c521b5c81 (diff) | |
download | pkgsrc-cdade2ea1faa2c9ea4a3530b6de47dedffbb73de.tar.gz |
llvm: updated to 8.0.0
8.0.0:
Non-comprehensive list of changes in this release
* The llvm-cov tool can now export lcov trace files using the -format=lcov option of the export command.
* The add_llvm_loadable_module CMake macro has been removed. The add_llvm_library macro with the MODULE argument now provides the same functionality. See Writing an LLVM Pass.
* For MinGW, references to data variables that might need to be imported from a dll are accessed via a stub, to allow the linker to convert it to a dllimport if needed.
* Added support for labels as offsets in .reloc directive.
* Support for precise identification of X86 instructions with memory operands, by using debug information. This supports profile-driven cache prefetching. It is enabled with the -x86-discriminate-memops LLVM Flag.
* Support for profile-driven software cache prefetching on X86. This is part of a larger system, consisting of: an offline cache prefetches recommender, AutoFDO tooling, and LLVM. In this system, a binary compiled with -x86-discriminate-memops is run under the observation of the recommender. The recommender identifies certain memory access instructions by their binary file address, and recommends a prefetch of a specific type (NTA, T0, etc) be performed at a specified fixed offset from such an instruction’s memory operand. Next, this information needs to be converted to the AutoFDO syntax and the resulting profile may be passed back to the compiler with the LLVM flag -prefetch-hints-file, together with the exact same set of compilation parameters used for the original binary. More information is available in the RFC.
* Windows support for libFuzzer (x86_64).
Diffstat (limited to 'lang/llvm/patches')
-rw-r--r-- | lang/llvm/patches/patch-cmake_config-ix.cmake | 8 | ||||
-rw-r--r-- | lang/llvm/patches/patch-cmake_modules_HandleLLVMOptions.cmake | 10 | ||||
-rw-r--r-- | lang/llvm/patches/patch-tools_llvm-shlib_CMakeLists.txt | 53 |
3 files changed, 36 insertions, 35 deletions
diff --git a/lang/llvm/patches/patch-cmake_config-ix.cmake b/lang/llvm/patches/patch-cmake_config-ix.cmake index b256675c2fe..a34e3686a95 100644 --- a/lang/llvm/patches/patch-cmake_config-ix.cmake +++ b/lang/llvm/patches/patch-cmake_config-ix.cmake @@ -1,14 +1,14 @@ -$NetBSD: patch-cmake_config-ix.cmake,v 1.3 2018/08/07 10:44:50 adam Exp $ +$NetBSD: patch-cmake_config-ix.cmake,v 1.4 2019/06/02 08:35:55 adam Exp $ Do not generate invalid llvm-config in pkgsrc. ---- cmake/config-ix.cmake.orig 2018-01-02 17:53:08.000000000 +0000 +--- cmake/config-ix.cmake.orig 2018-11-26 00:03:39.000000000 +0000 +++ cmake/config-ix.cmake -@@ -153,7 +153,7 @@ if(NOT LLVM_USE_SANITIZER MATCHES "Memor +@@ -129,7 +129,7 @@ if(NOT LLVM_USE_SANITIZER MATCHES "Memor endif() if(LLVM_ENABLE_TERMINFO) set(HAVE_TERMINFO 0) -- foreach(library tinfo terminfo curses ncurses ncursesw) +- foreach(library terminfo tinfo curses ncurses ncursesw) + foreach(library terminfo curses ncurses ncursesw tinfo) string(TOUPPER ${library} library_suffix) check_library_exists(${library} setupterm "" HAVE_TERMINFO_${library_suffix}) diff --git a/lang/llvm/patches/patch-cmake_modules_HandleLLVMOptions.cmake b/lang/llvm/patches/patch-cmake_modules_HandleLLVMOptions.cmake index c36ab0c0abf..e0cb09f90ad 100644 --- a/lang/llvm/patches/patch-cmake_modules_HandleLLVMOptions.cmake +++ b/lang/llvm/patches/patch-cmake_modules_HandleLLVMOptions.cmake @@ -1,14 +1,14 @@ -$NetBSD: patch-cmake_modules_HandleLLVMOptions.cmake,v 1.1 2017/03/19 19:01:48 adam Exp $ +$NetBSD: patch-cmake_modules_HandleLLVMOptions.cmake,v 1.2 2019/06/02 08:35:55 adam Exp $ DragonflyBSD support ---- cmake/modules/HandleLLVMOptions.cmake.orig 2016-01-06 19:05:19.000000000 +0000 +--- cmake/modules/HandleLLVMOptions.cmake.orig 2018-12-19 18:01:42.000000000 +0000 +++ cmake/modules/HandleLLVMOptions.cmake -@@ -132,6 +132,7 @@ endif() +@@ -137,6 +137,7 @@ endif() # Pass -Wl,-z,defs. This makes sure all symbols are defined. Otherwise a DSO # build might work on ELF but fail on MachO/COFF. if(NOT (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR WIN32 OR CYGWIN OR + ${CMAKE_SYSTEM_NAME} MATCHES "DragonFly" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR - ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") AND - NOT LLVM_USE_SANITIZER) + ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD" OR + ${CMAKE_SYSTEM_NAME} MATCHES "DragonFly") AND diff --git a/lang/llvm/patches/patch-tools_llvm-shlib_CMakeLists.txt b/lang/llvm/patches/patch-tools_llvm-shlib_CMakeLists.txt index f832df68c3d..e4263461e54 100644 --- a/lang/llvm/patches/patch-tools_llvm-shlib_CMakeLists.txt +++ b/lang/llvm/patches/patch-tools_llvm-shlib_CMakeLists.txt @@ -1,33 +1,34 @@ -$NetBSD: patch-tools_llvm-shlib_CMakeLists.txt,v 1.4 2018/12/09 20:04:38 adam Exp $ +$NetBSD: patch-tools_llvm-shlib_CMakeLists.txt,v 1.5 2019/06/02 08:35:55 adam Exp $ Use the Linux style linking everywhere except Darwin and SunOS. ---- tools/llvm-shlib/CMakeLists.txt.orig 2018-08-03 10:15:36.000000000 +0000 +--- tools/llvm-shlib/CMakeLists.txt.orig 2018-10-18 20:07:44.000000000 +0000 +++ tools/llvm-shlib/CMakeLists.txt -@@ -37,12 +37,11 @@ endif() - add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES}) +@@ -42,13 +42,11 @@ if(LLVM_BUILD_LLVM_DYLIB) + add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES}) - list(REMOVE_DUPLICATES LIB_NAMES) --if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU) -- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") -- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD") -- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia") -- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly") -- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS")) # FIXME: It should be "GNU ld for elf" -+if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") -+ set(LIB_NAMES -Wl,-all_load ${LIB_NAMES}) -+elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS") -+ set(LIB_NAMES -Wl,-Bsymbolic -Wl,-z -Wl,allextract ${LIB_NAMES} -Wl,-z -Wl,defaultextract) -+else() - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map.in - ${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map) -@@ -53,8 +52,6 @@ if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Lin - # Solaris ld does not accept global: *; so there is no way to version *all* global symbols - set(LIB_NAMES -Wl,--version-script,${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map ${LIB_NAMES}) + list(REMOVE_DUPLICATES LIB_NAMES) +- if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU) +- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") +- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU") +- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD") +- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia") +- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly") +- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS")) # FIXME: It should be "GNU ld for elf" ++ if("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS") ++ set(LIB_NAMES -Wl,-Bsymbolic -Wl,-z -Wl,allextract ${LIB_NAMES} -Wl,-z -Wl,defaultextract) ++ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") ++ set(LIB_NAMES -Wl,-all_load ${LIB_NAMES}) ++ else() + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map.in + ${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map) +@@ -59,8 +57,6 @@ if(LLVM_BUILD_LLVM_DYLIB) + # Solaris ld does not accept global: *; so there is no way to version *all* global symbols + set(LIB_NAMES -Wl,--version-script,${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map ${LIB_NAMES}) + endif() +- elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") +- set(LIB_NAMES -Wl,-all_load ${LIB_NAMES}) endif() --elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") -- set(LIB_NAMES -Wl,-all_load ${LIB_NAMES}) - endif() - target_link_libraries(LLVM PRIVATE ${LIB_NAMES}) + target_link_libraries(LLVM PRIVATE ${LIB_NAMES}) |