* [gentoo-commits] repo/user/dlang:master commit in: dev-lang/dmd/files/, profiles/, eclass/, dev-lang/dmd/
@ 2024-02-18 22:49 Horodniceanu Andrei
0 siblings, 0 replies; only message in thread
From: Horodniceanu Andrei @ 2024-02-18 22:49 UTC (permalink / raw
To: gentoo-commits
commit: 6704088e8bb795530c96a2a521000ec67ac47613
Author: Horodniceanu Andrei <a.horodniceanu <AT> proton <DOT> me>
AuthorDate: Sun Feb 18 22:06:55 2024 +0000
Commit: Horodniceanu Andrei <a.horodniceanu <AT> proton <DOT> me>
CommitDate: Sun Feb 18 22:42:26 2024 +0000
URL: https://gitweb.gentoo.org/repo/user/dlang.git/commit/?id=6704088e
dev-lang/dmd: add 2.107.0
Fix static libraries being built when USE=!static-libs.
Signed-off-by: Horodniceanu Andrei <a.horodniceanu <AT> proton.me>
dev-lang/dmd/Manifest | 1 +
dev-lang/dmd/dmd-2.107.0.ebuild | 17 +++++++++
.../dmd/files/2.107-druntime-support-DMD_DIR.patch | 15 ++++++++
.../2.107-phobos-change-DMD_DIR-meaning.patch | 43 ++++++++++++++++++++++
eclass/dlang-compilers.eclass | 1 +
eclass/dmd.eclass | 30 ++++++++++++++-
profiles/use.desc | 1 +
7 files changed, 106 insertions(+), 2 deletions(-)
diff --git a/dev-lang/dmd/Manifest b/dev-lang/dmd/Manifest
index 80dd434..0df2c9c 100644
--- a/dev-lang/dmd/Manifest
+++ b/dev-lang/dmd/Manifest
@@ -4,3 +4,4 @@ DIST dmd.2.103.1.linux.tar.xz 22747324 BLAKE2B b00f41b4ab48be9c5467342314995e693
DIST dmd.2.104.2.linux.tar.xz 22478264 BLAKE2B 6af63d7a5c976ae251bb16d4b48fc354d429730d00ef33a1f81ef4ec9e491486f49e120c376b2c26f3e57a13f956ccf2c31d1511f4d59db399ae613aa62ec785 SHA512 a0e6bb94887950977743545a908d80d040b2a69c48139164f61c591d1678399636538c75c1aba4d9c25cc163ee60023872f6a50c8b84cc6c09394d33c66c1367
DIST dmd.2.105.3.linux.tar.xz 22582468 BLAKE2B bbff951452a3fa0ba8fd30ad4a24720ee2df9538abf123931366f4c596e2a224d2a3792e9d03370f3a285bf3b4f29b126b49a88874da912ea862da8eaf0d5d73 SHA512 6dc46d1d84cac5964eb0027cdae656525601e4e16ecaba8540f7f403182696300c2293e3971886fff6ad966bd440243acd5a1824a66638c8a09f584476b825a8
DIST dmd.2.106.1.linux.tar.xz 22778396 BLAKE2B 66ff621beed21ef4fada3562380fe000d57aa7ca962c53b0b4c18520a47a76a9c405fe7074d17e2882e03313cdef47c67e6f690442e8f6ada8baf8e1589a4579 SHA512 2f287c1774196ad35d48288eef0ab87670b3b470ebd4b4707388197fc79ccbc9af0c6e839b9ffd3d2f3f06624fabbedb9bf4fc1c0a670a2131f700be572a244f
+DIST dmd.2.107.0.linux.tar.xz 22438472 BLAKE2B 551b2a723256b61b4c07fe44ace55c91c92f796fbd67aa5012c0efa9cb8c79010c1dcd9039dd85a19cb3c09163221792c1eb2200ecc6c1c9d74019df717f6fd1 SHA512 888369938fbf6dbcaf0c534ed899ffe055cef363e47282374fd45a3a702d97f96a7c7ce9a55a199915e5cc86e4b78ff86fccbd6334c4a4f1a940be5fa2872d11
diff --git a/dev-lang/dmd/dmd-2.107.0.ebuild b/dev-lang/dmd/dmd-2.107.0.ebuild
new file mode 100644
index 0000000..56938d4
--- /dev/null
+++ b/dev-lang/dmd/dmd-2.107.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+KEYWORDS="-* ~amd64 ~x86"
+YEAR=2024
+DLANG_VERSION_RANGE="2.100-2.107"
+
+inherit dmd
+
+PATCHES=(
+ "${FILESDIR}/2.105-link-32-bit-shared-lib-with-ld.bfd.patch"
+ # See https://github.com/dlang/phobos/pull/8820
+ "${FILESDIR}/2.107-phobos-change-DMD_DIR-meaning.patch"
+ "${FILESDIR}/2.107-druntime-support-DMD_DIR.patch"
+)
diff --git a/dev-lang/dmd/files/2.107-druntime-support-DMD_DIR.patch b/dev-lang/dmd/files/2.107-druntime-support-DMD_DIR.patch
new file mode 100644
index 0000000..0c920ce
--- /dev/null
+++ b/dev-lang/dmd/files/2.107-druntime-support-DMD_DIR.patch
@@ -0,0 +1,15 @@
+diff --git a/druntime/Makefile b/druntime/Makefile
+index 50e4104..ddffc78 100644
+--- a/druntime/Makefile
++++ b/druntime/Makefile
+@@ -17,8 +17,9 @@ QUIET:=
+
+ DUB=dub
+ TOOLS_DIR=../../tools
++DMD_DIR=../
+
+-include ../compiler/src/osmodel.mak
++include $(DMD_DIR)/src/osmodel.mak
+
+ ifeq (windows,$(OS))
+ DOTEXE:=.exe
diff --git a/dev-lang/dmd/files/2.107-phobos-change-DMD_DIR-meaning.patch b/dev-lang/dmd/files/2.107-phobos-change-DMD_DIR-meaning.patch
new file mode 100644
index 0000000..d7c1e22
--- /dev/null
+++ b/dev-lang/dmd/files/2.107-phobos-change-DMD_DIR-meaning.patch
@@ -0,0 +1,43 @@
+diff --git a/phobos/Makefile b/phobos/Makefile
+index 9f5267e..9b1c1e2 100644
+--- a/phobos/Makefile
++++ b/phobos/Makefile
+@@ -37,9 +37,9 @@ QUIET:=@
+
+ DEBUGGER=gdb
+ GIT_HOME=https://github.com/dlang
+-DMD_DIR=../dmd
++DMD_DIR=../dmd/compiler
+
+-include $(DMD_DIR)/compiler/src/osmodel.mak
++include $(DMD_DIR)/src/osmodel.mak
+
+ ifeq (windows,$(OS))
+ DOTEXE:=.exe
+@@ -80,7 +80,7 @@ endif
+
+ # Configurable stuff that's rarely edited
+ INSTALL_DIR = ../install
+-DRUNTIME_PATH = $(DMD_DIR)/druntime
++DRUNTIME_PATH = $(DMD_DIR)/../druntime
+ DLANG_ORG_DIR = ../dlang.org
+ ZIPFILE = phobos.zip
+ ROOT_OF_THEM_ALL = generated
+@@ -107,7 +107,7 @@ ifeq ($(OS),win32wine)
+ DMD = wine dmd.exe
+ RUN = wine
+ else
+- DMD = $(DMD_DIR)/generated/$(OS)/$(BUILD)/$(MODEL)/dmd$(DOTEXE)
++ DMD = $(DMD_DIR)/../generated/$(OS)/$(BUILD)/$(MODEL)/dmd$(DOTEXE)
+ ifeq ($(MODEL),32omf)
+ CC = dmc
+ else ifeq ($(OS),windows)
+@@ -186,7 +186,7 @@ LINKDL:=$(if $(findstring $(OS),linux),-L-ldl,)
+ TIMELIMIT:=$(if $(shell which timelimit 2>/dev/null || true),timelimit -t 90 ,)
+
+ # Set VERSION, where the file is that contains the version string
+-VERSION=$(DMD_DIR)/VERSION
++VERSION=$(DMD_DIR)/../VERSION
+
+ # Set LIB, the ultimate target
+ ifeq (,$(findstring win,$(OS)))
diff --git a/eclass/dlang-compilers.eclass b/eclass/dlang-compilers.eclass
index cfe18f8..6249824 100644
--- a/eclass/dlang-compilers.eclass
+++ b/eclass/dlang-compilers.eclass
@@ -30,6 +30,7 @@ dlang-compilers_declare_versions() {
["2.104"]="2.104 x86 amd64"
["2.105"]="2.105 x86 amd64"
["2.106"]="2.106 x86 amd64"
+ ["2.107"]="2.107 ~x86 ~amd64"
)
# GDC (hppa, sparc: masked "d" USE-flag)
diff --git a/eclass/dmd.eclass b/eclass/dmd.eclass
index 52e4209..fb57d19 100644
--- a/eclass/dmd.eclass
+++ b/eclass/dmd.eclass
@@ -217,12 +217,38 @@ dmd_src_compile() {
CC="$(tc-getCC)"
DMD_DIR=../dmd
)
+ # <2.107 use posix.mak, >=dmd-2.107 use Makefile
+ ! dmd_ge 2.107 && mymakeargs+=(-f posix.mak)
+
+ local druntimeMakeArgs=(
+ MANIFEST=
+ )
+ local phobosMakeArgs=(
+ CUSTOM_DRUNTIME=1
+ DRUNTIME_PATH=../druntime
+ )
+ # Let's try to specify the build args to avoid building both
+ # shared+static libraries with !static-libs. Do this only for
+ # >=2.107, if it's useful backport the improvements later.
+ if dmd_ge 2.107; then
+ phobosMakeArgs=( $(usex static-libs 'lib dll' 'dll') )
+ # druntime's notion of a shared library is a static archive
+ # that is embedded into the phobos shared library.
+ #
+ # Technically there is the dll_so target which is the proper
+ # so file but who's gonna use it? Perhaps if phobos would
+ # not incorporate druntime we could install them as separate
+ # libraries (like ldc2 and gdc).
+ druntimeMakeArgs=( $(usex static-libs 'lib dll' 'dll') )
+ # Either way, now we no longer build static-libs
+ # indiscriminately.
+ fi
einfo 'Building druntime...'
- emake -C druntime -f posix.mak "${mymakeargs[@]}" MANIFEST=
+ emake -C druntime "${mymakeargs[@]}" "${druntimeMakeArgs[@]}"
einfo 'Building Phobos 2...'
- emake -C phobos -f posix.mak "${mymakeargs[@]}" CUSTOM_DRUNTIME=1 DRUNTIME_PATH=../druntime
+ emake -C phobos "${mymakeargs[@]}" "${phobosMakeArgs[@]}"
}
dmd_foreach_abi compile_libraries
diff --git a/profiles/use.desc b/profiles/use.desc
index 3e5463d..eb8b622 100644
--- a/profiles/use.desc
+++ b/profiles/use.desc
@@ -4,6 +4,7 @@ dmd-2_103 - Build for DMD 2.103
dmd-2_104 - Build for DMD 2.104
dmd-2_105 - Build for DMD 2.105
dmd-2_106 - Build for DMD 2.106
+dmd-2_107 - Build for DMD 2.107
gdc-11 - Build for GCC 11
gdc-12 - Build for GCC 12
gdc-13 - Build for GCC 13
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2024-02-18 22:49 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-18 22:49 [gentoo-commits] repo/user/dlang:master commit in: dev-lang/dmd/files/, profiles/, eclass/, dev-lang/dmd/ Horodniceanu Andrei
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox