Date: Thursday, July 15, 2021 @ 15:09:09 Author: felixonmars Revision: 977357
upgpkg: ponyc 0.43.0-1 Added: ponyc/trunk/shared-libs.patch Modified: ponyc/trunk/PKGBUILD -------------------+ PKGBUILD | 34 +++++++------ shared-libs.patch | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+), 15 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-07-15 14:32:01 UTC (rev 977356) +++ PKGBUILD 2021-07-15 15:09:09 UTC (rev 977357) @@ -1,36 +1,40 @@ # Maintainer: Felix Yan <felixonm...@archlinux.org> pkgname=ponyc -pkgver=0.42.0 -_llvmcommit=c1a0a213378a458fbea1a5c77b315c7dce08fd05 +pkgver=0.43.0 pkgrel=1 pkgdesc='An actor model, capabilities, high performance programming language' url='https://ponylang.org/' arch=('x86_64') license=('BSD') -depends=('zlib') -makedepends=('benchmark' 'cmake' 'git' 'gmock' 'grpc' 'gtest' 'python') +depends=('llvm-libs') # 'libb2' +makedepends=('benchmark' 'cmake' 'gtest' 'llvm') checkdepends=('pcre2') options=('!strip') optdepends=('pcre2: Needed for the regex package') source=("https://github.com/ponylang/ponyc/archive/$pkgver/$pkgname-$pkgver.tar.gz" - "https://github.com/llvm/llvm-project/archive/$_llvmcommit/llvm-$_llvmcommit.tar.gz") -sha512sums=('55e9303bd3ad6245454bf909dab8c51a56768cd15ab19ce97691e84bf163999aa604b4668c14eaec091006a19242b1befdd95736228943c6cec8c1b140625326' - '0c0b5f2c32479c148abebcc170651f5e6fc02177d3cf5638381ef177815f6c2223de7d4c082faa9de765a56ef1fba021583a748a5d009860b84979dc8d5ee064') + shared-libs.patch) +sha512sums=('5b3bf863f0eb794c835a22edc1373bc4b96be4ca4390bfc30c5516542da54f2d87774d1fd70c93e9c7cce6162e222db9420d70f8d8e3a706bb6608a846b27f22' + '7dc4591d5e3ff7d321f4397f382d700e3778b984df3d1dc95ace1689ce3f7fe63d2b35c4986aea11cf15cfa34f53b96782eebe2cc8a729f47de45f72302ea594') prepare() { cd ponyc-$pkgver - rmdir lib/llvm/src - ln -sf "$srcdir"/llvm-project-$_llvmcommit lib/llvm/src - # Use system gmock/gtest/gbenchmark - sed -i 's|NO_DEFAULT_PATH||' CMakeLists.txt + patch -p2 -i ../shared-libs.patch - # Don't download gbenchmark/gtest - sed -i '12,20d' lib/CMakeLists.txt + # Use system gmock/gtest/gbenchmark, remove -Werror (https://github.com/ponylang/ponyc/issues/3806) + sed -i 's|NO_DEFAULT_PATH||;s/-Werror //' CMakeLists.txt - # https://github.com/ponylang/ponyc/issues/3628 - sed -i '/ pony_assert(0);/a \ return false;' src/libponyc/expr/reference.c + # Don't build libponyc-standalone.a + # sed -i 's/else()/elseif(FALSE)/' src/libponyc/CMakeLists.txt + + # System b2 - disabled: *** stack smashing detected ***: terminated + # sed -i 's/blake2/b2/' src/ponyc/CMakeLists.txt test/libponyc/CMakeLists.txt benchmark/libponyc/CMakeLists.txt + # Arguments ordering changed + # sed -i 's|blake2b(buf, SIGNATURE_LENGTH, array.ptr, array.size, NULL, 0);|blake2b(buf, array.ptr, NULL, SIGNATURE_LENGTH, array.size, 0);|' src/libponyc/pkg/package.c + + # Missing LLVM components + sed -i 's/demangle/demangle amdgpucodegen avrcodegen bpfcodegen codegen hexagoncodegen lanaicodegen mipscodegen msp430codegen nativecodegen nvptxcodegen powerpccodegen riscvcodegen sparccodegen systemzcodegen webassemblycodegen xcorecodegen amdgpuasmparser asmparser avrasmparser bpfasmparser hexagonasmparser lanaiasmparser mipsasmparser msp430asmparser powerpcasmparser riscvasmparser sparcasmparser systemzasmparser webassemblyasmparser/' CMakeLists.txt } build() { Added: shared-libs.patch =================================================================== --- shared-libs.patch (rev 0) +++ shared-libs.patch 2021-07-15 15:09:09 UTC (rev 977357) @@ -0,0 +1,128 @@ +--- src/ponyc-0.43.0/lib/CMakeLists.txt.orig 2021-07-15 22:58:52.411387604 +0800 ++++ src/ponyc-0.43.0/lib/CMakeLists.txt 2021-07-15 22:59:13.877217631 +0800 +@@ -5,25 +5,6 @@ + + include(ExternalProject) + +-if(NOT DEFINED PONYC_LIBS_BUILD_TYPE) +- set(PONYC_LIBS_BUILD_TYPE Release) +-endif() +- +-set(PONYC_GBENCHMARK_URL https://github.com/google/benchmark/archive/v1.5.4.tar.gz) +-if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") +- set(PONYC_GBENCHMARK_URL https://github.com/google/benchmark/archive/v1.5.3.tar.gz) +-endif() +- +-ExternalProject_Add(gbenchmark +- URL ${PONYC_GBENCHMARK_URL} +- CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DBENCHMARK_ENABLE_GTEST_TESTS=OFF -DCMAKE_CXX_FLAGS=-fpic --no-warn-unused-cli +-) +- +-ExternalProject_Add(googletest +- URL https://github.com/google/googletest/archive/release-1.10.0.tar.gz +- CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_CXX_FLAGS=-fpic -Dgtest_force_shared_crt=ON --no-warn-unused-cli +-) +- + add_library(blake2 STATIC blake2/blake2b-ref.c) + set_property(TARGET blake2 PROPERTY POSITION_INDEPENDENT_CODE ON) + +@@ -32,99 +13,3 @@ + LIBRARY DESTINATION lib + COMPONENT library + ) +- +-find_package(Git) +- +-set(LLVM_DESIRED_HASH "fed41342a82f5a3a9201819a82bf7a48313e296b") +-set(PATCHES_DESIRED_HASH "3a655193262fd9b2e87340e096efcbd96726a07fe6dd42a263f3a4fc2dc0192e") +- +-if(GIT_FOUND) +- if(EXISTS "${PROJECT_SOURCE_DIR}/../.git") +- # Update submodules as needed +- option(GIT_SUBMODULE "Check submodules during build" ON) +- if(GIT_SUBMODULE) +- message(STATUS "Updating submodules...") +- execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive --depth 1 +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +- RESULT_VARIABLE git_submod_result) +- #message("git_submod_result ${git_submod_result}") +- if(NOT git_submod_result EQUAL "0") +- message(FATAL_ERROR "git submodule update --init --recursive --depth 1 failed with ${git_submod_result}, please checkout submodules") +- endif() +- +- # we check to make sure the submodule hash matches +- # the reason the submodule hash is in this file is to be able to use this file as a key for caching the libs in CI +- execute_process(COMMAND ${GIT_EXECUTABLE} submodule status +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +- OUTPUT_VARIABLE git_submod_output) +- #message("git_submod_output ${git_submod_output}") +- string(FIND "${git_submod_output}" "${LLVM_DESIRED_HASH}" LLVM_SUBMOD_POS) +- if(LLVM_SUBMOD_POS EQUAL "-1") +- message(FATAL_ERROR "Expecting the lib/llvm/src submodule to be at hash '${LLVM_DESIRED_HASH}'; found '${git_submod_output}'; update the LLVM_DESIRED_HASH variable in lib/CMakeLists.txt if you've updated the submodule.") +- endif() +- endif() +- endif() +- +- # Apply patches +- message("Applying patches...") +- file(GLOB PONY_LLVM_PATCHES "${PROJECT_SOURCE_DIR}/llvm/patches/*.diff") +- +- # check to see if the patch hashes match +- message("Checking patches ${PONY_LLVM_PATCHES}") +- set(PATCHES_ACTUAL_HASH "") +- foreach (PATCH ${PONY_LLVM_PATCHES}) +- file(STRINGS ${PATCH} patch_file NEWLINE_CONSUME) +- string(REPLACE "\n" " " patch_file ${patch_file}) +- string(SHA256 patch_file_hash ${patch_file}) +- # message("${PATCH}: '${patch_file_hash}'") +- string(CONCAT PATCHES_ACTUAL_HASH ${PATCHES_ACTUAL_HASH} ${patch_file_hash}) +- # message("concat is '${PATCHES_ACTUAL_HASH}'") +- endforeach() +- string(SHA256 PATCHES_ACTUAL_HASH ${PATCHES_ACTUAL_HASH}) +- # message("Desired hash ${PATCHES_DESIRED_HASH}") +- # message("Actual hash ${PATCHES_ACTUAL_HASH}") +- if(NOT PATCHES_ACTUAL_HASH EQUAL "${PATCHES_DESIRED_HASH}") +- message(FATAL_ERROR "Patch hash actual ${PATCHES_ACTUAL_HASH} does not match desired ${PATCHES_DESIRED_HASH}") +- endif() +- +- foreach (PATCH ${PONY_LLVM_PATCHES}) +- message(" Checking ${PATCH}") +- execute_process(COMMAND ${GIT_EXECUTABLE} apply --check -p 1 --ignore-whitespace --whitespace=nowarn ${PATCH} +- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/llvm/src" +- ERROR_VARIABLE _err_out +- RESULT_VARIABLE git_apply_check_result) +- if(git_apply_check_result EQUAL "0") +- message(" Applying ${PATCH}") +- execute_process(COMMAND ${GIT_EXECUTABLE} apply -p 1 --ignore-whitespace --whitespace=nowarn ${PATCH} +- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/llvm/src" +- RESULT_VARIABLE git_apply_result) +- if(NOT git_apply_result EQUAL "0") +- message(FATAL_ERROR "Unable to apply ${PATCH}") +- endif() +- else() +- message(" Already applied ${PATCH}") +- endif() +- endforeach() +-else() +- message(FATAL_ERROR "Git not found!") +-endif() +- +-message("Building targets: ${LLVM_TARGETS_TO_BUILD}") +- +-set(LLVM_ENABLE_BINDINGS OFF) +-set(LLVM_ENABLE_OCAMLDOC OFF) +-set(LLVM_ENABLE_PIC OFF) +-set(LLVM_ENABLE_TERMINFO OFF) +-set(LLVM_ENABLE_WARNINGS OFF) +-set(LLVM_ENABLE_Z3_SOLVER OFF) +-set(LLVM_INCLUDE_BENCHMARKS OFF) +-set(LLVM_INCLUDE_TESTS OFF) +-set(LLVM_TOOL_REMARKS_SHLIB_BUILD OFF) +-set(LLVM_ENABLE_ZLIB OFF) +- +-if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Darwin") +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=10.14 -DUSE_SCHEDULER_SCALING_PTHREADS") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -mmacosx-version-min=10.14") +-endif() +- +-add_subdirectory(llvm/src/llvm)