diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2000-08-22 19:14:32 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2000-08-22 19:14:32 +0000 |
commit | 56385375da9803facb2da8a5e0fe4032edd07df8 (patch) | |
tree | fbeea27fef04c814097f2236b6e1283be1cce8b0 /gas/config | |
parent | 5e0c222624648d0eff8f74a166798274c40cdb5e (diff) | |
download | gdb-56385375da9803facb2da8a5e0fe4032edd07df8.zip gdb-56385375da9803facb2da8a5e0fe4032edd07df8.tar.gz gdb-56385375da9803facb2da8a5e0fe4032edd07df8.tar.bz2 |
2000-08-22 H.J. Lu <hjl@gnu.org>
* config.in (STRICTCOFF): New for strict COFF.
* configure.in: Define STRICTCOFF for i386-*-msdosdjgpp*,
i386-*-go32* and i386-go32-rtems*.
* configure: Rebuilt.
* config/obj-coff.c (obj_coff_endef): Follow the historical
behavior if STRICTCOFF is not defined.
* doc/internals.texi: Document STRICTCOFF.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/obj-coff.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c index 3951fc4..4fbd646 100644 --- a/gas/config/obj-coff.c +++ b/gas/config/obj-coff.c @@ -732,14 +732,50 @@ obj_coff_endef (ignore) case C_ARG: case C_REGPARM: case C_FIELD: + + /* According to the COFF documentation: + + http://osr5doc.sco.com:1996/topics/COFF_SectNumFld.html + + A special section number (-2) marks symbolic debugging symbols, + including structure/union/enumeration tag names, typedefs, and + the name of the file. A section number of -1 indicates that the + symbol has a value but is not relocatable. Examples of + absolute-valued symbols include automatic and register variables, + function arguments, and .eos symbols. + + But from Ian Lance Taylor: + + http://sources.redhat.com/ml/binutils/2000-08/msg00202.html + + the actual tools all marked them as section -1. So the GNU COFF + assembler follows historical COFF assemblers. + + However, it causes problems for djgpp + + http://sources.redhat.com/ml/binutils/2000-08/msg00210.html + + By defining STRICTCOFF, a COFF port can make the assembler to + follow the documented behavior. */ +#ifdef STRICTCOFF case C_MOS: case C_MOE: case C_MOU: case C_EOS: +#endif SF_SET_DEBUG (def_symbol_in_progress); S_SET_SEGMENT (def_symbol_in_progress, absolute_section); break; +#ifndef STRICTCOFF + case C_MOS: + case C_MOE: + case C_MOU: + case C_EOS: + S_SET_SEGMENT (def_symbol_in_progress, absolute_section); + break; +#endif + case C_EXT: case C_WEAKEXT: #ifdef TE_PE |