git: 7e7db577d2a0 - main - lang/halide: update 14.0.0 → 17.0.1
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 28 May 2024 03:27:52 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=7e7db577d2a02336158b87c7ed3e2d523b4b51d6
commit 7e7db577d2a02336158b87c7ed3e2d523b4b51d6
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-05-28 02:57:39 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-05-28 03:27:26 +0000
lang/halide: update 14.0.0 → 17.0.1
---
lang/halide/Makefile | 17 ++++---
lang/halide/distinfo | 6 +--
.../files/patch-src_LLVM__Runtime__Linker.cpp | 53 ++++++++++++++++++++--
lang/halide/files/patch-src_Target.cpp | 6 +--
lang/halide/files/patch-src_runtime_CMakeLists.txt | 10 ++++
lang/halide/files/patch-src_runtime_fopen__lfs.cpp | 12 +++++
lang/halide/pkg-plist | 15 ++++--
7 files changed, 97 insertions(+), 22 deletions(-)
diff --git a/lang/halide/Makefile b/lang/halide/Makefile
index 6fc130898c7c..51bfc7637df9 100644
--- a/lang/halide/Makefile
+++ b/lang/halide/Makefile
@@ -1,6 +1,6 @@
PORTNAME= halide
DISTVERSIONPREFIX= v
-DISTVERSION= 14.0.0
+DISTVERSION= 17.0.1
PORTEPOCH= 1
CATEGORIES= lang
@@ -17,25 +17,22 @@ BROKEN_riscv64= fails to build: /usr/include/c++/v1/__config:1141:6: No thread
BUILD_DEPENDS= llvm${LLVM_VERSION}>0:devel/llvm${LLVM_VERSION} # because halide expects LLVMConfig.cmake
RUN_DEPENDS= llvm${LLVM_VERSION}>0:devel/llvm${LLVM_VERSION}
-USES= cmake:testing # one test (test_apps_autoscheduler) hangs
+USES= cmake:testing llvm:${LLVM_VERSION},lib
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_PROJECT= Halide
-LLVM_VERSION= 14 # last supported llvm
+LLVM_VERSION= 17
-# use the same compiler that devel/llvmNN installs
-CC= clang${LLVM_VERSION}
-CXX= clang++${LLVM_VERSION}
-CPP= clang-cpp${LLVM_VERSION}
-
-CMAKE_ARGS= -DLLVM_DIR=${LOCALBASE}/llvm${LLVM_VERSION}/lib/cmake/llvm
+CMAKE_ARGS= -DHalide_REQUIRE_LLVM_VERSION=${LLVM_VERSION}
CMAKE_ON= LLVM_USE_SHARED_LLVM_LIBRARY HALIDE_SHARED_LIBRARY \
Halide_SHARED_LLVM
CMAKE_OFF= WITH_PYTHON_BINDINGS WITH_APPS WITH_TUTORIALS WITH_DOCS WITH_TESTS # APPS are demos
CMAKE_OFF+= Halide_WITH_INTROSPECTION # missing program_invocation_name variable, see https://github.com/halide/Halide/issues/6945#issuecomment-1217146679
CMAKE_OFF+= WITH_WABT # fetches wabt (when www/wabt is available)
+CMAKE_OFF+= WITH_SERIALIZATION # fetches flatbuffers (unless FLATBUFFERS_USE_FETCHCONTENT=OFF)
+CMAKE_TESTING_ON= WITH_TESTS
OPTIONS_DEFINE= NATIVE
OPTIONS_DEFAULT=
@@ -50,4 +47,6 @@ post-patch-NATIVE-off:
post-install:
${RM} -r ${STAGEDIR}${PREFIX}/share
+# tests fail to compile, see https://github.com/halide/Halide/issues/8236
+
.include <bsd.port.mk>
diff --git a/lang/halide/distinfo b/lang/halide/distinfo
index 94b2c2bf778e..ac8296979940 100644
--- a/lang/halide/distinfo
+++ b/lang/halide/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1660683499
-SHA256 (halide-Halide-v14.0.0_GH0.tar.gz) = f9fc9765217cbd10e3a3e3883a60fc8f2dbbeaac634b45c789577a8a87999a01
-SIZE (halide-Halide-v14.0.0_GH0.tar.gz) = 31806106
+TIMESTAMP = 1716857358
+SHA256 (halide-Halide-v17.0.1_GH0.tar.gz) = beb18331d9e4b6f69943bcc75fb9d923a250ae689f09f6940a01636243289727
+SIZE (halide-Halide-v17.0.1_GH0.tar.gz) = 33075499
diff --git a/lang/halide/files/patch-src_LLVM__Runtime__Linker.cpp b/lang/halide/files/patch-src_LLVM__Runtime__Linker.cpp
index d7d77fcf3de3..2330fda2ad85 100644
--- a/lang/halide/files/patch-src_LLVM__Runtime__Linker.cpp
+++ b/lang/halide/files/patch-src_LLVM__Runtime__Linker.cpp
@@ -1,11 +1,58 @@
---- src/LLVM_Runtime_Linker.cpp.orig 2022-08-17 05:20:15 UTC
+--- src/LLVM_Runtime_Linker.cpp.orig 2024-02-20 17:13:06 UTC
+++ src/LLVM_Runtime_Linker.cpp
-@@ -833,7 +833,7 @@ std::unique_ptr<llvm::Module> get_initial_module_for_t
+@@ -432,6 +432,9 @@ llvm::Triple get_triple_for_target(const Target &targe
+ if (target.os == Target::Linux) {
+ triple.setOS(llvm::Triple::Linux);
+ triple.setEnvironment(llvm::Triple::GNU);
++ } else if (target.os == Target::Linux || target.os == Target::FreeBSD) {
++ triple.setOS(llvm::Triple::FreeBSD);
++ triple.setEnvironment(llvm::Triple::GNU);
+ } else if (target.os == Target::OSX) {
+ triple.setVendor(llvm::Triple::Apple);
+ triple.setOS(llvm::Triple::MacOSX);
+@@ -478,6 +481,9 @@ llvm::Triple get_triple_for_target(const Target &targe
+ } else if (target.os == Target::Linux) {
+ triple.setOS(llvm::Triple::Linux);
+ triple.setEnvironment(llvm::Triple::GNUEABIHF);
++ } else if (target.os == Target::FreeBSD) {
++ triple.setOS(llvm::Triple::FreeBSD);
++ triple.setEnvironment(llvm::Triple::GNUEABIHF);
+ } else if (target.os == Target::Windows) {
+ user_assert(target.bits == 64) << "Windows ARM targets must be 64-bit.\n";
+ triple.setVendor(llvm::Triple::PC);
+@@ -539,6 +545,8 @@ llvm::Triple get_triple_for_target(const Target &targe
+
+ if (target.os == Target::Linux) {
+ triple.setOS(llvm::Triple::Linux);
++ } else if (target.os == Target::FreeBSD) {
++ triple.setOS(llvm::Triple::FreeBSD);
+ } else if (target.os == Target::Android) {
+ triple.setOS(llvm::Triple::Linux);
+ triple.setEnvironment(llvm::Triple::Android);
+@@ -855,7 +863,7 @@ std::unique_ptr<llvm::Module> get_initial_module_for_t
if (module_type != ModuleGPU) {
if (module_type != ModuleJITInlined && module_type != ModuleAOTNoRuntime) {
// OS-dependent modules
- if (t.os == Target::Linux) {
+ if (t.os == Target::Linux || t.os == Target::FreeBSD) {
+ add_allocator();
modules.push_back(get_initmod_posix_allocator(c, bits_64, debug));
modules.push_back(get_initmod_posix_error_handler(c, bits_64, debug));
- modules.push_back(get_initmod_posix_print(c, bits_64, debug));
+@@ -1045,7 +1053,7 @@ std::unique_ptr<llvm::Module> get_initial_module_for_t
+ }
+
+ // Prefer using fopen_lfs on Linux systems, which calls fopen64() to ensure LFS support.
+- if (t.os == Target::Linux) {
++ if (t.os == Target::Linux || t.os == Target::FreeBSD) {
+ modules.push_back(get_initmod_fopen_lfs(c, bits_64, debug));
+ } else {
+ modules.push_back(get_initmod_fopen(c, bits_64, debug));
+@@ -1209,7 +1217,7 @@ std::unique_ptr<llvm::Module> get_initial_module_for_t
+ if (t.os == Target::Android) {
+ // Only platform that supports OpenGL Compute for now.
+ modules.push_back(get_initmod_opengl_egl_context(c, bits_64, debug));
+- } else if (t.os == Target::Linux) {
++ } else if (t.os == Target::Linux || t.os == Target::FreeBSD) {
+ if (t.has_feature(Target::EGL)) {
+ modules.push_back(get_initmod_opengl_egl_context(c, bits_64, debug));
+ } else {
diff --git a/lang/halide/files/patch-src_Target.cpp b/lang/halide/files/patch-src_Target.cpp
index 08f2121f4f26..72adef4f777c 100644
--- a/lang/halide/files/patch-src_Target.cpp
+++ b/lang/halide/files/patch-src_Target.cpp
@@ -1,6 +1,6 @@
---- src/Target.cpp.orig 2022-08-17 04:41:42 UTC
+--- src/Target.cpp.orig 2024-02-20 17:13:06 UTC
+++ src/Target.cpp
-@@ -67,6 +67,9 @@ Target calculate_host_target() {
+@@ -148,6 +148,9 @@ Target calculate_host_target() {
#ifdef __linux__
os = Target::Linux;
#endif
@@ -10,7 +10,7 @@
#ifdef _WIN32
os = Target::Windows;
#endif
-@@ -269,6 +272,7 @@ Target::Feature get_host_cuda_capability(Target t) {
+@@ -399,6 +402,7 @@ const std::map<std::string, Target::OS> os_name_map =
const std::map<std::string, Target::OS> os_name_map = {
{"os_unknown", Target::OSUnknown},
{"linux", Target::Linux},
diff --git a/lang/halide/files/patch-src_runtime_CMakeLists.txt b/lang/halide/files/patch-src_runtime_CMakeLists.txt
new file mode 100644
index 000000000000..9d2262247781
--- /dev/null
+++ b/lang/halide/files/patch-src_runtime_CMakeLists.txt
@@ -0,0 +1,10 @@
+--- src/runtime/CMakeLists.txt.orig 2024-05-28 01:51:11 UTC
++++ src/runtime/CMakeLists.txt
+@@ -150,6 +150,7 @@ set(RUNTIME_CXX_FLAGS
+ # Note: ensure that these flags match the flags in the Makefile.
+ # Note: this always uses Clang-from-LLVM for compilation, so none of these flags should need conditionalization.
+ set(RUNTIME_CXX_FLAGS
++ -Dfopen64=fopen
+ -O3
+ -std=c++17
+ -ffreestanding
diff --git a/lang/halide/files/patch-src_runtime_fopen__lfs.cpp b/lang/halide/files/patch-src_runtime_fopen__lfs.cpp
new file mode 100644
index 000000000000..8a9aa0e6b58f
--- /dev/null
+++ b/lang/halide/files/patch-src_runtime_fopen__lfs.cpp
@@ -0,0 +1,12 @@
+--- src/runtime/fopen_lfs.cpp.orig 2024-05-28 01:22:14 UTC
++++ src/runtime/fopen_lfs.cpp
+@@ -3,5 +3,9 @@ extern "C" WEAK_INLINE void *halide_fopen(const char *
+ extern "C" void *fopen64(const char *, const char *);
+
+ extern "C" WEAK_INLINE void *halide_fopen(const char *filename, const char *type) {
++#if !defined(__FreeBSD__)
+ return fopen64(filename, type);
++#else
++ return fopen(filename, type);
++#endif
+ }
diff --git a/lang/halide/pkg-plist b/lang/halide/pkg-plist
index af0093bdbc67..66f3ecba71d9 100644
--- a/lang/halide/pkg-plist
+++ b/lang/halide/pkg-plist
@@ -1,7 +1,9 @@
+bin/adams2019_retrain_cost_model
+bin/adams2019_weightsdir_to_weightsfile
+bin/anderson2021_retrain_cost_model
+bin/anderson2021_weightsdir_to_weightsfile
bin/featurization_to_sample
bin/get_host_target
-bin/retrain_cost_model
-bin/weightsdir_to_weightsfile
include/Halide.h
include/HalideBuffer.h
include/HalidePyTorchCudaHelpers.h
@@ -15,20 +17,25 @@ include/HalideRuntimeMetal.h
include/HalideRuntimeOpenCL.h
include/HalideRuntimeOpenGLCompute.h
include/HalideRuntimeQurt.h
+include/HalideRuntimeVulkan.h
+include/HalideRuntimeWebGPU.h
lib/cmake/Halide/Halide-shared-deps.cmake
lib/cmake/Halide/Halide-shared-targets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/Halide/Halide-shared-targets.cmake
lib/cmake/Halide/HalideConfig.cmake
lib/cmake/Halide/HalideConfigVersion.cmake
+lib/cmake/HalideHelpers/FindHalide_WebGPU.cmake
lib/cmake/HalideHelpers/Halide-Interfaces-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/HalideHelpers/Halide-Interfaces.cmake
lib/cmake/HalideHelpers/HalideGeneratorHelpers.cmake
lib/cmake/HalideHelpers/HalideHelpersConfig.cmake
lib/cmake/HalideHelpers/HalideHelpersConfigVersion.cmake
lib/cmake/HalideHelpers/HalideTargetHelpers.cmake
+lib/cmake/HalideHelpers/TargetExportScript.cmake
lib/libHalide.so
-lib/libHalide.so.14
-lib/libHalide.so.14.0.0
+lib/libHalide.so.17
+lib/libHalide.so.17.0.1
lib/libautoschedule_adams2019.so
+lib/libautoschedule_anderson2021.so
lib/libautoschedule_li2018.so
lib/libautoschedule_mullapudi2016.so