Public bug reported:

There are four thread local storage (TLS) models in Clang/LLVM as following: 
1) global-dynamic TLS model
2) local-dynamic   TLS model
3) local-exec         TLS model
4) initial-exec        TLS model 
and emulated-TLS (for Android S/W platform)??

Even though, We can build run normally with the static relocation method
by selecting the initial-exec TLS model instead of global-dynamic TLS
model (by default) , We need to run the clang application code with
global-dynamic (or local-dynamic) TLS model in order that we support
some applications is working with dlopen(3) library call.

We have found the appropriate solution for some clang/LLVM applications
including 1) __thread variables and 2) -O2/-O3 of the clang language.
Could you apply this patch to Ubuntu 14.04 LTS and Ubuntu 16.04 LTS
repository?

* LLVM: Revision 268662 (ARM: don't attempt to merge litpools referencing 
different PC-anchors.)
http://llvm.org/viewvc/llvm-project?view=revision&revision=268662


Below is the mailing list discussed to fix this issue. 
http://lists.llvm.org/pipermail/llvm-dev/2016-May/098974.html
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20160502/353476.html
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20160509/355091.html
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20160516/356679.html

* Before r268662:
  ubuntu@raspberrypi2#> ./corerun ./hello.exe
  Segmentation Fault 

* After r268662:
  ubuntu@raspberrypi2#> ./corerun ./hello.exe
  Hello!!! Welcome to .NET Core (CoreCLR) world.!!!

** Affects: llvm-defaults (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: llvm-arm

** Patch added: "[LLVM] Linux/ARM: don't attempt to merge litpools referencing 
different PC-anchors."
   
https://bugs.launchpad.net/bugs/1584089/+attachment/4666964/+files/0001-ARM-don-t-attempt-to-merge-litpools-referencing-diff.patch

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1584089

Title:
  Segfault  of __thread varaible  in Linux/ARM due to bug of LLVM ARM
  code generation

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/llvm-defaults/+bug/1584089/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to