From 1c09802fd645ef2bca0d048aaeb51faa1de38392 Mon Sep 17 00:00:00 2001 From: "Alex Xu (Hello71)" Date: Sat, 24 Apr 2021 16:26:30 -0400 Subject: dev-util/binaryen: new package --- dev-util/binaryen/Manifest | 1 + dev-util/binaryen/binaryen-101.ebuild | 35 +++++++++++ .../binaryen-undo-compile-flag-braindamage.patch | 68 ++++++++++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 dev-util/binaryen/Manifest create mode 100644 dev-util/binaryen/binaryen-101.ebuild create mode 100644 dev-util/binaryen/files/binaryen-undo-compile-flag-braindamage.patch diff --git a/dev-util/binaryen/Manifest b/dev-util/binaryen/Manifest new file mode 100644 index 0000000..b845750 --- /dev/null +++ b/dev-util/binaryen/Manifest @@ -0,0 +1 @@ +DIST binaryen-101.tar.gz 3760918 BLAKE2B 4407e8d9418f8d3186fb60c037bb519cd5ee0b56c879caa3e2a5c3122825487d22513a92029dac23b0fa507226ecadf6d3d81927732aad3163d38f18664c1929 SHA512 819105fda25e3ee51d8a858f73aabe018e6af584eb2afd5b7fe06ce165e39487d5ee6da23eec2c62d8dd1d87002b00ff8bd63e28bef388ac0fed72dfe7ae88f8 diff --git a/dev-util/binaryen/binaryen-101.ebuild b/dev-util/binaryen/binaryen-101.ebuild new file mode 100644 index 0000000..e03a08d --- /dev/null +++ b/dev-util/binaryen/binaryen-101.ebuild @@ -0,0 +1,35 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake + +DESCRIPTION="Compiler and toolchain infrastructure library for WebAssembly" +HOMEPAGE="https://github.com/WebAssembly/binaryen" +SRC_URI="https://github.com/WebAssembly/binaryen/archive/version_${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="test" + +# broken +RESTRICT="test" + +S="${WORKDIR}/binaryen-version_${PV}" + +PATCHES=(${FILESDIR}/binaryen-undo-compile-flag-braindamage.patch) + +src_configure() { + local mycmakeargs=( + -DENABLE_WERROR=no + -DBUILD_LLVM_DWARF=no + ) + cmake_src_configure +} + +src_test() { + cd "${BUILD_DIR}" || die + ${S}/check.py || die +} diff --git a/dev-util/binaryen/files/binaryen-undo-compile-flag-braindamage.patch b/dev-util/binaryen/files/binaryen-undo-compile-flag-braindamage.patch new file mode 100644 index 0000000..93a7b9a --- /dev/null +++ b/dev-util/binaryen/files/binaryen-undo-compile-flag-braindamage.patch @@ -0,0 +1,68 @@ +diff -ru a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2021-04-16 14:09:26.000000000 -0400 ++++ b/CMakeLists.txt 2021-04-24 09:48:11.792348791 -0400 +@@ -137,17 +137,6 @@ + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY${SUFFIX} "${PROJECT_BINARY_DIR}/lib") + endforeach() + +-option(BYN_ENABLE_LTO "Build with LTO" Off) +-if(BYN_ENABLE_LTO) +- if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") +- message(FATAL_ERROR "ThinLTO is only supported by clang") +- endif() +- if(NOT APPLE) +- add_link_flag("-fuse-ld=lld") +- endif() +- add_compile_flag("-flto=thin") +-endif() +- + if(MSVC) + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.0") # VS2013 and older explicitly need /arch:sse2 set, VS2015 no longer has that option, but always enabled. + add_compile_flag("/arch:sse2") +@@ -212,15 +201,6 @@ + set(CMAKE_THREAD_PREFER_PTHREAD ON) + find_package(Threads REQUIRED) + add_cxx_flag("-std=c++${CXX_STANDARD}") +- if(NOT EMSCRIPTEN) +- if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") +- # wasm doesn't allow for x87 floating point math +- add_compile_flag("-msse2") +- add_compile_flag("-mfpmath=sse") +- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[2-6]" AND NOT CMAKE_CXX_FLAGS MATCHES "-mfpu=") +- add_compile_flag("-mfpu=vfpv3") +- endif() +- endif() + add_compile_flag("-Wall") + if(ENABLE_WERROR) + add_compile_flag("-Werror") +@@ -244,14 +224,6 @@ + elseif(NOT EMSCRIPTEN) + add_compile_flag("-fPIC") + endif() +- add_debug_compile_flag("-O0") +- add_debug_compile_flag("-g3") +- if(EMSCRIPTEN) +- # really focus on minimizing output size when compiling sources +- add_nondebug_compile_flag("-Oz") +- else() +- add_nondebug_compile_flag("-O2") +- endif() + if(BYN_ENABLE_ASSERTIONS) + # On non-Debug builds cmake automatically defines NDEBUG, so we + # explicitly undefine it: +@@ -273,15 +245,6 @@ + add_nondebug_compile_flag("-flto") + endif() + +-# clang doesn't print colored diagnostics when invoked from Ninja +-if(UNIX AND CMAKE_GENERATOR STREQUAL "Ninja") +- if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") +- add_compile_flag("-fdiagnostics-color=always") +- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") +- add_compile_flag("-fcolor-diagnostics") +- endif() +-endif() +- + # Static libraries + # Current (partial) dependency structure is as follows: + # passes -> wasm -> asmjs -> support -- cgit v1.2.3