Article: Q40810
Product(s): See article
Version(s): 5.10   | 5.10
Operating System(s): MS-DOS | OS/2
Keyword(s): ENDUSER | S_LINK | mspl13_c
Last Modified: 16-MAY-1989

Question :

In the map file generated by Microsoft LINK, there are two symbols:
_edata and _end. What are they?

Response:

When the /DOSSEG (default) option is used with the LINK command, these
two symbols are created by LINK and are used in the C startup code as
markers. They are only meaningful for the Microsoft C and FORTRAN
Compilers.

This information is explained on Page 273 of the "Microsoft CodeView
and Utilities Software Development Tools for the MS-DOS Operating
System" manual for C Version 5.00 or 5.10 in the LINK section. The
note on this page states that the _edata points to the beginning of
the BSS segment; _end points to the end of the BSS segment and the
beginning of the STACK segment.

These two symbols can be found in the startup source code file
CRT0.ASM. The startup source code is included in the Microsoft C
Optimizing Compiler for Versions 5.00 and 5.10.