Αυτή η ενότητα καλύπτει διάφορα εργαλεία ανάπτυξης λογισμικού.
Αυτή η έκδοση του Fedora έχει χτιστεί με το GCC 4.1, το οποίο συμπεριλαμβάνεται στη διανομή.
Fedora developers have introduced changes in the ELF .hash section that provides symbols for dynamic linking. This new .gnu.hash section, which is produced with the new default --hash-style=gnu
option for gcc
, serves the same purpose as previous hash sections. It provides, however, an approximately 50% increase in dynamic linking speed. Binaries and libraries produced with the new hashing function are incompatible with older glibc
and dynamic linker releases. To use the old-style hashing routines for compatibility with older glibc
-based systems, pass the --hash-style=sysv
option instead.
You need GDB 6.1 or newer to debug binaries, unless they are compiled using the -fno-var-tracking
compilation option.
The -fwritable-strings
option is no longer accepted.
English-language diagnostic messages now use Unicode quotes. If you cannot read this, set your LC_CTYPE
environment variable to C
or change your terminal emulator.
The specs
file is no longer installed on most systems. Ordinary users will not notice, but developers who need to alter the file can use the -dumpspecs
option to generate the file for editing.
The SSA code optimizer is now included and brings with it better constant propagation, partial redundancy elimination, load and store code motion, strength reduction, dead storage elimination, better detection of unreachable code, and tail recursion by accumulation.
Autovectorization is supported. This technique achieves higher performance for repetitive loop code, in some circumstances.
The new sentinel attribute causes the compiler to issue a warning if a function such as execl(char *path, const char *arg, ...)
, which requires a NULL list terminator, is missing the NULL.
The cast-as-lvalue
, conditional-expression-as-lvalue
, and compund-expression-as-lvalue
extensions have been removed.
The #pragma pack()
semantics are now closer to those used by other compilers.
Taking the address of a variable declared with the register modifier now generates an error instead of a warning.
Arrays of incomplete element types now generate an error. This implies no forward reference to structure definitions.
The basic compiler, without any optimization ( -O0
), has been measured as much as 25% faster in real-world code.
Libraries may now contain function-scope static variables in multi-threaded programs. Embedded developers can use the -fno-threadsafe-statics
to turn off this feature, but ordinary users should never do this.