Chapter 11.Known Causes of Trouble with GCCThis section describes known problems that affect users of GCC. Most of these are not GCC bugs perse--if they were, we would fix them. But the result for a user may be like the result of a bug.Some of these problems are due to bugs in other software, some are missing features that are too muchwork to add, and some are places where people’s opinions differ as to what is best.11.1. Actual Bugs We Haven’t Fixed Yet• The fixincludes script interacts badly with automounters; if the directory of system header filesis automounted, it tends to be unmounted while fixincludes is running. This would seem to bea bug in the automounter. We don’t know any good way to work around it.• The fixproto script will sometimes add prototypes for the sigsetjmp and siglongjmp func-tions that reference the jmp_buf type before that type is defined. To work around this, edit theoffending file and place the typedef in front of the prototypes.• When -pedantic-errors is specified, GCC will incorrectly give an error message when a func-tion name is specified in an expression involving the comma operator.11.2. Cross-Compiler ProblemsYou may run into problems with cross compilation on certain machines, for several reasons.• Cross compilation can run into trouble for certain machines because some target machines’ assem-blers require floating point numbers to be written as integer constants in certain contexts.The compiler writes these integer constants by examining the floating point value as an integer andprinting that integer, because this is simple to write and independent of the details of the floatingpoint representation. But this does not work if the compiler is running on a different machine withan incompatible floating point format, or even a different byte-ordering.In addition, correct constant folding of floating point values requires representing them in the targetmachine’s format. (The C standard does not quite require this, but in practice it is the only way towin.)It is now possible to overcome these problems by defining macros such as REAL_VALUE_TYPE. Butdoing so is a substantial amount of work for each target machine. .• At present, the program mips-tfile which adds debug support to object files on MIPS systemsdoes not work in a cross compile environment.11.3. InteroperationThis section lists various difficulties encountered in using GCC together with other compilers or withthe assemblers, linkers, libraries and debuggers on certain systems.• On many platforms, GCC supports a different ABI for C++ than do other compilers, so the objectfiles compiled by GCC cannot be used with object files generated by another C++ compiler.