From 9160500b62fca721ace9df94d440d9e71d587a35 Mon Sep 17 00:00:00 2001 From: midipix Date: Mon, 5 Mar 2018 17:33:21 -0500 Subject: driver: support -export-dynamic (currently as a no-op). --- include/slibtool/slibtool.h | 1 + src/driver/slbt_driver_ctx.c | 7 +++++++ src/internal/slibtool_driver_impl.h | 1 + src/skin/slbt_skin_default.c | 5 +++++ 4 files changed, 14 insertions(+) diff --git a/include/slibtool/slibtool.h b/include/slibtool/slibtool.h index c320ee9..a29d1c9 100644 --- a/include/slibtool/slibtool.h +++ b/include/slibtool/slibtool.h @@ -67,6 +67,7 @@ extern "C" { #define SLBT_DRIVER_IMPLIB_IDATA SLBT_DRIVER_XFLAG(0x0001) #define SLBT_DRIVER_IMPLIB_DSOMETA SLBT_DRIVER_XFLAG(0x0002) +#define SLBT_DRIVER_EXPORT_DYNAMIC SLBT_DRIVER_XFLAG(0x0010) /* error flags */ #define SLBT_ERROR_TOP_LEVEL 0x0001 diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c index 1993414..94e7e9c 100644 --- a/src/driver/slbt_driver_ctx.c +++ b/src/driver/slbt_driver_ctx.c @@ -323,6 +323,9 @@ static int slbt_split_argv( *targv++ = argv[i++]; *targv++ = argv[i]; + } else if (!(strcmp("export-dynamic",&argv[i][1]))) { + *targv++ = argv[i]; + } else if (!(strcmp("export-symbols",&argv[i][1]))) { *targv++ = argv[i++]; *targv++ = argv[i]; @@ -1075,6 +1078,10 @@ int slbt_get_driver_ctx( case TAG_DLOPEN: break; + case TAG_EXPORT_DYNAMIC: + cctx.drvflags |= SLBT_DRIVER_EXPORT_DYNAMIC; + break; + case TAG_EXPSYM_FILE: cctx.symfile = entry->arg; break; diff --git a/src/internal/slibtool_driver_impl.h b/src/internal/slibtool_driver_impl.h index b255042..fbeafbc 100644 --- a/src/internal/slibtool_driver_impl.h +++ b/src/internal/slibtool_driver_impl.h @@ -45,6 +45,7 @@ enum app_tags { TAG_RELEASE, TAG_DLOPEN, TAG_DLPREOPEN, + TAG_EXPORT_DYNAMIC, TAG_EXPSYM_FILE, TAG_EXPSYM_REGEX, TAG_VERSION_INFO, diff --git a/src/skin/slbt_skin_default.c b/src/skin/slbt_skin_default.c index ceb4d30..f691731 100644 --- a/src/skin/slbt_skin_default.c +++ b/src/skin/slbt_skin_default.c @@ -161,6 +161,11 @@ const struct argv_option slbt_default_options[] = { "Link the specified %s into the generated library " "or executable"}, + {"export-dynamic", 0,TAG_EXPORT_DYNAMIC,ARGV_OPTARG_NONE, + ARGV_OPTION_HYBRID_ONLY,0,0, + "allow symbols in the output file to be resolved via dlsym() " + "[currently a no-op]"}, + {"export-symbols", 0,TAG_EXPSYM_FILE,ARGV_OPTARG_REQUIRED, ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_SPACE, 0,"", -- cgit v1.2.3