Gentoo Archives: gentoo-commits

From: Bernard Cafarelli <voyageur@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: gnustep-base/libobjc2/files/, gnustep-base/libobjc2/
Date: Thu, 03 Sep 2020 09:33:39
Message-Id: 1599125583.857dd9c2e19f23e46a0b3e9121eb417caa858693.voyageur@gentoo
1 commit: 857dd9c2e19f23e46a0b3e9121eb417caa858693
2 Author: Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
3 AuthorDate: Thu Sep 3 09:32:49 2020 +0000
4 Commit: Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
5 CommitDate: Thu Sep 3 09:33:03 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=857dd9c2
7
8 gnustep-base/libobjc2: 2.1 bump
9
10 Fixes quite a few bugs
11 Migrated to cmake eclass
12 No longer depends on libcxx
13
14 Package-Manager: Portage-3.0.5, Repoman-3.0.1
15 Signed-off-by: Bernard Cafarelli <voyageur <AT> gentoo.org>
16
17 gnustep-base/libobjc2/Manifest | 2 ++
18 .../files/libobjc2-2.1-eh_trampoline.patch | 27 ++++++++++++++
19 .../libobjc2/files/libobjc2-2.1-pthread_link.patch | 12 +++++++
20 gnustep-base/libobjc2/libobjc2-2.1.ebuild | 42 ++++++++++++++++++++++
21 4 files changed, 83 insertions(+)
22
23 diff --git a/gnustep-base/libobjc2/Manifest b/gnustep-base/libobjc2/Manifest
24 index a9afd544951..cfca9d8effe 100644
25 --- a/gnustep-base/libobjc2/Manifest
26 +++ b/gnustep-base/libobjc2/Manifest
27 @@ -1 +1,3 @@
28 +DIST 757de82.tar.gz 63372 BLAKE2B 74078c6c16d7ac1891ce63b21ae2f06c8759f3a95db74a6acef2d51d605a7631ac37b8c8698752699e5c30d2e95876b1967e6c2c429403f1094b6b99dd4d272c SHA512 732e7f5b4ec0dc18c0c7b2b567e4fd65727918db76863aabb4433db22630e1e3c5ba3063de6dcf32f099c0d8cfd70b0d811d59f73a2cda362f6bd7054d14f999
29 DIST libobjc2-2.0.tar.gz 191800 BLAKE2B 71f54b1410e20bb638dce4cae8c2cc48ea07acf31a97f1994587a9f6401b725ac393abaef355e9476ef6a0622d80fb6fbe4b3c7f39294e7bedbba17cd4108278 SHA512 2b72506204b8fea6a76688ee96611613c4b7cf98942acc89905c531f4dc997ae0482ff10fa819c2471df6c06d5ebcd251167d8903a4f18d47507cd42baec3748
30 +DIST libobjc2-2.1.tar.gz 200290 BLAKE2B 67cd78238afad9afa4311669403be06ec8d001978e997128acc67cdba9c2b18482f66af4597c4a484556ce38bbfc4416b1b1cb8cde1d8f27f3b4d744d4581309 SHA512 a93c385f9ad53fce0f736088c3a18e72119c0128690725e435a35fe4250830d13e18899f98c7d80e6ea41cbfe1404f055d9d6c3d891ad7c770d47dcd0244fc7f
31
32 diff --git a/gnustep-base/libobjc2/files/libobjc2-2.1-eh_trampoline.patch b/gnustep-base/libobjc2/files/libobjc2-2.1-eh_trampoline.patch
33 new file mode 100644
34 index 00000000000..c956d15fbd5
35 --- /dev/null
36 +++ b/gnustep-base/libobjc2/files/libobjc2-2.1-eh_trampoline.patch
37 @@ -0,0 +1,27 @@
38 +From 4e07fb8457266b76311b2bf3dc5dbe8db790c0b5 Mon Sep 17 00:00:00 2001
39 +From: David Chisnall <github@×××××××××××××.org>
40 +Date: Wed, 26 Aug 2020 16:37:06 +0100
41 +Subject: [PATCH] Don't use CXXFLAGS when compiling eh_trampoline.cc
42 +
43 +The way that we were doing this didn't handle multiple flags and we
44 +actually don't want the user to override these flags because that file
45 +needs to be compiled in a very specific way.
46 +
47 +Fixes #177
48 +---
49 + CMakeLists.txt | 2 +-
50 + 1 file changed, 1 insertion(+), 1 deletion(-)
51 +
52 +diff --git a/CMakeLists.txt b/CMakeLists.txt
53 +index e2746e9..80b7dfe 100644
54 +--- a/CMakeLists.txt
55 ++++ b/CMakeLists.txt
56 +@@ -317,7 +317,7 @@ if (ENABLE_OBJCXX)
57 + endif()
58 + endif ()
59 + add_custom_command(OUTPUT eh_trampoline.s
60 +- COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} -fPIC -S "${CMAKE_SOURCE_DIR}/eh_trampoline.cc" -o - -fexceptions -fno-inline | sed "s/__gxx_personality_v0/test_eh_personality/g" > "${CMAKE_BINARY_DIR}/eh_trampoline.s"
61 ++ COMMAND ${CMAKE_CXX_COMPILER} -fPIC -S "${CMAKE_SOURCE_DIR}/eh_trampoline.cc" -o - -fexceptions -fno-inline | sed "s/__gxx_personality_v0/test_eh_personality/g" > "${CMAKE_BINARY_DIR}/eh_trampoline.s"
62 + MAIN_DEPENDENCY eh_trampoline.cc)
63 + list(APPEND libobjc_ASM_SRCS eh_trampoline.s)
64 + list(APPEND libobjc_CXX_SRCS objcxx_eh.cc)
65
66 diff --git a/gnustep-base/libobjc2/files/libobjc2-2.1-pthread_link.patch b/gnustep-base/libobjc2/files/libobjc2-2.1-pthread_link.patch
67 new file mode 100644
68 index 00000000000..4d6f1d517db
69 --- /dev/null
70 +++ b/gnustep-base/libobjc2/files/libobjc2-2.1-pthread_link.patch
71 @@ -0,0 +1,12 @@
72 +diff -Naur libobjc2-2.1.orig/CMakeLists.txt libobjc2-2.1/CMakeLists.txt
73 +--- libobjc2-2.1.orig/CMakeLists.txt 2020-08-23 17:10:20.000000000 +0200
74 ++++ libobjc2-2.1/CMakeLists.txt 2020-09-03 10:51:38.716078009 +0200
75 +@@ -344,7 +344,7 @@
76 + # threading implementation (we do for everything except thread-local storage)
77 + set(CMAKE_THREAD_PREFER_PTHREAD)
78 + include(FindThreads)
79 +-set(objc_LINK_FLAGS "${objc_LINK_FLAGS} ${CMAKE_THREAD_LIBS_INIT}")
80 ++target_link_libraries(objc Threads::Threads)
81 +
82 +
83 +
84
85 diff --git a/gnustep-base/libobjc2/libobjc2-2.1.ebuild b/gnustep-base/libobjc2/libobjc2-2.1.ebuild
86 new file mode 100644
87 index 00000000000..98b36a4a4fa
88 --- /dev/null
89 +++ b/gnustep-base/libobjc2/libobjc2-2.1.ebuild
90 @@ -0,0 +1,42 @@
91 +# Copyright 1999-2020 Gentoo Authors
92 +# Distributed under the terms of the GNU General Public License v2
93 +
94 +EAPI=7
95 +inherit cmake
96 +
97 +DESCRIPTION="GNUstep Objective-C runtime"
98 +HOMEPAGE="http://www.gnustep.org"
99 +SRC_URI="https://github.com/gnustep/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
100 + https://github.com/Tessil/robin-map/archive/757de82.tar.gz"
101 +
102 +LICENSE="MIT"
103 +SLOT="0"
104 +KEYWORDS="~amd64 ~x86"
105 +IUSE="boehm-gc test"
106 +RESTRICT="!test? ( test )"
107 +
108 +RDEPEND="boehm-gc? ( dev-libs/boehm-gc )"
109 +BDEPEND="${RDEPEND}
110 + sys-devel/clang"
111 +
112 +PATCHES=(
113 + "${FILESDIR}"/${P}-eh_trampoline.patch
114 + "${FILESDIR}"/${P}-pthread_link.patch
115 +)
116 +
117 +src_prepare() {
118 + cmake_src_prepare
119 + cp -a "${WORKDIR}"/robin-map-757de829927489bee55ab02147484850c687b620/* \
120 + "${S}"/third_party/robin-map || die
121 +}
122 +
123 +src_configure() {
124 + export CC="clang"
125 + export CXX="clang++"
126 + local mycmakeargs=(
127 + -DGNUSTEP_CONFIG=GNUSTEP_CONFIG-NOTFOUND
128 + -DBOEHM_GC="$(usex boehm-gc)"
129 + -DTESTS="$(usex test)"
130 + )
131 + cmake_src_configure
132 +}