diff --git a/include/slibtool/slibtool.h b/include/slibtool/slibtool.h index 73683e9..44d596e 100644 --- a/include/slibtool/slibtool.h +++ b/include/slibtool/slibtool.h @@ -156,6 +156,7 @@ struct slbt_common_ctx { char * libname; const char * rpath; const char * release; + const char * symfile; const char * regex; char ** targv; char ** cargv; diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c index 69db462..46a5ef3 100644 --- a/src/driver/slbt_driver_ctx.c +++ b/src/driver/slbt_driver_ctx.c @@ -239,6 +239,10 @@ static int slbt_split_argv( *targv++ = argv[i++]; *targv++ = argv[i]; + } else if (!(strcmp("export-symbols",&argv[i][1]))) { + *targv++ = argv[i++]; + *targv++ = argv[i]; + } else if (!(strcmp("export-symbols-regex",&argv[i][1]))) { *targv++ = argv[i++]; *targv++ = argv[i]; @@ -703,6 +707,10 @@ int slbt_get_driver_ctx( cctx.release = entry->arg; break; + case TAG_EXPSYM_FILE: + cctx.symfile = entry->arg; + break; + case TAG_EXPSYM_REGEX: cctx.regex = entry->arg; break; diff --git a/src/internal/slibtool_driver_impl.h b/src/internal/slibtool_driver_impl.h index 712f79c..80cf5f7 100644 --- a/src/internal/slibtool_driver_impl.h +++ b/src/internal/slibtool_driver_impl.h @@ -34,6 +34,7 @@ enum app_tags { TAG_OUTPUT, TAG_RPATH, TAG_RELEASE, + TAG_EXPSYM_FILE, TAG_EXPSYM_REGEX, TAG_VERSION_INFO, TAG_VERSION_NUMBER, diff --git a/src/skin/slbt_skin_default.c b/src/skin/slbt_skin_default.c index 58059e8..8d16286 100644 --- a/src/skin/slbt_skin_default.c +++ b/src/skin/slbt_skin_default.c @@ -90,6 +90,12 @@ const struct argv_option slbt_default_options[] = { ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_SPACE,0,0, "specify release information"}, + {"export-symbols", 0,TAG_EXPSYM_FILE,ARGV_OPTARG_REQUIRED, + ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_SPACE, + 0,"", + "only export the symbols that are listed in %s " + "[currently a no-op]"}, + {"export-symbols-regex",0,TAG_EXPSYM_REGEX,ARGV_OPTARG_REQUIRED, ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_SPACE, 0,"",