aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog12
-rw-r--r--ld/ld.118
-rw-r--r--ld/ld.h3
-rw-r--r--ld/ld.texinfo7
-rw-r--r--ld/ldmisc.c3
-rw-r--r--ld/lexsup.c9
6 files changed, 47 insertions, 5 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 8167892..4bccbf3 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -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 b40beb6..d3df8f0 100644
--- 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
@@ -96,7 +104,7 @@
.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 620c3ba..e13e280 100644
--- 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;
diff --git a/ld/ld.texinfo b/ld/ld.texinfo
index f01c305..354d2a7 100644
--- a/ld/ld.texinfo
+++ b/ld/ld.texinfo
@@ -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
diff --git a/ld/ldmisc.c b/ld/ldmisc.c
index e07ce1b..a27cf11 100644
--- a/ld/ldmisc.c
+++ b/ld/ldmisc.c
@@ -399,6 +399,9 @@ vfinfo (fp, fmt, arg)
}
}
+ if (config.fatal_warnings)
+ config.make_executable = false;
+
if (fatal == true)
xexit (1);
}
diff --git a/ld/lexsup.c b/ld/lexsup.c
index 0d931b1..fb2e3f5 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -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;