public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/52268] New: tls support should be added for darwin11
@ 2012-02-16 4:02 howarth at nitro dot med.uc.edu
2012-02-16 6:30 ` [Bug target/52268] " howarth at nitro dot med.uc.edu
` (12 more replies)
0 siblings, 13 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-02-16 4:02 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
Bug #: 52268
Summary: tls support should be added for darwin11
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: howarth@nitro.med.uc.edu
The clang compiler in clang 3.0 and Xcode 4.2 currently provides tis support on
darwin11. This same ability to generate the required tis assembly for darwin11
should be added to FSF gcc.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
@ 2012-02-16 6:30 ` howarth at nitro dot med.uc.edu
2012-02-16 17:20 ` mikestump at comcast dot net
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-02-16 6:30 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
Jack Howarth <howarth at nitro dot med.uc.edu> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |x86_64-apple-darwin11
Host| |x86_64-apple-darwin11
Build| |x86_64-apple-darwin11
Severity|normal |enhancement
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
2012-02-16 6:30 ` [Bug target/52268] " howarth at nitro dot med.uc.edu
@ 2012-02-16 17:20 ` mikestump at comcast dot net
2012-02-16 19:01 ` iains at gcc dot gnu.org
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: mikestump at comcast dot net @ 2012-02-16 17:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
--- Comment #1 from Mike Stump <mikestump at comcast dot net> 2012-02-16 17:15:47 UTC ---
If you could snapshot some codegen, say
void foo() {
static __thread int i = 42;
++i;
}
or somesuch, we could see if they wired it up the same was as gcc is normally
wired. I suspect it should be fairly close. I'm thinking this should be easy
to wire up.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
2012-02-16 6:30 ` [Bug target/52268] " howarth at nitro dot med.uc.edu
2012-02-16 17:20 ` mikestump at comcast dot net
@ 2012-02-16 19:01 ` iains at gcc dot gnu.org
2012-02-29 17:44 ` howarth at nitro dot med.uc.edu
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: iains at gcc dot gnu.org @ 2012-02-16 19:01 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
Iain Sandoe <iains at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2012-02-16
Ever Confirmed|0 |1
--- Comment #2 from Iain Sandoe <iains at gcc dot gnu.org> 2012-02-16 18:53:33 UTC ---
somewhat different from the output generated, for example for x86-64-unk-linux
(-fPIC).
.... this is what clang version 3.1 (trunk 150612) : gives.
$ cat ../tests/thr-0.c
int foo (int f)
{
static __thread int ff ;
ff += f;
return ff;
}
$ ./install/bin/clang ../tests/thr-0.c -target x86_64-apple-darwin11 -S
$ more thr-0.s
.section __TEXT,__text,regular,pure_instructions
.globl _foo
.align 4, 0x90
_foo: ## @foo
.cfi_startproc
## BB#0: ## %entry
pushq %rbp
Ltmp2:
.cfi_def_cfa_offset 16
Ltmp3:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp4:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movl %edi, -4(%rbp)
movl %edi, -8(%rbp) ## 4-byte Spill
movq _foo.ff@TLVP(%rip), %rdi
callq *(%rdi)
movl (%rax), %ecx
movl -8(%rbp), %edx ## 4-byte Reload
addl %edx, %ecx
movl %ecx, (%rax)
movl %ecx, %eax
addq $16, %rsp
popq %rbp
ret
.cfi_endproc
.tbss _foo.ff$tlv$init, 4, 2 ## @foo.ff
.section __DATA,__thread_vars,thread_local_variables
_foo.ff:
.quad __tlv_bootstrap
.quad 0
.quad _foo.ff$tlv$init
.subsections_via_symbols
=====
$ ./install/bin/clang ../tests/thr-0.c -target i686-apple-darwin11 -S
$ more thr-0.s
.section __TEXT,__text,regular,pure_instructions
.globl _foo
.align 4, 0x90
_foo: ## @foo
## BB#0: ## %entry
pushl %ebp
movl %esp, %ebp
subl $8, %esp
calll L0$pb
L0$pb:
popl %eax
movl 8(%ebp), %ecx
movl %ecx, -4(%ebp)
movl _foo.ff@TLVP-L0$pb(%eax), %eax
movl %ecx, -8(%ebp) ## 4-byte Spill
calll *(%eax)
movl (%eax), %ecx
movl -8(%ebp), %edx ## 4-byte Reload
addl %edx, %ecx
movl %ecx, (%eax)
movl %ecx, %eax
addl $8, %esp
popl %ebp
ret
.tbss _foo.ff$tlv$init, 4, 2 ## @foo.ff
.section __DATA,__thread_vars,thread_local_variables
_foo.ff:
.long __tlv_bootstrap
.long 0
.long _foo.ff$tlv$init
.subsections_via_symbols
===
$ cat ../tests/thr-1.c
int foo (int f)
{
static __thread int ff = 1234;
ff += f;
return ff;
}
... much the same except
popq %rbp
ret
.cfi_endproc
.section __DATA,__thread_data,thread_local_regular
.align 2 ## @foo.ff
_foo.ff$tlv$init:
.long 1234 ## 0x4d2
.section __DATA,__thread_vars,thread_local_variables
_foo.ff:
.quad __tlv_bootstrap
.quad 0
.quad _foo.ff$tlv$init
--- and
popl %ebp
ret
.section __DATA,__thread_data,thread_local_regular
.align 2 ## @foo.ff
_foo.ff$tlv$init:
.long 1234 ## 0x4d2
.section __DATA,__thread_vars,thread_local_variables
_foo.ff:
.long __tlv_bootstrap
.long 0
.long _foo.ff$tlv$init
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
` (2 preceding siblings ...)
2012-02-16 19:01 ` iains at gcc dot gnu.org
@ 2012-02-29 17:44 ` howarth at nitro dot med.uc.edu
2012-03-01 1:28 ` howarth at nitro dot med.uc.edu
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-02-29 17:44 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
--- Comment #3 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-02-29 17:18:19 UTC ---
Also in clang 3.0, I see test/CodeGen/darwin-thread-specifier.c which
contains...
// RUN: %clang_cc1 -triple x86_64-apple-macosx10.7.0 -emit-llvm -o - %s |
FileCheck %s
// CHECK: @b = thread_local global i32 5, align 4
__thread int b = 5;
whereas their test/CodeGen/thread-specifier.c has...
// RUN: %clang_cc1 -triple i686-pc-linux-gnu -emit-llvm -o - %s | FileCheck %s
// CHECK: @b = external thread_local global
// CHECK: @d.e = internal thread_local global
// CHECK: @d.f = internal thread_local global
// CHECK: @a = thread_local global
__thread int a;
extern __thread int b;
int c() { return *&b; }
int d() {
__thread static int e;
__thread static union {float a; int b;} f = {.b = 1};
return 0;
}
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
` (3 preceding siblings ...)
2012-02-29 17:44 ` howarth at nitro dot med.uc.edu
@ 2012-03-01 1:28 ` howarth at nitro dot med.uc.edu
2012-03-01 1:29 ` howarth at nitro dot med.uc.edu
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-03-01 1:28 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
--- Comment #4 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-03-01 01:27:54 UTC ---
Created attachment 26795
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26795
test/MC/MachO/tls.s from llvm svn
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
` (4 preceding siblings ...)
2012-03-01 1:28 ` howarth at nitro dot med.uc.edu
@ 2012-03-01 1:29 ` howarth at nitro dot med.uc.edu
2012-03-01 14:15 ` howarth at nitro dot med.uc.edu
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-03-01 1:29 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
--- Comment #5 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-03-01 01:29:13 UTC ---
The test/MC/MachO/tls.s from llvm svn also may have some useful hints on the
expected assembly for tis on darwin11 and later.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
` (5 preceding siblings ...)
2012-03-01 1:29 ` howarth at nitro dot med.uc.edu
@ 2012-03-01 14:15 ` howarth at nitro dot med.uc.edu
2014-06-20 21:15 ` egall at gwmail dot gwu.edu
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-03-01 14:15 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
--- Comment #6 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-03-01 14:15:14 UTC ---
Chris Lattner kindly pointed out that the initial tis support for darwin was
added in r105381.
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20100531/102158.html...
[llvm-commits] [llvm] r105381 - in /llvm/trunk/lib/Target/X86:
AsmPrinter/X86AsmPrinter.cpp AsmPrinter/X86MCInstLower.cpp X86ISelDAGToDAG.cpp
X86ISelLowering.cpp X86ISelLowering.h X86Instr64bit.td X86InstrInfo.h
X86InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project?rev=105381&view=rev
Log:
Add first pass at darwin tls compiler support.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
` (6 preceding siblings ...)
2012-03-01 14:15 ` howarth at nitro dot med.uc.edu
@ 2014-06-20 21:15 ` egall at gwmail dot gwu.edu
2014-06-30 5:44 ` jeremyhu at macports dot org
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: egall at gwmail dot gwu.edu @ 2014-06-20 21:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
Eric Gallager <egall at gwmail dot gwu.edu> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |egall at gwmail dot gwu.edu
--- Comment #7 from Eric Gallager <egall at gwmail dot gwu.edu> ---
I'm kind of confused about whether gcc actually has tls support on darwin or
not; I could have sworn I was able to use gcc 4.8 to compile some code that
used `__thread` on darwin the other day, but according to this bug, that should
have been impossible, right? Did gcc just ignore it silently or something?
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
` (7 preceding siblings ...)
2014-06-20 21:15 ` egall at gwmail dot gwu.edu
@ 2014-06-30 5:44 ` jeremyhu at macports dot org
2014-06-30 8:17 ` iains at gcc dot gnu.org
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: jeremyhu at macports dot org @ 2014-06-30 5:44 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
Jeremy Huddleston Sequoia <jeremyhu at macports dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jeremyhu at macports dot org
--- Comment #8 from Jeremy Huddleston Sequoia <jeremyhu at macports dot org> ---
Seems to work to me in gcc-4.6:
~ $ cat test_thread.c
#include <pthread.h>
#include <stdio.h>
#define NUM_THREADS 5
int __thread value;
void * test_thread(void *arg) {
return &value;
}
int main(void) {
int i;
pthread_t thread[NUM_THREADS];
for(i=0; i < 5; i++) {
pthread_create(&thread[i], NULL, test_thread, NULL);
}
for(i=0; i < 5; i++) {
void *loc;
pthread_join(thread[i], &loc);
printf("%p\n", loc);
}
return 0;
}
$ gcc-mp-4.6 test_thread.c
$ ./a.out
0x7fc7b3d00118
0x7fc7b3e00118
0x7fc7b3f00118
0x7fc7b3d00118
0x7fc7b3c03b28
$ gcc-mp-4.6 --version
gcc-mp-4.6 (MacPorts gcc46 4.6.4_5+universal) 4.6.4
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
` (8 preceding siblings ...)
2014-06-30 5:44 ` jeremyhu at macports dot org
@ 2014-06-30 8:17 ` iains at gcc dot gnu.org
2014-06-30 17:55 ` jeremyhu at macports dot org
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: iains at gcc dot gnu.org @ 2014-06-30 8:17 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
--- Comment #9 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Jeremy Huddleston Sequoia from comment #8)
> Seems to work to me in gcc-4.6:
TLS _is_ supported on Darwin by means of emutls (emulation using pthreads
interfaces).
This enhancement request is for native TLS support, which would be more
efficient.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
` (9 preceding siblings ...)
2014-06-30 8:17 ` iains at gcc dot gnu.org
@ 2014-06-30 17:55 ` jeremyhu at macports dot org
2014-07-30 11:36 ` [Bug target/52268] native " egall at gwmail dot gwu.edu
2021-07-09 23:04 ` egallager at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: jeremyhu at macports dot org @ 2014-06-30 17:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
--- Comment #10 from Jeremy Huddleston Sequoia <jeremyhu at macports dot org> ---
Ah, gotcha. In that case, please retitle as well to indicate such. Prior to
gcc-4.5, even support via emutls was not available on darwin, so some people in
#macports thought that's what this ticket was referring to. Thanks.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] native tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
` (10 preceding siblings ...)
2014-06-30 17:55 ` jeremyhu at macports dot org
@ 2014-07-30 11:36 ` egall at gwmail dot gwu.edu
2021-07-09 23:04 ` egallager at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: egall at gwmail dot gwu.edu @ 2014-07-30 11:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
--- Comment #12 from Eric Gallager <egall at gwmail dot gwu.edu> ---
(In reply to Jeremy Huddleston Sequoia from comment #10)
> Ah, gotcha. In that case, please retitle as well to indicate such. Prior to
> gcc-4.5, even support via emutls was not available on darwin, so some people
> in #macports thought that's what this ticket was referring to. Thanks.
(that was me in https://trac.macports.org/ticket/44062#comment:59 for
reference... anyways, thanks for clearing this up!)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/52268] native tls support should be added for darwin11
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
` (11 preceding siblings ...)
2014-07-30 11:36 ` [Bug target/52268] native " egall at gwmail dot gwu.edu
@ 2021-07-09 23:04 ` egallager at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: egallager at gcc dot gnu.org @ 2021-07-09 23:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268
--- Comment #13 from Eric Gallager <egallager at gcc dot gnu.org> ---
This could potentially arrive with the arm64 darwin port:
https://github.com/iains/gcc-darwin-arm64/issues/1
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2021-07-09 23:04 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-16 4:02 [Bug target/52268] New: tls support should be added for darwin11 howarth at nitro dot med.uc.edu
2012-02-16 6:30 ` [Bug target/52268] " howarth at nitro dot med.uc.edu
2012-02-16 17:20 ` mikestump at comcast dot net
2012-02-16 19:01 ` iains at gcc dot gnu.org
2012-02-29 17:44 ` howarth at nitro dot med.uc.edu
2012-03-01 1:28 ` howarth at nitro dot med.uc.edu
2012-03-01 1:29 ` howarth at nitro dot med.uc.edu
2012-03-01 14:15 ` howarth at nitro dot med.uc.edu
2014-06-20 21:15 ` egall at gwmail dot gwu.edu
2014-06-30 5:44 ` jeremyhu at macports dot org
2014-06-30 8:17 ` iains at gcc dot gnu.org
2014-06-30 17:55 ` jeremyhu at macports dot org
2014-07-30 11:36 ` [Bug target/52268] native " egall at gwmail dot gwu.edu
2021-07-09 23:04 ` egallager at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).