llvm-capstone/clang
Martin Storsjö 0e4cf807ae [clang] [MinGW] Don't mark emutls variables as DSO local
These actually can be automatically imported from another DLL. (This
works properly as long as the actual implementation of emutls is
linked dynamically from e.g. libgcc; if the implementation comes from
compiler-rt or a statically linked libgcc, it doesn't work as intended.)

This fixes PR50146 and https://github.com/msys2/MINGW-packages/issues/8706
(fixing calling std::call_once in a dynamically linked libstdc++);
since f731839584 the dso_local attribute
on the TLS variable affected the actual generated code for accessing
the emutls variable.

The dso_local attribute on the emutls variable made those accesses to
use 32 bit relative addressing in code, which requires runtime pseudo
relocations in the text section, and breaks entirely if the actual
other variable ends up loaded too far away in the virtual address
space.

Differential Revision: https://reviews.llvm.org/D102970
2021-05-27 23:51:22 +03:00
..
bindings
cmake [Fuchsia][CMake] Add missing include path. 2021-05-26 19:59:53 -07:00
docs [Clang] Enable __has_feature(coverage_sanitizer) 2021-05-27 18:24:21 +02:00
examples
include Replace 'magic static' with a member variable for SCYL kernel names 2021-05-27 13:46:31 -07:00
INPUTS
lib [clang] [MinGW] Don't mark emutls variables as DSO local 2021-05-27 23:51:22 +03:00
runtime
test [clang] [MinGW] Don't mark emutls variables as DSO local 2021-05-27 23:51:22 +03:00
tools Reimplement __builtin_unique_stable_name- 2021-05-27 07:12:20 -07:00
unittests Add support for #elifdef and #elifndef 2021-05-27 08:57:47 -04:00
utils Reapply "[clang][deps] Support inferred modules" 2021-05-20 12:41:52 +02:00
www Added a faster method to clone llvm project [DOCS] 2021-05-05 21:37:53 +05:30
.clang-format
.clang-tidy Disable misc-no-recursion checking in Clang 2021-05-27 10:39:04 -04:00
.gitignore Remove .gitignore entries not relevant in the monorepo. 2021-04-07 12:25:02 -07:00
CMakeLists.txt
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:             http://clang.llvm.org/
Building and using Clang:         http://clang.llvm.org/get_started.html
Clang Static Analyzer:            http://clang-analyzer.llvm.org/
Information on the LLVM project:  http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/