summaryrefslogtreecommitdiff
path: root/src/logic
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2021-04-15 10:06:44 +0000
committermidipix <writeonce@midipix.org>2021-04-15 13:26:15 +0000
commitcc0827cebd811eab83d091ffde3780e5c0084160 (patch)
tree87209192602b7a0f61d774632e03339c9bffe9a7 /src/logic
parent1ce3d5d23f5c66c8223b5567f0d7d5b630e819e1 (diff)
downloadslibtool-cc0827cebd811eab83d091ffde3780e5c0084160.tar.bz2
slibtool-cc0827cebd811eab83d091ffde3780e5c0084160.tar.xz
internals: slbt_create_symlink(): properly handle absolute-path link targets.
Diffstat (limited to 'src/logic')
-rw-r--r--src/logic/slbt_exec_install.c6
-rw-r--r--src/logic/slbt_exec_link.c31
2 files changed, 20 insertions, 17 deletions
diff --git a/src/logic/slbt_exec_install.c b/src/logic/slbt_exec_install.c
index 3429d91..5e5d440 100644
--- a/src/logic/slbt_exec_install.c
+++ b/src/logic/slbt_exec_install.c
@@ -231,7 +231,7 @@ static int slbt_exec_install_import_libraries(
dctx,ectx,
implib,
hostlnk,
- false))
+ SLBT_SYMLINK_DEFAULT))
return SLBT_NESTED_ERROR(dctx);
return 0;
@@ -540,7 +540,7 @@ static int slbt_exec_install_entry(
if (slbt_create_symlink(
dctx,ectx,
target,dlnkname,
- false))
+ SLBT_SYMLINK_DEFAULT))
return SLBT_NESTED_ERROR(dctx);
if (frelease)
@@ -602,7 +602,7 @@ static int slbt_exec_install_entry(
if (slbt_create_symlink(
dctx,ectx,
target,dlnkname,
- false))
+ SLBT_SYMLINK_DEFAULT))
return SLBT_NESTED_ERROR(dctx);
}
diff --git a/src/logic/slbt_exec_link.c b/src/logic/slbt_exec_link.c
index 6c0361c..f9bd8d7 100644
--- a/src/logic/slbt_exec_link.c
+++ b/src/logic/slbt_exec_link.c
@@ -1157,7 +1157,7 @@ static int slbt_exec_link_create_import_library(
dctx,ectx,
deffilename,
hosttag,
- false))
+ SLBT_SYMLINK_DEFAULT))
return SLBT_NESTED_ERROR(dctx);
/* libfoo.so.def.{flavor} is under .libs/ */
@@ -1168,7 +1168,7 @@ static int slbt_exec_link_create_import_library(
dctx,ectx,
++slash,
hostlnk,
- false))
+ SLBT_SYMLINK_DEFAULT))
return SLBT_NESTED_ERROR(dctx);
}
@@ -1250,7 +1250,7 @@ static int slbt_exec_link_create_noop_symlink(
dctx,ectx,
"/dev/null",
arfilename,
- false))
+ SLBT_SYMLINK_LITERAL))
return SLBT_NESTED_ERROR(dctx);
return 0;
}
@@ -1362,7 +1362,10 @@ static int slbt_exec_link_create_archive(
if (slbt_exec_link_remove_file(dctx,ectx,arlink))
return SLBT_NESTED_ERROR(dctx);
- if (slbt_create_symlink(dctx,ectx,arfile,arlink,0))
+ if (slbt_create_symlink(
+ dctx,ectx,
+ arfile,arlink,
+ SLBT_SYMLINK_DEFAULT))
return SLBT_NESTED_ERROR(dctx);
}
@@ -1544,7 +1547,7 @@ static int slbt_exec_link_create_library(
dctx,ectx,
dctx->cctx->host.ldrpath,
ectx->rpathfilename,
- 0))
+ SLBT_SYMLINK_LITERAL))
return SLBT_NESTED_ERROR(dctx);
}
@@ -1761,7 +1764,7 @@ static int slbt_exec_link_create_executable(
if (slbt_create_symlink(
dctx,ectx,
dctx->cctx->output,wraplnk,
- false))
+ SLBT_SYMLINK_DEFAULT))
return slbt_exec_link_exit(
&depsmeta,
SLBT_NESTED_ERROR(dctx));
@@ -1800,7 +1803,7 @@ static int slbt_exec_link_create_library_symlink(
if (slbt_create_symlink(
dctx,ectx,
target,lnkname,
- false))
+ SLBT_SYMLINK_DEFAULT))
return SLBT_NESTED_ERROR(dctx);
} else {
sprintf(target,"%s%s.%d.%d.%d%s",
@@ -1838,7 +1841,7 @@ static int slbt_exec_link_create_library_symlink(
return slbt_create_symlink(
dctx,ectx,
target,lnkname,
- false);
+ SLBT_SYMLINK_DEFAULT);
}
int slbt_exec_link(
@@ -1956,7 +1959,7 @@ int slbt_exec_link(
dctx,ectx,
"/dev/null",
ectx->dsofilename,
- false))
+ SLBT_SYMLINK_LITERAL))
return SLBT_NESTED_ERROR(dctx);
/* dynaic library via -module */
@@ -1986,7 +1989,7 @@ int slbt_exec_link(
if (slbt_create_symlink(
dctx,ectx,
target,lnkname,
- false))
+ SLBT_SYMLINK_DEFAULT))
return SLBT_NESTED_ERROR(dctx);
strcpy(target,lnkname);
@@ -1995,7 +1998,7 @@ int slbt_exec_link(
if (slbt_create_symlink(
dctx,ectx,
target,lnkname,
- false))
+ SLBT_SYMLINK_DEFAULT))
return SLBT_NESTED_ERROR(dctx);
}
@@ -2052,7 +2055,7 @@ int slbt_exec_link(
dctx,ectx,
ectx->pimpfilename,
ectx->dimpfilename,
- false))
+ SLBT_SYMLINK_DEFAULT))
return SLBT_NESTED_ERROR(dctx);
/* libfoo.x.y.z.lib.a */
@@ -2096,7 +2099,7 @@ int slbt_exec_link(
dctx,ectx,
output,
ectx->lafilename,
- true)))
+ SLBT_SYMLINK_WRAPPER)))
SLBT_NESTED_ERROR(dctx);
/* .lai wrapper symlink */
@@ -2105,7 +2108,7 @@ int slbt_exec_link(
dctx,ectx,
output,
ectx->laifilename,
- true)))
+ SLBT_SYMLINK_WRAPPER)))
SLBT_NESTED_ERROR(dctx);
/* all done */