summaryrefslogtreecommitdiff
path: root/src/internal
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal')
-rw-r--r--src/internal/slibtool_driver_impl.h4
-rw-r--r--src/internal/slibtool_lconf_impl.c13
2 files changed, 17 insertions, 0 deletions
diff --git a/src/internal/slibtool_driver_impl.h b/src/internal/slibtool_driver_impl.h
index 3b989b5..656c113 100644
--- a/src/internal/slibtool_driver_impl.h
+++ b/src/internal/slibtool_driver_impl.h
@@ -47,6 +47,7 @@ enum app_tags {
TAG_FLAVOR,
TAG_AR,
TAG_AS,
+ TAG_NM,
TAG_RANLIB,
TAG_WINDRES,
TAG_DLLTOOL,
@@ -114,12 +115,14 @@ struct slbt_host_strs {
char * flavor;
char * ar;
char * as;
+ char * nm;
char * ranlib;
char * windres;
char * dlltool;
char * mdso;
char ** ar_argv;
char ** as_argv;
+ char ** nm_argv;
char ** ranlib_argv;
char ** windres_argv;
char ** dlltool_argv;
@@ -284,6 +287,7 @@ int slbt_init_host_params(
const char * cfgmeta_host,
const char * cfgmeta_ar,
const char * cfgmeta_as,
+ const char * cfgmeta_nm,
const char * cfgmeta_ranlib,
const char * cfgmeta_dlltool);
diff --git a/src/internal/slibtool_lconf_impl.c b/src/internal/slibtool_lconf_impl.c
index f6bfd36..b96e4f9 100644
--- a/src/internal/slibtool_lconf_impl.c
+++ b/src/internal/slibtool_lconf_impl.c
@@ -819,6 +819,19 @@ slbt_hidden int slbt_get_lconf_flags(
}
+ /* nm tool */
+ if (!ctx->cctx.host.nm) {
+ if (slbt_get_lconf_var(confctx,"NM=",0x20,&val) < 0)
+ return SLBT_CUSTOM_ERROR(
+ dctx,SLBT_ERR_LCONF_PARSE);
+
+ if (val[0] && !(ctx->host.nm = strdup(val)))
+ return SLBT_SYSTEM_ERROR(dctx,0);
+
+ ctx->cctx.host.nm = ctx->host.nm;
+ }
+
+
/* ranlib tool */
if (!ctx->cctx.host.ranlib) {
if (slbt_get_lconf_var(confctx,"RANLIB=",0x20,&val) < 0)