This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Error trying to exec cc1d...


Tobias Schlüter wrote:

On 2012-08-26 18:43, Angelo Graziosi wrote:

Hmm... I think it is a problem with GCC-4.6.3 on Kubuntu 12.04...


In this context, the .d files, like foo.d, are not source of D language
but "dictionary" files generated in true software by other applications

Well, how should the pure compiler know which language a file is. GCC - or to be more precise its compiler drivers ("gcc", "g++", "gfortran") - support
gfortran foo.c bar.f90
which invokes the C compiler ("cc1") for foo.c and the Fortran compiler for "bar.f90" ("f951") - and then links the result. Which languages are supported is determined when GCC itself is compiled.


(I don't know D but try cat foo.d...). Only on Kubuntu/Ubuntu (now I
have verified also on Ubuntu 12.04...) with gcc-4.6.3 it is thinking
that foo.d is a D source file!

Well, the programming language D is (by its inventors) regarded as successor of C. While you know that .d is not a D file, the compiler cannot - it either has to regard it as D or regard it as unknown format. What it does, depends on how GCC was configured (--enable-languages=...).


Note that the D compiler is not yet part of the official GCC distribution, though there are plans to include it for 4.8.


On: Cygwin (gcc-4.5), Fedora 16 (gcc-4.6.3), Mac OS X (Macports gcc-4.6.3) there is ONLY a warning (btw, I have verified it occurs since Nov. 2010! and the built software has worked fine on different systems),

I assume that some Debian/Ubuntu user has asked for the inclusion of D. After the gdc will be part of GCC, I think other distributions will follow suite.


By the way, the .mod files which most Fortran compilers generate also clash with Modula. If you use "make" you might run into this issue when the compiler all of the sudden tries to invoke the (probably nonexisting) Modula compiler.


So there's no gcc-internal way to do what you want: tell the compiler to assume that a file ending in ".d" should be passed to the linker. You seem to have two choices: renaming the file, changing its extension to, say, ".dd". Alternatively, you can write "-Wl,foo.d" (not tested).

I would suggest to rename the file to ".o" which is the common extension of some object, which is passed to the linker. I also made a quick test with "-Wl," and, unsurprisingly, it seems to work.


Tobias


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]