summaryrefslogtreecommitdiff
path: root/05/tcc-0.9.27/tcc.c
diff options
context:
space:
mode:
authorpommicket <pommicket@gmail.com>2023-07-03 15:47:07 -0400
committerpommicket <pommicket@gmail.com>2023-07-03 15:47:07 -0400
commit3384d6913338dcacd36468ea621668417cea1ed3 (patch)
tree9b0f7aa3d3229e1c0238057789834bdb0849bba7 /05/tcc-0.9.27/tcc.c
parentfe7a0abd38d61a449c4beaa7a514c2be5df872cf (diff)
fix compile errors
Diffstat (limited to '05/tcc-0.9.27/tcc.c')
-rw-r--r--05/tcc-0.9.27/tcc.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/05/tcc-0.9.27/tcc.c b/05/tcc-0.9.27/tcc.c
index e824f98..bd3f959 100644
--- a/05/tcc-0.9.27/tcc.c
+++ b/05/tcc-0.9.27/tcc.c
@@ -371,3 +371,24 @@ redo:
fclose(ppfp);
return ret;
}
+
+
+
+char **__environ;
+
+int __libc_start_main(
+ int (*main)(int, char **, char **), int argc, char **argv,
+ int (*init)(int, char **, char **), void (*fini)(void),
+ void (*ldso_fini)(void))
+{
+ /* Save the environment if it may be used by libc/application */
+ char **envp = argv+argc+1;
+ if (__environ != (void *)-1) __environ = envp;
+
+ /* Execute constructors (static) linked into the application */
+ if (init) init(argc, argv, envp);
+
+ /* Pass control to to application */
+ exit(main(argc, argv, envp));
+ return 0;
+}