summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2018-03-05 22:33:21 (GMT)
committermidipix <writeonce@midipix.org>2018-03-05 22:33:21 (GMT)
commit9160500b62fca721ace9df94d440d9e71d587a35 (patch)
tree5a05d687ce2690010de1fd81e8425d3e6aa89ee4
parentd332273eba3af3d1161c64fd391c7af7586bb2f7 (diff)
downloadslibtool-9160500b62.tar.bz2
slibtool-9160500b62.tar.xz
driver: support -export-dynamic (currently as a no-op).
-rw-r--r--include/slibtool/slibtool.h1
-rw-r--r--src/driver/slbt_driver_ctx.c7
-rw-r--r--src/internal/slibtool_driver_impl.h1
-rw-r--r--src/skin/slbt_skin_default.c5
4 files changed, 14 insertions, 0 deletions
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,"<symfile>",