public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/mono/files/, dev-lang/mono/
Date: Sat,  9 Dec 2023 18:11:04 +0000 (UTC)	[thread overview]
Message-ID: <1702145159.6b4bcffa3bccaf8ba8c99c65bd9dbd1f445b196d.sam@gentoo> (raw)

commit:     6b4bcffa3bccaf8ba8c99c65bd9dbd1f445b196d
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Dec  9 15:27:04 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Dec  9 18:05:59 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b4bcffa

dev-lang/mono: fix modern C issue in configure

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../mono/files/mono-6.12.0.199-configure-c99.patch |  51 ++++++++
 dev-lang/mono/mono-6.12.0.199-r2.ebuild            | 130 +++++++++++++++++++++
 2 files changed, 181 insertions(+)

diff --git a/dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch b/dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch
new file mode 100644
index 000000000000..3018dbe8339c
--- /dev/null
+++ b/dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch
@@ -0,0 +1,51 @@
+https://github.com/mono/mono/pull/21730
+
+From 90315aa24569d13da93230ac2d3e5ec3c96f35b4 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Sat, 9 Dec 2023 00:06:09 +0100
+Subject: [PATCH] configure: Fix type errors in __thread test
+
+The thread start routine must return void *, and int and void *
+are distinct types.  Compilers increasingly issue errors instead
+of warnings for such type errors, and this causes the configure
+probe to fail unconditionally, even if the system supports
+__thread variables.
+---
+ configure.ac | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index dbc4904d9b2e4..7518439118e37 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2831,14 +2831,16 @@ if test x$host_win32 = xno; then
+ 			__thread int i;
+ 			static int res1, res2;
+ 
+-			void thread_main (void *arg)
++			void *thread_main (void *parg)
+ 			{
++				int arg = *(int *)parg;
+ 				i = arg;
+ 				sleep (1);
+ 				if (arg == 1)
+ 					res1 = (i == arg);
+ 				else
+ 					res2 = (i == arg);
++				return NULL;
+ 			}
+ 
+ 			int main () {
+@@ -2846,8 +2848,10 @@ if test x$host_win32 = xno; then
+ 
+ 				i = 5;
+ 
+-				pthread_create (&t1, NULL, thread_main, 1);
+-				pthread_create (&t2, NULL, thread_main, 2);
++				int one = 1;
++				pthread_create (&t1, NULL, thread_main, &one);
++				int two = 2;
++				pthread_create (&t2, NULL, thread_main, &two);
+ 
+ 				pthread_join (t1, NULL);
+ 				pthread_join (t2, NULL);

diff --git a/dev-lang/mono/mono-6.12.0.199-r2.ebuild b/dev-lang/mono/mono-6.12.0.199-r2.ebuild
new file mode 100644
index 000000000000..f18742acabed
--- /dev/null
+++ b/dev-lang/mono/mono-6.12.0.199-r2.ebuild
@@ -0,0 +1,130 @@
+# 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
+	"${FILESDIR}"/${PN}-6.12.0.199-configure-c99.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
+}


             reply	other threads:[~2023-12-09 18:11 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-09 18:11 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-01-13  1:42 [gentoo-commits] repo/gentoo:master commit in: dev-lang/mono/files/, dev-lang/mono/ Sam James
2018-06-26 14:30 Mikhail Pukhlikov
2018-03-30 17:26 Sergei Trofimovich
2016-12-01 22:05 Sergei Trofimovich
2016-11-30 22:58 Sergei Trofimovich
2015-12-10  8:07 Heather Cynede
2015-08-12 14:00 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=1702145159.6b4bcffa3bccaf8ba8c99c65bd9dbd1f445b196d.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