<paul.gortmaker@xxxxxxxxxxxxx>,Chris Metcalf <cmetcalf@xxxxxxxxxxxx>,"Paul E . McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>,Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>,Christopher Li <sparse@xxxxxxxxxxx>,Dou Liyang <douly.fnst@xxxxxxxxxxxxxx>,Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>,Daniel Borkmann <daniel@xxxxxxxxxxxxx>,Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx>,Peter Foley <pefoley2@xxxxxxxxxxx>,Steven Rostedt <rostedt@xxxxxxxxxxx>,Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>,Catalin Marinas <catalin.marinas@xxxxxxx>,Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>,Michal Hocko <mhocko@xxxxxxxx>,Rob Landley <rob@xxxxxxxxxxx>,Jiri Kosina <jkosina@xxxxxxx>,"H . J . Lu" <hjl.tools@xxxxxxxxx>,Paul Bolle <pebolle@xxxxxxxxxx>,Baoquan He <bhe@xxxxxxxxxx>,Daniel Micay <danielmicay@xxxxxxxxx>,the arch/x86 maintainers <x86@xxxxxxxxxx>,"linux-crypto@xxxxxxxxxxxxxxx" <linux-crypto@xxxxxxxxxxxxxxx>,Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>,xen-devel@xxxxxxxxxxxxxxxxxxxx,kvm list <kvm@xxxxxxxxxxxxxxx>,linux-pm <linux-pm@xxxxxxxxxxxxxxx>,linux-arch <linux-arch@xxxxxxxxxxxxxxx>,Linux-Sparse <linux-sparse@xxxxxxxxxxxxxxx>,Kernel Hardening <kernel-hardening@xxxxxxxxxxxxxxxxxx> From: hpa@xxxxxxxxx Message-ID: <83BA7600-BC8D-4C91-812C-DD2A0BF4474B@xxxxxxxxx> On July 19, 2017 3:58:07 PM PDT, Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote: >On 19 July 2017 at 23:27, H. Peter Anvin <hpa@xxxxxxxxx> wrote: >> On 07/19/17 08:40, Thomas Garnier wrote: >>>> >>>> This doesn't look right. It's accessing a per-cpu variable. The >>>> per-cpu section is an absolute, zero-based section and not subject >to >>>> relocation. >>> >>> PIE does not respect the zero-based section, it tries to have >>> everything relative. Patch 16/22 also adapt per-cpu to work with PIE >>> (while keeping the zero absolute design by default). >>> >> >> This is silly. The right thing is for PIE is to be explicitly >absolute, >> without (%rip). The use of (%rip) memory references for percpu is >just >> an optimization. >> > >Sadly, there is an issue in binutils that may prevent us from doing >this as cleanly as we would want. > >For historical reasons, bfd.ld emits special symbols like >__GLOBAL_OFFSET_TABLE__ as absolute symbols with a section index of >SHN_ABS, even though it is quite obvious that they are relative like >any other symbol that points into the image. Unfortunately, this means >that binutils needs to emit R_X86_64_RELATIVE relocations even for >SHN_ABS symbols, which means we lose the ability to use both absolute >and relocatable symbols in the same PIE image (unless the reloc tool >can filter them out) > >More info here: >https://sourceware.org/bugzilla/show_bug.cgi?id=19818 The reloc tool already has the ability to filter symbols. -- Sent from my Android device with K-9 Mail. Please excuse my brevity.