X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=as%2Fmcs51%2Flkmain.c;h=3b0dbfe9857236a7570d667355a8e54d70accf30;hb=ecb80d43021b166a54e0fe0d014a31115e51da87;hp=21ae166108dd81fa62b6647da6b5a85406bbf0a4;hpb=554b80355adbbbd8436bdb0dd448ef3e956c0871;p=fw%2Fsdcc diff --git a/as/mcs51/lkmain.c b/as/mcs51/lkmain.c index 21ae1661..3b0dbfe9 100644 --- a/as/mcs51/lkmain.c +++ b/as/mcs51/lkmain.c @@ -14,11 +14,15 @@ * - use a_type == 0 as "virgin area" flag: set == 1 if -b */ +#include #include #include -#include #include "aslink.h" +/* yuck - but including unistd.h causes problems on Cygwin by redefining + * Addr_T. + */ +extern int unlink(const char *); /*)Module lkmain.c * @@ -32,7 +36,7 @@ * FILE * afile(fn,ft,wf) * VOID bassav() * VOID gblsav() - * VOID link() + * VOID link_main() * VOID lkexit() * VOID main(argc,argv) * VOID map() @@ -111,7 +115,7 @@ * int fprintf() c_library * int getline() lklex.c * VOID library() lklibr.c - * VOID link() lkmain.c + * VOID link_main() lkmain.c * VOID lkexit() lkmain.c * VOID lnkarea() lkarea.c * VOID map() lkmain.c @@ -138,8 +142,6 @@ char *argv[]; register char *p; register int c, i; - fprintf(stdout, "\n"); - startp = (struct lfile *) new (sizeof (struct lfile)); pflag = 1; @@ -227,7 +229,7 @@ char *argv[]; if ((ip[0] == ';') && (ip[1] == '!') && jfp) { fprintf( jfp, "%s\n", &ip[2] ); } - link(); + link_main(); } if (pass == 0) { /* @@ -348,9 +350,9 @@ int i; exit(i); } -/*)Function link() +/*)Function link_main() * - * The function link() evaluates the directives for each line of + * The function link_main() evaluates the directives for each line of * text read from the .rel file(s). The valid directives processed * are: * X, D, Q, H, M, A, S, T, R, and P. @@ -380,7 +382,7 @@ int i; */ VOID -link() +link_main() { register int c; @@ -412,7 +414,7 @@ link() sdp.s_area = NULL; sdp.s_areax = NULL; sdp.s_addr = 0; - lastExtendedAddress = -1; + // jwk lastExtendedAddress = -1; break; case 'M': @@ -839,7 +841,7 @@ bassav() * int lkerr error flag * * functions called: - * addr_t expr() lkeval.c + * Addr_T expr() lkeval.c * int fprintf() c_library * VOID getid() lklex.c * char getnb() lklex.c @@ -948,7 +950,7 @@ gblsav() * int lkerr error flag * * functions called: - * addr_t expr() lkeval.c + * Addr_T expr() lkeval.c * int fprintf() c_library * VOID getid() lklex.c * char getnb() lklex.c @@ -1041,14 +1043,14 @@ char *ft; register char *p1, *p2, *p3; register int c; FILE *fp; - char fb[FILSPC]; + char fb[PATH_MAX]; char *omode = (wf ? (wf == 2 ? "a" : "w") : "r"); p1 = fn; p2 = fb; p3 = ft; while ((c = *p1++) != 0 && c != FSEPX) { - if (p2 < &fb[FILSPC-4]) + if (p2 < &fb[PATH_MAX-4]) *p2++ = c; } *p2++ = FSEPX; @@ -1060,7 +1062,7 @@ char *ft; } } while ((c = *p3++) != 0) { - if (p2 < &fb[FILSPC-1]) + if (p2 < &fb[PATH_MAX-1]) *p2++ = c; } *p2++ = 0; @@ -1092,7 +1094,7 @@ char *ft; * functions called: * char getnb() lklex.c * VOID unget() lklex.c - * addr_t expr() lkeval.c + * Addr_T expr() lkeval.c * * side effects: * The iram_size may be modified.