public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "罗百科" <patrick@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: games-board/stockfish/
Date: Thu,  4 Jan 2024 15:46:52 +0000 (UTC)	[thread overview]
Message-ID: <1704383208.804b980d2d3c5c257ff0ebbb4603e6418e2861c5.patrick@gentoo> (raw)

commit:     804b980d2d3c5c257ff0ebbb4603e6418e2861c5
Author:     Patrick Lauer <patrick <AT> gentoo <DOT> org>
AuthorDate: Thu Jan  4 15:45:07 2024 +0000
Commit:     罗百科 <patrick <AT> gentoo <DOT> org>
CommitDate: Thu Jan  4 15:46:48 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=804b980d

games-board/stockfish: Enable avx512 support

Signed-off-by: Patrick Lauer <patrick <AT> gentoo.org>

 games-board/stockfish/stockfish-16-r1.ebuild | 83 ++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

diff --git a/games-board/stockfish/stockfish-16-r1.ebuild b/games-board/stockfish/stockfish-16-r1.ebuild
new file mode 100644
index 000000000000..a6734bf75de8
--- /dev/null
+++ b/games-board/stockfish/stockfish-16-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Free UCI chess engine, claimed to be the strongest in the world"
+HOMEPAGE="https://stockfishchess.org/"
+
+NNUE_FILE="nn-5af11540bbfe.nnue"
+
+SRC_URI="https://github.com/official-stockfish/Stockfish/archive/sf_${PV}.tar.gz -> ${P}.tar.gz
+	https://tests.stockfishchess.org/api/nn/${NNUE_FILE} -> ${P}-${NNUE_FILE}"
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~riscv ~x86"
+IUSE="cpu_flags_arm_v7 cpu_flags_x86_avx2 cpu_flags_x86_popcnt cpu_flags_x86_sse cpu_flags_x86_avx512f
+	cpu_flags_x86_avx512dq debug general-32 general-64 +optimize"
+
+DEPEND="|| ( app-arch/unzip app-arch/zip )"
+RDEPEND=""
+
+S="${WORKDIR}/Stockfish-sf_${PV}/src"
+
+src_prepare() {
+	default
+
+	# remove config sanity check that doesn't like our COMPILER settings
+	sed -i -e 's/ config-sanity//g' Makefile || die
+
+	cp "${DISTDIR}"/${P}-${NNUE_FILE} ${NNUE_FILE} || die "copying the nnue file failed"
+
+	# prevent pre-stripping
+	sed -e 's:-strip $(BINDIR)/$(EXE)::' -i Makefile \
+		|| die 'failed to disable stripping in the Makefile'
+
+	# Makefile is a bit optimistic
+	sed -e 's:-flto=full:-flto:g' -i Makefile || die
+}
+
+src_compile() {
+	local my_arch
+
+	# generic unoptimized first
+	use general-32 && my_arch=general-32
+	use general-64 && my_arch=general-64
+
+	# x86
+	use x86 && my_arch=x86-32-old
+	use cpu_flags_x86_sse && my_arch=x86-32
+
+	# amd64
+	use amd64 && my_arch=x86-64
+	use cpu_flags_x86_popcnt && my_arch=x86-64-modern
+
+	# both bmi2 and avx2 are part of hni (haswell new instructions)
+	use cpu_flags_x86_avx2 && my_arch=x86-64-bmi2
+
+	# avx512
+	# we currently can't express  'avx512vnni' 'avx512dq' 'avx512f' 'avx512bw' 'avx512vl'
+	# so only enable basic support
+	use cpu_flags_x86_avx512f && use cpu_flags_x86_avx512dq && my_arch=x86-64-avx512
+
+	# other architectures
+	use cpu_flags_arm_v7 && my_arch=armv7
+	use ppc && my_arch=ppc
+	use ppc64 && my_arch=ppc64
+
+	# There's a nice hack in the Makefile that overrides the value of CXX with
+	# COMPILER to support Travis CI and we abuse it to make sure that we
+	# build with our compiler of choice.
+	emake profile-build ARCH="${my_arch}" \
+		COMP="$(tc-getCXX)" \
+		COMPILER="$(tc-getCXX)" \
+		debug=$(usex debug "yes" "no") \
+		optimize=$(usex optimize "yes" "no")
+}
+
+src_install() {
+	dobin "${PN}"
+	dodoc ../AUTHORS ../README.md
+}


             reply	other threads:[~2024-01-04 15:46 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-04 15:46 罗百科 [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-11-23 16:54 [gentoo-commits] repo/gentoo:master commit in: games-board/stockfish/ Sam James
2024-10-27  4:05 Sam James
2024-10-27  2:53 Sam James
2024-09-13 14:25 Patrick Lauer
2024-08-02  8:03 Matthias Maier
2024-07-04  4:55 Matthias Maier
2024-02-25  7:51 Patrick Lauer
2024-02-25  7:51 Patrick Lauer
2024-02-25  7:51 Patrick Lauer
2023-11-15  5:24 Sam James
2023-07-01 16:34 罗百科
2023-06-04 10:54 WANG Xuerui
2022-12-06 16:23 罗百科
2022-09-30 11:51 Agostino Sarubbo
2022-09-29 19:59 Sam James
2022-04-20 16:51 罗百科
2022-04-20  8:02 罗百科
2022-03-20  0:26 Sam James
2021-10-30  7:11 罗百科
2021-07-03 19:06 罗百科
2021-05-17  7:49 Agostino Sarubbo
2021-05-17  7:47 Agostino Sarubbo
2021-03-01  0:40 Matthias Maier
2021-03-01  0:40 Matthias Maier
2020-02-28  2:00 Matthias Maier
2020-02-28  1:17 Matthias Maier
2020-02-28  1:17 Matthias Maier
2020-02-28  1:17 Matthias Maier
2019-07-02 11:56 Agostino Sarubbo
2019-07-02 10:33 Agostino Sarubbo
2019-06-20 18:02 Sergei Trofimovich
2018-06-11 16:28 Aaron Bauman
2017-01-27  9:07 Agostino Sarubbo
2017-01-27  9:02 Agostino Sarubbo
2017-01-26 19:48 Matthias Maier
2016-11-17  5:20 Matthias Maier
2016-11-17  5:20 Matthias Maier
2016-08-25  0:03 Michael Orlitzky
2016-07-07 19:48 Austin English
2016-05-28 10:52 Pacho Ramos

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=1704383208.804b980d2d3c5c257ff0ebbb4603e6418e2861c5.patrick@gentoo \
    --to=patrick@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