]> git.sur5r.net Git - cc65/commitdiff
Prepared the code for referencing a symbol that forces the startup code to get
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 28 Jul 2009 18:55:23 +0000 (18:55 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 28 Jul 2009 18:55:23 +0000 (18:55 +0000)
linked in.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3976 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/codegen.c
src/cc65/codegen.h
src/cc65/function.c

index 81f4ecfb3dcb8ffb5cfa350187e65466dcdbfffc..4f58ce0157912c726385a6095297e94a1adb2047 100644 (file)
@@ -385,6 +385,16 @@ void g_defimport (const char* Name, int ZP)
 
 
 
+void g_importstartup (void)
+/* Forced import of the startup segment */
+{   
+#if 0 
+    AddTextLine ("\t.forceimport\t__STARTUP_RUN__");
+#endif
+}
+
+
+
 void g_importmainargs (void)
 /* Forced import of a special symbol that handles arguments to main */
 {
index 815482fe48cf7ee9a50032bac8eb137fa083f71b..2b94ec5345830a31e5c5017cee9cb6e5a78b835e 100644 (file)
@@ -153,6 +153,9 @@ void g_defexport (const char* Name, int ZP);
 void g_defimport (const char* Name, int ZP);
 /* Import the given label */
 
+void g_importstartup (void);
+/* Forced import of the startup segment */
+
 void g_importmainargs (void);
 /* Forced import of a special symbol that handles arguments to main */
 
index d278fc63a392c2d4b562fdcb1903fb0f05b776fe..9c2c3f45d26c0acc27437ea0ac39feff9a1cf22f 100644 (file)
@@ -381,6 +381,11 @@ void NewFunc (SymEntry* Func)
             Error ("`main' must always return an int");
         }
 
+        /* Add a forced import of a symbol that is contained in the startup
+         * code. This will force the startup code to be linked in.
+         */
+        g_importstartup ();
+
         /* If main() takes parameters, generate a forced import to a function
          * that will setup these parameters. This way, programs that do not
          * need the additional code will not get it.