On Sat, May 20, 2017 at 11:39:14AM -0600, Ian Lepore wrote: > On Fri, 2017-05-19 at 17:07 -0700, Steve Kargl wrote: > > % which cpp > > /usr/bin/cpp > > troutmask:kargl cpp --version > > FreeBSD clang version 4.0.0 (tags/RELEASE_400/final 297347) (based on > > LLVM 4.0.0) > > Target: x86_64-unknown-freebsd12.0 > > Thread model: posix > > InstalledDir: /usr/bin > > troutmask:kargl cpp --help |grep trad > > -traditional-cpp Enable some traditional CPP emulation > > troutmask:kargl cpp -traditional-cpp boxmuller.F90 > > cpp: error: unable to execute command: Executable "gcc" doesn't > > exist! > > > > OK, so what is the preprocessor for clang? > > > > It looks like the problem is that it sees the .F90 and wants to "do the > right thing" for fortran sources, which is "invoke gcc". I got a clue > by adding '-###' (quotes required) to see what cpp was trying to do > internally.
Thanks. I did not know about the -### option. > You might get the effect you want by either adding something like -x > assembler-with-cpp, or maybe by hiding the filetype from cpp: I'm checking out the new devel/flang port (a Fortran front-end for clang). Although flang recognizes the .F90 extension, 'flang -c boxmuller.F90' dies a horrible death because it assumes a modern cpp syntax. AFAIK, the traditional syntax that gcc uses with the -traditional-cpp option is required by those who use C preprocessing directives in their Fortran. Modern cpp can corrupt valid Fortran. Having clang invoke gcc when I tried cpp caught me off guard. -- Steve 20170425 https://www.youtube.com/watch?v=VWUpyCsUKR4 20161221 https://www.youtube.com/watch?v=IbCHE-hONow _______________________________________________ firstname.lastname@example.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"