public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: libc-alpha@sourceware.org
Subject: [hurd,commited]: Fix static initialization with -fstack-protector-strong
Date: Sun, 27 Aug 2017 20:32:00 -0000	[thread overview]
Message-ID: <20170827203205.7rymov2jglbcibbz@var.youpi.perso.aquilenet.fr> (raw)

    When linked statically, TLS initialization is not achieved before
    mach_init and alike, so ssp accesses to tcbhead's stack_guard would
    crash.  We can just avoid using ssp in the few functions needed before
    TLS is set up.
    
            * mach/Makefile (CFLAGS-mach_init.o, CFLAGS-RPC_vm_statistics.o,
            CFLAGS-RPC_vm_map.o, CFLAGS-RPC_vm_protect.o,
            CFLAGS-RPC_i386_set_gdt.o, CFLAGS-RPC_i386_set_ldt.o,
            CFLAGS-RPC_task_get_special_port.o): Add $(no-stack-protector).
            * hurd/Makefile (CFLAGS-hurdstartup.o,
            CFLAGS-RPC_exec_startup_get_info.o): Add $(no-stack-protector).

diff --git a/hurd/Makefile b/hurd/Makefile
index 9205822b24..b44b9b80c6 100644
--- a/hurd/Makefile
+++ b/hurd/Makefile
@@ -81,6 +81,10 @@ $(inlines:%=$(objpfx)%.c): $(objpfx)%-inlines.c: %.h
 	 echo '#include "$<"') > $@-new
 	mv -f $@-new $@
 generated += $(inlines:=.c)
+
+# Avoid ssp before TLS is initialized.
+CFLAGS-hurdstartup.o = $(no-stack-protector)
+CFLAGS-RPC_exec_startup_get_info.o = $(no-stack-protector)
 \f
 include ../mach/Machrules
 include ../Rules
diff --git a/mach/Makefile b/mach/Makefile
index 127cad00ca..b4f18b1525 100644
--- a/mach/Makefile
+++ b/mach/Makefile
@@ -53,6 +53,15 @@ server-interfaces := mach/exc
 
 # Clear any environment	value.
 generated =
+
+# Avoid ssp before TLS is initialized.
+CFLAGS-mach_init.o = $(no-stack-protector)
+CFLAGS-RPC_vm_statistics.o = $(no-stack-protector)
+CFLAGS-RPC_vm_map.o = $(no-stack-protector)
+CFLAGS-RPC_vm_protect.o = $(no-stack-protector)
+CFLAGS-RPC_i386_set_gdt.o = $(no-stack-protector)
+CFLAGS-RPC_i386_set_ldt.o = $(no-stack-protector)
+CFLAGS-RPC_task_get_special_port.o = $(no-stack-protector)
 \f
 # Translate GNU names for CPUs into the names used in Mach header files.
 mach-machine = $(patsubst powerpc,ppc,$(base-machine))

             reply	other threads:[~2017-08-27 20:32 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-27 20:32 Samuel Thibault [this message]
2017-09-15 16:38 ` Nick Alcock
2017-09-15 21:22   ` Samuel Thibault

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170827203205.7rymov2jglbcibbz@var.youpi.perso.aquilenet.fr \
    --to=samuel.thibault@ens-lyon.org \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).