gcc 4.8.1 made it to Debian Sid
H. S. Teoh
hsteoh at quickfur.ath.cx
Thu Jul 18 10:08:33 PDT 2013
On Thu, Jul 18, 2013 at 10:22:14AM +0200, eles wrote:
> On Thursday, 11 July 2013 at 14:42:09 UTC, H. S. Teoh wrote:
> >On Thu, Jul 11, 2013 at 08:09:33AM +0100, Iain Buclaw wrote:
> >>On Jul 11, 2013 1:28 AM, "H. S. Teoh" <hsteoh at quickfur.ath.cx>
> >You're right, I'll have to rewrite gdmd.compile() to do everything in
> >one go instead of compiling separately, as I have it now.
>
> This? (BTW, how to send github pull requests to a fork of the main
> repo?)
I think you have to fork my fork in order to make a pull, I don't know
if github supports pull requests to a different fork of the main repo.
> diff --git a/gdmd.d b/gdmd.d
> index bb310aa..dd08900 100644
> --- a/gdmd.d
> +++ b/gdmd.d
> @@ -513,7 +513,7 @@ void parseArgs(Config cfg, string[] _args)
> /**
> * Compiles the given source files.
> */
> -void compile(Config cfg)
> +void compile_only(Config cfg)
> {
> foreach (srcfile; cfg.sources) {
> auto objfile = cfg.src2obj(srcfile);
> @@ -590,18 +590,18 @@ unittest
> }
>
> /**
> - * Links the given sources files into the final executable.
> + * Compiles and links the given sources files into the final
> executable.
> */
> -void link(Config cfg)
> +void compile_and_link(Config cfg)
> {
> - /*
> + /*
> * Construct link command
> */
> - auto cmd = [ cfg.linker ] ~ cfg.linkFlags;
> + auto cmd = [ cfg.linker ] ~ cfg.gdcFlags ~ cfg.linkFlags;
>
> // Collect all object files.
> foreach (srcfile; cfg.sources) {
> - cmd ~= cfg.src2obj(srcfile);
> + cmd ~= srcfile;
> }
>
> // Create target directory if it doesn't exist yet.
> @@ -619,7 +619,7 @@ void link(Config cfg)
> debug writeln("[exec] ", cmd.join(" "));
> auto rc = execute(cmd);
> if (rc.status != 0)
> - throw new Exception("Link failed: %s".format(rc.output));
> + throw new Exception("Compile and link failed:
> %s".format(rc.output));
> }
>
> /**
> @@ -636,10 +636,12 @@ int main(string[] args)
> exit(0);
> }
>
> - compile(cfg);
> -
> - if (!cfg.dontLink)
> - link(cfg);
> + if (cfg.dontLink) {
> + compile_only(cfg);
> + }
> + else {
> + compile_and_link(cfg);
> + }
>
> return 0;
> } catch(ExitException e) {
Thanks for the diff! I'll try to find some time today to apply it.
T
--
Тише едешь, дальше будешь.
More information about the D.gnu
mailing list