From 7b9b66d9b1509870d4132d3d79af1b4900135673 Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@collabora.com> Date: Fri, 17 Nov 2017 14:23:23 +0000 Subject: [PATCH] reloc_type_name: Abbreviate and sort numerically Signed-off-by: Simon McVittie <smcv@collabora.com> --- utils/process-pt-dynamic.c | 137 ++++++++++++++++--------------------- 1 file changed, 59 insertions(+), 78 deletions(-) diff --git a/utils/process-pt-dynamic.c b/utils/process-pt-dynamic.c index e884c6fa0..b86d2bd2c 100644 --- a/utils/process-pt-dynamic.c +++ b/utils/process-pt-dynamic.c @@ -148,84 +148,65 @@ reloc_type_name (int type) { switch (type) { - case R_X86_64_JUMP_SLOT: - return "R_X86_64_JUMP_SLOT"; - case R_X86_64_NONE: - return "R_X86_64_NONE"; - case R_X86_64_64: - return "R_X86_64_64"; - case R_X86_64_PC32: - return "R_X86_64_PC32"; - case R_X86_64_GOT32: - return "R_X86_64_GOT32"; - case R_X86_64_PLT32: - return "R_X86_64_PLT32"; - case R_X86_64_COPY: - return "R_X86_64_COPY"; - case R_X86_64_GLOB_DAT: - return "R_X86_64_GLOB_DAT"; - case R_X86_64_RELATIVE: - return "R_X86_64_RELATIVE"; - case R_X86_64_GOTPCREL: - return "R_X86_64_GOTPCREL"; - case R_X86_64_32: - return "R_X86_64_32"; - case R_X86_64_32S: - return "R_X86_64_32S"; - case R_X86_64_16: - return "R_X86_64_16"; - case R_X86_64_PC16: - return "R_X86_64_PC16"; - case R_X86_64_8: - return "R_X86_64_8"; - case R_X86_64_PC8: - return "R_X86_64_PC8"; - case R_X86_64_DTPMOD64: - return "R_X86_64_DTPMOD64"; - case R_X86_64_DTPOFF64: - return "R_X86_64_DTPOFF64"; - case R_X86_64_TPOFF64: - return "R_X86_64_TPOFF64"; - case R_X86_64_TLSGD: - return "R_X86_64_TLSGD"; - case R_X86_64_TLSLD: - return "R_X86_64_TLSLD"; - case R_X86_64_DTPOFF32: - return "R_X86_64_DTPOFF32"; - case R_X86_64_GOTTPOFF: - return "R_X86_64_GOTTPOFF"; - case R_X86_64_TPOFF32: - return "R_X86_64_TPOFF32"; - case R_X86_64_PC64: - return "R_X86_64_PC64"; - case R_X86_64_GOTOFF64: - return "R_X86_64_GOTOFF64"; - case R_X86_64_GOTPC32: - return "R_X86_64_GOTPC32"; - case R_X86_64_GOT64: - return "R_X86_64_GOT64"; - case R_X86_64_GOTPCREL64: - return "R_X86_64_GOTPCREL64"; - case R_X86_64_GOTPC64: - return "R_X86_64_GOTPC64"; - case R_X86_64_GOTPLT64: - return "R_X86_64_GOTPLT64"; - case R_X86_64_PLTOFF64: - return "R_X86_64_PLTOFF64"; - case R_X86_64_SIZE32: - return "R_X86_64_SIZE32"; - case R_X86_64_SIZE64: - return "R_X86_64_SIZE64"; - case R_X86_64_GOTPC32_TLSDESC: - return "R_X86_64_GOTPC32_TLSDESC"; - case R_X86_64_TLSDESC_CALL: - return "R_X86_64_TLSDESC_CALL"; - case R_X86_64_TLSDESC: - return "R_X86_64_TLSDESC"; - case R_X86_64_IRELATIVE: - return "R_X86_64_IRELATIVE"; - case R_X86_64_RELATIVE64: - return "R_X86_64_RELATIVE64"; + // Please keep these in numerical order. + +#define CASE(x) \ + case x: \ + return #x; + + CASE( R_X86_64_NONE ) + CASE( R_X86_64_64 ) + CASE( R_X86_64_PC32 ) + CASE( R_X86_64_GOT32 ) + CASE( R_X86_64_PLT32 ) + CASE( R_X86_64_COPY ) + CASE( R_X86_64_GLOB_DAT ) + CASE( R_X86_64_JUMP_SLOT ) + CASE( R_X86_64_RELATIVE ) + CASE( R_X86_64_GOTPCREL ) + CASE( R_X86_64_32 ) + CASE( R_X86_64_32S ) + CASE( R_X86_64_16 ) + CASE( R_X86_64_PC16 ) + CASE( R_X86_64_8 ) + CASE( R_X86_64_PC8 ) + CASE( R_X86_64_DTPMOD64 ) + CASE( R_X86_64_DTPOFF64 ) + CASE( R_X86_64_TPOFF64 ) + CASE( R_X86_64_TLSGD ) + CASE( R_X86_64_TLSLD ) + CASE( R_X86_64_DTPOFF32 ) + CASE( R_X86_64_GOTTPOFF ) + CASE( R_X86_64_TPOFF32 ) + CASE( R_X86_64_PC64 ) + CASE( R_X86_64_GOTOFF64 ) + CASE( R_X86_64_GOTPC32 ) + CASE( R_X86_64_GOT64 ) + CASE( R_X86_64_GOTPCREL64 ) + CASE( R_X86_64_GOTPC64 ) + CASE( R_X86_64_GOTPLT64 ) + CASE( R_X86_64_PLTOFF64 ) + CASE( R_X86_64_SIZE32 ) + CASE( R_X86_64_SIZE64 ) + CASE( R_X86_64_GOTPC32_TLSDESC ) + CASE( R_X86_64_TLSDESC_CALL ) + CASE( R_X86_64_TLSDESC ) + CASE( R_X86_64_IRELATIVE ) + + // Entries below this point are new since glibc 2.19 + +#ifdef R_X86_64_RELATIVE64 + CASE( R_X86_64_RELATIVE64 ) +#endif +#ifdef R_X64_64_GOTPCRELX + CASE( R_X86_64_GOTPCRELX ) +#endif +#ifdef R_X64_64_REX_GOTPCRELX + CASE( R_X86_64_REX_GOTPCRELX ) +#endif + +#undef CASE + default: return "UNKNOWN"; } -- GitLab