diff options
author | midipix <writeonce@midipix.org> | 2019-02-20 18:43:32 -0500 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2019-02-20 23:31:15 -0500 |
commit | 113d3fcaa8e7c14c65e8b45e0ab1baf93cb030a8 (patch) | |
tree | 054385cfa585c0f07b4bb6d62187c5312a50e767 /src/driver | |
parent | c6570d037a1def5d7d25d832b28ca3ce7398657c (diff) | |
download | mdso-113d3fcaa8e7c14c65e8b45e0ab1baf93cb030a8.tar.bz2 mdso-113d3fcaa8e7c14c65e8b45e0ab1baf93cb030a8.tar.xz |
driver: added --crc support: output computed crc32|64 of exported symbols.
Diffstat (limited to 'src/driver')
-rw-r--r-- | src/driver/mdso_amain.c | 6 | ||||
-rw-r--r-- | src/driver/mdso_driver_ctx.c | 11 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/driver/mdso_amain.c b/src/driver/mdso_amain.c index bed201d..c0d0824 100644 --- a/src/driver/mdso_amain.c +++ b/src/driver/mdso_amain.c @@ -55,6 +55,12 @@ static void mdso_perform_unit_actions( { if (uctx->cctx->fmtflags & MDSO_OUTPUT_EXPORT_SYMS) mdso_output_export_symbols(dctx,uctx); + + if (uctx->cctx->drvflags & MDSO_DRIVER_COMPUTE_CRC32) + mdso_output_expsyms_crc32(dctx,uctx); + + if (uctx->cctx->drvflags & MDSO_DRIVER_COMPUTE_CRC64) + mdso_output_expsyms_crc64(dctx,uctx); } static int mdso_exit(struct mdso_driver_ctx * dctx, int ret) diff --git a/src/driver/mdso_driver_ctx.c b/src/driver/mdso_driver_ctx.c index f4a83c1..59450ac 100644 --- a/src/driver/mdso_driver_ctx.c +++ b/src/driver/mdso_driver_ctx.c @@ -250,6 +250,17 @@ int mdso_get_driver_ctx( cctx.drvflags |= MDSO_DRIVER_GENERATE_OBJECTS; break; + case TAG_CRC: + if (!(strcmp(entry->arg,"64"))) { + cctx.drvflags &= ~(uint64_t)MDSO_DRIVER_COMPUTE_CRC32; + cctx.drvflags |= MDSO_DRIVER_COMPUTE_CRC64; + } else { + cctx.drvflags &= ~(uint64_t)MDSO_DRIVER_COMPUTE_CRC64; + cctx.drvflags |= MDSO_DRIVER_COMPUTE_CRC32; + } + + break; + case TAG_QUAD_PTR: machine = entry; |