* ld.texinfo: Document --fatal-warnings.
authorJ.T. Conklin <jtc@acorntoolworks.com>
Fri, 13 Apr 2001 02:22:23 +0000 (02:22 +0000)
committerJ.T. Conklin <jtc@acorntoolworks.com>
Fri, 13 Apr 2001 02:22:23 +0000 (02:22 +0000)
* ld.1: Regenerate.

* ldmisc.c (vfinfo): Set flag to inhibit making executable if
warnings have been turned into errors.
* lexsup.c (OPTION_WARN_FATAL): Define.
(ld_options): Entry for --fatal-warnings.
(parse_args): Handle OPTION_WARN_FATAL.
* ld.h (ld_config_type): Add fatal_warnings field.

ld/ChangeLog
ld/ld.1
ld/ld.h
ld/ld.texinfo
ld/ldmisc.c
ld/lexsup.c

index 8167892e26ce662c2e44687dbc543af1434306b9..4bccbf36563c478fc11c37d02d500f68fb68bd0b 100644 (file)
@@ -1,3 +1,15 @@
+2001-04-13  J.T. Conklin  <jtc@redback.com>
+
+       * ld.texinfo: Document --fatal-warnings.
+       * ld.1: Regenerate.
+
+       * ldmisc.c (vfinfo): Set flag to inhibit making executable if
+       warnings have been turned into errors.
+       * lexsup.c (OPTION_WARN_FATAL): Define.
+       (ld_options): Entry for --fatal-warnings.
+       (parse_args): Handle OPTION_WARN_FATAL.
+       * ld.h (ld_config_type): Add fatal_warnings field.
+
 2001-04-13  Jakub Jelinek  <jakub@redhat.com>
 
        * ldmain.c (main): Default to discard_sec_merge.
diff --git a/ld/ld.1 b/ld/ld.1
index b40beb6cc7d9522c4de8d670f695daddac10a6bf..d3df8f061c3edcf285b6bfee8fba01a56a0f0a46 100644 (file)
--- a/ld/ld.1
+++ b/ld/ld.1
@@ -2,8 +2,16 @@
 ''' $RCSfile$$Revision$$Date$
 '''
 ''' $Log$
-''' Revision 1.9  2001/03/25 20:32:31  nickc
-''' Automate generate on man pages
+''' Revision 1.10  2001/04/13 02:22:23  jtc
+''' * ld.texinfo: Document --fatal-warnings.
+''' * ld.1: Regenerate.
+'''
+''' * ldmisc.c (vfinfo): Set flag to inhibit making executable if
+''' warnings have been turned into errors.
+''' * lexsup.c (OPTION_WARN_FATAL): Define.
+''' (ld_options): Entry for --fatal-warnings.
+''' (parse_args): Handle OPTION_WARN_FATAL.
+''' * ld.h (ld_config_type): Add fatal_warnings field.
 '''
 '''
 .de Sh
 .nr % 0
 .rr F
 .\}
-.TH LD 1 "binutils-2.11.90" "23/Mar/101" "GNU"
+.TH LD 1 "binutils-2.11.90" "30/Mar/2001" "GNU"
 .UC
 .if n .hy 0
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
@@ -753,6 +761,8 @@ generated by the \-membedded-pic option to the \s-1GNU\s0 compiler and
 assembler.  It causes the linker to create a table which may be used at
 runtime to relocate any data which was statically initialized to pointer
 values.  See the code in testsuite/ld-empic for details.
+.Ip "\f(CW--fatal-warnings\fR" 4
+Treat all warnings as errors.
 .Ip "\f(CW--force-exe-suffix\fR" 4
 Make sure that an output file has a .exe suffix.
 .Sp
@@ -1492,6 +1502,8 @@ section entitled \*(L"GNU Free Documentation License\*(R".
 
 .IX Item "\f(CW--embedded-relocs\fR"
 
+.IX Item "\f(CW--fatal-warnings\fR"
+
 .IX Item "\f(CW--force-exe-suffix\fR"
 
 .IX Item "\f(CW--no-gc-sections\fR"
diff --git a/ld/ld.h b/ld/ld.h
index 620c3ba57bd2b63dad1b658e880c3a07a46f6a31..e13e28082b910e202e949d0e253e23dc17b48949 100644 (file)
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -192,6 +192,9 @@ typedef struct {
      changes due to the alignment of an input section.  */
   boolean warn_section_align;
 
+  /* If true, warning messages are fatal */
+  boolean fatal_warnings;
+
   boolean sort_common;
 
   boolean text_read_only;
index f01c305382c846c4e24308a004dddab4d3fc6af6..354d2a745b4b6619eac7893d3e7a118ff325d3c6 100644 (file)
@@ -982,6 +982,11 @@ assembler.  It causes the linker to create a table which may be used at
 runtime to relocate any data which was statically initialized to pointer
 values.  See the code in testsuite/ld-empic for details.
 
+
+@kindex --fatal-warnings
+@item --fatal-warnings
+Treat all warnings as errors.
+
 @kindex --force-exe-suffix
 @item  --force-exe-suffix
 Make sure that an output file has a .exe suffix.
@@ -1333,7 +1338,7 @@ about the version heirarchy for the library being created.  This option
 is only meaningful on ELF platforms which support shared libraries.
 @xref{VERSION}.
 
-@kindex --warn-comon
+@kindex --warn-common
 @cindex warnings, on combining symbols
 @cindex combining symbols, warnings on
 @item --warn-common
index e07ce1ba2cae4e50df6cbed0db86eced028cf395..a27cf1166d3be1d43b902b59d5293cbdc7ac3415 100644 (file)
@@ -399,6 +399,9 @@ vfinfo (fp, fmt, arg)
        }
     }
 
+  if (config.fatal_warnings)
+    config.make_executable = false;
+
   if (fatal == true)
     xexit (1);
 }
index 0d931b1e6ebe46cf6ce87a748a4ab48618061633..fb2e3f53deca130aecd7d8da07d6ecdc39adf44b 100644 (file)
@@ -109,7 +109,8 @@ int parsing_defsym = 0;
 #define OPTION_VERSION_EXPORTS_SECTION (OPTION_VERSION_SCRIPT + 1)
 #define OPTION_WARN_COMMON             (OPTION_VERSION_EXPORTS_SECTION + 1)
 #define OPTION_WARN_CONSTRUCTORS       (OPTION_WARN_COMMON + 1)
-#define OPTION_WARN_MULTIPLE_GP                (OPTION_WARN_CONSTRUCTORS + 1)
+#define OPTION_WARN_FATAL              (OPTION_WARN_CONSTRUCTORS + 1)
+#define OPTION_WARN_MULTIPLE_GP                (OPTION_WARN_FATAL + 1)
 #define OPTION_WARN_ONCE               (OPTION_WARN_MULTIPLE_GP + 1)
 #define OPTION_WARN_SECTION_ALIGN      (OPTION_WARN_ONCE + 1)
 #define OPTION_SPLIT_BY_RELOC          (OPTION_WARN_SECTION_ALIGN + 1)
@@ -388,6 +389,9 @@ static const struct ld_option ld_options[] =
   { {"warn-section-align", no_argument, NULL, OPTION_WARN_SECTION_ALIGN},
       '\0', NULL, N_("Warn if start of section changes due to alignment"),
       TWO_DASHES },
+  { {"fatal-warnings", no_argument, NULL, OPTION_WARN_FATAL},
+     '\0', NULL, N_("Treat warnings as errors"),
+     TWO_DASHES },
   { {"whole-archive", no_argument, NULL, OPTION_WHOLE_ARCHIVE},
       '\0', NULL, N_("Include all objects from following archives"), TWO_DASHES },
   { {"wrap", required_argument, NULL, OPTION_WRAP},
@@ -1032,6 +1036,9 @@ the GNU General Public License.  This program has absolutely no warranty.\n"));
        case OPTION_WARN_CONSTRUCTORS:
          config.warn_constructors = true;
          break;
+       case OPTION_WARN_FATAL:
+         config.fatal_warnings = true;
+         break;
        case OPTION_WARN_MULTIPLE_GP:
          config.warn_multiple_gp = true;
          break;