dtools: 2.106.1 -> 2.108.0
Current arm64 patch broke so I adapted it to apply on 2.108.1. The generic Makefile is now used instead of posix.mak which has been deprecated for quite a while now.
This commit is contained in:
parent
b01c88e620
commit
e85f7c6c9d
2 changed files with 105 additions and 8 deletions
102
pkgs/by-name/dt/dtools/fix-ldc-arm64.diff
Normal file
102
pkgs/by-name/dt/dtools/fix-ldc-arm64.diff
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/osmodel.mak
|
||||||
|
@@ -0,0 +1,75 @@
|
||||||
|
+# osmodel.mak
|
||||||
|
+#
|
||||||
|
+# Detects and sets the macros:
|
||||||
|
+#
|
||||||
|
+# OS = one of {osx,linux,freebsd,openbsd,netbsd,dragonflybsd,solaris}
|
||||||
|
+# MODEL = one of { 32, 64 }
|
||||||
|
+# MODEL_FLAG = one of { -m32, -m64 }
|
||||||
|
+# ARCH = one of { x86, x86_64, aarch64 }
|
||||||
|
+#
|
||||||
|
+# Note:
|
||||||
|
+# Keep this file in sync between druntime, phobos, and dmd repositories!
|
||||||
|
+# Source: https://github.com/dlang/dmd/blob/master/src/osmodel.mak
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ifeq (,$(OS))
|
||||||
|
+ uname_S:=$(shell uname -s)
|
||||||
|
+ ifeq (Darwin,$(uname_S))
|
||||||
|
+ OS:=osx
|
||||||
|
+ endif
|
||||||
|
+ ifeq (Linux,$(uname_S))
|
||||||
|
+ OS:=linux
|
||||||
|
+ endif
|
||||||
|
+ ifeq (FreeBSD,$(uname_S))
|
||||||
|
+ OS:=freebsd
|
||||||
|
+ endif
|
||||||
|
+ ifeq (OpenBSD,$(uname_S))
|
||||||
|
+ OS:=openbsd
|
||||||
|
+ endif
|
||||||
|
+ ifeq (NetBSD,$(uname_S))
|
||||||
|
+ OS:=netbsd
|
||||||
|
+ endif
|
||||||
|
+ ifeq (DragonFly,$(uname_S))
|
||||||
|
+ OS:=dragonflybsd
|
||||||
|
+ endif
|
||||||
|
+ ifeq (Solaris,$(uname_S))
|
||||||
|
+ OS:=solaris
|
||||||
|
+ endif
|
||||||
|
+ ifeq (SunOS,$(uname_S))
|
||||||
|
+ OS:=solaris
|
||||||
|
+ endif
|
||||||
|
+ ifeq (,$(OS))
|
||||||
|
+ $(error Unrecognized or unsupported OS for uname: $(uname_S))
|
||||||
|
+ endif
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+# When running make from XCode it may set environment var OS=MACOS.
|
||||||
|
+# Adjust it here:
|
||||||
|
+ifeq (MACOS,$(OS))
|
||||||
|
+ OS:=osx
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifeq (,$(MODEL))
|
||||||
|
+ ifeq ($(OS), solaris)
|
||||||
|
+ uname_M:=$(shell isainfo -n)
|
||||||
|
+ else
|
||||||
|
+ uname_M:=$(shell uname -m)
|
||||||
|
+ endif
|
||||||
|
+ ifneq (,$(findstring $(uname_M),x86_64 amd64))
|
||||||
|
+ MODEL:=64
|
||||||
|
+ ARCH:=x86_64
|
||||||
|
+ endif
|
||||||
|
+ ifneq (,$(findstring $(uname_M),aarch64 arm64))
|
||||||
|
+ MODEL:=64
|
||||||
|
+ ARCH:=aarch64
|
||||||
|
+ endif
|
||||||
|
+ ifneq (,$(findstring $(uname_M),i386 i586 i686))
|
||||||
|
+ MODEL:=32
|
||||||
|
+ ARCH:=x86
|
||||||
|
+ endif
|
||||||
|
+ ifeq (,$(MODEL))
|
||||||
|
+ $(error Cannot figure 32/64 model and arch from uname -m: $(uname_M))
|
||||||
|
+ endif
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+MODEL_FLAG:=-m$(MODEL)
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -9,9 +9,8 @@ DUB=dub
|
||||||
|
WITH_DOC = no
|
||||||
|
DOC = ../dlang.org
|
||||||
|
|
||||||
|
-# Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile from dmd
|
||||||
|
-$(shell [ ! -d $(DMD_DIR) ] && git clone --depth=1 https://github.com/dlang/dmd $(DMD_DIR))
|
||||||
|
-include $(DMD_DIR)/compiler/src/osmodel.mak
|
||||||
|
+# Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile
|
||||||
|
+include osmodel.mak
|
||||||
|
|
||||||
|
ifeq (windows,$(OS))
|
||||||
|
DOTEXE:=.exe
|
||||||
|
@@ -30,7 +29,7 @@ DFLAGS = $(MODEL_FLAG) $(if $(findstring windows,$(OS)),,-fPIC) -preview=dip1000
|
||||||
|
DFLAGS += $(WARNINGS)
|
||||||
|
|
||||||
|
# Default DUB flags (DUB uses a different architecture format)
|
||||||
|
-DUBFLAGS = --arch=$(subst 32,x86,$(subst 64,x86_64,$(MODEL)))
|
||||||
|
+DUBFLAGS = --arch=$(ARCH)
|
||||||
|
|
||||||
|
TOOLS = \
|
||||||
|
$(ROOT)/catdoc$(DOTEXE) \
|
|
@ -8,13 +8,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "dtools";
|
pname = "dtools";
|
||||||
version = "2.106.1";
|
version = "2.108.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "dlang";
|
owner = "dlang";
|
||||||
repo = "tools";
|
repo = "tools";
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-Y8jSwd6tldCnq3yEuO/xUYrSV+lp7tBPMiheMA06f0M=";
|
hash = "sha256-YEBUgJPG/+WN4MnQUNAVftZM0ULxZZzpHoOozXua46U=";
|
||||||
name = "dtools";
|
name = "dtools";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -22,18 +22,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
# Disable failing tests
|
# Disable failing tests
|
||||||
./disabled-tests.diff
|
./disabled-tests.diff
|
||||||
# Fix LDC arm64 build
|
# Fix LDC arm64 build
|
||||||
(fetchpatch {
|
./fix-ldc-arm64.diff
|
||||||
# part of https://github.com/dlang/tools/pull/441
|
|
||||||
url = "https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch";
|
|
||||||
hash = "sha256-x6EclTYN1Y5FG57KLhbBK0BZicSYcZoWO7MTVcP4T18=";
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ ldc ];
|
nativeBuildInputs = [ ldc ];
|
||||||
buildInputs = [ curl ];
|
buildInputs = [ curl ];
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = [
|
||||||
"-fposix.mak"
|
|
||||||
"CC=${stdenv.cc}/bin/cc"
|
"CC=${stdenv.cc}/bin/cc"
|
||||||
"DMD=${ldc.out}/bin/ldmd2"
|
"DMD=${ldc.out}/bin/ldmd2"
|
||||||
"INSTALL_DIR=$(out)"
|
"INSTALL_DIR=$(out)"
|
||||||
|
|
Loading…
Reference in a new issue