The following targets (based on wildcarded entries from config.gcc) do
*not* appear to define NO_IMPLICIT_EXTERN_C, i.e. GCC is configured to
suppose their headers are not C++-aware and to add an implicit extern
"C" around them.  Are there any in this list which should not be,
i.e. which should be presumed to have C++-aware headers?  Conversely,
are there any in this list whose maintainers can confirm that the
headers are not C++-aware and so the current configuration is correct?
Many are generic embedded targets with no fixed set of system headers,
but in such cases is the implicit extern "C" really the right default?

In particular, I'm surprised at the Darwin configurations apparently
not defining NO_IMPLICIT_EXTERN_C, and at most OpenBSD configurations
not doing so (but alpha-openbsd gets it from alpha/alpha.h); VxWorks
configurations are also inconsistent in this regard
(powerpc-wrs-vxworks gets it from rs6000/sysv4.h).  If
NO_IMPLICIT_EXTERN_C were defined in elfos.h that would massively
reduce the number of targets which do not define it (and therefore the
number needing changing to replace NO_IMPLICIT_EXTERN_C by an
IMPLICIT_EXTERN_C macro with the opposite sense).

Note: if you belive your target should define NO_IMPLICIT_EXTERN_C but 
doesn't, then I suggest preparing and testing the appropriate patch to 
define it; I'd rather that no such changes are mixed up with inverting the 
sense of the target macro used.

arc-*-elf*
arm-*-coff*
armel-*-coff*
arm-semi-aof
armel-semi-aof
arm-wrs-vxworks
arm*-*-ecos-elf
arm*-*-eabi*
arm*-*-symbianelf*
arm*-*-elf
ep9312-*-elf
arm*-wince-pe*
arm-*-pe*
arm*-*-kaos*
avr-*-* (other than avr-*-rtems*)
bfin*-elf*
bfin*-*
c4x-* (other than c4x-*-rtems*)
tic4x-* (other than tic4x-*-rtems*)
fr30-*-elf
frv-*-elf
h8300-*-elf*
h8300-*-* (other than h8300-*-rtems*)
hppa1.1-*-osf*
hppa1.1-*-bsd*
i[34567]86-*-darwin*
i[34567]86-*-elf*
i[34567]86-sequent-ptx4*
i[34567]86-sequent-sysv4*
i[34567]86-*-aout*
i[34567]86-*-openbsd2.*
i[34567]86-*openbsd3.[0123]
i[34567]86-*-openbsd*
i[34567]86-*-coff*
i[3456x]86-*-netware*
i[34567]86-*-sysv5*
i[34567]86-*-sysv4*
i[4567]86-wrs-vxworks
i[34567]86-*-uwin*
i[34567]86-*-kaos*
i860-*-sysv4*
ia64*-*-elf*
ip2k-*-elf
iq2000*-*-elf*
m32r-*-elf*
m32rle-*-elf*
m68hc11-*-*
m6811-*-*
m68hc12-*-*
m6812-*-*
m68k-*-aout*
m68k-*-coff*
m68020-*-elf*
m68k-*-elf*
m68k*-*-openbsd*
m68k-*-uclinux*
mcore-*-elf
mcore-*-pe*
mips*-*-openbsd*
mipsisa32-*-elf*
mipsisa32el-*-elf*
mipsisa32r2-*-elf*
mipsisa32r2el-*-elf*
mipsisa64-*-elf*
mipsisa64el-*-elf*
mipsisa64sr71k-*-elf*
mipsisa64sb1-*-elf*
mipsisa64sb1el-*-elf*
mips-*-elf*
mipsel-*-elf*
mips64-*-elf*
mips64el-*-elf*
mips64vr-*-elf*
mips64vrel-*-elf*
mips64orion-*-elf*
mips64orionel-*-elf*
mips-wrs-vxworks
mips-wrs-windiss
mipstx39-*-elf*
mipstx39el-*-elf*
mn10300-*-*
pdp11-*-bsd
pdp11-*-*
powerpc-*-beos*
powerpc-*-darwin*
rs6000-ibm-aix4.[12]*
powerpc-ibm-aix4.[12]*
rs6000-ibm-aix4.[3456789]*
powerpc-ibm-aix4.[3456789]*
rs6000-ibm-aix5.1.*
powerpc-ibm-aix5.1.*
rs6000-ibm-aix[56789].*
powerpc-ibm-aix[56789].*
sh*-*-* (other than sh*-*-linux*, sh*-*-netbsd* and sh*-*-rtems*)
sparc-*-openbsd*
sparc64-*-openbsd* (deliberate #undef)
sparc-*-sysv4*
strongarm-*-elf*
strongarm-*-pe
strongarm-*-kaos*
v850e1-*-*
v850e-*-*
v850-*-*
vax-*-bsd*
vax-*-sysv*
vax-*-openbsd*
vax-*-ultrix*
xscale-*-elf
xscale-*-coff

-- 
Joseph S. Myers               http://www.srcf.ucam.org/~jsm28/gcc/
    [EMAIL PROTECTED] (personal mail)
    [EMAIL PROTECTED] (CodeSourcery mail)
    [EMAIL PROTECTED] (Bugzilla assignments and CCs)

Reply via email to