summaryrefslogtreecommitdiff
path: root/src/driver
diff options
context:
space:
mode:
Diffstat (limited to 'src/driver')
-rw-r--r--src/driver/slbt_driver_ctx.c4
-rw-r--r--src/driver/slbt_host_params.c21
2 files changed, 25 insertions, 0 deletions
diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c
index 6f96e42..deb8cdc 100644
--- a/src/driver/slbt_driver_ctx.c
+++ b/src/driver/slbt_driver_ctx.c
@@ -593,6 +593,10 @@ int slbt_get_driver_ctx(
cfgmeta_ar = cfgexplicit;
break;
+ case TAG_AS:
+ cctx.host.as = entry->arg;
+ break;
+
case TAG_RANLIB:
cctx.host.ranlib = entry->arg;
cfgmeta_ranlib = cfgexplicit;
diff --git a/src/driver/slbt_host_params.c b/src/driver/slbt_host_params.c
index f63f9b3..6414ec1 100644
--- a/src/driver/slbt_host_params.c
+++ b/src/driver/slbt_host_params.c
@@ -369,6 +369,24 @@ int slbt_init_host_params(
host->ar = drvhost->ar;
}
+ /* as */
+ if (host->as)
+ cfgmeta->as = cfgexplicit;
+ else {
+ if (!(drvhost->as = calloc(1,toollen)))
+ return -1;
+
+ if (fnative) {
+ strcpy(drvhost->as,"as");
+ cfgmeta->as = cfgnative;
+ } else {
+ sprintf(drvhost->as,"%s-as",host->host);
+ cfgmeta->as = cfghost;
+ }
+
+ host->as = drvhost->as;
+ }
+
/* ranlib */
if (host->ranlib)
cfgmeta->ranlib = cfgmeta_ranlib ? cfgmeta_ranlib : cfgexplicit;
@@ -480,6 +498,9 @@ void slbt_free_host_params(struct slbt_host_strs * host)
if (host->ar)
free(host->ar);
+ if (host->as)
+ free(host->as);
+
if (host->ranlib)
free(host->ranlib);