diff options
author | midipix <writeonce@midipix.org> | 2016-09-27 00:00:12 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2016-09-27 00:00:12 -0400 |
commit | e3d03d442aad186e5d00e278fb7d80fcaba42c97 (patch) | |
tree | 4e5ac17057a3f964b42624829eca9acb724b5df7 | |
parent | d22d016db5fbc087602327ca99cb45b0a1c08c43 (diff) | |
download | slibtool-e3d03d442aad186e5d00e278fb7d80fcaba42c97.tar.bz2 slibtool-e3d03d442aad186e5d00e278fb7d80fcaba42c97.tar.xz |
link mode: confirm need for archive import; limit .a deps to external deps.
-rw-r--r-- | src/logic/slbt_exec_link.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/logic/slbt_exec_link.c b/src/logic/slbt_exec_link.c index a9d0603..0f35272 100644 --- a/src/logic/slbt_exec_link.c +++ b/src/logic/slbt_exec_link.c @@ -508,7 +508,8 @@ static int slbt_exec_link_create_dep_file( const struct slbt_driver_ctx * dctx, struct slbt_exec_ctx * ectx, char ** altv, - const char * libfilename) + const char * libfilename, + bool farchive) { char ** parg; char * popt; @@ -555,6 +556,8 @@ static int slbt_exec_link_create_dep_file( plib = popt + 10; } else if (!strncmp(*parg,"-f",2)) { (void)0; + } else if (farchive) { + (void)0; } else if ((popt = strrchr(*parg,'.')) && !strcmp(popt,".la")) { /* import dependency list */ if ((base = strrchr(*parg,'/'))) @@ -806,7 +809,9 @@ static int slbt_exec_link_create_archive( return SLBT_NESTED_ERROR(dctx); /* .deps */ - if (slbt_exec_link_create_dep_file(dctx,ectx,ectx->cargv,arfilename)) + if (slbt_exec_link_create_dep_file( + dctx,ectx,ectx->cargv, + arfilename,true)) return SLBT_NESTED_ERROR(dctx); /* ar spawn */ @@ -888,7 +893,9 @@ static int slbt_exec_link_create_library( slbt_adjust_input_argument(*parg,".lo",".o",true); /* .deps */ - if (slbt_exec_link_create_dep_file(dctx,ectx,ectx->cargv,dsofilename)) + if (slbt_exec_link_create_dep_file( + dctx,ectx,ectx->cargv, + dsofilename,false)) return slbt_exec_link_exit( &depsmeta, SLBT_NESTED_ERROR(dctx)); |