diff options
author | cracauer <cracauer@FreeBSD.org> | 2000-03-08 12:58:03 +0000 |
---|---|---|
committer | cracauer <cracauer@FreeBSD.org> | 2000-03-08 12:58:03 +0000 |
commit | ce4fd272577d7c5ecf7b29ac297959663b5ba67a (patch) | |
tree | 898eae0e73260c6677f30d911f52944c54711ea2 /contrib | |
parent | 4c5ed2febdc663b9c9b3e62a4d37569c81ac2947 (diff) | |
download | FreeBSD-src-ce4fd272577d7c5ecf7b29ac297959663b5ba67a.zip FreeBSD-src-ce4fd272577d7c5ecf7b29ac297959663b5ba67a.tar.gz |
Turn a warning into an error. Occurances of that warning generate bad
-fpic code that damages symbol locations at runtime.
The only know occurance in our tree (src and ports) was locatime.c,
which was just changed to generate code that doesn't trigger the
problem.
This is a workaround, the real cause is that our gas doesn't
understand code our gcc generates for some -O -fpic code. They are
expected to be back in sync soon, but until then (including
4.0-RELEASE) we need to prevent people from using bad -fpic code.
PR: avoids such things as in bin/16862
Submitted by: bde
Approved by: jkh
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/binutils/gas/config/tc-i386.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/contrib/binutils/gas/config/tc-i386.c b/contrib/binutils/gas/config/tc-i386.c index 53df543..d93456d 100644 --- a/contrib/binutils/gas/config/tc-i386.c +++ b/contrib/binutils/gas/config/tc-i386.c @@ -19,6 +19,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* $FreeBSD$ */ + /* Intel 80386 machine specific gas. Written by Eliot Dresselhaus (eliot@mgm.mit.edu). @@ -2139,15 +2141,8 @@ i386_operand (operand_string) SKIP_WHITESPACE (); exp_seg = expression (exp); if (*input_line_pointer != '\0') - { - /* This should be as_bad, but some versions of gcc, up to - about 2.8 and egcs 1.01, generate a bogus @GOTOFF(%ebx) - in certain cases. Oddly, the code in question turns out - to work correctly anyhow, so we make this just a warning - until those versions of gcc are obsolete. */ - as_warn ("warning: unrecognized characters `%s' in expression", - input_line_pointer); - } + as_bad ("warning: unrecognized characters `%s' in expression", + input_line_pointer); input_line_pointer = save_input_line_pointer; if (exp->X_op == O_absent) |