summaryrefslogtreecommitdiff
path: root/src/logic/slbt_exec_ctx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/logic/slbt_exec_ctx.c')
-rw-r--r--src/logic/slbt_exec_ctx.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/logic/slbt_exec_ctx.c b/src/logic/slbt_exec_ctx.c
index 706fd51..df7f693 100644
--- a/src/logic/slbt_exec_ctx.c
+++ b/src/logic/slbt_exec_ctx.c
@@ -140,6 +140,7 @@ int slbt_get_exec_ctx(
char ** parg;
char * ch;
char * mark;
+ char * slash;
const char * ref;
int i;
@@ -288,6 +289,20 @@ int slbt_get_exec_ctx(
+ sizeof('\0');
}
+ /* linking: exefilename */
+ if (dctx->cctx->mode == SLBT_MODE_LINK && !dctx->cctx->libname) {
+ ictx->ctx.exefilename = ch;
+
+ if ((slash = strrchr(dctx->cctx->output,'/'))) {
+ strcpy(ch,dctx->cctx->output);
+ mark = ch + (slash - dctx->cctx->output);
+ sprintf(++mark,".libs/%s",++slash);
+ ch += strlen(ch) + sizeof('\0');
+ } else
+ ch += sprintf(ch,".libs/%s",dctx->cctx->output)
+ + sizeof('\0');
+ }
+
/* argument strings shadow copy */
memcpy(ictx->shadow,ictx->args,ictx->size);