summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2024-03-14 20:40:34 +0000
committermidipix <writeonce@midipix.org>2024-03-14 20:40:34 +0000
commit7c3e61cef2f522ad4008682c5b7671eeee2bf0e5 (patch)
treeee65b80d4d403f1a04b7ca3eb2dadf9f98375856
parenteac61a9b72fe08c4304722f8aa59edacbddc4fd8 (diff)
downloadslibtool-7c3e61cef2f522ad4008682c5b7671eeee2bf0e5.tar.bz2
slibtool-7c3e61cef2f522ad4008682c5b7671eeee2bf0e5.tar.xz
link mode: do not create dependency files for explicit archive outputs.
-rw-r--r--src/internal/slibtool_linkcmd_impl.h3
-rw-r--r--src/logic/linkcmd/slbt_linkcmd_archive.c12
-rw-r--r--src/logic/slbt_exec_link.c4
3 files changed, 11 insertions, 8 deletions
diff --git a/src/internal/slibtool_linkcmd_impl.h b/src/internal/slibtool_linkcmd_impl.h
index c0db6e1..e1b384e 100644
--- a/src/internal/slibtool_linkcmd_impl.h
+++ b/src/internal/slibtool_linkcmd_impl.h
@@ -68,7 +68,8 @@ int slbt_exec_link_create_archive(
const struct slbt_driver_ctx * dctx,
struct slbt_exec_ctx * ectx,
const char * arfilename,
- bool fpic);
+ bool fpic,
+ bool fdep);
int slbt_exec_link_create_library(
const struct slbt_driver_ctx * dctx,
diff --git a/src/logic/linkcmd/slbt_linkcmd_archive.c b/src/logic/linkcmd/slbt_linkcmd_archive.c
index c55b369..b7c090b 100644
--- a/src/logic/linkcmd/slbt_linkcmd_archive.c
+++ b/src/logic/linkcmd/slbt_linkcmd_archive.c
@@ -74,7 +74,8 @@ slbt_hidden int slbt_exec_link_create_archive(
const struct slbt_driver_ctx * dctx,
struct slbt_exec_ctx * ectx,
const char * arfilename,
- bool fpic)
+ bool fpic,
+ bool fdep)
{
int fdcwd;
char ** argv;
@@ -159,10 +160,11 @@ slbt_hidden int slbt_exec_link_create_archive(
return SLBT_NESTED_ERROR(dctx);
/* .deps */
- if (slbt_exec_link_create_dep_file(
- dctx,ectx,ectx->cargv,
- arfilename,true))
- return SLBT_NESTED_ERROR(dctx);
+ if (fdep)
+ if (slbt_exec_link_create_dep_file(
+ dctx,ectx,ectx->cargv,
+ arfilename,true))
+ return SLBT_NESTED_ERROR(dctx);
/* ar spawn */
if ((slbt_spawn(ectx,true) < 0) && (ectx->pid < 0)) {
diff --git a/src/logic/slbt_exec_link.c b/src/logic/slbt_exec_link.c
index 0509047..50709d3 100644
--- a/src/logic/slbt_exec_link.c
+++ b/src/logic/slbt_exec_link.c
@@ -205,7 +205,7 @@ int slbt_exec_link(const struct slbt_driver_ctx * dctx)
/* non-pic libfoo.a */
if (dot && !strcmp(dot,".a"))
- if (slbt_exec_link_create_archive(dctx,ectx,output,false)) {
+ if (slbt_exec_link_create_archive(dctx,ectx,output,false,false)) {
slbt_ectx_free_exec_ctx(ectx);
return SLBT_NESTED_ERROR(dctx);
}
@@ -258,7 +258,7 @@ int slbt_exec_link(const struct slbt_driver_ctx * dctx)
if (slbt_exec_link_create_archive(
dctx,ectx,
ectx->arfilename,
- fpic)) {
+ fpic,true)) {
slbt_ectx_free_exec_ctx(ectx);
return SLBT_NESTED_ERROR(dctx);
}