+2019-02-14 Maya Rashish <coypu@sdf.org>
+
+ * config.gcc (*-*-netbsd*): Add netbsd-d.o
+ * config/netbsd-d.c: New file.
+ * config/t-netbsd: Add netbsd-d.o
+
2018-02-14 Steve Ellcey <sellcey@marvell.com>
* config/aarch64/aarch64.c (aarch64_attribute_table): Change
tm_p_file="${tm_p_file} netbsd-protos.h"
tmake_file="t-netbsd t-slibgcc"
extra_objs="${extra_objs} netbsd.o"
+ d_target_objs="${d_target_objs} netbsd-d.o"
gas=yes
gnu_ld=yes
use_gcc_stdint=wrap
esac
nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
default_use_cxa_atexit=yes
+ target_has_targetdm=yes
;;
*-*-openbsd*)
tmake_file="t-openbsd"
--- /dev/null
+/* Functions for generic NetBSD as target machine for GNU D compiler.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "tree.h"
+#include "varasm.h"
+#include "netbsd-protos.h"
+#include "tm_p.h"
+#include "d/d-target.h"
+#include "d/d-target-def.h"
+
+static void
+netbsd_d_os_builtins (void)
+{
+ d_add_builtin_version ("Posix");
+ d_add_builtin_version ("NetBSD");
+}
+
+#undef TARGET_D_OS_VERSIONS
+#define TARGET_D_OS_VERSIONS netbsd_d_os_builtins
+
+struct gcc_targetdm targetdm = TARGETDM_INITIALIZER;
netbsd.o: $(srcdir)/config/netbsd.c
$(COMPILE) $<
$(POSTCOMPILE)
+
+netbsd-d.o: $(srcdir)/config/netbsd-d.c
+ $(COMPILE) $<
+ $(POSTCOMPILE)
+2019-02-14 Maya Rashish <coypu@sdf.org>
+
+ * d-system.h: NetBSD is POSIX.
+
2019-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR d/87864
/* Used by the dmd front-end to determine if we have POSIX-style IO. */
#define POSIX (__linux__ || __GLIBC__ || __gnu_hurd__ || __APPLE__ \
- || __FreeBSD__ || __OpenBSD__ || __DragonFly__ || __sun)
+ || __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __DragonFly__ \
+ || __sun)
/* Forward assert invariants to gcc_assert. */
#undef assert
+2019-02-14 Maya Rashish <coypu@sdf.org>
+
+ * configure.tgt: Add netbsd/x86 as supported target.
+
2019-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR d/87864
;;
x86_64-*-linux* | i?86-*-linux*)
;;
+ x86_64-*-netbsd* | i?86-*-netbsd*)
+ ;;
*)
UNSUPPORTED=1
;;
-2fd957307d94b5ce89eb173910cc7f1995d99031
+fb4bda91b0b43b5a18e1c143943c101ad4e17667
The first line of this file holds the git revision number of the last
merge done from the dlang/druntime repository.
*/
void __assert(const(char)* exp, const(char)* file, uint line);
}
+else version (NetBSD)
+{
+ /***
+ * Assert failure function in the NetBSD C library.
+ */
+ void __assert(const(char)* file, int line, const(char)* exp);
+}
else version (DragonFlyBSD)
{
/***
ubyte *_base;
int _size;
}
-
- union __mbstate_t // <sys/_types.h>
- {
- char[128] _mbstate8;
- long _mbstateL;
- }
}
else version (NetBSD)
{
ubyte *_base;
int _size;
}
-
- union __mbstate_t // <sys/_types.h>
- {
- char[128] _mbstate8;
- long _mbstateL;
- }
}
else version (OpenBSD)
{
ubyte *_base;
int _size;
}
-
- union __mbstate_t // <sys/_types.h>
- {
- char[128] __mbstate8;
- long __mbstateL;
- }
}
else version (DragonFlyBSD)
{
SBUF_DYNSTRUCT = 0x00080000, // sbuf must be freed
SBUF_INSECTION = 0x00100000, // set by sbuf_start_section()
}
-
- union __mbstate_t // <sys/stdint.h>
- {
- char[128] _mbstate8;
- long _mbstateL;
- }
}
else version (Solaris)
{
}
else version (FreeBSD)
{
+ // Need to import wchar_ now since __mbstate_t now resides there
+ import core.stdc.wchar_ : mbstate_t;
+
///
alias off_t fpos_t;
pthread_t _fl_owner;
int _fl_count;
int _orientation;
- __mbstate_t _mbstate;
+ mbstate_t _mbstate;
}
///
}
else version (Solaris)
{
- import core.stdc.wchar_ : __mbstate_t;
-
- ///
- alias mbstate_t = __mbstate_t;
+ import core.stdc.wchar_ : mbstate_t;
///
alias c_long fpos_t;
___value __value;
}
}
+else version (FreeBSD)
+{
+ ///
+ union __mbstate_t // <sys/_types.h>
+ {
+ char[128] _mbstate8 = 0;
+ long _mbstateL;
+ }
+
+ ///
+ alias mbstate_t = __mbstate_t;
+}
+else version (NetBSD)
+{
+ ///
+ union __mbstate_t
+ {
+ int64_t __mbstateL;
+ char[128] __mbstate8;
+ }
+
+ ///
+ alias mbstate_t = __mbstate_t;
+}
else version (OpenBSD)
{
+ ///
union __mbstate_t
{
char[128] __mbstate8;
int64_t __mbstateL;
}
+
+ ///
+ alias mbstate_t = __mbstate_t;
+}
+else version (DragonFlyBSD)
+{
+ ///
+ union __mbstate_t // <sys/stdint.h>
+ {
+ char[128] _mbstate8 = 0;
+ long _mbstateL;
+ }
+
+ ///
alias mbstate_t = __mbstate_t;
}
else version (Solaris)
int[6] __filler;
}
}
+
+ ///
+ alias mbstate_t = __mbstate_t;
}
else version (CRuntime_UClibc)
{
//void* fdlopen(int, int);
int dladdr(const(void)*, Dl_info*);
//dlfunc_t dlfunc(void*, const(char)*);
- //int dlinfo(void*, int, void*);
+ int dlinfo(void*, int, void*);
/+void dllockinit(void* _context,
void* function(void* _context) _lock_create,
void function(void* _lock) _rlock_acquire,