KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

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.

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.