diff options
Diffstat (limited to 'src/internal')
-rw-r--r-- | src/internal/slibtool_driver_impl.h | 4 | ||||
-rw-r--r-- | src/internal/slibtool_lconf_impl.c | 13 |
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) |