From 6b2fa6f84296ba76206459a8f6e380f7bd3f817f Mon Sep 17 00:00:00 2001 From: midipix Date: Thu, 7 Mar 2024 04:34:06 +0000 Subject: link mode: dependency logic: limit the scope of -shrext to the current library. --- src/logic/slbt_exec_ctx.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/logic/slbt_exec_ctx.c') diff --git a/src/logic/slbt_exec_ctx.c b/src/logic/slbt_exec_ctx.c index ea3f323..cfcfc2a 100644 --- a/src/logic/slbt_exec_ctx.c +++ b/src/logic/slbt_exec_ctx.c @@ -212,6 +212,7 @@ int slbt_ectx_get_exec_ctx( char * ch; char * mark; const char * dmark; + const char * dsoext; char * slash; char * arname; struct slbt_archive_ctx ** dlactxv; @@ -381,6 +382,9 @@ int slbt_ectx_get_exec_ctx( /* linking: arfilename, lafilename, laifilename, dsobasename, dsofilename, mapfilename */ if (dctx->cctx->mode == SLBT_MODE_LINK && dctx->cctx->libname) { + if (!(dsoext = dctx->cctx->shrext)) + dsoext = dctx->cctx->settings.dsosuffix; + /* arprefix, dsoprefix */ if (dctx->cctx->drvflags & SLBT_DRIVER_MODULE) { ictx->ctx.sonameprefix = ""; @@ -437,7 +441,7 @@ int slbt_ectx_get_exec_ctx( ictx->ctx.ldirname, dsoprefix, dctx->cctx->libname, - dctx->cctx->settings.dsosuffix); + dsoext); ch++; /* mapfilename */ @@ -459,7 +463,7 @@ int slbt_ectx_get_exec_ctx( dctx->cctx->libname, dctx->cctx->release ? "-" : "", dctx->cctx->release ? dctx->cctx->release : "", - dctx->cctx->settings.dsosuffix); + dsoext); ch++; /* rpathfilename */ @@ -468,7 +472,7 @@ int slbt_ectx_get_exec_ctx( ictx->ctx.ldirname, dsoprefix, dctx->cctx->libname, - dctx->cctx->settings.dsosuffix); + dsoext); ch++; /* default implib file name */ @@ -526,7 +530,7 @@ int slbt_ectx_get_exec_ctx( dsoprefix, dctx->cctx->libname, dctx->cctx->release, - dctx->cctx->settings.dsosuffix); + dsoext); ch++; } @@ -538,7 +542,7 @@ int slbt_ectx_get_exec_ctx( dsoprefix, dctx->cctx->libname, dctx->cctx->release, - dctx->cctx->settings.dsosuffix); + dsoext); ch++; } -- cgit v1.2.3