From 882017a7cb5ff43dd29610b051657fb42b6361a3 Mon Sep 17 00:00:00 2001 From: Meador Inge Date: Wed, 23 Nov 2016 20:17:20 +0000 Subject: [PATCH] llvm-nm: Print correct symbol types for init and fini sections This patch fixes a small bug where symbols defined in the INIT and FINI sections were incorrectly getting a type of 'n'. Differential Revision: https://reviews.llvm.org/D26937 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287803 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../llvm-nm/X86/Inputs/init-fini.out.elf-x86_64 | Bin 0 -> 904 bytes test/tools/llvm-nm/X86/init-fini.test | 8 ++++++++ tools/llvm-nm/llvm-nm.cpp | 3 +++ 3 files changed, 11 insertions(+) create mode 100755 test/tools/llvm-nm/X86/Inputs/init-fini.out.elf-x86_64 create mode 100644 test/tools/llvm-nm/X86/init-fini.test diff --git a/test/tools/llvm-nm/X86/Inputs/init-fini.out.elf-x86_64 b/test/tools/llvm-nm/X86/Inputs/init-fini.out.elf-x86_64 new file mode 100755 index 0000000000000000000000000000000000000000..b5c74f234c609b4336cb5e64dee4868c57a0422f GIT binary patch literal 904 zcmbu7u}%Xq42J*Ssnvl50wyFD7+8>~#MTLQfr)nrsd^F}=x~>TPP___(77X1AEA%X z$G~>%UPyt3NV(ts;@D0u?+;IpMXv`N1@6J#5@SK}3si-;%0?(?eSlJ8``r>*WA&o0 z)H4Mxg>a1lP2(#(3pcIAqq?fLZ`-E?+e)+S7XLK3OFK^*Skfu1o^kFA#6Ptk<7dkA z_#5IUKjgm_zMtpr7k;FCoz;bNv-vDI-!y*V>iP6LXoGJ8p-J01wd<)59vHTZ*Wf3l zp^5rpR;b?shFw}J{qJ!>8Tjt_pYpK#UPc#(swVNC%>%B;Jf>MHvU|4o(Y=EhkncZD v_G$`|jRxMPknDUv`^gjEMX%M`sPbFqY5kllKOnW<6^VRkp-~FS&g*{xFyBCt literal 0 HcmV?d00001 diff --git a/test/tools/llvm-nm/X86/init-fini.test b/test/tools/llvm-nm/X86/init-fini.test new file mode 100644 index 00000000000..86afc711c4e --- /dev/null +++ b/test/tools/llvm-nm/X86/init-fini.test @@ -0,0 +1,8 @@ +# RUN: llvm-nm -B -S %p/Inputs/init-fini.out.elf-x86_64 | FileCheck --match-full-lines %s + +CHECK: 00000000006000c2 0000000000000000 T __bss_start +CHECK: 00000000006000c2 0000000000000000 t __init_array_end +CHECK: 00000000006000ba 0000000000000000 t __init_array_start +CHECK: 00000000006000c2 0000000000000000 T _edata +CHECK: 00000000006000c8 0000000000000000 T _end +CHECK: 00000000004000b0 0000000000000000 T _start diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp index e89d1d31048..8c6fa4ecec7 100644 --- a/tools/llvm-nm/llvm-nm.cpp +++ b/tools/llvm-nm/llvm-nm.cpp @@ -778,6 +778,9 @@ static char getSymbolNMTypeChar(ELFObjectFileBase &Obj, break; case ELF::SHT_NOBITS: return 'b'; + case ELF::SHT_INIT_ARRAY: + case ELF::SHT_FINI_ARRAY: + return 't'; } } -- 2.50.1