# DP: Add D options and specs for the gcc driver.
Index: b/src/gcc/d/lang-specs.h
===================================================================
--- /dev/null
+++ b/src/gcc/d/lang-specs.h
@@ -0,0 +1,31 @@
+/* lang-specs.h -- D frontend for GCC.
+ Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+
+ 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
+ .
+*/
+
+/* %{!M} probably doesn't make sense because we would need
+ to do that -- -MD and -MMD doesn't sound like a plan for D.... */
+
+{".d", "@d", 0, 1, 0 },
+{".D", "@d", 0, 1, 0 },
+{".dd", "@d", 0, 1, 0 },
+{".DD", "@d", 0, 1, 0 },
+{".di", "@d", 0, 1, 0 },
+{".DI", "@d", 0, 1, 0 },
+{"@d",
+ "%{!E:cc1d %i %(cc1_options) %(cc1d) %I %{nostdinc*} %{+e*} %{I*} %{J*}\
+ %{M} %{MM} %{!fsyntax-only:%(invoke_as)}}", 0, 1, 0 },
+
Index: b/src/gcc/d/lang.opt
===================================================================
--- /dev/null
+++ b/src/gcc/d/lang.opt
@@ -0,0 +1,208 @@
+; GDC -- D front-end for GCC
+; Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+;
+; This program 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 2 of the License, or
+; (at your option) any later version.
+;
+; This program 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
+; .
+
+Language
+D
+
+debuglib=
+Driver Joined
+Debug library to use instead of phobos
+
+defaultlib=
+Driver Joined
+Default library to use instead of phobos
+
+fassert
+D
+Permit the use of the assert keyword
+
+; For D: defaults to on
+fbounds-check
+D
+Generate code to check bounds before indexing arrays
+
+fbuiltin
+D Var(flag_no_builtin, 0)
+Recognize built-in functions
+
+fdebug
+D
+Compile in debug code
+
+fdebug=
+D Joined RejectNegative
+-fdebug,-fdebug=,-fdebug= Compile in debug code, code <= level, or code identified by ident
+
+fdeps=
+D Joined RejectNegative
+-fdeps= Write module dependencies to filename
+
+fdoc
+D
+Generate documentation
+
+fdoc-dir=
+D Joined RejectNegative
+-fdoc-dir= Write documentation file to docdir directory
+
+fdoc-file=
+D Joined RejectNegative
+-fdoc-file= Write documentation file to filename
+
+fdoc-inc=
+D Joined RejectNegative
+-fdoc-inc= Include a Ddoc macro file
+
+fdump-source
+D RejectNegative
+Dump decoded UTF-8 text and source from HTML
+
+fd-verbose
+D
+Print information about D language processing to stdout
+
+fd-vtls
+D
+List all variables going into thread local storage
+
+femit-templates
+D
+-femit-templates Emit templates code and data even if the linker cannot merge multiple copies
+
+fignore-unknown-pragmas
+D
+Ignore unsupported pragmas
+
+fin
+D
+Generate runtime code for in() contracts
+
+fintfc
+Generate D interface files
+
+fintfc-dir=
+D Joined RejectNegative
+-fintfc-dir= Write D interface files to directory
+
+fintfc-file=
+D Joined RejectNegative
+-fintfc-file= Write D interface file to
+
+finvariants
+D
+Generate runtime code for invariant()'s
+
+fmake-deps=
+D Joined RejectNegative
+-fmake-deps= Write dependency output to the given file
+
+fmake-mdeps=
+D Joined RejectNegative
+Like -fmake-deps= but ignore system modules
+
+femit-moduleinfo
+D
+Generate ModuleInfo struct for output module
+
+fonly=
+D Joined RejectNegative
+Process all modules specified on the command line, but only generate code for the module specified by the argument
+
+fout
+D
+Generate runtime code for out() contracts
+
+fproperty
+D
+Enforce property syntax
+
+frelease
+D
+Compile release version
+
+fsplit-dynamic-arrays
+D Var(flag_split_darrays)
+Split dynamic arrays into length and pointer when passing to functions
+
+funittest
+D
+Compile in unittest code
+
+fversion=
+D Joined RejectNegative
+-fversion= Compile in version code >= or identified by
+
+fXf=
+D Joined RejectNegative
+-fXf= Write JSON file to
+
+imultilib
+D Joined Separate
+-imultilib Set to be the multilib include subdirectory
+
+iprefix
+D Joined Separate
+-iprefix Specify as a prefix for next two options
+
+isysroot
+D Joined Separate
+-isysroot Set to be the system root directory
+
+isystem
+D Joined Separate
+-isystem Add to the start of the system include path
+
+I
+D Joined Separate
+-I Add to the end of the main include path
+
+J
+D Joined Separate
+-J Put MODULE files in 'directory'
+
+nophoboslib
+Driver
+Do not link the standard D library in the compilation
+
+nostdinc
+D
+Do not search standard system include directories (those specified with -isystem will still be used)
+
+static-libphobos
+Driver
+Link the standard D library statically in the compilation
+
+Wall
+D
+; Documented in c.opt
+
+Wcast-result
+D Warning Var(warn_cast_result)
+Warn about casts that will produce a null or nil result
+
+Wdeprecated
+D
+; Documented in c.opt
+
+Werror
+D
+; Documented in common.opt
+
+Wunknown-pragmas
+D
+; Documented in c.opt
+