diff --git a/src/logic/slbt_exec_link.c b/src/logic/slbt_exec_link.c
index 7cea3ca..3ddbe6f 100644
--- a/src/logic/slbt_exec_link.c
+++ b/src/logic/slbt_exec_link.c
@@ -47,10 +47,11 @@ static bool slbt_adjust_input_argument(char * arg, bool fpic)
 	}
 }
 
-static int slbt_exec_link_static_archive(
+static int slbt_exec_link_create_archive(
 	const struct slbt_driver_ctx *	dctx,
 	struct slbt_exec_ctx *		ectx,
-	const char *			arfilename)
+	const char *			arfilename,
+	bool				fpic)
 {
 	char ** 	aarg;
 	char ** 	parg;
@@ -84,7 +85,7 @@ static int slbt_exec_link_static_archive(
 
 	/* input argument adjustment */
 	for (parg=ectx->cargv; *parg; parg++)
-		if (slbt_adjust_input_argument(*parg,false))
+		if (slbt_adjust_input_argument(*parg,fpic))
 			*aarg++ = *parg;
 
 	*aarg = 0;
@@ -157,7 +158,7 @@ int slbt_exec_link(
 
 	/* non-pic libfoo.a */
 	if (dot && !strcmp(dot,".a"))
-		if (slbt_exec_link_static_archive(dctx,ectx,output)) {
+		if (slbt_exec_link_create_archive(dctx,ectx,output,false)) {
 			slbt_free_exec_ctx(actx);
 			return -1;
 		}