summaryrefslogtreecommitdiffstats
path: root/lld
Commit message (Collapse)AuthorAgeFilesLines
...
* llvm-cvtres: Make new dupe resource error a bit friendlierNico Weber2019-04-242-2/+2
| | | | | | | | | | | | For well-known type IDs, include the name of the type. To not duplicate the ID->name map, make llvm-readobj call this new function as well. It has slightly different output, so this also requires updating a few tests. Differential Revision: https://reviews.llvm.org/D61086 llvm-svn: 359153
* [COFF] Don't emit .gfids sections when CFG is offReid Kleckner2019-04-242-2/+12
| | | | | | | Put them on the list of GuardFidChunks instead of the main Chunks list, even with CFG is off. It will be ignored if CFG is disabled. llvm-svn: 359137
* [docs] Copy-edit lld/docs/WebAssembly.rstSam Clegg2019-04-241-17/+14
| | | | | | | | | | | Fixes small typos in WebAssembly documentation. I first noticed the sub-heading "Bahavior", and then decided to review the whole file. Patch by Christoph Siedentop! Differential Revision: https://reviews.llvm.org/D60987 llvm-svn: 359103
* [ELF] Delete a redundant SHT_NOBITS -> SHT_PROGBITS after D60131Fangrui Song2019-04-241-1/+0
| | | | | | Differential Revision: https://reviews.llvm.org/D61006 llvm-svn: 359099
* [PPC64] Consider localentry offset when computing branch distanceFangrui Song2019-04-242-1/+34
| | | | | | | | | | | | | | | Summary: We don't take localentry offset into account, and thus may fail to create a long branch when the gap is just a few bytes smaller than 2^25. relocation R_PPC64_REL24 out of range: 33554432 is not in [-33554432, 33554431] relocation R_PPC64_REL24 out of range: 33554436 is not in [-33554432, 33554431] Fix that by adding the offset to the symbol VA. Differential Revision: https://reviews.llvm.org/D61058 llvm-svn: 359094
* [LLD][ELF] - Remove binding.elf binary from test case. NFCI.George Rimar2019-04-243-7/+21
| | | | | | This introduces YAML based invalid-binding.test instead. llvm-svn: 359086
* [LLD][ELD] - Remove excessive lines from test. NFC.George Rimar2019-04-241-5/+0
| | | | | | They are not used. llvm-svn: 359084
* [ELF] Fix a gcc -Wextra warningFangrui Song2019-04-241-2/+2
| | | | | | | | | | Extracted from D61046. warning: enumeral and non-enumeral type in conditional expression [-Wextra] Cast SHF_ALLOC to avoid that. llvm-svn: 359070
* [WebAssembly] Fix typo in relocation checkingSam Clegg2019-04-232-1/+56
| | | | | | | | | | | Runtime relocation are generated for relocations of type R_WASM_MEMORY_ADDR_I32 when in PIC mode (either -shared or -pie). Followup on https://reviews.llvm.org/D60882. Differential Revision: https://reviews.llvm.org/D60992 llvm-svn: 358995
* [LLD][ELF] - Remove dynamic-section-sh_size.elf binary, convert test to ↵George Rimar2019-04-233-4/+36
| | | | | | | | | | | | | yaml. NFCI. dynamic-section-sh_size.elf was introduced in D25090. Now it is possible to use yaml2obj instead. That is what this patch does. Also I added one more case of a possibly broken .dynamic section just in case. llvm-svn: 358990
* [LLD][ELF] - Remove file-class.a binary from inputs and improve the test case.George Rimar2019-04-233-4/+19
| | | | | | | | | | | | | file-class.a was used to diagnose the "corrupted ELF file: invalid file class" error when the object was fetched from the archive. file-class.a contained an object of 16 bytes size. I replaced it with an echo call (because it is impossible to use yaml2obj for that, and I am not sure it is worth to support), and also increased its size to 18 bytes. That allowed to also test a case when such object is a regular input and not an archive member (we have a bit different logic for these cases). llvm-svn: 358985
* [ELF] Change default output section type to SHT_PROGBITSAndrew Ng2019-04-237-10/+45
| | | | | | | | | | | | This fixes an issue where a symbol only section at the start of a PT_LOAD segment, causes incorrect alignment of the file offset for the start of the segment which results in the output of an invalid ELF. SHT_PROGBITS was the default output section type in the past. Differential Revision: https://reviews.llvm.org/D60131 llvm-svn: 358981
* [LLD][COFF] Fix /linkrepro with output options that take a filename or pathAlexandre Ganea2019-04-232-1/+19
| | | | | | | | The following options: /pdb, /out or /implib now emit in the repro.tar/response.txt only a filename stripped from its path, to avoid non-existent paths on the reproducer's machine. Differential Revision: https://reviews.llvm.org/D59530 llvm-svn: 358980
* [ELF] Change findOrphanPos to only consider live sectionsAndrew Ng2019-04-231-4/+7
| | | | | | | | | | This patch changes the behaviour of findOrphanPos to only consider live sections when placing orphan sections. This used to be how it behaved in the past. Differential Revision: https://reviews.llvm.org/D60273 llvm-svn: 358979
* [PPC][PPC64] Improve some llvm-objdump -d -D testsFangrui Song2019-04-2316-325/+261
| | | | | | | | | | | | | | | | | | | | | Various improvement: Some offsets in disassembly are incorrect after several layout adjustment. Fix them. llvm-objdump -D should not be used. -D dumps unrelated non-text sections. Replace them with llvm-objdump -d, llvm-readelf -x, etc Many llvm-objdump -d tests use {{.*}} . Add the option --no-show-raw-insn to avoid check hex bytes. ppc64-long-branch.s does not need a shared object. Delete it. Make ppc64-ifunc.s check 2 ifuncs. Reviewers: ruiu, espindola Subscribers: emaste, nemanjai, arichardson, kbarton, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60998 llvm-svn: 358975
* [LLD][ELF] - Fix mips-invalid-options-descriptor.s test case and convert to ↵George Rimar2019-04-233-5/+21
| | | | | | | | | | | | | | YAML. It was initially introduced in D25229 to report the "zero option descriptor size" error message. In following commits it was broken and did not report this error anymore. I think that happened because elf object was a result of fuzzing and it was broken in many ways. This patch converts this test to a YAML, removes a binary and hence fixes the original intention. llvm-svn: 358972
* [LLD][ELF] - Remove multiple-eh-relocs.elf binary from the inputs. NFCI.George Rimar2019-04-233-4/+29
| | | | | | Introduced multiple-relocations-sections.test based on YAML instead. llvm-svn: 358966
* [LLD][ELF] - Update test case after llvm-mc change.George Rimar2019-04-231-1/+1
| | | | | | | rL358960 "[llvm-mc] - Properly set the the address align field of the compressed sections." changed the sh_addralign field of the "zlib" compressed debug sections. llvm-svn: 358961
* [PPC64] Allow R_PPC64_DTPREL* to preemptable local-dynamic symbolsFangrui Song2019-04-234-5/+38
| | | | | | | | Similar to D60945. Differential Revision: https://reviews.llvm.org/D60994 llvm-svn: 358950
* Use llvm::stable_sortFangrui Song2019-04-2313-72/+60
| | | | | | | | | Make some small adjustment while touching the code: make parameters const, use less_first(), etc. Differential Revision: https://reviews.llvm.org/D60989 llvm-svn: 358943
* [WebAssembly] Error on relocations against undefined data symbols.Sam Clegg2019-04-223-16/+50
| | | | | | | | | | | | | | | | | We can't (currently) meaningfully resolve certain types of relocations against undefined data symbols. Previously when `--allow-undefined` was used we were treating such relocation much like weak data symbols and simply inserting zeros. This change turns such use cases in to an error. This means that `--allow-undefined` is no longer effective for data symbols. Fixes https://bugs.llvm.org/show_bug.cgi?id=40364 Differential Revision: https://reviews.llvm.org/D60882 llvm-svn: 358899
* [LLD][ELF] - Remove a binary from the inputs. NFCI.George Rimar2019-04-223-4/+16
| | | | | | | section-index.elf was removed and the corresponding test was replaced with a yaml2obj based test. llvm-svn: 358889
* [LLD][ELF] - Do not forget to use ch_addralign field after decompressing the ↵George Rimar2019-04-222-0/+69
| | | | | | | | | | | | | sections. LLD did not use ELF::Chdr::ch_addralign for decompressed sections. This resulted in a broken output. Fixes https://bugs.llvm.org/show_bug.cgi?id=40482. Differential revision: https://reviews.llvm.org/D60959 llvm-svn: 358885
* [LLD][ELF] - Handle quoted strings in the linker scripts correctly.George Rimar2019-04-222-1/+14
| | | | | | | | | | | | | | This is the https://bugs.llvm.org/show_bug.cgi?id=41356, Seems it is kind of unusual case but it is possible to have sections that require quotes for their namings. Like "aaa bbb". This patch adds support for those. Differential revision: https://reviews.llvm.org/D60901 llvm-svn: 358874
* [WebAssembly] Fix R_WASM_FUNCTION_OFFSET_I32 relocation warningsSam Clegg2019-04-221-6/+7
| | | | | | | | | | | | | | | We were incorrectly used the symbol table version of the function rather than the object-local version when checking the existing relocation value. This was causing erroneous warnings for comat symbols defined in multiple object.s Fixes: https://bugs.llvm.org/show_bug.cgi?id=40503 Differential Revision: https://reviews.llvm.org/D60928 llvm-svn: 358871
* [ELF][X86] Allow R_386_TLS_LDO_32 and R_X86_64_DTPOFF{32,64} to preemptable ↵Fangrui Song2019-04-227-9/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | local-dynamic symbols Summary: Fixes PR35242. A simplified reproduce: thread_local int i; int f() { return i; } % {g++,clang++} -fPIC -shared -ftls-model=local-dynamic -fuse-ld=lld a.cc ld.lld: error: can't create dynamic relocation R_X86_64_DTPOFF32 against symbol: i in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output In isStaticLinkTimeConstant(), Syn.IsPreemptible is true, so it is not seen as a constant. The error is then issued in processRelocAux(). A symbol of the local-dynamic TLS model cannot be preempted but it can preempt symbols of the global-dynamic TLS model in other DSOs. So it makes some sense that the variable is not static. This patch fixes the linking error by changing getRelExpr() on R_386_TLS_LDO_32 and R_X86_64_DTPOFF{32,64} from R_ABS to R_DTPREL. R_PPC64_DTPREL_* and R_MIPS_TLS_DTPREL_* need similar fixes, but they are not handled in this patch. As a bonus, we use `if (Expr == R_ABS && !Config->Shared)` to find ld-to-le opportunities. R_ABS is overloaded here for such STT_TLS symbols. A dedicated R_DTPREL is clearer. Differential Revision: https://reviews.llvm.org/D60945 llvm-svn: 358870
* [ELF][X86] Rename R_RELAX_TLS_GD_TO_IE_END to R_RELAX_TLS_GD_TO_IE_GOTPLTFangrui Song2019-04-223-4/+4
| | | | | | | | | | Summary: This relocation type is used by R_386_TLS_GD. Its formula is the same as R_GOTPLT (e.g R_X86_64_GOT{32,64} R_386_TLS_GOTIE). Rename it to be clearer. Differential Revision: https://reviews.llvm.org/D60941 llvm-svn: 358868
* [LLD][ELF] - Fix mistype. NFC.George Rimar2019-04-201-1/+1
| | | | | | | Change the tripple name from aarch64-linux-gnux to -triple=aarch64-linux-gnu llvm-svn: 358810
* [WebAssembly] Emit the DataCount section when bulk memory is enabledThomas Lively2019-04-193-0/+30
| | | | | | | | | | | | | | | | | | Summary: The DataCount section is necessary for the bulk memory operations memory.init and data.drop to validate, but it is not recognized by engines that do not support bulk memory, so emit the section only if bulk-memory is enabled. Reviewers: aheejin, dschuff, sbc100 Subscribers: jgravelle-google, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60637 llvm-svn: 358798
* [COFF] Pack Name in Symbol as is done in ELFReid Kleckner2019-04-192-8/+20
| | | | | | | | | | | | | | | | | | | | | | Summary: This assumes all symbols are <4GB long, so we can store them as a 32-bit integer. This reorders the fields so the length appears first, packing with the other bitfield data in the base Symbol object. This saved 70MB / 3.60% of heap allocations when linking browser_tests.exe with no PDB. It's not much as a percentage, but worth doing. I didn't do performance measurements, I don't think it will be measurable in time. Reviewers: ruiu, inglorion, amccarth, aganea Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60297 llvm-svn: 358794
* [MinGW] Add an --appcontainer flag, passed through to lld-linkMartin Storsjo2019-04-193-0/+7
| | | | | | | | | GNU ld doesn't have such a flag though, so this is a lld specific option. Differential Revision: https://reviews.llvm.org/D60860 llvm-svn: 358759
* [llvm] Prevent duplicate files in debug line header in dwarf 5: another attemptAli Tamur2019-04-192-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Another attempt to land the changes in debug line header to prevent duplicate files in Dwarf 5. I rolled back my previous commit because of a mistake in generating the object file in a test. Meanwhile, I addressed some offline comments and changed the implementation; the largest difference is that MCDwarfLineTableHeader does not keep DwarfVersion but gets it as a parameter. I also merged the patch to fix two lld tests that will strt to fail into this patch. Original Commit: https://reviews.llvm.org/D59515 Original Message: Motivation: In previous dwarf versions, file name indexes started from 1, and the primary source file was not explicit. Dwarf 5 standard (6.2.4) prescribes the primary source file to be explicitly given an entry with an index number 0. The current implementation honors the specification by just duplicating the main source file, once with index number 0, and later maybe with another index number. While this is compliant with the letter of the standard, the duplication causes problems for consumers of this information such as lldb. (Some files are duplicated, where only some of them have a line table although all refer to the same file) With this change, dwarf 5 debug line section files always start from 0, and the zeroth entry is not duplicated whenever possible. This requires different handling of dwarf 4 and dwarf 5 during generation (e.g. when a function returns an index zero for a file name, it signals an error in dwarf 4, but not in dwarf 5) However, I think the minor complication is worth it, because it enables all consumers (lldb, gdb, dwarfdump, objdump, and so on) to treat all files in the file name list homogenously. llvm-svn: 358732
* [wasm] Simplify. NFCFangrui Song2019-04-183-4/+4
| | | | llvm-svn: 358663
* [LLD][ELF] - Convert out-of-order-section-in-region.s to *.test. NFCI.George Rimar2019-04-182-22/+20
| | | | | | This is consistent with the our others tests that has large scripts. llvm-svn: 358659
* [LLD][ELF] - A fix for "linker script assignment loses relative nature of ↵George Rimar2019-04-183-15/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | section" bug. This is https://bugs.llvm.org//show_bug.cgi?id=39857. I added the comment with much more details to the bug page, the short version is below. The following script and code demonstrates the issue: aliasto__text = __text; SECTIONS { .text 0x1000 : { __text = . ; *(.text) } } ... call aliasto__text LLD fails with "cannot refer to absolute symbol: aliasto__text" error. It happens because at the moment of scanning the relocations we do not yet assign the correct/final/any section value for the symbol aliasto__text. I made a change to Relocations.cpp to fix that. Also, I had to remove the symbol-location.s test case completely, because now it does not trigger any error. Since now all linker scripts symbols are resolved to constants, no errors can be triggered at all it seems. I checked that it is consistent with the behavior of bfd and gold (they do not trigger errors for the case from symbol-location.s), so it should be OK. I.e. at least it is probably not the best possible, but natural behavior we obtained. Differential revision: https://reviews.llvm.org/D55423 llvm-svn: 358652
* [ELF] Respect NonAlloc when copying flags from the previous sectionsFangrui Song2019-04-183-1/+7
| | | | | | | | | | | | | | | | Summary: If the output section contains only symbol assignments, we copy flags from the previous sections. Don't set SHF_ALLOC if NonAlloc is true. We also have to change the type from SHT_NOBITS to SHT_PROGBITS. In ld.bfd, bfd_elf_get_default_section_type maps non-alloctable sections to SHT_PROGBITS. Non-alloctable SHT_NOBITS sections do not make sense. Fixes PR38626 Differential Revision: https://reviews.llvm.org/D59986 llvm-svn: 358650
* [LLD][ELF] - Fix the different behavior of the linker script symbols on ↵George Rimar2019-04-182-26/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | different platforms. This generalizes code and also fixes the broken behavior shown in one of our test cases for some targets, like x86-64. The issue occurs when the forward declarations are used in the script. One of the samples is: SECTIONS { foo = ADDR(.text) - ABSOLUTE(ADDR(.text)); }; In that case, we have a broken output when output target does not use thunks. That happens because thunks creating code (called from maybeAddThunks) calls Script->assignAddresses() at least one more time, what fixups the values. As a result final symbols values can be different on AArch64 and x86, for example. In this patch, I generalize and rename maybeAddThunks to finalizeAddressDependentContent and now it is used and called by all targets. Differential revision: https://reviews.llvm.org/D55550 llvm-svn: 358646
* [ELF] Place SectionPiece::{Live,Hash} bit fields togetherFangrui Song2019-04-183-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | Summary: We access Live and OutputOff (which may share the same memory location) concurrently in 2 parallelForEachN loops. Separating them avoids subtle data races like D41884/PR35788. This patch places Live and Hash together. 2 reasons this is appealing: 1) Hash is immutable. Live is almost read-only - only written once in MarkLive.cpp where Hash is not accessed 2) we already discard low bits of Hash to decide ShardID. It doesn't matter much if we make 32-bit Hash to 31-bit. For a huge internal clang -O3 executable (1.6GiB), `Strings` in StringTableBuilder::finalizeStringTable contains at most 310253 elements. The expected number of pair-wise collisions 2^(-31) * C(310253,2) ~= 22.41 is too small to have a negative impact on performance. Actually, my benchmark shows there is actually a minor performance improvement. Differential Revision: https://reviews.llvm.org/D60765 llvm-svn: 358645
* lld: elf: Fix sections with explict addresses in regionsRui Ueyama2019-04-182-3/+26
| | | | | | | | | | | | | | | | | | | | | | | Patch by Gabriel Smith. The address for a section would be evaluated before the region was switched to. Because of this, the position within the region would not be updated. After the region is swapped to the dot would be set to the out of date position within the region, undoing the section address evaluation. To fix this, the region is swapped to before the section's address is evaluated. As part of the fallout of this, expandMemoryRegions needed to be gated in setDot on the condition that the evaluated address is less than the dot. This is for the case where sections are not listed from lowest address to highest address. Finally, a test for the case where sections are listed "out of order" was added. Differential Revision: https://reviews.llvm.org/D60744 llvm-svn: 358638
* [ELF] Use llvm::bsearch. NFCFangrui Song2019-04-172-8/+5
| | | | | | Differential Revision: https://reviews.llvm.org/D60813 llvm-svn: 358565
* Fix a crash bug caused by a nested call of parallelForEach.Rui Ueyama2019-04-171-6/+6
| | | | | | | | | | | | parallelForEach is not reentrant. We use parallelForEach to call each section's writeTo(), so calling the same function within writeTo() is not safe. Fixes https://bugs.llvm.org/show_bug.cgi?id=41508 Differential Revision: https://reviews.llvm.org/D60757 llvm-svn: 358547
* lld: Fix initial Mach-O load commands size calculation omitting ↵Rui Ueyama2019-04-174-12/+326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LC_FUNCTION_STARTS Patch by Nicholas Allegra. The Mach-O writer calculates the size of load commands multiple times. First, Util::assignAddressesToSections() (in MachONormalizedFileFromAtoms.cpp) calculates the size using headerAndLoadCommandsSize() (in MachONormalizedFileBinaryWriter.cpp), which creates a temporary MachOFileLayout for the NormalizedFile, only to retrieve its headerAndLoadCommandsSize. Later, writeBinary() (in MachONormalizedFileBinaryWriter.cpp) creates a new layout and uses the offsets from that layout to actually write out everything in the NormalizedFile. But the NormalizedFile changes between the first computation and the second. When Util::assignAddressesToSections is called, file.functionStarts is always empty because Util::addFunctionStarts has not yet been called. Yet MachOFileLayout decides whether to include a LC_FUNCTION_STARTS command based on whether file.functionStarts is nonempty. Therefore, the initial computation always omits it. Because padding for the __TEXT segment (to make its size a multiple of the page size) is added between the load commands and the first section, LLD still generates a valid binary as long as the amount of padding happens to be large enough to fit LC_FUNCTION_STARTS command, which it usually is. However, it's easy to reproduce the issue by adding a section of a precise size. Given foo.c: __attribute__((section("__TEXT,__foo"))) char foo[0xd78] = {0}; Run: clang -dynamiclib -o foo.dylib foo.c -fuse-ld=lld -install_name /usr/lib/foo.dylib otool -lvv foo.dylib This should produce: truncated or malformed object (offset field of section 1 in LC_SEGMENT_64 command 0 not past the headers of the file) This commit: - Changes MachOFileLayout to always assume LC_FUNCTION_STARTS is present for the initial computation, as long as generating LC_FUNCTION_STARTS is enabled. It would be slightly better to check whether there are actually any functions, since no LC_FUNCTION_STARTS will be generated if not, but it doesn't cause a problem if the initial computation is too high. - Adds a test. - Adds an assert in MachOFileLayout::writeSectionContent() that we are not writing section content into the load commands region (which would happen if the offset was calculated too low due to the initial load commands size calculation being too low). Adds an assert in MachOFileLayout::writeLoadCommands to validate a similar situation where two size-of-load-commands computations are expected to be equivalent. llvm-svn: 358545
* ELF: Move build id computation to Writer. NFCI.Peter Collingbourne2019-04-163-66/+77
| | | | | | | | | | | | With partitions, each partition should have the same build id. This means that the build id needs to be only computed once, otherwise we will end up with different build ids in each partition as a result of the file contents changing. This change moves the computation of the build id into Writer so that it only happens once. Differential Revision: https://reviews.llvm.org/D60342 llvm-svn: 358536
* [MachO] Add -macho to llvm-objdump commandsFangrui Song2019-04-164-4/+4
| | | | llvm-svn: 358473
* Fix test on Windows that uses a different path separator character.Douglas Yung2019-04-151-6/+6
| | | | llvm-svn: 358453
* [LLD][COFF] use offset in archive to disambiguate archive membersBob Haarman2019-04-156-14/+65
| | | | | | | | | | | | | | | | | | | | | Summary: Archives can contain multiple members with the same name. This would cause ThinLTO links to fail ("Expected at most one ThinLTO module per bitcode file"). This change implements the same strategy we use in the ELF linker: make the offset in the archive part of the module name so that names are unique. Reviewers: pcc, mehdi_amini, ruiu Reviewed By: ruiu Subscribers: eraman, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60549 llvm-svn: 358440
* [COFF] Link crtend.o as the last object fileMartin Storsjo2019-04-155-4/+69
| | | | | | | | | | | | | | | | | | When faced with command line options such as "crtbegin.o appmain.o -lsomelib crtend.o", GNU ld pulls in all necessary object files from somelib before proceeding to crtend.o. LLD operates differently, only loading object files from any referenced static libraries after processing all input object files. This uses a similar hack as in the ELF linker. Here, it moves crtend.o to the end of the vector of object files. This makes sure that terminator chunks for sections such as .eh_frame gets ordered last, fixing DWARF exception handling for libgcc and gcc's crtend.o. Differential Revision: https://reviews.llvm.org/D60628 llvm-svn: 358394
* [ELF] Fix typo: .symtab_shndxr -> .symtab_shndxFangrui Song2019-04-124-13/+13
| | | | | | | | The typo was introduced to llvm MC in rL204769 (fixed in rL358247) and then to lld. Also, for relocatable-many-sections.s, the size of .symtab changed at some point and the formula needs update. llvm-svn: 358248
* Fix two sphinx warningsHans Wennborg2019-04-111-2/+2
| | | | llvm-svn: 358155
* [WebAssembly] Assign GOT entries symbols used in data relocationsSam Clegg2019-04-103-10/+22
| | | | | | Differential Revision: https://reviews.llvm.org/D60492 llvm-svn: 358090
OpenPOWER on IntegriCloud