commit | 6c350c0e37eb99fcb3f7d28d9954c3e7fc274cd9 | [log] [tgz] |
---|---|---|
author | Peter Smith <peter.smith@linaro.org> | Thu Nov 29 11:18:07 2018 +0000 |
committer | Peter Smith <peter.smith@linaro.org> | Thu Nov 29 11:18:07 2018 +0000 |
tree | be25758e1dd9152feea8a044ef42c20622b303a7 | |
parent | da0ce607bf6773b868aecc7cd1de0a6ad6cab7df [diff] |
[LLD][ELF] Error if _GLOBAL_OFFSET_TABLE_ is defined in input objects The _GLOBAL_OFFSET_TABLE_ is a linker defined symbol that is placed at some location relative to the .got, .got.plt or .toc section. On some targets such as Arm the correctness of some code sequences using a relocation to _GLOBAL_OFFSET_TABLE_ depend on the value of the symbol being in the linker defined place. Follow the ld.gold example and give a multiple symbol definition error. The ld.bfd behaviour is to ignore the definition in the input object and redefine it, which seems like it could be more surprising. fixes pr39587 Differential Revision: https://reviews.llvm.org/D54624 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@347854 91177308-0d34-0410-b5e6-96231b3b80d8
This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.
lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.
In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.
It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz
The current sha256 is 10eec685463d5a8bbf08d77f4ca96282161d396c65bd97dc99dbde644a31610f.