From 17e18afed34675d6f9e3aef91ddea8d84c1d1617 Mon Sep 17 00:00:00 2001 From: midipix Date: Wed, 5 May 2021 16:20:44 +0000 Subject: driver: added explicit --sysroot support. --- include/slibtool/slibtool.h | 1 + src/driver/slbt_driver_ctx.c | 46 +++++++++++++++++++++++++++++++++++-- src/internal/slibtool_driver_impl.h | 1 + src/skin/slbt_skin_default.c | 4 ++++ 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/include/slibtool/slibtool.h b/include/slibtool/slibtool.h index b10698a..6b64cd3 100644 --- a/include/slibtool/slibtool.h +++ b/include/slibtool/slibtool.h @@ -252,6 +252,7 @@ struct slbt_common_ctx { const char * output; const char * shrext; const char * rpath; + const char * sysroot; const char * release; const char * symfile; const char * regex; diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c index 37d5660..02b0617 100644 --- a/src/driver/slbt_driver_ctx.c +++ b/src/driver/slbt_driver_ctx.c @@ -277,6 +277,7 @@ static int slbt_split_argv( int argc; const char * program; char * compiler; + char * csysroot; char ** dargv; char ** targv; char ** cargv; @@ -377,6 +378,8 @@ static int slbt_split_argv( else if (!(sargv->dargs = calloc(1,size+1))) return -1; + csysroot = 0; + for (i=0,flast=false,dargv=sargv->dargv,dst=sargv->dargs; iarg; break; + case TAG_SYSROOT: + cctx.sysroot = entry->arg; + break; + case TAG_RELEASE: cctx.release = entry->arg; break; diff --git a/src/internal/slibtool_driver_impl.h b/src/internal/slibtool_driver_impl.h index 120c2e3..c70c334 100644 --- a/src/internal/slibtool_driver_impl.h +++ b/src/internal/slibtool_driver_impl.h @@ -51,6 +51,7 @@ enum app_tags { TAG_LDRPATH, TAG_SHREXT, TAG_RPATH, + TAG_SYSROOT, TAG_RELEASE, TAG_DLOPEN, TAG_DLPREOPEN, diff --git a/src/skin/slbt_skin_default.c b/src/skin/slbt_skin_default.c index 5533b04..b499101 100644 --- a/src/skin/slbt_skin_default.c +++ b/src/skin/slbt_skin_default.c @@ -161,6 +161,10 @@ const struct argv_option slbt_default_options[] = { "where a library should eventually be " "installed, relative to $(DESTDIR)$(PREFIX)"}, + {"sysroot", 0,TAG_SYSROOT,ARGV_OPTARG_REQUIRED,0,0,"", + "an absolute sysroot path to pass to the compiler " + "or linker driver"}, + {"release", 0,TAG_RELEASE,ARGV_OPTARG_REQUIRED, ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_SPACE,0,0, "specify release information; this will result " -- cgit v1.2.3