summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/internal/slibtool_linkcmd_impl.h3
-rw-r--r--src/logic/linkcmd/slbt_linkcmd_archive.c2
-rw-r--r--src/logic/linkcmd/slbt_linkcmd_dsolib.c5
-rw-r--r--src/logic/slbt_exec_link.c4
4 files changed, 8 insertions, 6 deletions
diff --git a/src/internal/slibtool_linkcmd_impl.h b/src/internal/slibtool_linkcmd_impl.h
index bc57f3d..c0db6e1 100644
--- a/src/internal/slibtool_linkcmd_impl.h
+++ b/src/internal/slibtool_linkcmd_impl.h
@@ -76,7 +76,8 @@ int slbt_exec_link_create_library(
const char * dsobasename,
const char * dsofilename,
const char * relfilename,
- bool fardlopen);
+ bool fardlopen,
+ bool fpic);
int slbt_exec_link_create_executable(
diff --git a/src/logic/linkcmd/slbt_linkcmd_archive.c b/src/logic/linkcmd/slbt_linkcmd_archive.c
index 5f1ba52..00fe825 100644
--- a/src/logic/linkcmd/slbt_linkcmd_archive.c
+++ b/src/logic/linkcmd/slbt_linkcmd_archive.c
@@ -74,7 +74,7 @@ slbt_hidden int slbt_exec_link_create_archive(
if (slbt_exec_link_create_library(
dctx,ectx,
namebuf,namebuf,namebuf,
- true) < 0)
+ true,fpic) < 0)
return SLBT_NESTED_ERROR(dctx);
}
diff --git a/src/logic/linkcmd/slbt_linkcmd_dsolib.c b/src/logic/linkcmd/slbt_linkcmd_dsolib.c
index 13eaefb..0f70dcb 100644
--- a/src/logic/linkcmd/slbt_linkcmd_dsolib.c
+++ b/src/logic/linkcmd/slbt_linkcmd_dsolib.c
@@ -89,7 +89,8 @@ slbt_hidden int slbt_exec_link_create_library(
const char * dsobasename,
const char * dsofilename,
const char * relfilename,
- bool fardlopen)
+ bool fardlopen,
+ bool fpic)
{
int fdcwd;
char ** parg;
@@ -119,7 +120,7 @@ slbt_hidden int slbt_exec_link_create_library(
/* input argument adjustment */
for (parg=ectx->cargv; *parg; parg++)
- slbt_adjust_object_argument(*parg,true,false,fdcwd);
+ slbt_adjust_object_argument(*parg,fpic,false,fdcwd);
/* .deps */
if (slbt_exec_link_create_dep_file(
diff --git a/src/logic/slbt_exec_link.c b/src/logic/slbt_exec_link.c
index be9dc20..b2f1311 100644
--- a/src/logic/slbt_exec_link.c
+++ b/src/logic/slbt_exec_link.c
@@ -328,7 +328,7 @@ int slbt_exec_link(const struct slbt_driver_ctx * dctx)
ectx->dsobasename,
ectx->dsofilename,
ectx->relfilename,
- false)) {
+ false,true)) {
slbt_ectx_free_exec_ctx(ectx);
return SLBT_NESTED_ERROR(dctx);
}
@@ -395,7 +395,7 @@ int slbt_exec_link(const struct slbt_driver_ctx * dctx)
ectx->dsobasename,
ectx->dsofilename,
ectx->relfilename,
- false)) {
+ false,true)) {
slbt_ectx_free_exec_ctx(ectx);
return SLBT_NESTED_ERROR(dctx);
}