diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c index 4a9e757..4a5bf62 100644 --- a/src/driver/slbt_driver_ctx.c +++ b/src/driver/slbt_driver_ctx.c @@ -615,6 +615,10 @@ static int slbt_split_argv( *targv++ = argv[i++]; *targv++ = argv[i]; + } else if (!(strcmp("weak",&argv[i][1]))) { + *targv++ = argv[i++]; + *targv++ = argv[i]; + } else if (!(strcmp("static-libtool-libs",&argv[i][1]))) { *targv++ = argv[i]; @@ -1684,6 +1688,9 @@ int slbt_get_driver_ctx( case TAG_STATIC: cmdstatic = entry; break; + + case TAG_WEAK: + break; } } } diff --git a/src/internal/slibtool_driver_impl.h b/src/internal/slibtool_driver_impl.h index 4e5dfdf..0971fd9 100644 --- a/src/internal/slibtool_driver_impl.h +++ b/src/internal/slibtool_driver_impl.h @@ -15,7 +15,7 @@ #include "slibtool_dprintf_impl.h" #include "argv/argv.h" -#define SLBT_OPTV_ELEMENTS 64 +#define SLBT_OPTV_ELEMENTS 128 extern const struct argv_option slbt_default_options[]; @@ -78,6 +78,7 @@ enum app_tags { TAG_COMPILER_FLAG, TAG_VERBATIM_FLAG, TAG_THREAD_SAFE, + TAG_WEAK, }; struct slbt_split_vector { diff --git a/src/skin/slbt_skin_default.c b/src/skin/slbt_skin_default.c index a41b6d0..3be3b74 100644 --- a/src/skin/slbt_skin_default.c +++ b/src/skin/slbt_skin_default.c @@ -300,6 +300,11 @@ const struct argv_option slbt_default_options[] = { 0,"", "pass a raw flag to the compiler linker-driver"}, + {"weak", 0,TAG_WEAK,ARGV_OPTARG_REQUIRED, + ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_SPACE, + 0,"", + "hint only, currently a no-op"}, + {"no-undefined", 0,TAG_NO_UNDEFINED,ARGV_OPTARG_NONE, ARGV_OPTION_HYBRID_ONLY,0,0, "disallow unresolved references"},