Hi Dominique,

> Any reason why the dg-additional-options "*-lcilkrts" have been removed?
> AFAICT they are needed for darwin.

-fcilkplus does (and should) include -lcilkrts when linking.  It
certainly does on Solaris and Linux.  Everything else is a usability
nightmare: you don't need to link Fortran programs with

$ gfortran -lgfortran -lquadmath

do you?

gcc.c (LINK_COMMAND_SPEC) has

%{fcilkplus:%:include(libcilkrts.spec)%(link_cilkrts)}\

and the generated libcilkrts.spec on Darwin has

*link_cilkrts: -lcilkrts %{static: }

Unfortunately, the darwin.h almost-copy of LINK_COMMAND_SPEC lacks
this.  We should really find a way to better modularize this (and other)
specs to avoid this error-prone duplication.

The following patch (completely untested) adds the above line to its
darwin.h counterpart.  I'll give it a whirl myself in this weekend's
bootstraps.  Sorry about the breakage.

        Rainer


2016-04-29  Rainer Orth  <r...@cebitec.uni-bielefeld.de>

        * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.

# HG changeset patch
# Parent  297a270669c098610ed0f7333b9a11ab4d3ef2bd
Handle -fcilkplus in Mac OS X LINK_COMMAND_SPEC

diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -179,6 +179,7 @@ extern GTY(()) int darwin_ms_struct;
     %{L*} %(link_libgcc) %o %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} \
     %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1): \
       %{static|static-libgcc|static-libstdc++|static-libgfortran: libgomp.a%s; : -lgomp } } \
+    %{fcilkplus:%:include(libcilkrts.spec)%(link_cilkrts)}\
     %{fgnu-tm: \
       %{static|static-libgcc|static-libstdc++|static-libgfortran: libitm.a%s; : -litm } } \
     %{!nostdlib:%{!nodefaultlibs:\
-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to