summaryrefslogtreecommitdiffhomepage
path: root/src/driver
diff options
context:
space:
mode:
Diffstat (limited to 'src/driver')
-rw-r--r--src/driver/mdso_amain.c6
-rw-r--r--src/driver/mdso_driver_ctx.c11
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;