From f56def4ea4793e7ccb1d4e03c0487a2e57e11cb5 Mon Sep 17 00:00:00 2001 From: George Rimar Date: Fri, 1 Mar 2019 10:37:51 +0000 Subject: [PATCH] [LLD][ELF] - Convert invalid/undefined-local-symbol-in-dso.test to use YAML This removes a binary from the inputs and reduces the test case. Differential revision: https://reviews.llvm.org/D58783 llvm-svn: 355194 --- .../Inputs/undefined-local-symbol-in-dso.so | Bin 5080 -> 0 bytes .../ELF/invalid/undefined-local-symbol-in-dso.test | 73 +++++---------------- 2 files changed, 17 insertions(+), 56 deletions(-) delete mode 100755 lld/test/ELF/invalid/Inputs/undefined-local-symbol-in-dso.so diff --git a/lld/test/ELF/invalid/Inputs/undefined-local-symbol-in-dso.so b/lld/test/ELF/invalid/Inputs/undefined-local-symbol-in-dso.so deleted file mode 100755 index b88427351197bf0093afdb021076e5a84fb8b56b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5080 zcmeHLy-EW?5FU;HHj0HQ6wX4>=8R|{ScHH-SX`mLL5$Ie<_<0wFqIEr<0GWZW7zr* zw!VRimFLXfd|^36K`UVw^xOSrzM0)`)9l^u2M41gBZN_)D#@xinlUvE6z6rqP@@V> z@c&twVI&$eTo$ioz|m|RX=&h;@1KCR~-=h zJb6yeZoZE2a<-u_R)X+qqlphg=TU@tUwxIm+C2{M##Z0c zG)106=YVs-Ip7>{4mby#1I_{GfOEh(;2ikh4oqVE`cTBXx2XKIBG!1*-s@v=HW$a6 z{zc<68VCRSk(#&XgT~F@}ZO|)Ci#!p}p@+Xf+$Z$72jDVm z3zi=D3B-MJiW#Vb^(s%K7Wxk-O62=v|KK-RD>d>KMcPedzcFhjp{ z;QLKqY3NW7X;qF(f9Ua@1c-bsGrT{ncU6yj20zdSD -#include - -int main(int argc, char *argv[]) { - FILE *F = fopen(argv[1], "rb+"); - - Elf64_Ehdr Ehdr; - fread(&Ehdr, sizeof(Ehdr), 1, F); - fseek(F, Ehdr.e_shoff, SEEK_SET); - - Elf64_Shdr Shdr; - do { - fread(&Shdr, sizeof(Shdr), 1, F); - } while (Shdr.sh_type != SHT_DYNSYM); - - Elf64_Sym Sym; - fseek(F, Shdr.sh_offset + sizeof(Elf64_Sym), SEEK_SET); - fread(&Sym, sizeof(Sym), 1, F); - Sym.st_info = STB_LOCAL << 4 | ELF64_ST_TYPE(Sym.st_info); - fseek(F, Shdr.sh_offset + sizeof(Elf64_Sym), SEEK_SET); - fwrite(&Sym, sizeof(Sym), 1, F); - fclose(F); -} -``` - -# (the C program just takes its input DSO and modifies the binding of the first -# dynamic symbol table entry to be STB_LOCAL instead of STB_GLOBAL) - -# RUN: ld.lld %p/Inputs/undefined-local-symbol-in-dso.so -o %t 2>&1 | \ -# RUN: FileCheck -check-prefix=WARN %s -# WARN: found local symbol 'foo' in global part of symbol table in file {{.*}}undefined-local-symbol-in-dso.so +# RUN: yaml2obj %s -o %t.so +# RUN: ld.lld %t.so -o %t 2>&1 | FileCheck -check-prefix=WARN %s +# WARN: found local symbol 'foo' in global part of symbol table in file {{.*}}.so + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_DYN + Machine: EM_X86_64 +Sections: + - Name: .dynsym + Info: 1 + Type: SHT_SYMTAB +DynamicSymbols: + Local: + - Name: foo -- 2.7.4