diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2009-03-18 13:48:07 -0400 |
---|---|---|
committer | Sandra Loosemore <sandra@gcc.gnu.org> | 2009-03-18 13:48:07 -0400 |
commit | 332459cd59f95ea89f97f8ddaab6a62e213c1981 (patch) | |
tree | 03aad01eb4f3ce8c2d02db035f69341a98e2bb47 /gcc | |
parent | d130d647f6ea66c2773f822f8f834a57b00fb817 (diff) | |
download | gcc-332459cd59f95ea89f97f8ddaab6a62e213c1981.zip gcc-332459cd59f95ea89f97f8ddaab6a62e213c1981.tar.gz gcc-332459cd59f95ea89f97f8ddaab6a62e213c1981.tar.bz2 |
invoke.texi (Code Gen Options): Expand discussion of -fno-common.
2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* doc/invoke.texi (Code Gen Options): Expand discussion of
-fno-common.
From-SVN: r144940
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 25 |
2 files changed, 24 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a13d05e..d941dc1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-03-18 Sandra Loosemore <sandra@codesourcery.com> + + * doc/invoke.texi (Code Gen Options): Expand discussion of + -fno-common. + 2009-03-18 Jakub Jelinek <jakub@redhat.com> * dse.c (struct group_info): Reorder fields for 64-bit hosts. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 275986c..277574a 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -15709,12 +15709,25 @@ Use it to conform to a non-default application binary interface. @item -fno-common @opindex fno-common -In C, allocate even uninitialized global variables in the data section of the -object file, rather than generating them as common blocks. This has the -effect that if the same variable is declared (without @code{extern}) in -two different compilations, you will get an error when you link them. -The only reason this might be useful is if you wish to verify that the -program will work on other systems which always work this way. +In C code, controls the placement of uninitialized global variables. +Unix C compilers have traditionally permitted multiple definitions of +such variables in different compilation units by placing the variables +in a common block. +This is the behavior specified by @option{-fcommon}, and is the default +for GCC on most targets. +On the other hand, this behavior is not required by ISO C, and on some +targets may carry a speed or code size penalty on variable references. +The @option{-fno-common} option specifies that the compiler should place +uninitialized global variables in the data section of the object file, +rather than generating them as common blocks. +This has the effect that if the same variable is declared +(without @code{extern}) in two different compilations, +you will get a multiple-definition error when you link them. +In this case, you must compile with @option{-fcommon} instead. +Compiling with @option{-fno-common} is useful on targets for which +it provides better performance, or if you wish to verify that the +program will work on other systems which always treat uninitialized +variable declarations this way. @item -fno-ident @opindex fno-ident |