From patchwork Tue Jan 22 16:29:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maya Rashish X-Patchwork-Id: 1029390 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-494539-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=sdf.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="dygig2To"; dkim=pass (1024-bit key; unprotected) header.d=sdf.org header.i=@sdf.org header.b="gnPVL5DI"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43kYlp4b52z9s1l for ; Wed, 23 Jan 2019 03:29:23 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; q=dns; s=default; b=xME4jIi0NrOxmx1ov9Xsq4fOIAAQV8HWr4zCHKj7uj3uPvl0s2 TcQTFxCN9hyminCul2F0J2lUEGjakPBrXLc57aJ7XcLHO7mcS9+fmIohyWUVQT17 VT/mMKy165KeKG3qXfea+FCxSvZ9+drqcUj5KdfbSxeFejCxu8/geZkmM= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; s= default; bh=+sydBb0HU0/UhNhK4vbe3zrEvbM=; b=dygig2TogD78o9FTjTCk JqMCaSWBJelv/r8JE3XSwFt3i8ySnwzD48BYPNOv++1841zoCXquCayeXaEgK0RF xFwyxwPku1+kC6QC+SZF1PXkZYnrVS/14eRnIsKH07q7ZwcY/fF4iV5lNQWRvsvj 2/JBMXaI5IPvMRDFhheLl0I= Received: (qmail 39207 invoked by alias); 22 Jan 2019 16:29:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 39199 invoked by uid 89); 22 Jan 2019 16:29:15 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=H*r:8.14.5, sk:global, Forward X-HELO: mx.sdf.org Received: from mx.sdf.org (HELO mx.sdf.org) (205.166.94.20) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 22 Jan 2019 16:29:12 +0000 Received: from sdf.org (IDENT:coypu@sdf.lonestar.org [205.166.94.16]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id x0MGT6j7029771 (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits) verified NO); Tue, 22 Jan 2019 16:29:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=sdf.org; s=default; t=1548174550; bh=PYmk+ps17JBPQFmR4tnLlDcVJEAoKLSF86B/EehdTHw=; h=Date:From:To:Cc:Subject; b=gnPVL5DIvTSPflFISPQzPIYt4BeQytpF1iwyPR6Yd+mBdO57/lYV31oGGuKSYiqsv 35+TuxBm9rzj1TYOrahma5eDRhU/RelMpfJ7WNBooeDQXgnwcz8AVmfaDd0u5+G0LO 5lSgX6K/gO0mQ4NP1y0TsA03RjrLEn+HE6Hzezo0= Received: (from coypu@localhost) by sdf.org (8.15.2/8.12.8/Submit) id x0MGT5LR009673; Tue, 22 Jan 2019 16:29:05 GMT Date: Tue, 22 Jan 2019 16:29:05 +0000 From: Maya Rashish To: gcc-patches@gcc.gnu.org Cc: ibuclaw@gdcproject.org Subject: [PATCH,GDC] Add netbsd support to GDC Message-ID: <20190122162905.GA19422@SDF.ORG> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.9.1 (2017-09-22) libphobos/libdruntime changes were contributed upstream: https://github.com/dlang/druntime/pull/2472 (caveat: pending a change to netbsd/execinfo.d) One missing patch is needed for GDC to work. gcc/config.gcc (*-*-netbsd*): add netbsd-d.o gcc/config/t-netbsd: add netbsd-d.o gcc/d/d-builtins.cc: add NetBSD gcc/d/d-system.h: NetBSD is POSIX gcc/d/dmd/globals.h: add isNetBSD libphobos/configure.tgt: Mark netbsd/x86 as supported --- gcc/config.gcc | 2 ++ gcc/config/t-netbsd | 4 ++++ gcc/d/d-builtins.cc | 2 ++ gcc/d/d-system.h | 3 ++- gcc/d/dmd/globals.h | 1 + libphobos/configure.tgt | 2 ++ 6 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/config.gcc b/gcc/config.gcc index a189cb19f63..c5d3044b017 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -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" diff --git a/gcc/config/t-netbsd b/gcc/config/t-netbsd index 4626e963ebf..716a94f86c6 100644 --- a/gcc/config/t-netbsd +++ b/gcc/config/t-netbsd @@ -19,3 +19,7 @@ netbsd.o: $(srcdir)/config/netbsd.c $(COMPILE) $< $(POSTCOMPILE) + +netbsd-d.o: $(srcdir)/config/netbsd-d.c + $(COMPILE) $< + $(POSTCOMPILE) diff --git a/gcc/d/d-builtins.cc b/gcc/d/d-builtins.cc index b0a315a3ed9..ca105c7635d 100644 --- a/gcc/d/d-builtins.cc +++ b/gcc/d/d-builtins.cc @@ -382,6 +382,8 @@ d_add_builtin_version (const char* ident) global.params.isWindows = true; else if (strcmp (ident, "FreeBSD") == 0) global.params.isFreeBSD = true; + else if (strcmp (ident, "NetBSD") == 0) + global.params.isNetBSD = true; else if (strcmp (ident, "OpenBSD") == 0) global.params.isOpenBSD = true; else if (strcmp (ident, "Solaris") == 0) diff --git a/gcc/d/d-system.h b/gcc/d/d-system.h index cd59b827812..c32825d4ad1 100644 --- a/gcc/d/d-system.h +++ b/gcc/d/d-system.h @@ -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 diff --git a/gcc/d/dmd/globals.h b/gcc/d/dmd/globals.h index 6c37cca3236..4fb96fecef4 100644 --- a/gcc/d/dmd/globals.h +++ b/gcc/d/dmd/globals.h @@ -84,6 +84,7 @@ struct Param bool isOSX; // generate code for Mac OSX bool isWindows; // generate code for Windows bool isFreeBSD; // generate code for FreeBSD + bool isNetBSD; // generate code for NetBSD bool isOpenBSD; // generate code for OpenBSD bool isSolaris; // generate code for Solaris bool hasObjectiveC; // target supports Objective-C diff --git a/libphobos/configure.tgt b/libphobos/configure.tgt index 2b2a9746811..0471bfd816b 100644 --- a/libphobos/configure.tgt +++ b/libphobos/configure.tgt @@ -30,6 +30,8 @@ case "${target}" in ;; x86_64-*-linux* | i?86-*-linux*) ;; + x86_64-*-netbsd* | i?86-*-netbsd*) + ;; *) UNSUPPORTED=1 ;;