stack must be after data when option -Y is not used (default behaviour)
authorjesusc <jesusc@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 6 Jan 2004 10:30:04 +0000 (10:30 +0000)
committerjesusc <jesusc@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 6 Jan 2004 10:30:04 +0000 (10:30 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3087 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
as/mcs51/lkmain.c

index 3c48f3ea4dd3fe1e75c9851ad5c357e05e3891bb..fef60af27abef53bb8905e166ee48588093359e5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-06  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
+       (default behaviour).
+
 2004-01-06 Erik Petrich <epetrich@ivorytower.norman.ok.us>
 
        A python script to validate compiler diagnostic messages. It can be
index fd9e4d070788f16b28036905f9fe5fd0c4f95532..48adf4dc3b8e945e38761248fee223a6544c7ec3 100644 (file)
@@ -78,6 +78,19 @@ extern int unlink(const char *);
 void Areas51 (void)
 {
        char * rel[]={
+               "XH",
+               "H 7 areas 0 global symbols",
+               "A _CODE size 0 flags 0",               /*Each .rel has one, so...*/
+               "A REG_BANK_0 size 0 flags 4",  /*Register banks are overlayable*/
+               "A REG_BANK_1 size 0 flags 4",
+               "A REG_BANK_2 size 0 flags 4",
+               "A REG_BANK_3 size 0 flags 4",
+               "A BSEG size 0 flags 80",               /*BSEG must be just before BITS*/
+               "A BSEG_BYTES size 0 flags 0",  /*Size will be obtained from BSEG in lnkarea()*/
+               ""
+       };
+       
+    char * rel2[]={
                "XH",
                "H B areas 0 global symbols",
                "A _CODE size 0 flags 0",               /*Each .rel has one, so...*/
@@ -95,11 +108,22 @@ void Areas51 (void)
        };
        int j;
 
-       for (j=0; rel[j][0]!=0; j++)
-       {
-               ip=rel[j];
-               link_main();
-       }
+    if(packflag_and_stacksize)
+    {
+           for (j=0; rel2[j][0]!=0; j++)
+           {
+                   ip=rel2[j];
+                   link_main();
+           }
+    }
+    else
+    {
+           for (j=0; rel[j][0]!=0; j++)
+           {
+                   ip=rel[j];
+                   link_main();
+           }
+    }
        
        /*Set the start address of the default areas:*/
        for(ap=areap; ap; ap=ap->a_ap)