From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/mono/
Date: Mon, 4 Dec 2023 08:33:13 +0000 (UTC) [thread overview]
Message-ID: <1701678780.619727ef09e9464f656c4d95d4fd9f6fb966fc38.sam@gentoo> (raw)
commit: 619727ef09e9464f656c4d95d4fd9f6fb966fc38
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 4 08:11:09 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Dec 4 08:33:00 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=619727ef
dev-lang/mono: filter LTO unconditionally, force -O2, no strict aliasing
It's somewhat of a miracle mono works at all nowadays, especially given
all the scary warnings, so force a conservative build.
Bug: https://bugs.gentoo.org/915985
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-lang/mono/mono-6.12.0.199-r1.ebuild | 129 ++++++++++++++++++++++++++++++++
1 file changed, 129 insertions(+)
diff --git a/dev-lang/mono/mono-6.12.0.199-r1.ebuild b/dev-lang/mono/mono-6.12.0.199-r1.ebuild
new file mode 100644
index 000000000000..204593665083
--- /dev/null
+++ b/dev-lang/mono/mono-6.12.0.199-r1.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CHECKREQS_DISK_BUILD="4500M"
+inherit autotools check-reqs flag-o-matic linux-info mono-env pax-utils multilib-minimal
+
+DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter"
+HOMEPAGE="https://mono-project.com"
+SRC_URI="https://download.mono-project.com/sources/mono/${P}.tar.xz"
+
+LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 -riscv ~x86 ~amd64-linux"
+IUSE="doc minimal nls pax-kernel selinux xen"
+
+# Note: mono works incorrect with older versions of libgdiplus
+# Details on dotnet overlay issue: https://github.com/gentoo/dotnet/issues/429
+DEPEND="
+ app-crypt/mit-krb5[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ ia64? ( sys-libs/libunwind )
+ !minimal? ( >=dev-dotnet/libgdiplus-6.0.2 )
+ nls? ( sys-devel/gettext )
+"
+RDEPEND="
+ ${DEPEND}
+ app-misc/ca-certificates
+ selinux? ( sec-policy/selinux-mono )
+"
+# CMake is used for bundled deps
+BDEPEND="
+ dev-util/cmake
+ sys-devel/bc
+ app-alternatives/yacc
+ pax-kernel? ( sys-apps/elfix )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.12-try-catch.patch
+ "${FILESDIR}"/${PN}-6.12.0.122-disable-automagic-ccache.patch
+)
+
+pkg_pretend() {
+ linux-info_pkg_setup
+
+ if use kernel_linux ; then
+ if linux_config_exists ; then
+ linux_chkconfig_builtin SYSVIPC || die "SYSVIPC not enabled in the kernel"
+ else
+ # https://github.com/gentoo/gentoo/blob/f200e625bda8de696a28338318c9005b69e34710/eclass/linux-info.eclass#L686
+ ewarn "kernel config not found"
+ ewarn "If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling."
+ ewarn "See https://bugs.gentoo.org/261869 for more info."
+ fi
+ fi
+
+ # bug #687892
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ mono-env_pkg_setup
+ check-reqs_pkg_setup
+}
+
+src_prepare() {
+ # We need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it don't
+ # get killed in the build proces when MPROTECT is enabled, bug #286280
+ # RANDMMAP kills the build process too, bug #347365
+ # We use paxmark.sh to get PT/XT logic, bug #532244
+ if use pax-kernel ; then
+ ewarn "We are disabling MPROTECT on the mono binary."
+
+ # issue 9 : https://github.com/Heather/gentoo-dotnet/issues/9
+ sed '/exec "/ i\paxmark.sh -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in"
+ fi
+
+ default
+
+ # PATCHES contains configure.ac patch
+ eautoreconf
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # Many, many unsafe warnings. Miscompiled with -O3 too: bug #915985.
+ append-flags -O2 -fno-strict-aliasing
+ filter-lto
+
+ local myeconfargs=(
+ $(use_with xen xen_opt)
+ --without-ikvm-native
+ --disable-dtrace
+ --enable-system-aot
+ $(multilib_native_use_with doc mcs-docs)
+ $(use_enable nls)
+ )
+
+ # Workaround(?) for bug #779025
+ # May be able to do a real fix by adjusting path used?
+ if multilib_is_native_abi ; then
+ myeconfargs+=( --enable-system-aot )
+ else
+ myeconfargs+=( --disable-system-aot )
+ fi
+
+ econf "${myeconfargs[@]}"
+}
+
+multilib_src_test() {
+ emake -C mcs/tests check
+}
+
+multilib_src_install() {
+ default
+
+ # Remove files not respecting LDFLAGS and that we are not supposed to provide, see Fedora
+ # mono.spec and http://www.mail-archive.com/mono-devel-list@lists.ximian.com/msg24870.html
+ # for reference.
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mscorlib.dll.so || die
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mcs.exe.so || die
+}
+
+pkg_postinst() {
+ # bug #762265
+ cert-sync "${EROOT}"/etc/ssl/certs/ca-certificates.crt
+}
next reply other threads:[~2023-12-04 8:33 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-04 8:33 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-03-02 4:39 [gentoo-commits] repo/gentoo:master commit in: dev-lang/mono/ Sam James
2024-02-27 10:32 Joonas Niilola
2024-02-27 10:32 Joonas Niilola
2023-10-10 9:04 Joonas Niilola
2023-10-10 7:09 Joonas Niilola
2023-09-04 14:06 Andrew Ammerlaan
2023-07-26 2:53 Sam James
2023-06-28 7:19 Sam James
2023-06-17 2:59 Sam James
2023-06-17 2:25 Sam James
2023-06-07 4:10 Sam James
2021-04-29 0:38 Sam James
2021-04-26 10:34 Sam James
2021-03-29 20:59 Sam James
2021-03-28 4:21 Sam James
2021-03-28 4:21 Sam James
2021-03-28 4:21 Sam James
2021-03-28 4:21 Sam James
2020-08-03 12:34 Mikhail Pukhlikov
2020-07-03 23:22 Aaron Bauman
2020-03-31 8:28 Mikle Kolyada
2020-03-27 16:31 Agostino Sarubbo
2019-12-13 9:06 Mikhail Pukhlikov
2019-10-07 13:42 Mikhail Pukhlikov
2019-09-16 10:20 Mikhail Pukhlikov
2019-07-27 12:54 Aaron Bauman
2019-07-22 6:43 Mikhail Pukhlikov
2019-06-10 7:00 Mikhail Pukhlikov
2019-06-09 2:08 Aaron Bauman
2019-06-07 11:37 Mikhail Pukhlikov
2019-04-22 13:48 Mikhail Pukhlikov
2019-03-19 12:15 Mikhail Pukhlikov
2019-03-05 14:03 Mikhail Pukhlikov
2019-02-14 7:05 Mikhail Pukhlikov
2019-02-01 12:23 Mikhail Pukhlikov
2019-01-09 15:16 Mikhail Pukhlikov
2018-12-07 22:06 Anthony G. Basile
2018-12-05 14:30 Mikhail Pukhlikov
2018-10-12 7:27 Sergei Trofimovich
2018-10-11 6:42 Mikhail Pukhlikov
2018-08-09 9:18 Mikhail Pukhlikov
2018-07-02 6:47 Mikhail Pukhlikov
2018-05-25 21:13 Mikle Kolyada
2018-05-08 6:37 Mikhail Pukhlikov
2018-04-20 0:25 Aaron Bauman
2018-04-03 19:20 Aaron Bauman
2017-06-26 10:21 Alexis Ballier
2017-04-02 14:14 Mikhail Pukhlikov
2017-03-01 12:01 Mikhail Pukhlikov
2017-01-24 10:35 Mikhail Pukhlikov
2017-01-11 10:10 Mikhail Pukhlikov
2016-12-23 11:04 Mikhail Pukhlikov
2016-12-08 10:23 Mikhail Pukhlikov
2016-11-30 8:52 Mikhail Pukhlikov
2016-11-30 2:13 Matt Thode
2016-11-24 7:16 Mikhail Pukhlikov
2016-11-10 8:28 Mikhail Pukhlikov
2016-10-25 19:49 Mikhail Pukhlikov
2016-10-07 20:29 Mikhail Pukhlikov
2016-09-29 12:35 Agostino Sarubbo
2016-09-26 12:32 Mikhail Pukhlikov
2016-08-25 17:39 Mikhail Pukhlikov
2016-08-15 7:26 Mikhail Pukhlikov
2016-07-29 20:09 Mikhail Pukhlikov
2016-07-29 20:09 Mikhail Pukhlikov
2016-07-28 14:08 Agostino Sarubbo
2016-07-28 8:43 Agostino Sarubbo
2016-07-08 18:50 Heather Cynede
2016-05-10 6:41 Heather Cynede
2016-03-25 15:28 Manuel Rüger
2016-02-06 22:14 Manuel Rüger
2015-12-22 9:09 Jason Zaman
2015-12-22 8:16 Heather Cynede
2015-11-25 22:37 Manuel Rüger
2015-11-23 11:36 Jason Zaman
2015-08-17 9:20 Heather Cynede
2015-08-16 8:01 Heather Cynede
2015-08-13 9:14 Heather Cynede
2015-08-12 14:05 Heather Cynede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1701678780.619727ef09e9464f656c4d95d4fd9f6fb966fc38.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox