Mercurial > hg-old > index.cgi
diff lwlink/readfiles.c @ 180:6ebb93b409ba
Added library paths and --section-base
author | lost |
---|---|
date | Thu, 05 Mar 2009 02:23:25 +0000 |
parents | 0395e6fd67e9 |
children | 048ebb85f6ef |
line wrap: on
line diff
--- a/lwlink/readfiles.c Wed Mar 04 05:34:17 2009 +0000 +++ b/lwlink/readfiles.c Thu Mar 05 02:23:25 2009 +0000 @@ -70,12 +70,42 @@ long bread; for (i = 0; i < ninputfiles; i++) { - f = fopen(inputfiles[i] -> filename, "rb"); - if (!f) + if (inputfiles[i] -> islib) { - fprintf(stderr, "Can't open file %s:", inputfiles[i] -> filename); - perror(""); - exit(1); + char *tf; + int s; + int j; + + f = NULL; + + for (j = 0; j < nlibdirs; j++) + { + s = strlen(libdirs[j]) + 7 + strlen(inputfiles[i] -> filename); + tf = lw_malloc(s + 1); + sprintf(tf, "%s/lib%s.a", libdirs[j], inputfiles[i] -> filename); + f = fopen(tf, "rb"); + if (!f) + { + free(tf); + continue; + } + free(tf); + } + if (!f) + { + fprintf(stderr, "Can't open library: -l%s\n", inputfiles[i] -> filename); + exit(1); + } + } + else + { + f = fopen(inputfiles[i] -> filename, "rb"); + if (!f) + { + fprintf(stderr, "Can't open file %s:", inputfiles[i] -> filename); + perror(""); + exit(1); + } } fseek(f, 0, SEEK_END); size = ftell(f);