Content-Length: 725557 | pFad | http://github.com/DragonFlyBSD/DeltaPorts/commit/4d0133642e68922a24ceb37d14e03dedf344cfbd

CC [NEW PORT] d-lang reference compiler · DragonFlyBSD/DeltaPorts@4d01336 · GitHub
Skip to content

Commit 4d01336

Browse files
committed
[NEW PORT] d-lang reference compiler
Updated to 2.089.0 Depends on: - ldc or gdc for bootstrapping (druntime >2.079.1). Once initial bootstrap is done, it can use it-self for subsequent builds. - USES=dlang will automatically take care of the bootstrap if no (compatible) d-compiler is found. dependencies: - lang/ldc (Separate commit/PR) or lang/gdc (Separate commit/PR) - Mk/Uses/dlang.mk (Separate commit/PR) provides USES=dlang MAINTAINER: ddegroot@talon.nl Signed-off-by: ddegroot <ddegroot@talon.nl>
1 parent 6aee0c5 commit 4d01336

File tree

9 files changed

+870
-0
lines changed

9 files changed

+870
-0
lines changed

ports/lang/dmd2/STATUS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
PORT

ports/lang/dmd2/diffs/REMOVE

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Makefile
2+
distinfo
3+
pkg-plist
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
--- druntime/src/core/sys/dragonflybsd/dlfcn.d 2019-11-19 00:00:19.501296000 -0800
2+
+++ druntime/src/core/sys/dragonflybsd/dlfcn.d 2019-11-19 00:01:29.490870000 -0800
3+
@@ -90,8 +90,10 @@
4+
/* XSI functions first. */
5+
static assert(is(typeof(&dlclose) == __externC!(int, void*)));
6+
static assert(is(typeof(&dlerror) == __externC!(char*)));
7+
-static assert(is(typeof(&dlopen) == __externC!(void*, const char*, int)));
8+
-static assert(is(typeof(&dlsym) == __externC!(void*, void*, const char*)));
9+
+//static assert(is(typeof(&dlopen) == __externC!(void*, const char*, int)));
10+
+static assert(is(typeof(&dlopen) == void* function(scope const(char*), int) nothrow @nogc ));
11+
+//static assert(is(typeof(&dlsym) == __externC!(void*, void*, const char*)));
12+
+static assert(is(typeof(&dlsym) == void* function(void *, scope const(char*)) nothrow @nogc));
13+
14+
void* fdlopen(int, int);
15+
int dladdr(const(void)*, Dl_info*);
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# PR https://github.com/dlang/druntime/pull/2850 (accepted)
2+
--- druntime/src/core/sys/posix/locale.d 2019-10-29 01:26:55.000000000 -0700
3+
+++ druntime/src/core/sys/posix/locale.d 2019-11-19 00:06:59.548858000 -0800
4+
@@ -22,7 +22,7 @@
5+
version = OSXBSDLocale;
6+
version (NetBSD)
7+
version = OSXBSDLocale;
8+
-version (DragonflyBSD)
9+
+version (DragonFlyBSD)
10+
version = OSXBSDLocale;
11+
12+
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
--- phobos/std/file.d 2019-06-30 13:05:22.802439000 -0700
2+
+++ phobos/std/file.d 2019-06-30 13:06:49.058711000 -0700
3+
@@ -3437,7 +3437,7 @@
4+
else version (FreeBSD)
5+
private extern (C) int sysctl (const int* name, uint namelen, void* oldp,
6+
size_t* oldlenp, const void* newp, size_t newlen);
7+
-else version (NetBSD)
8+
+else version (DragonFlyBSD)
9+
private extern (C) int sysctl (const int* name, uint namelen, void* oldp,
10+
size_t* oldlenp, const void* newp, size_t newlen);
11+
12+
@@ -3524,7 +3524,25 @@
13+
}
14+
else version (DragonFlyBSD)
15+
{
16+
- return readLink("/proc/curproc/file");
17+
+ import std.exception : errnoEnforce, assumeUnique;
18+
+ enum
19+
+ {
20+
+ CTL_KERN = 1,
21+
+ KERN_PROC = 14,
22+
+ KERN_PROC_PATHNAME = 9
23+
+ }
24+
+
25+
+ int[4] mib = [CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1];
26+
+ size_t len;
27+
+
28+
+ auto result = sysctl(mib.ptr, mib.length, null, &len, null, 0); // get the length of the path
29+
+ errnoEnforce(result == 0);
30+
+
31+
+ auto buffer = new char[len - 1];
32+
+ result = sysctl(mib.ptr, mib.length, buffer.ptr, &len, null, 0);
33+
+ errnoEnforce(result == 0);
34+
+
35+
+ return buffer.assumeUnique;
36+
}
37+
else version (Solaris)
38+
{

ports/lang/dmd2/newport/Makefile

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
# Created by: Diederik de Groot <ddegroot@talon.nl>
2+
# $FreeBSD: head/lang/dmd2/Makefile 498264 2019-04-07 07:43:37Z antoine $
3+
4+
PORTNAME= dmd
5+
PORTVERSION= ${DMD_VERSION}
6+
DISTVERSIONPREFIX= v
7+
CATEGORIES= lang
8+
PKGNAMESUFFIX= 2
9+
10+
MAINTAINER= cy@FreeBSD.org
11+
COMMENT= D 2.0 compiler
12+
13+
LICENSE= ART10 BSL
14+
LICENSE_COMB= multi
15+
16+
NOT_FOR_ARCHS= aarch64 armv6 armv7 mips64 powerpc64 sparc64
17+
NOT_FOR_ARCHS_REASON= dmd only supports i386 and x86_64, use ldc or gdc instead
18+
19+
BUILD_DEPENDS= bash:shells/bash
20+
21+
USES= gmake compiler dlang:bootstrap
22+
23+
# dcompiler arguments/variables
24+
DRT_MINVER= 20791
25+
DRT_MAXVER= 20881
26+
27+
DMD_MAJOR= 2
28+
DMD_MINOR= 0
29+
DMD_PATCHLEVEL= 89
30+
DMD_REV= 0
31+
DMD_VERSION= ${DMD_MAJOR}.${DMD_MINOR}${DMD_PATCHLEVEL}.${DMD_REV}
32+
DMD_LIBVER= 0.${DMD_PATCHLEVEL}.${DMD_REV}
33+
34+
USE_GITHUB= nodefault
35+
GH_ACCOUNT= dlang
36+
GH_PROJECT= dmd:dmd druntime:druntime phobos:phobos
37+
38+
# DOCS should be build from github.com/dlang/dlang.org in a seperate package
39+
# because it is dependent on lang/dlang-tools:rdmd
40+
OPTIONS_DEFINE= EXAMPLES LTO FORCE_BOOTSTRAP SHARED
41+
OPTIONS_DEFAULT= EXAMPLES LTO SHARED
42+
OPTIONS_SUB= yes
43+
44+
LTO_DESC= Enable Link Time Optimizations
45+
FORCE_BOOTSTRAP_DESC= Override search for suitable bootstrap d-compiler
46+
FORCE_BOOTSTRAP_BUILD_DEPENDS=${LOCALBASE}/bin/ldmd2:lang/ldc
47+
SHARED_DESC= Enable shared libraries
48+
49+
PREFIX?= ${LOCALBASE}/dmd2
50+
MAKEFILE= posix.mak
51+
EXAMPLESDIR= ${PREFIX}/share/examples/dmd2
52+
DOCSDIR= ${PREFIX}/share/doc/dmd2
53+
WRKSRC= ${WRKDIR}
54+
MODULEDIR= ${PREFIX}/include/d
55+
56+
PLIST_SUB+= DMD_PATCHLEVEL=${DMD_PATCHLEVEL} \
57+
DMD_LIBVER=${DMD_LIBVER} \
58+
59+
.include <bsd.port.options.mk>
60+
61+
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200031
62+
EXTRA_PATCHES= ${PATCHDIR}/ino64-*
63+
.endif
64+
65+
OSMODEL?= ${OPSYS:tl}
66+
67+
MAKE_ARGS+= SHELL=${LOCALBASE}/bin/bash HOST_DMD=${DCOMPILER_DMD}
68+
69+
.if ${ARCH} == amd64 || ${ARCH} == x86_64
70+
MAKE_ARGS+= MODEL=64 PIC=1
71+
MODEL= 64
72+
CFLAGS+= -fPIC
73+
.else
74+
MAKE_ARGS+= MODEL=32
75+
MODEL= 32
76+
.endif
77+
78+
.if ${PORT_OPTIONS:MFORCE_BOOTSTRAP}
79+
DCOMPILER_DMD= ${LOCALBASE}/bin/ldmd2
80+
.endif
81+
82+
.if ${PORT_OPTIONS:MSHARED}
83+
MAKE_ARGS+= SHARED=1
84+
.endif
85+
86+
.if ${PORT_OPTIONS:MLTO}
87+
MAKE_ARGS+= ENABLE_LTO=1
88+
.endif
89+
90+
.if defined(WITH_DEBUG)
91+
MAKE_ARGS+= ENABLE_DEBUG=1 DEBUG_FLAGS=-g -DDEBUG=1 -DUNITTEST BUILD=debug
92+
.else
93+
MAKE_ARGS+= ENABLE_RELEASE=1 BUILD=release
94+
.endif
95+
96+
post-extract:
97+
@${MV} ${WRKSRC_dmd} ${WRKSRC}/dmd
98+
@${MV} ${WRKSRC_druntime} ${WRKSRC}/druntime
99+
@${MV} ${WRKSRC_phobos} ${WRKSRC}/phobos
100+
101+
post-patch:
102+
@${REINPLACE_CMD} -e "s|g++|${CXX}|" \
103+
-e "s|/etc|${PREFIX}/etc|" \
104+
${WRKSRC}/dmd/src/posix.mak
105+
@${REINPLACE_CMD} -e "s|cc|${CC}|" ${WRKSRC}/phobos/posix.mak
106+
@${REINPLACE_CMD} -e "s|/etc|${PREFIX}/etc|" \
107+
-e "s|\(dmd\)|\12|gI" \
108+
-e "s|\\\BR|.BR|" \
109+
${WRKDIR}/dmd/docs/man/man5/dmd.conf.5
110+
@${REINPLACE_CMD} -e "s|%@P%/../../src/phobos|${MODULEDIR}/phobos|" \
111+
-e "s|%@P%/../../src/druntime|${MODULEDIR}/druntime|" \
112+
-e "s|%@P%/../lib32|${PREFIX}/lib|" \
113+
-e "s|%@P%/../lib64|${PREFIX}/lib|" \
114+
${WRKDIR}/dmd/ini/${OSMODEL}/bin${MODEL}/dmd.conf
115+
@${ECHO_CMD} >> ${WRKDIR}/dmd/ini/${OSMODEL}/bin${MODEL}/dmd.conf
116+
117+
make-phobos: make-druntime
118+
cd ${WRKSRC}/phobos && ${MAKE_ENV} ${MAKE_CMD} -f ${MAKEFILE} ${MAKE_ARGS} ${BUILD}
119+
120+
make-druntime: make-dmd
121+
cd ${WRKSRC}/druntime && ${MAKE_ENV} ${MAKE_CMD} -f ${MAKEFILE} ${MAKE_ARGS} ${BUILD}
122+
123+
make-dmd:
124+
cd ${WRKSRC}/dmd && ${MAKE_ENV} ${MAKE_CMD} -f ${MAKEFILE} -j${MAKE_JOBS_NUMBER} ${MAKE_ARGS} ${BUILD}
125+
126+
do-build: make-dmd make-phobos make-druntime
127+
128+
do-install:
129+
${INSTALL_MAN} ${WRKDIR}/dmd/docs/man/man5/dmd.conf.5 ${STAGEDIR}${MANPREFIX}/man/man5/dmd.conf.5
130+
${INSTALL_DATA} ${WRKSRC}/dmd/generated/${OSMODEL}/release/${MODEL}/dmd.conf ${STAGEDIR}${PREFIX}/etc/dmd.conf
131+
${INSTALL_PROGRAM} ${WRKSRC}/dmd/generated/${OSMODEL}/release/${MODEL}/dmd ${STAGEDIR}${PREFIX}/bin/dmd
132+
${INSTALL_DATA} ${WRKSRC}/phobos/generated/${OSMODEL}/release/${MODEL}/libphobos2.a ${STAGEDIR}${PREFIX}/lib/libphobos2.a
133+
.if ${PORT_OPTIONS:MSHARED}
134+
${INSTALL_LIB} ${WRKSRC}/phobos/generated/${OSMODEL}/release/${MODEL}/libphobos2.so.${DMD_LIBVER} ${STAGEDIR}${PREFIX}/lib/libphobos2.so.${DMD_LIBVER}
135+
${RLN} ${STAGEDIR}${PREFIX}/lib/libphobos2.so.${DMD_LIBVER} ${STAGEDIR}${PREFIX}/lib/libphobos2.so.0.${DMD_PATCHLEVEL}
136+
${RLN} ${STAGEDIR}${PREFIX}/lib/libphobos2.so.${DMD_LIBVER} ${STAGEDIR}${PREFIX}/lib/libphobos2.so
137+
.endif
138+
${INSTALL_DATA} ${WRKDIR}/dmd/ini/${OSMODEL}/bin${MODEL}/dmd.conf ${STAGEDIR}${PREFIX}/etc/dmd.conf.sample
139+
cd ${WRKDIR}/druntime/import && ${COPYTREE_SHARE} . ${STAGEDIR}${MODULEDIR}/druntime/import
140+
cd ${WRKSRC}/phobos && ${COPYTREE_SHARE} std ${STAGEDIR}${MODULEDIR}/phobos
141+
cd ${WRKSRC}/phobos && ${COPYTREE_SHARE} etc ${STAGEDIR}${MODULEDIR}/phobos
142+
143+
post-install-EXAMPLES-on:
144+
${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
145+
cd ${WRKDIR}/dmd && ${COPYTREE_SHARE} samples ${STAGEDIR}${EXAMPLESDIR}
146+
${INSTALL_DATA} ${WRKDIR}/dmd/ini/${OSMODEL}/bin32/dmd.conf ${STAGEDIR}${EXAMPLESDIR}/dmd32.conf
147+
${INSTALL_DATA} ${WRKDIR}/dmd/ini/${OSMODEL}/bin64/dmd.conf ${STAGEDIR}${EXAMPLESDIR}/dmd64.conf
148+
149+
.include <bsd.port.mk>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
OSMODEL=dragonflybsd

ports/lang/dmd2/newport/distinfo

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
TIMESTAMP = 1574148869
2+
SHA256 (dlang-dmd-v2.089.0_GH0.tar.gz) = e86b147c356788299794088bac6d872fd844c74551b4a09411b0408b03e59524
3+
SIZE (dlang-dmd-v2.089.0_GH0.tar.gz) = 3323343
4+
SHA256 (dlang-druntime-v2.089.0_GH0.tar.gz) = 1ad3bdaebe0957a2678453bd9bb3eddbebae6babc564544c6f3ad07026e4bff3
5+
SIZE (dlang-druntime-v2.089.0_GH0.tar.gz) = 1746634
6+
SHA256 (dlang-phobos-v2.089.0_GH0.tar.gz) = 42c0a1581c8d66980aee4a73fc37d6b60d110a2139d8c00944a66bfa4868eafe
7+
SIZE (dlang-phobos-v2.089.0_GH0.tar.gz) = 2376909

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/DragonFlyBSD/DeltaPorts/commit/4d0133642e68922a24ceb37d14e03dedf344cfbd

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy