[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838 --- Comment #13 from Eric Gallager --- (In reply to Thomas Schwinge from comment #12) > See also PR78875. That's been closed since you commented.
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838 --- Comment #12 from Thomas Schwinge --- See also PR78875.
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838 Eric Gallager changed: What|Removed |Added CC||egall at gwmail dot gwu.edu --- Comment #11 from Eric Gallager --- If changing the code generation or adding a new flag to control this is too difficult, how about just adding this to the list of things that "-Wstack-protector" warns about in the meantime?
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
--- Comment #10 from tschwinge at gnu dot org 2006-12-15 19:30 --- Roland McGrath proposed the following: ``I think it really ought to be controlled by a -mno-stack-protector-tls or suchlike, for complete flexibility. Obviously it should default to disabled for -ffreestanding.'' -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
--- Comment #9 from samuel dot thibault at ens-lyon dot org 2006-11-15 11:01 --- About not using -fstack-protector, the problem is that it is the default on ubuntu for instance. That would mean we have to explicitely use -fno-stack-protector, but only for recent versions of gcc, so we'll have to detect that, etc... Not counting all such new options that may arise which we'd have to disable... Please answer this, at least by just yes/no: you're saying that -ffreestanding doesn't mean "an OS kernel" (as manual says), but "the kernel of the target", so that people working on other kernels will have to first build a cross-compiler? (the bug is a documentation bug then) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
--- Comment #8 from jakub at gcc dot gnu dot org 2006-11-15 10:41 --- If you use __thread in -ffreestanding it is the same, you don't get emulated TLS either. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
--- Comment #7 from jakub at gcc dot gnu dot org 2006-11-15 10:37 --- Using %fs:0x28/%gs:0x28 on x86_64-linux resp. %gs:0x14 on i?86-linux is part of the ABI. -ffreestanding is not supposed to change the ABI, so if you don't want to use this ABI, just use a different target (x86_64-elf etc., or don't use -fstack-protector (nobody forces you to use that). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
--- Comment #6 from samuel dot thibault at ens-lyon dot org 2006-11-15 10:30 --- So you are saying that gcc now imposes (whatever the kernel) kernel-land and user-land to use the same TLS scheme, and now requires people to build a cross-compiler before building a kernel from another kernel's userland? I thought -ffreestanding was precisely meant to escape such considerations... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
--- Comment #5 from jakub at gcc dot gnu dot org 2006-11-15 10:23 --- Linux kernel has this support planned: http://lkml.org/lkml/2006/08/16/216 http://lkml.org/lkml/2006/08/16/217 http://lkml.org/lkml/2006/08/16/218 http://lkml.org/lkml/2006/08/16/220 http://lkml.org/lkml/2006/08/16/221 http://lkml.org/lkml/2006/08/16/222 Linux -ffreestanding should stay as is. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
--- Comment #4 from tschwinge at gnu dot org 2006-11-15 10:11 --- Cced to Jakub Jelinek, who originally implemented this functionality. Could you please comment on this issue? -- tschwinge at gnu dot org changed: What|Removed |Added CC||jakub at redhat dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
--- Comment #3 from samuel dot thibault at ens-lyon dot org 2006-11-15 09:33 --- Mmm, if I have to use another target for avoiding my default target's specific stuff, what is the use of -ffreestanding? Does that mean that we will have to add a linux-kernel target (as opposed to linux-user target) and build a cross-compiler before building a linux kernel? (replace "linux" with whatever kernel you want). And x86_64 Linux just poses the same problem: it emits %fs:0x28 instead of %gs:0x14, but it's just the same issue. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838
[Bug target/29838] -fstack-protector shouldn't use TLS in freestanding mode
--- Comment #2 from pinskia at gcc dot gnu dot org 2006-11-15 02:50 --- Seems to me, you should not be using a target that defines TARGET_THREAD_SSP_OFFSET for -ffreestanding mode. Also IIRC the x86_64 Linux has a different TLS base register which fixes this issue there. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838