diff options
author | midipix <writeonce@midipix.org> | 2024-02-28 21:33:56 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2024-02-28 21:33:56 +0000 |
commit | a2500c761ba3740dd416eaebac808f7c8d93aef7 (patch) | |
tree | 6339aa15914c2fc92846aac67e47383864a586c3 | |
parent | 8192235a926ca89160e11658a42d6a994c3a86da (diff) | |
download | slibtool-a2500c761ba3740dd416eaebac808f7c8d93aef7.tar.bz2 slibtool-a2500c761ba3740dd416eaebac808f7c8d93aef7.tar.xz |
ar mode: -Wdlsyms: require an accompanying -Wdlunit argument.
-rw-r--r-- | include/slibtool/slibtool.h | 1 | ||||
-rw-r--r-- | src/logic/slbt_exec_ar.c | 14 |
2 files changed, 14 insertions, 1 deletions
diff --git a/include/slibtool/slibtool.h b/include/slibtool/slibtool.h index ffa41c2..bd5b31d 100644 --- a/include/slibtool/slibtool.h +++ b/include/slibtool/slibtool.h @@ -128,6 +128,7 @@ enum slbt_custom_error { SLBT_ERR_AR_INVALID_ARMAP_STRING_TABLE, SLBT_ERR_AR_INVALID_ARMAP_MEMBER_OFFSET, SLBT_ERR_AR_INVALID_ARMAP_NAME_OFFSET, + SLBT_ERR_AR_DLUNIT_NOT_SPECIFIED, SLBT_ERR_AR_OUTPUT_NOT_SPECIFIED, SLBT_ERR_AR_OUTPUT_NOT_APPLICABLE, }; diff --git a/src/logic/slbt_exec_ar.c b/src/logic/slbt_exec_ar.c index 2abf7f2..ad8896c 100644 --- a/src/logic/slbt_exec_ar.c +++ b/src/logic/slbt_exec_ar.c @@ -307,7 +307,19 @@ int slbt_exec_ar(const struct slbt_driver_ctx * dctx) (void)0; } else if (cctx->fmtflags & SLBT_OUTPUT_ARCHIVE_DLSYMS) { - (void)0; + if (!cctx->dlunit) + slbt_dprintf(fderr, + "%s: missing -Wdlunit: generation of a dlsyms vtable " + "requires the name of the dynamic library, executable " + "program, or dynamic module for which the vtable would " + "be generated.\n", + dctx->program); + + return slbt_exec_ar_fail( + ectx,meta, + SLBT_CUSTOM_ERROR( + dctx, + SLBT_ERR_AR_DLUNIT_NOT_SPECIFIED)); } else if (!(cctx->drvflags & SLBT_DRIVER_MODE_AR_ACTIONS)) { if (cctx->drvflags & SLBT_DRIVER_VERBOSITY_ERRORS) |