From 0db82e09e9817ccd579838bc7b72bf9df64c9db0 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Sat, 25 Mar 2017 17:39:47 -0700 Subject: [PATCH] Suggest fix for missing DT_INIT in shared library. modified: p_lx_elf.cpp --- src/p_lx_elf.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index 90a39c40..e1a6cb8c 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -1651,7 +1651,7 @@ bool PackLinuxElf32::canPack() goto proceed; // But proper packing depends on checking xct_va. } else - infoWarning("no DT_INIT or JNI_OnLoad: %s", fi->getName()); + throwCantPack("need DT_INIT; try \"void _init(void){}\""); abandon: return false; proceed: ; @@ -1843,6 +1843,8 @@ PackLinuxElf64ppcle::canPack() xct_off = elf_get_offset_from_address(xct_va); goto proceed; // But proper packing depends on checking xct_va. } + else + throwCantPack("need DT_INIT; try \"void _init(void){}\""); abandon: return false; proceed: ; @@ -2035,6 +2037,8 @@ PackLinuxElf64amd::canPack() xct_off = elf_get_offset_from_address(xct_va); goto proceed; // But proper packing depends on checking xct_va. } + else + throwCantPack("need DT_INIT; try \"void _init(void){}\""); abandon: return false; proceed: ;