dmd: Update wip/dmd to 2.093.1

Tested to build and run(?) on macos.
The newer versions are self-hosted and no longer rely on C++ code

List of all bug fixes and enhancements in D 2.093.1:
DMD Compiler regressions

Bugzilla 21063: getLinkage is wrong for forward reference extern(C++) class
Bugzilla 21074: const lost in mixin
Bugzilla 21095: [ICE] AssertError@dmd/expressionsem.d(5015): Assertion failure
DMD Compiler bugs

Bugzilla 16400: naked variadic C function emits broken prologue
Bugzilla 17351: Static const array can't be evaluated at compile time when passed as ref argument
Bugzilla 21085: [glue] Only 9999 "hidden identifiers" can be generated
Bugzilla 21092: [ICE] Segmentation fault in ExpressionPrettyPrintVisitor::visit(CommaExp*) at dmd/hdrgen.d:2293
Bugzilla 21096: [ICE] Segmentation fault in dmd.hdrgen.sizeToBuffer at dmd/hdrgen.d:3153
Bugzilla 21122: __traits(getAttributes) wrong scope on enums
dlang.org bugs

Bugzilla 21059: install.sh: posix_terminal returns false on Linux Mint 20
This commit is contained in:
Dan Cîrnaț 2020-09-03 16:02:49 +02:00
parent 26e224e990
commit ad25c2c367
40 changed files with 66 additions and 1120 deletions

View File

@ -1,28 +1,28 @@
# $NetBSD: Makefile,v 1.2 2012/09/28 21:24:37 asau Exp $
#
DISTNAME= dmd.2.051
PKGNAME= ${DISTNAME:S/dmd./dmd-/}
DMD_VERSION= 2.093.1
PKGNAME= dmd-${DMD_VERSION}
DISTNAME= v${DMD_VERSION}
CATEGORIES= lang
MASTER_SITES= http://ftp.digitalmars.com/
EXTRACT_SUFX= .zip
MASTER_SITES= ${MASTER_SITE_GITHUB:=dlang/}
GITHUB_PROJECT= dmd
GITHUB_TAG= v${DMD_VERSION}
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://www.digitalmars.com/d/
HOMEPAGE= https://www.dlang.org/
COMMENT= Digital Mars D compiler
#LICENSE= # TODO: (see mk/license.mk)
LICENSE= boost-license
WRKSRC= ${WRKDIR}/dmd2
WRKSRC= ${WRKDIR}/dmd-${DMD_VERSION}
BUILD_DIRS= src/dmd src/druntime src/phobos
MAKE_FILE= posix.mak
# -j 16 passed to g++
MAKE_JOBS_SAFE= no
USE_LANGUAGES= c c++
USE_TOOLS= gmake
# so we can use the same MAKE_FILE name for both BUILD_DIRS
post-extract:
cd ${WRKSRC}/src/dmd && ln -f linux.mak posix.mak
MAKE_FLAGS+= AUTO_BOOTSTRAP=1
MAKE_FLAGS+= BUILD=release
MAKE_FLAGS+= ENABLE_RELEASE=1
MAKE_FLAGS+= INSTALL_DIR=${DESTDIR}${PREFIX}
.include "../../mk/bsd.pkg.mk"

View File

@ -1 +1,6 @@
@comment $NetBSD: PLIST,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
@comment $NetBSD$
bin/dmd
etc/dmd.conf
man/man1/dumpobj.1
man/man1/obj2asm.1
man/man5/dmd.conf.5

View File

@ -1,7 +1,5 @@
The compiler itself compiles, but the standard library isn't ported.
Installation hasn't been done yet, so the PLIST is empty.
- Since DMD requires itself to bootstrap, it has to fetch a DMD compiler.
This has to be done during the fetch stage and checked against a checksum,
not during build.

View File

@ -1,40 +1,8 @@
$NetBSD: distinfo,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
SHA1 (dmd.2.051.zip) = edd470e8f756ab64e7692ebc4cd8a2a0bdbc73d8
RMD160 (dmd.2.051.zip) = 203b3d32cd45be29fcfd60c6d8fc2af4c53e2029
SHA512 (dmd.2.051.zip) = 0ec09f5bdb22bb58efdb2d34cc33a3f98b85d9647c9093b5686efabad072d2371d9ec469e353ef00d923967fdcf4b622a8a68db71c617c6f1befd2ebf8810e36
Size (dmd.2.051.zip) = 10747172 bytes
SHA1 (patch-aa) = 20a4998ef2ae60442db3e47163969a8c88e9efac
SHA1 (patch-ab) = 333b164a2753b8b5e2415afe9018ced6c046006c
SHA1 (patch-ac) = 1889ddf99161602b19bb10bcd59e0349f4a07a07
SHA1 (patch-ad) = 9fbb0053c99690a4a2bf295889f0d0ecab8670d6
SHA1 (patch-ae) = 49edf2430452fce7d67582219bc189589149d284
SHA1 (patch-af) = 332903a0c6c6749b5877725e752c901217eb8977
SHA1 (patch-ag) = 99a3f25dda767c7f34be881fef762f33efca27a8
SHA1 (patch-ah) = f7a45e57bfee686e062d0e68fcb6d25864619dd2
SHA1 (patch-ai) = 13bbf77bc5322740d5fd9f2c6d73d7e72f79e80c
SHA1 (patch-aj) = b80e3fa2ff2f6d67a35d1eb7bee896bf396b6947
SHA1 (patch-ak) = e2d8f690a35976c5d86e656d101754e753435b51
SHA1 (patch-al) = 984f432a7cd63e9848842515e38108517e7576bf
SHA1 (patch-am) = 327b5ea2aacfcd3817b590f422d2d2f62ca09ca4
SHA1 (patch-an) = c5804e306c8e696af2b3d9c01ec9798f7f2d6c52
SHA1 (patch-ao) = b0c10fe37e5172a2a862ce5f1ea89501b7d17656
SHA1 (patch-ap) = 5cce1244120584299f70c09a1b3b562c99556499
SHA1 (patch-aq) = 60bfe62a8f1d119b4620e0823539b3f138b5b16f
SHA1 (patch-ar) = 02af50d731cd38ac758e610cb099b0cd887dfba1
SHA1 (patch-as) = f71c6ac10430363703a8ef651f994bd326fc261d
SHA1 (patch-at) = 3d7924becdd1c1d3f3c77802db748b34055b9407
SHA1 (patch-au) = d9803a39328aa180e500e362804497a750414d56
SHA1 (patch-av) = 0ed5621a66d7226da40f900fa385f7c0c6f4b4b7
SHA1 (patch-aw) = b2926f4d6f77fc04f0066758b68d08df9c6fe4ad
SHA1 (patch-ax) = 289cf8a9b901f9853c15c60af3f9645b15e33ec4
SHA1 (patch-ay) = da3705425a7606d4faefee75482a08c4822daeca
SHA1 (patch-az) = fdc17d3bafd4b378e8de09652808ad52d08d55c3
SHA1 (patch-ba) = e503b4dd9e2bbc6d3cdeb4414cc49feb8c232ae8
SHA1 (patch-bb) = 2c7cf57b36ffd84a92f7c7a34bfadb604d043e6f
SHA1 (patch-bc) = 709c6859e015393cfc3f760e78726af3393f734a
SHA1 (patch-bd) = 016621d0edceb4d3550b59fa1f50a7891b765568
SHA1 (patch-be) = 6c8e375bfd4937b3244c4d16a700e2482a8951b0
SHA1 (patch-bf) = c4cf8f05620dc1827657ac5a8689d298b1597738
SHA1 (patch-bg) = c55d2a1e8363e8c6305fa1108bdaa3eeb9bfb5f7
SHA1 (patch-bh) = 0dac82a919e0a8836c327f1cce91e8969caa9425
SHA1 (v2.093.1.tar.gz) = d737328ff0556816952949876399c73dfed15cc6
RMD160 (v2.093.1.tar.gz) = 7c2733fb5151fae7f1fb48c3e98e39e9e22f88f1
SHA512 (v2.093.1.tar.gz) = 913cd2fff05868f69c2c5168d4658ee324295de27b4116544302678c669f7bb145aae3a538b3fb2d595fd6717d96d9653f9d61505e261c1fa6c63fc5a5d7d33b
Size (v2.093.1.tar.gz) = 3444486 bytes
SHA1 (patch-posix.mak) = 280f7cabb166af396a2d68b79a363b1b072d2055
SHA1 (patch-src_build.d) = b2f71ee454465628c1c69393bb656f689a5bfcb9

View File

@ -1,13 +0,0 @@
$NetBSD: patch-aa,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/backend/cg87.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/backend/cg87.c
@@ -623,7 +623,7 @@ __body
static double dval[7] =
{0.0,1.0,PI,LOG2T,LOG2E,LOG2,LN2};
static long double ldval[7] =
-#if __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#define M_PIl 0x1.921fb54442d1846ap+1L // 3.14159 fldpi
#define M_LOG2T_L 0x1.a934f0979a3715fcp+1L // 3.32193 fldl2t
#define M_LOG2El 0x1.71547652b82fe178p+0L // 1.4427 fldl2e

View File

@ -1,22 +0,0 @@
$NetBSD: patch-ab,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/backend/dwarf.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/backend/dwarf.c
@@ -22,7 +22,7 @@
#include <malloc.h>
#endif
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#include <signal.h>
#include <unistd.h>
#include <errno.h>
@@ -402,7 +402,7 @@ void dwarf_initfile(const char *filename
linebuf->writeString((char *)list_ptr(pl));
linebuf->writeByte(0);
}
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
for (pl = pathsyslist; pl; pl = list_next(pl))
{
linebuf->writeString((char *)list_ptr(pl));

View File

@ -1,22 +0,0 @@
$NetBSD: patch-ac,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/backend/evalu8.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/backend/evalu8.c
@@ -24,7 +24,7 @@
#include <fp.h>
#endif
-#if __FreeBSD__
+#if __FreeBSD__ || __NetBSD__
#define fmodl fmod
#endif
@@ -42,7 +42,7 @@ static char __file__[] = __FILE__;
extern void error(const char *filename, unsigned linnum, const char *format, ...);
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
int _status87()
{
return fetestexcept(FE_ALL_EXCEPT);

View File

@ -1,49 +0,0 @@
$NetBSD: patch-ad,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/backend/os.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/backend/os.c
@@ -26,7 +26,7 @@
#include <sys\stat.h>
#endif
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@ -658,7 +658,7 @@ int os_file_exists(const char *name)
if (!find)
return 0;
return (find->attribute & FA_DIREC) ? 2 : 1;
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
struct stat buf;
return stat(name,&buf) == 0; /* file exists if stat succeeded */
@@ -735,7 +735,7 @@ char *file_8dot3name(const char *filenam
int file_write(char *name, void *buffer, unsigned len)
{
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
int fd;
ssize_t numwritten;
@@ -811,7 +811,7 @@ err:
int file_createdirs(char *name)
{
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
return 1;
#endif
#if _WIN32
@@ -861,7 +861,7 @@ int os_critsecsize()
}
#endif
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
int os_critsecsize()
{
return sizeof(pthread_mutex_t);

View File

@ -1,13 +0,0 @@
$NetBSD: patch-ae,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/constfold.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/constfold.c
@@ -26,7 +26,7 @@
#include "aggregate.h"
#include "declaration.h"
-#if __FreeBSD__
+#if __FreeBSD__ || __NetBSD__
#define fmodl fmod // hack for now, fix later
#endif

View File

@ -1,92 +0,0 @@
$NetBSD: patch-af,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/mars.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/mars.c
@@ -15,7 +15,7 @@
#include <assert.h>
#include <limits.h>
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#include <errno.h>
#endif
@@ -60,7 +60,7 @@ Global::Global()
#if TARGET_WINDOS
obj_ext = "obj";
-#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
obj_ext = "o";
#elif TARGET_NET
#else
@@ -69,7 +69,7 @@ Global::Global()
#if TARGET_WINDOS
lib_ext = "lib";
-#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
lib_ext = "a";
#elif TARGET_NET
#else
@@ -78,7 +78,7 @@ Global::Global()
#if TARGET_WINDOS
dll_ext = "dll";
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
dll_ext = "so";
#elif TARGET_OSX
dll_ext = "dylib";
@@ -361,7 +361,7 @@ int main(int argc, char *argv[])
#if TARGET_WINDOS
global.params.defaultlibname = "phobos";
-#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
global.params.defaultlibname = "phobos2";
#elif TARGET_NET
#else
@@ -393,6 +393,10 @@ int main(int argc, char *argv[])
VersionCondition::addPredefinedGlobalIdent("Posix");
VersionCondition::addPredefinedGlobalIdent("FreeBSD");
global.params.isFreeBSD = 1;
+#elif TARGET_NETBSD
+ VersionCondition::addPredefinedGlobalIdent("Posix");
+ VersionCondition::addPredefinedGlobalIdent("NetBSD");
+ global.params.isNetBSD = 1;
#elif TARGET_SOLARIS
VersionCondition::addPredefinedGlobalIdent("Posix");
VersionCondition::addPredefinedGlobalIdent("Solaris");
@@ -410,7 +414,7 @@ int main(int argc, char *argv[])
#if _WIN32
inifilename = inifile(argv[0], "sc.ini");
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
inifilename = inifile(argv[0], "dmd.conf");
#else
#error "fix this"
@@ -435,7 +439,7 @@ int main(int argc, char *argv[])
global.params.link = 0;
else if (strcmp(p + 1, "cov") == 0)
global.params.cov = 1;
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
else if (strcmp(p + 1, "fPIC") == 0)
global.params.pic = 1;
#endif
@@ -727,6 +731,13 @@ int main(int argc, char *argv[])
browse("http://www.digitalmars.com/d/2.0/dmd-freebsd.html");
#endif
#endif
+#if __NetBSD__
+#if DMDV1
+ browse("http://www.digitalmars.com/d/1.0/dmd-netbsd.html");
+#else
+ browse("http://www.digitalmars.com/d/2.0/dmd-netbsd.html");
+#endif
+#endif
exit(EXIT_SUCCESS);
}
else if (strcmp(p + 1, "run") == 0)

View File

@ -1,13 +0,0 @@
$NetBSD: patch-ag,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/root/root.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/root/root.c
@@ -7,7 +7,7 @@
// in artistic.txt, or the GNU General Public License in gnu.txt.
// See the included readme.txt for details.
-#define POSIX (linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4)
+#define POSIX (linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__)
#include <stdio.h>
#include <stdlib.h>

View File

@ -1,67 +0,0 @@
$NetBSD: patch-ah,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/tk/filespec.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/tk/filespec.c
@@ -25,7 +25,7 @@
#include <ctype.h>
#endif
-#if M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#include <stdlib.h>
#include <unistd.h>
#endif
@@ -87,7 +87,7 @@ char * filespecaddpath(const char *path,
/**********************/
char * filespecrootpath(char *filespec)
{
-#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#define DIRCHAR '/'
#endif
#if MSDOS || __OS2__ || __NT__ || _WIN32
@@ -112,7 +112,7 @@ char * filespecrootpath(char *filespec)
#endif
/* get current working directory path */
-#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
cwd_t = (char *)getcwd(NULL, 256);
#endif
#if MSDOS || __OS2__ || __NT__ || _WIN32
@@ -133,7 +133,7 @@ char * filespecrootpath(char *filespec)
if (cwd[strlen(cwd) - 1] == DIRCHAR)
cwd[strlen(cwd) - 1] = '\0';
#endif
-#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
free(cwd_t);
#endif
p = filespec;
@@ -150,7 +150,7 @@ char * filespecrootpath(char *filespec)
{
cwd_t = cwd;
cwd = (char *)mem_calloc(strlen(cwd_t) + 1 + strlen(p) + 1);
-#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
sprintf(cwd, "%s/%s", cwd_t, p); /* add relative directory */
#endif
#if MSDOS || __OS2__ || __NT__ || _WIN32
@@ -171,7 +171,7 @@ char * filespecrootpath(char *filespec)
{ /* ... save remaining string */
cwd_t = cwd;
cwd = (char *)mem_calloc(strlen(cwd_t) + 1 + strlen(p) + 1);
-#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
sprintf(cwd, "%s/%s", cwd_t, p); /* add relative directory */
#endif
#if MSDOS || __OS2__ || __NT__ || _WIN32
@@ -402,7 +402,7 @@ char * filespecbackup(const char *filesp
#if MSDOS || __OS2__ || __NT__ || _WIN32
return filespecforceext(filespec,"BAK");
#endif
-#if BSDUNIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if BSDUNIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
char *p,*f;
/* Prepend .B to file name, if it isn't already there */

View File

@ -1,13 +0,0 @@
$NetBSD: patch-ai,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/builtin.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/builtin.c
@@ -12,7 +12,7 @@
#include <assert.h>
#include <math.h>
-#if __FreeBSD__
+#if __FreeBSD__ || __NetBSD__
extern "C"
{
long double sinl(long double);

View File

@ -1,13 +0,0 @@
$NetBSD: patch-aj,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/root/response.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/root/response.c
@@ -19,7 +19,7 @@
#include <io.h>
#endif
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>

View File

@ -1,112 +0,0 @@
$NetBSD: patch-ak,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/backend/cdef.h.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/backend/cdef.h
@@ -25,6 +25,7 @@
linux Linux
__APPLE__ Mac OSX
__FreeBSD__ FreeBSD
+ __NetBSD__ NetBSD
__sun&&__SVR4 Solaris, OpenSolaris (yes, both macros are necessary)
__OS2__ IBM OS/2
DOS386 32 bit DOS extended executable
@@ -119,6 +120,11 @@ One and only one of these macros must be
* with these goals, and should be fixed.
*/
+/* NetBSD Version
+ * --------------
+ * Strongly oriented on the FreeBSD Version, read there for now.
+ */
+
/* Solaris Version
* -------------
* There are two main issues: hosting the compiler on Solaris,
@@ -167,13 +173,18 @@ One and only one of these macros must be
#endif
// Set to 1 using the makefile
+#ifndef TARGET_NETBSD
+#define TARGET_NETBSD 0 // target is a NetBSD executable
+#endif
+
+// Set to 1 using the makefile
#ifndef TARGET_SOLARIS
#define TARGET_SOLARIS 0 // target is a Solaris executable
#endif
// This is the default
#ifndef TARGET_WINDOS
-#define TARGET_WINDOS (!(TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS))
+#define TARGET_WINDOS (!(TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS))
#endif
#if __GNUC__
@@ -242,7 +253,7 @@ One and only one of these macros must be
// Precompiled header variations
#define MEMORYHX (_WINDLL && _WIN32) // HX and SYM files are cached in memory
-#define MMFIO (_WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4) // if memory mapped files
+#define MMFIO (_WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__) // if memory mapped files
#define LINEARALLOC _WIN32 // if we can reserve address ranges
// H_STYLE takes on one of these precompiled header methods
@@ -458,7 +469,7 @@ typedef unsigned targ_uns;
#define DOUBLESIZE 8
#if TARGET_OSX
#define LNGDBLSIZE 16 // 80 bit reals
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
#define LNGDBLSIZE 12 // 80 bit reals
#else
#define LNGDBLSIZE 10 // 80 bit reals
@@ -509,7 +520,7 @@ typedef targ_uns targ_size_t;
#define OMFOBJ TARGET_WINDOS
#endif
#ifndef ELFOBJ
-#define ELFOBJ (TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS)
+#define ELFOBJ (TARGET_LINUX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS)
#endif
#ifndef MACHOBJ
#define MACHOBJ TARGET_OSX
@@ -704,10 +715,12 @@ struct Config
#define EX_FREEBSD64 0x80000
#define EX_SOLARIS 0x100000
#define EX_SOLARIS64 0x200000
+#define EX_NETBSD 0x400000
+#define EX_NETBSD64 0x800000
#define EX_flat (EX_OS2 | EX_NT | EX_LINUX | EX_WIN64 | EX_LINUX64 | \
EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | \
- EX_SOLARIS | EX_SOLARIS64)
+ EX_SOLARIS | EX_SOLARIS64 | EX_NETBSD | EX_NETBSD64)
#define EX_dos (EX_DOSX | EX_ZPM | EX_RATIONAL | EX_PHARLAP | \
EX_COM | EX_MZ /*| EX_WIN16*/)
@@ -760,7 +773,7 @@ struct Config
#define CFG3relax 0x200 // relaxed type checking (C only)
#define CFG3cpp 0x400 // C++ compile
#define CFG3igninc 0x800 // ignore standard include directory
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
#define CFG3mars 0x1000 // use mars libs and headers
#define NO_FAR (TRUE) // always ignore __far and __huge keywords
#else
@@ -772,7 +785,7 @@ struct Config
#define CFG3cppcomment 0x8000 // allow C++ style comments
#define CFG3wkfloat 0x10000 // make floating point references weak externs
#define CFG3digraphs 0x20000 // support ANSI C++ digraphs
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
#define CFG3semirelax 0x40000 // moderate relaxed type checking
#endif
#define CFG3pic 0x80000 // position independent code
@@ -975,7 +988,7 @@ union eve
#define SYMBOLZERO
#endif
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
#define UNIXFIELDS (unsigned)-1,(unsigned)-1,0,0,
#elif TARGET_OSX
#define UNIXFIELDS (unsigned)-1,(unsigned)-1,0,0,0,

View File

@ -1,13 +0,0 @@
$NetBSD: patch-al,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/backend/debug.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/backend/debug.c
@@ -101,7 +101,7 @@ void WRTYxx(tym_t t)
if (t & mTYpasobj)
dbg_printf("mTYpasobj|");
#endif
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
if (t & mTYtransu)
dbg_printf("mTYtransu|");
#endif

View File

@ -1,13 +0,0 @@
$NetBSD: patch-am,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/backend/machobj.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/backend/machobj.c
@@ -21,7 +21,7 @@
#include <malloc.h>
#endif
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#include <signal.h>
#include <unistd.h>
#endif

View File

@ -1,22 +0,0 @@
$NetBSD: patch-an,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/backend/parser.h.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/backend/parser.h
@@ -156,7 +156,7 @@ struct MACRO
#define FQtop 8 // top level file, already open
#define FQqual 0x10 // filename is already qualified
#endif
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#define FQnext 0x20 // search starts after directory
#endif // of last included file
@@ -698,7 +698,7 @@ char *el_tostring(Outbuffer *, elem *e);
extern list_t pathlist; // include paths
extern list_t headers; // pre-include files
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
extern list_t pathsyslist; // include path for .h file overrides
#endif

View File

@ -1,22 +0,0 @@
$NetBSD: patch-ao,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/backend/strtold.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/backend/strtold.c
@@ -20,7 +20,7 @@
#if _WIN32
#include <fltpnt.h>
#endif
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#include <errno.h>
#endif
@@ -30,7 +30,7 @@ extern char * __cdecl __locale_decpoint;
void __pascal __set_errno (int an_errno);
#endif
-#if _WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if _WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#if 0
/* This is for compilers that don't support hex float literals,

View File

@ -1,13 +0,0 @@
$NetBSD: patch-ap,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/cond.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/cond.c
@@ -138,7 +138,7 @@ void VersionCondition::checkPredefined(L
"D_NET",
#endif
"OSX", "FreeBSD",
- "Solaris",
+ "Solaris", "NetBSD"
"LittleEndian", "BigEndian",
"all",
"none",

View File

@ -1,12 +0,0 @@
$NetBSD: patch-aq,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/e2ir.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/e2ir.c
@@ -178,6 +178,7 @@ elem *callfunc(Loc loc,
if ((global.params.isLinux ||
global.params.isOSX ||
global.params.isFreeBSD ||
+ global.params.isNetBSD ||
global.params.isSolaris) && tf->linkage != LINKd)
; // ehidden goes last on Linux/OSX C++
else

View File

@ -1,13 +0,0 @@
$NetBSD: patch-ar,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/glue.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/glue.c
@@ -770,7 +770,7 @@ void FuncDeclaration::toObjFile(int mult
pi++;
}
- if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isSolaris) &&
+ if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isNetBSD || global.params.isSolaris) &&
linkage != LINKd && shidden && sthis)
{
/* swap shidden and sthis

View File

@ -1,29 +0,0 @@
$NetBSD: patch-as,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/inifile.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/inifile.c
@@ -23,7 +23,7 @@
#include <sys/syslimits.h>
#endif
-#if __FreeBSD__ || __sun&&__SVR4
+#if __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
// for PATH_MAX
#include <limits.h>
#endif
@@ -111,12 +111,12 @@ const char *inifile(const char *argv0x,
filename = (char *)FileName::replaceName(argv0, inifile);
if (!FileName::exists(filename))
{
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
-#if __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 // This fix by Thomas Kuehne
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
+#if __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__ // This fix by Thomas Kuehne
/* argv0 might be a symbolic link,
* so try again looking past it to the real path
*/
-#if __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
char resolved_name[PATH_MAX + 1];
char* real_argv0 = realpath(argv0, resolved_name);
#else

View File

@ -1,40 +0,0 @@
$NetBSD: patch-at,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/link.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/link.c
@@ -19,7 +19,7 @@
#include <process.h>
#endif
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
@@ -198,7 +198,7 @@ int runLINK()
delete lnkfilename;
}
return status;
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
pid_t childpid;
int i;
int status;
@@ -486,7 +486,7 @@ int executearg0(char *cmd, char *args)
//printf("spawning '%s'\n",file);
#if _WIN32
return spawnl(0,file,file,args,NULL);
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
char *full;
int cmdl = strlen(cmd);
@@ -549,7 +549,7 @@ int runProgram()
else
ex = global.params.exefile;
return spawnv(0,ex,(char **)argv.data);
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
pid_t childpid;
int status;

View File

@ -1,58 +0,0 @@
$NetBSD: patch-au,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/mars.h.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/mars.h
@@ -37,6 +37,7 @@ Macros defined by the compiler, not the
linux Linux
__APPLE__ Mac OSX
__FreeBSD__ FreeBSD
+ __NetBSD__ NetBSD
__sun&&__SVR4 Solaris, OpenSolaris (yes, both macros are necessary)
For the target systems, there are the target operating system and
@@ -47,6 +48,7 @@ the target object file format:
TARGET_LINUX Covers 32 and 64 bit linux
TARGET_OSX Covers 32 and 64 bit Mac OSX
TARGET_FREEBSD Covers 32 and 64 bit FreeBSD
+ TARGET_NETBSD Covers 32 and 64 bit NetBSD
TARGET_SOLARIS Covers 32 and 64 bit Solaris
TARGET_NET Covers .Net
@@ -55,7 +57,7 @@ the target object file format:
Target object module format:
OMFOBJ Intel Object Module Format, used on Windows
- ELFOBJ Elf Object Module Format, used on linux, FreeBSD and Solaris
+ ELFOBJ Elf Object Module Format, used on linux, FreeBSD, NetBSD and Solaris
MACHOBJ Mach-O Object Module Format, used on Mac OSX
There are currently no macros for byte endianness order.
@@ -91,9 +93,9 @@ void unittests();
#define MODULEINFO_IS_STRUCT DMDV2 // if ModuleInfo is a struct rather than a class
// Set if C++ mangling is done by the front end
-#define CPP_MANGLE (DMDV2 && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS))
+#define CPP_MANGLE (DMDV2 && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS))
-/* Other targets are TARGET_LINUX, TARGET_OSX, TARGET_FREEBSD and
+/* Other targets are TARGET_LINUX, TARGET_OSX, TARGET_FREEBSD, TARGET_NETBSD and
* TARGET_SOLARIS, which are
* set on the command line via the compiler makefile.
*/
@@ -103,7 +105,7 @@ void unittests();
#define OMFOBJ 1
#endif
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
#ifndef ELFOBJ
#define ELFOBJ 1
#endif
@@ -141,6 +143,7 @@ struct Param
char isOSX; // generate code for Mac OSX
char isWindows; // generate code for Windows
char isFreeBSD; // generate code for FreeBSD
+ char isNetBSD; // generate code for NetBSD
char isSolaris; // generate code for Solaris
char scheduler; // which scheduler to use
char useDeprecated; // allow use of deprecated features

View File

@ -1,40 +0,0 @@
$NetBSD: patch-av,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/mtype.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/mtype.c
@@ -72,7 +72,7 @@ int PTRSIZE = 4;
int REALSIZE = 16;
int REALPAD = 6;
int REALALIGNSIZE = 16;
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
int REALSIZE = 12;
int REALPAD = 2;
int REALALIGNSIZE = 4;
@@ -270,7 +270,7 @@ void Type::init()
if (global.params.isX86_64)
{
PTRSIZE = 8;
- if (global.params.isLinux || global.params.isFreeBSD || global.params.isSolaris)
+ if (global.params.isLinux || global.params.isFreeBSD || global.params.isNetBSD || global.params.isSolaris)
{
REALSIZE = 16;
REALPAD = 6;
@@ -285,7 +285,7 @@ void Type::init()
#if TARGET_OSX
REALSIZE = 16;
REALPAD = 6;
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
REALSIZE = 12;
REALPAD = 2;
#else
@@ -2491,7 +2491,7 @@ unsigned TypeBasic::alignsize()
sz = REALALIGNSIZE;
break;
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
case Tint64:
case Tuns64:
case Tfloat64:

View File

@ -1,13 +0,0 @@
$NetBSD: patch-aw,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/root/man.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/root/man.c
@@ -26,7 +26,7 @@ void browse(const char *url)
#endif
-#if linux || __FreeBSD__ || __sun&&__SVR4
+#if linux || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#include <sys/types.h>
#include <sys/wait.h>

View File

@ -1,74 +0,0 @@
$NetBSD: patch-ax,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/root/port.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/root/port.c
@@ -315,14 +315,14 @@ char *Port::strupr(char *s)
#endif
-#if linux || __APPLE__ || __FreeBSD__
+#if linux || __APPLE__ || __FreeBSD__ || __NetBSD__
#include <math.h>
#if linux
#include <bits/nan.h>
#include <bits/mathdef.h>
#endif
-#if __FreeBSD__ && __i386__
+#if (__FreeBSD__ || __NetBSD__) && (__i386__ || __amd64__)
#include <ieeefp.h>
#endif
#include <time.h>
@@ -358,23 +358,25 @@ PortInitializer::PortInitializer()
foo = -foo; // turn off sign bit
Port::nan = foo;
-#if __FreeBSD__ && __i386__
+#if (__FreeBSD__ || __NetBSD__) && (__i386__ || __amd64__)
// LDBL_MAX comes out as infinity. Fix.
static unsigned char x[sizeof(long double)] =
{ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F };
Port::ldbl_max = *(long double *)&x[0];
// FreeBSD defaults to double precision. Switch to extended precision.
+/* XXX: does not exist on NetBSD */
+#if (__FreeBSD__) && __i386__
fpsetprec(FP_PE);
#endif
+#endif
}
-#undef isnan
int Port::isNan(double r)
{
#if __APPLE__
return __inline_isnan(r);
#else
- return ::isnan(r);
+ return isnan(r);
#endif
}
@@ -383,7 +385,7 @@ int Port::isNan(long double r)
#if __APPLE__
return __inline_isnan(r);
#else
- return ::isnan(r);
+ return isnan(r);
#endif
}
@@ -409,13 +411,12 @@ int Port::isFinite(double r)
return ::finite(r);
}
-#undef isinf
int Port::isInfinity(double r)
{
#if __APPLE__
return fpclassify(r) == FP_INFINITE;
#else
- return ::isinf(r);
+ return isinf(r);
#endif
}

View File

@ -1,13 +0,0 @@
$NetBSD: patch-ay,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/root/rmem.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/root/rmem.c
@@ -6,7 +6,7 @@
#include <stdlib.h>
#include <string.h>
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
#include "../root/rmem.h"
#else
#include "rmem.h"

View File

@ -1,22 +0,0 @@
$NetBSD: patch-az,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/tk/mem.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/tk/mem.c
@@ -296,7 +296,7 @@ static struct mem_debug
11111,
0,
BEFOREVAL,
-#if !(linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4)
+#if !(linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__)
AFTERVAL
#endif
};
@@ -804,7 +804,7 @@ void mem_init()
mem_numalloc = 0;
mem_maxalloc = 0;
mem_alloclist.Mnext = NULL;
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
*(long *) &(mem_alloclist.data[0]) = AFTERVAL;
#endif
#endif

View File

@ -1,13 +0,0 @@
$NetBSD: patch-ba,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/toir.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/toir.c
@@ -799,7 +799,7 @@ enum RET TypeFunction::retStyle()
}
return RETstack;
}
- else if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isSolaris) &&
+ else if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isNetBSD || global.params.isSolaris) &&
linkage == LINKc &&
tn->iscomplex())
{

View File

@ -1,13 +0,0 @@
$NetBSD: patch-bb,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/dmd/util.c.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/util.c
@@ -131,7 +131,7 @@ void util_progress(int linnum)
#endif
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
void util_progress()
{
}

View File

@ -1,13 +0,0 @@
$NetBSD: patch-bc,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/druntime/posix.mak.orig 2010-12-15 07:30:54.000000000 +0000
+++ src/druntime/posix.mak
@@ -1,5 +1,7 @@
-DMD=dmd
+all: target
+
+DMD=../dmd/dmd
DOCDIR=doc
IMPDIR=import

View File

@ -1,35 +0,0 @@
$NetBSD: patch-bd,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/phobos/posix.mak.orig 2010-12-20 20:02:36.000000000 +0000
+++ src/phobos/posix.mak
@@ -33,7 +33,11 @@ ifeq (,$(OS))
ifeq (FreeBSD,$(OS))
OS:=freebsd
else
- $(error Unrecognized or unsupported OS for uname: $(OS))
+ ifeq (NetBSD,$(OS))
+ OS:=freebsd
+ else
+ $(error Unrecognized or unsupported OS for uname: $(OS))
+ endif
endif
endif
endif
@@ -85,7 +89,7 @@ else
DMD = ssh 206.125.170.138 "cd code/dmd/phobos && dmd"
CC = ssh 206.125.170.138 "cd code/dmd/phobos && dmc"
else
- DMD = dmd
+ DMD = ../dmd/dmd
ifeq ($(OS),win32)
CC = dmc
else
@@ -204,6 +208,8 @@ OBJS = $(addsuffix $(DOTOBJ),$(addprefix
# Rules begin here
################################################################################
+all: release
+
ifeq ($(BUILD),)
# No build was defined, so here we define release and debug
# targets. BUILD is not defined in user runs, only by recursive

View File

@ -1,13 +0,0 @@
$NetBSD: patch-be,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/druntime/src/rt/critical.c.orig 2010-12-15 07:30:48.000000000 +0000
+++ src/druntime/src/rt/critical.c
@@ -83,7 +83,7 @@ void _STD_critical_term()
/* ================================= linux ============================ */
-#if linux || __APPLE__ || __FreeBSD__
+#if linux || __APPLE__ || __FreeBSD__ || __NetBSD__
#include <stdio.h>
#include <stdlib.h>

View File

@ -1,13 +0,0 @@
$NetBSD: patch-bf,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/druntime/src/rt/monitor.c.orig 2010-12-15 07:30:48.000000000 +0000
+++ src/druntime/src/rt/monitor.c
@@ -16,7 +16,7 @@
#include <assert.h>
#if _WIN32
-#elif linux || __APPLE__ || __FreeBSD__
+#elif linux || __APPLE__ || __FreeBSD__ || __NetBSD__
#define USE_PTHREADS 1
#else
#endif

View File

@ -1,120 +0,0 @@
$NetBSD: patch-bg,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/druntime/import/core/stdc/errno.di.orig 2010-12-20 07:27:04.000000000 +0000
+++ src/druntime/import/core/stdc/errno.di
@@ -366,6 +366,115 @@ else
enum EPROTO = 92;
enum ELAST = 92;
}
+else
+{
+ version (NetBSD)
+{
+ enum EPERM = 1;
+ enum ENOENT = 2;
+ enum ESRCH = 3;
+ enum EINTR = 4;
+ enum EIO = 5;
+ enum ENXIO = 6;
+ enum E2BIG = 7;
+ enum ENOEXEC = 8;
+ enum EBADF = 9;
+ enum ECHILD = 10;
+ enum EDEADLK = 11;
+ enum ENOMEM = 12;
+ enum EACCES = 13;
+ enum EFAULT = 14;
+ enum ENOTBLK = 15;
+ enum EBUSY = 16;
+ enum EEXIST = 17;
+ enum EXDEV = 18;
+ enum ENODEV = 19;
+ enum ENOTDIR = 20;
+ enum EISDIR = 21;
+ enum EINVAL = 22;
+ enum ENFILE = 23;
+ enum EMFILE = 24;
+ enum ENOTTY = 25;
+ enum ETXTBSY = 26;
+ enum EFBIG = 27;
+ enum ENOSPC = 28;
+ enum ESPIPE = 29;
+ enum EROFS = 30;
+ enum EMLINK = 31;
+ enum EPIPE = 32;
+ enum EDOM = 33;
+ enum ERANGE = 34;
+ enum EAGAIN = 35;
+ enum EWOULDBLOCK = EAGAIN;
+ enum EINPROGRESS = 36;
+ enum EALREADY = 37;
+ enum ENOTSOCK = 38;
+ enum EDESTADDRREQ = 39;
+ enum EMSGSIZE = 40;
+ enum EPROTOTYPE = 41;
+ enum ENOPROTOOPT = 42;
+ enum EPROTONOSUPPORT = 43;
+ enum ESOCKTNOSUPPORT = 44;
+ enum EOPNOTSUPP = 45;
+ enum EPFNOSUPPORT = 46;
+ enum EAFNOSUPPORT = 47;
+ enum EADDRINUSE = 48;
+ enum EADDRNOTAVAIL = 49;
+ enum ENETDOWN = 50;
+ enum ENETUNREACH = 51;
+ enum ENETRESET = 52;
+ enum ECONNABORTED = 53;
+ enum ECONNRESET = 54;
+ enum ENOBUFS = 55;
+ enum EISCONN = 56;
+ enum ENOTCONN = 57;
+ enum ESHUTDOWN = 58;
+ enum ETOOMANYREFS = 59;
+ enum ETIMEDOUT = 60;
+ enum ECONNREFUSED = 61;
+ enum ELOOP = 62;
+ enum ENAMETOOLONG = 63;
+ enum EHOSTDOWN = 64;
+ enum EHOSTUNREACH = 65;
+ enum ENOTEMPTY = 66;
+ enum EPROCLIM = 67;
+ enum EUSERS = 68;
+ enum EDQUOT = 69;
+ enum ESTALE = 70;
+ enum EREMOTE = 71;
+ enum EBADRPC = 72;
+ enum ERPCMISMATCH = 73;
+ enum EPROGUNAVAIL = 74;
+ enum EPROGMISMATCH = 75;
+ enum EPROCUNAVAIL = 76;
+ enum ENOLCK = 77;
+ enum ENOSYS = 78;
+ enum EFTYPE = 79;
+ enum EAUTH = 80;
+ enum ENEEDAUTH = 81;
+ enum EIDRM = 82;
+ enum ENOMSG = 83;
+ enum EOVERFLOW = 84;
+ enum EILSEQ = 85;
+ enum ENOTSUP = 86;
+ enum ECANCELED = 87;
+ enum EBADMSG = 88;
+ enum ENODATA = 89;
+ enum ENOSR = 90;
+ enum ENOSTR = 91;
+ enum ETIME = 92;
+ enum ENOATTR = 93;
+ enum EMULTIHOP = 94;
+ enum ENOLINK = 95;
+ enum EPROTO = 96;
+ enum ELAST = 96;
+ enum EJUSTRETURN = -2;
+ enum ERESTART = -3;
+ enum EPASSTHROUGH = -4;
+ enum EDUPFD = -5;
+ enum EMOVEFD = -6;
+}
+}
}
}
}

View File

@ -1,20 +0,0 @@
$NetBSD: patch-bh,v 1.1.1.1 2011/02/16 17:10:41 thomasklausner Exp $
--- src/druntime/src/core/sys/posix/sys/mman.d.orig 2010-12-15 07:30:52.000000000 +0000
+++ src/druntime/src/core/sys/posix/sys/mman.d
@@ -108,15 +108,7 @@ version( linux )
//void* mmap(void*, size_t, int, int, int, off_t);
int munmap(void*, size_t);
- static if( __USE_LARGEFILE64 )
- {
- void* mmap64(void*, size_t, int, int, int, off_t);
- alias mmap64 mmap;
- }
- else
- {
void* mmap(void*, size_t, int, int, int, off_t);
- }
}
else version( OSX )
{

View File

@ -0,0 +1,17 @@
$NetBSD$
--- posix.mak.orig 2020-08-15 09:49:13.000000000 +0000
+++ posix.mak
@@ -57,9 +57,9 @@ install:
else
install: all
$(MAKE) INSTALL_DIR=$(INSTALL_DIR) -C src -f posix.mak install
- cp -r samples $(INSTALL_DIR)
- mkdir -p $(INSTALL_DIR)/man
- cp -r docs/man/* $(INSTALL_DIR)/man/
+ #cp -r samples $(INSTALL_DIR)
+ mkdir -p $(INSTALL_DIR)/share/man
+ cp -r docs/man/* $(INSTALL_DIR)/share/man/
endif
# Checks that all files have been committed and no temporary, untracked files exist.

View File

@ -0,0 +1,24 @@
$NetBSD$
--- src/build.d.orig 2020-08-15 09:49:13.000000000 +0000
+++ src/build.d
@@ -753,16 +753,14 @@ alias install = makeRule!((builder, rule
const bin = "bin" ~ env["MODEL"];
}
- installRelativeFiles(env["INSTALL"].buildPath(env["OS"], bin), dmdExeFile.dirName, dmdExeFile.only, octal!755);
+ installRelativeFiles(env["INSTALL"].buildPath(bin), dmdExeFile.dirName, dmdExeFile.only, octal!755);
version (Windows)
installRelativeFiles(env["INSTALL"], dmdRepo, sourceFiles);
const scPath = buildPath(env["OS"], bin, conf);
- copyAndTouch(buildPath(dmdRepo, "ini", scPath), buildPath(env["INSTALL"], scPath));
-
- version (Posix)
- copyAndTouch(sourceFiles[$-1], env["INSTALL"].buildPath("dmd-boostlicense.txt"));
+ mkdirRecurse(buildPath(env["INSTALL"], "etc"));
+ copyAndTouch(buildPath(dmdRepo, "ini", scPath), buildPath(env["INSTALL"], "etc", conf));
});
});