Add netbsd support for D compiler and runtime
Merges upstream druntime fb4bda91. 2019-02-14 Maya Rashish <coypu@sdf.org> gcc/ChangeLog: * config.gcc (*-*-netbsd*): Add netbsd-d.o * config/netbsd-d.c: New file. * config/t-netbsd: Add netbsd-d.o gcc/d/ChangeLog: * d-system.h: NetBSD is POSIX. libphobos/ChangeLog: * configure.tgt: Add netbsd/x86 as supported target. From-SVN: r268905
This commit is contained in:
parent
a6c723e202
commit
2f2b8e4054
13 changed files with 121 additions and 32 deletions
|
@ -1,3 +1,9 @@
|
|||
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
|
||||
|
|
|
@ -839,6 +839,7 @@ case ${target} in
|
|||
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
|
||||
|
@ -847,6 +848,7 @@ case ${target} in
|
|||
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"
|
||||
|
|
41
gcc/config/netbsd-d.c
Normal file
41
gcc/config/netbsd-d.c
Normal file
|
@ -0,0 +1,41 @@
|
|||
/* 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;
|
|
@ -19,3 +19,7 @@
|
|||
netbsd.o: $(srcdir)/config/netbsd.c
|
||||
$(COMPILE) $<
|
||||
$(POSTCOMPILE)
|
||||
|
||||
netbsd-d.o: $(srcdir)/config/netbsd-d.c
|
||||
$(COMPILE) $<
|
||||
$(POSTCOMPILE)
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
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
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
|
||||
/* 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
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
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
|
||||
|
|
|
@ -30,6 +30,8 @@ case "${target}" in
|
|||
;;
|
||||
x86_64-*-linux* | i?86-*-linux*)
|
||||
;;
|
||||
x86_64-*-netbsd* | i?86-*-netbsd*)
|
||||
;;
|
||||
*)
|
||||
UNSUPPORTED=1
|
||||
;;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
2fd957307d94b5ce89eb173910cc7f1995d99031
|
||||
fb4bda91b0b43b5a18e1c143943c101ad4e17667
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the dlang/druntime repository.
|
||||
|
|
|
@ -53,6 +53,13 @@ else version (FreeBSD)
|
|||
*/
|
||||
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)
|
||||
{
|
||||
/***
|
||||
|
|
|
@ -198,12 +198,6 @@ else version (FreeBSD)
|
|||
ubyte *_base;
|
||||
int _size;
|
||||
}
|
||||
|
||||
union __mbstate_t // <sys/_types.h>
|
||||
{
|
||||
char[128] _mbstate8;
|
||||
long _mbstateL;
|
||||
}
|
||||
}
|
||||
else version (NetBSD)
|
||||
{
|
||||
|
@ -228,12 +222,6 @@ else version (NetBSD)
|
|||
ubyte *_base;
|
||||
int _size;
|
||||
}
|
||||
|
||||
union __mbstate_t // <sys/_types.h>
|
||||
{
|
||||
char[128] _mbstate8;
|
||||
long _mbstateL;
|
||||
}
|
||||
}
|
||||
else version (OpenBSD)
|
||||
{
|
||||
|
@ -258,12 +246,6 @@ else version (OpenBSD)
|
|||
ubyte *_base;
|
||||
int _size;
|
||||
}
|
||||
|
||||
union __mbstate_t // <sys/_types.h>
|
||||
{
|
||||
char[128] __mbstate8;
|
||||
long __mbstateL;
|
||||
}
|
||||
}
|
||||
else version (DragonFlyBSD)
|
||||
{
|
||||
|
@ -297,12 +279,6 @@ 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)
|
||||
{
|
||||
|
@ -518,6 +494,9 @@ else version (Darwin)
|
|||
}
|
||||
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;
|
||||
|
||||
|
@ -554,7 +533,7 @@ else version (FreeBSD)
|
|||
pthread_t _fl_owner;
|
||||
int _fl_count;
|
||||
int _orientation;
|
||||
__mbstate_t _mbstate;
|
||||
mbstate_t _mbstate;
|
||||
}
|
||||
|
||||
///
|
||||
|
@ -664,10 +643,7 @@ else version (DragonFlyBSD)
|
|||
}
|
||||
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;
|
||||
|
|
|
@ -43,13 +43,52 @@ version (CRuntime_Glibc)
|
|||
___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)
|
||||
|
@ -66,6 +105,9 @@ else version (Solaris)
|
|||
int[6] __filler;
|
||||
}
|
||||
}
|
||||
|
||||
///
|
||||
alias mbstate_t = __mbstate_t;
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
{
|
||||
|
|
|
@ -103,7 +103,7 @@ static if (__BSD_VISIBLE)
|
|||
//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,
|
||||
|
|
Loading…
Add table
Reference in a new issue