- Jan 10, 2017
-
-
Rafael Espindola authored
This actually simplifies the code a bit as now all local symbols are handled uniformly. This should fix the build of www/webkit2-gtk3. llvm-svn: 291569
-
- Jan 04, 2017
-
-
Peter Smith authored
In a shared library an undefined symbol is implicitly imported. If the symbol is called as a function a PLT entry is generated for it. When the caller is a Thumb b.w a thunk to the PLT entry is needed as all PLT entries are in ARM state. This change allows undefined symbols to have thunks in the same way that shared symbols may have thunks. llvm-svn: 290951
-
- Dec 22, 2016
-
-
Rui Ueyama authored
Vectors returned form that function contained nullptrs or Undefined symbols. This patch filter them out. This makes use of the function a bit easier. llvm-svn: 290334
-
Rui Ueyama authored
Previously, you had to call initDemangledSyms() before accessing DemangledSyms. Now getDemangledSyms() initializes it and then returns it. So it is now less easy to use it in a wrong way. llvm-svn: 290323
-
Rui Ueyama authored
llvm-svn: 290321
-
Rui Ueyama authored
llvm-svn: 290320
-
- Dec 21, 2016
-
-
Rui Ueyama authored
DefinedSynthetic is not created for a real ELF object, so it doesn't have to be a template function. It has a virtual st_value, which is either 32 bit or 64 bit, but we can simply use 64 bit. llvm-svn: 290241
-
Vitaly Buka authored
llvm-svn: 290231
-
- Dec 18, 2016
-
-
Rui Ueyama authored
I thought for a while about how to remove it, but it looks like we can just copy the file for now. Of course I'm not happy about that, but it's just less than 50 lines of code, and we already have duplicate code in Error.h and some other places. I want to solve them all at once later. Differential Revision: https://reviews.llvm.org/D27819 llvm-svn: 290062
-
- Dec 10, 2016
-
-
Rui Ueyama authored
llvm-svn: 289293
-
- Dec 09, 2016
-
-
Rafael Espindola authored
We first decide that the symbol is global, than that it should have version foo. Since it was already not the default version, we were producing a bogus warning. llvm-svn: 289284
-
Rafael Espindola authored
llvm-svn: 289217
-
Rafael Espindola authored
llvm-svn: 289212
-
- Dec 08, 2016
-
-
Rui Ueyama authored
llvm-svn: 289084
-
Rafael Espindola authored
The feature is documented as ----------------------------- The format of the dynamic list is the same as the version node without scope and node name. See *note VERSION:: for more information. -------------------------------- And indeed qt uses a dynamic list with an 'extern "C++"' in it. With this patch we support that The change to gc-sections-shared makes us match bfd. Just because we kept bar doesn't mean it has to be in the dynamic symbol table. The changes to invalid-dynamic-list.test and reproduce.s are because of the new parser. The changes to version-script.s are the only case where we change behavior with regards to bfd, but I would like to see a mix of --version-script and --dynamic-list used in the wild before complicating the code. llvm-svn: 289082
-
Rafael Espindola authored
llvm-svn: 289067
-
Rafael Espindola authored
llvm-svn: 289066
-
Rafael Espindola authored
llvm-svn: 289065
-
Rafael Espindola authored
llvm-svn: 289064
-
Rafael Espindola authored
llvm-svn: 289062
-
Simon Atanasyan authored
Follow-up to r289025. llvm-svn: 289061
-
Simon Atanasyan authored
These MIPS specific symbols should be global because in general they can have an arbitrary value. By default this value is a fixed offset from .got section. This patch adds more checks to the mips-gp-local.s test case but marks it as XFAIL because LLD does not allow redefinition of absolute symbols value by a linker script. This should be fixed by D27276. Differential revision: https://reviews.llvm.org/D27524 llvm-svn: 289025
-
Rui Ueyama authored
llvm-svn: 288993
-
- Dec 02, 2016
-
-
Rafael Espindola authored
This is a fairly reasonable bfd extension since there is one obvious value. dtrace depends on this feature as it creates multiple absolute symbols with the same value. llvm-svn: 288461
-
- Nov 29, 2016
-
-
Rui Ueyama authored
StringRefZ is a class to represent a null-terminated string. String length is computed lazily, so it's more efficient than StringRef to represent strings in string table. The motivation of defining this new class is to merge functions that only differ in string types; we have many constructors that takes `const char *` or `StringRef`. With StringRefZ, we can merge them. Differential Revision: https://reviews.llvm.org/D27037 llvm-svn: 288172
-
- Nov 26, 2016
-
-
Davide Italiano authored
llvm-svn: 287967
-
- Nov 25, 2016
-
-
Rui Ueyama authored
The function was used only within Relocations.cpp, but now we are using it in many places, so this patch moves it to a file that fits to the functionality. llvm-svn: 287943
-
- Nov 24, 2016
-
-
Rui Ueyama authored
llvm-svn: 287901
-
Rui Ueyama authored
Differential Revision: https://reviews.llvm.org/D27065 llvm-svn: 287899
-
Rui Ueyama authored
HasError was always true if ErrorCount > 0, so we can use ErrorCount instead. llvm-svn: 287849
-
- Nov 23, 2016
-
-
Rui Ueyama authored
We have different functions to stringize objects to construct error messages. For InputFile, we have getFilename, and for InputSection, we have getName. You had to memorize them. I think this is the case where the function overloading comes in handy. This patch defines toString() functions that are overloaded for all these types, so that you just call it in error(). Differential Revision: https://reviews.llvm.org/D27030 llvm-svn: 287787
-
Rui Ueyama authored
So that we have less number of overloaded functions. llvm-svn: 287745
-
Rui Ueyama authored
llvm-svn: 287742
-
Rui Ueyama authored
There are two ways to set symbol versions. One way is to use symbol definition file, and the other is to embed version names to symbol names. In the latter way, symbol name is in the form of `foo@version1` where `foo` is a real name and `version1` is a version. We were parsing symbol names in insert(). That seems unnecessarily too early. We can do it later after we resolve all symbols. Doing it lazily is a good thing because it makes code easier to read (because now we have a separate pass to parse symbol names). Also it could slightly improve performance because if two identical symbols have versions, we now parse them only once. llvm-svn: 287741
-
- Nov 20, 2016
-
-
Rui Ueyama authored
llvm-svn: 287467
-
- Nov 18, 2016
-
-
Rui Ueyama authored
llvm-svn: 287318
-
- Nov 17, 2016
-
-
Rui Ueyama authored
llvm-svn: 287254
-
Rui Ueyama authored
llvm-svn: 287253
-
Rui Ueyama authored
llvm-svn: 287252
-
Rui Ueyama authored
llvm-svn: 287234
-