summaryrefslogtreecommitdiff
path: root/src/driver/slbt_driver_ctx.c
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2024-02-09 20:19:41 +0000
committermidipix <writeonce@midipix.org>2024-02-09 20:19:41 +0000
commit741c4dddf7138471f6929e6550b6557fce0f8bf2 (patch)
tree73c0befa8bfb6bb80384453dd575d412f9e4f258 /src/driver/slbt_driver_ctx.c
parent99c275dbb52ccd31d45fa046f0bae1a18faff7e6 (diff)
downloadslibtool-741c4dddf7138471f6929e6550b6557fce0f8bf2.tar.bz2
slibtool-741c4dddf7138471f6929e6550b6557fce0f8bf2.tar.xz
driver: move slbt_init_link_params() to its own translation unit.
Diffstat (limited to 'src/driver/slbt_driver_ctx.c')
-rw-r--r--src/driver/slbt_driver_ctx.c113
1 files changed, 0 insertions, 113 deletions
diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c
index 8dd463d..57d8cef 100644
--- a/src/driver/slbt_driver_ctx.c
+++ b/src/driver/slbt_driver_ctx.c
@@ -227,119 +227,6 @@ static int slbt_get_driver_ctx_fail(
}
-static int slbt_init_link_params(struct slbt_driver_ctx_impl * ctx)
-{
- const char * program;
- const char * libname;
- const char * prefix;
- const char * base;
- char * dot;
- bool fmodule;
- int fderr;
-
- fderr = ctx->fdctx.fderr;
- program = argv_program_name(ctx->cctx.targv[0]);
- libname = 0;
- prefix = 0;
- fmodule = false;
-
- /* output */
- if (!(ctx->cctx.output)) {
- if (ctx->cctx.drvflags & SLBT_DRIVER_VERBOSITY_ERRORS)
- slbt_dprintf(fderr,
- "%s: error: output file must be "
- "specified in link mode.\n",
- program);
- return -1;
- }
-
- /* executable? */
- if (!(dot = strrchr(ctx->cctx.output,'.')))
- if (!(ctx->cctx.drvflags & SLBT_DRIVER_MODULE))
- return 0;
-
- /* todo: archive? library? wrapper? inlined function, avoid repetition */
- if ((base = strrchr(ctx->cctx.output,'/')))
- base++;
- else
- base = ctx->cctx.output;
-
- /* archive? */
- if (dot && !strcmp(dot,ctx->cctx.settings.arsuffix)) {
- prefix = ctx->cctx.settings.arprefix;
-
- if (!strncmp(prefix,base,strlen(prefix)))
- libname = base;
- else {
- if (ctx->cctx.drvflags & SLBT_DRIVER_VERBOSITY_ERRORS)
- slbt_dprintf(fderr,
- "%s: error: output file prefix does "
- "not match its (archive) suffix; "
- "the expected prefix was '%s'\n",
- program,prefix);
- return -1;
- }
- }
-
- /* library? */
- else if (dot && !strcmp(dot,ctx->cctx.settings.dsosuffix)) {
- prefix = ctx->cctx.settings.dsoprefix;
-
- if (!strncmp(prefix,base,strlen(prefix))) {
- libname = base;
-
- } else if (ctx->cctx.drvflags & SLBT_DRIVER_MODULE) {
- libname = base;
- fmodule = true;
-
- } else {
- if (ctx->cctx.drvflags & SLBT_DRIVER_VERBOSITY_ERRORS)
- slbt_dprintf(fderr,
- "%s: error: output file prefix does "
- "not match its (shared library) suffix; "
- "the expected prefix was '%s'\n",
- program,prefix);
- return -1;
- }
- }
-
- /* wrapper? */
- else if (dot && !strcmp(dot,".la")) {
- prefix = ctx->cctx.settings.dsoprefix;
-
- if (!strncmp(prefix,base,strlen(prefix))) {
- libname = base;
- fmodule = !!(ctx->cctx.drvflags & SLBT_DRIVER_MODULE);
- } else if (ctx->cctx.drvflags & SLBT_DRIVER_MODULE) {
- libname = base;
- fmodule = true;
- } else {
- if (ctx->cctx.drvflags & SLBT_DRIVER_VERBOSITY_ERRORS)
- slbt_dprintf(fderr,
- "%s: error: output file prefix does "
- "not match its (libtool wrapper) suffix; "
- "the expected prefix was '%s'\n",
- program,prefix);
- return -1;
- }
- } else
- return 0;
-
- /* libname alloc */
- if (!fmodule)
- libname += strlen(prefix);
-
- if (!(ctx->libname = strdup(libname)))
- return -1;
-
- if ((dot = strrchr(ctx->libname,'.')))
- *dot = 0;
-
- ctx->cctx.libname = ctx->libname;
-
- return 0;
-}
-
static int slbt_driver_fail_incompatible_args(
int fderr,
uint64_t drvflags,