{"push_id":3056336353,"size":2,"distinct_size":2,"ref":"refs/heads/master","head":"4e5e97f19c125a7e2bafa839c75acc7ba310aff7","before":"528c8109ac68a4ea090cdf9cb05603e5935f2316","commits":[{"sha":"e4065737fa14418c97036dc859904abfa857cc6f","author":{"name":"H.J. Lu","email":"e6b730070cb8ff71eb70dcaf29e26324d883b33b@gmail.com"},"message":"x86/build: Build compressed x86 kernels as PIE\n\ncommit 6d92bc9d483aa1751755a66fee8fb39dffb088c0 upstream.\n\nThe 32-bit x86 assembler in binutils 2.26 will generate R_386_GOT32X\nrelocation to get the symbol address in PIC.  When the compressed x86\nkernel isn't built as PIC, the linker optimizes R_386_GOT32X relocations\nto their fixed symbol addresses.  However, when the compressed x86\nkernel is loaded at a different address, it leads to the following\nload failure:\n\n  Failed to allocate space for phdrs\n\nduring the decompression stage.\n\nIf the compressed x86 kernel is relocatable at run-time, it should be\ncompiled with -fPIE, instead of -fPIC, if possible and should be built as\nPosition Independent Executable (PIE) so that linker won't optimize\nR_386_GOT32X relocation to its fixed symbol address.\n\nOlder linkers generate R_386_32 relocations against locally defined\nsymbols, _bss, _ebss, _got and _egot, in PIE.  It isn't wrong, just less\noptimal than R_386_RELATIVE.  But the x86 kernel fails to properly handle\nR_386_32 relocations when relocating the kernel.  To generate\nR_386_RELATIVE relocations, we mark _bss, _ebss, _got and _egot as\nhidden in both 32-bit and 64-bit x86 kernels.\n\nTo build a 64-bit compressed x86 kernel as PIE, we need to disable the\nrelocation overflow check to avoid relocation overflow errors. We do\nthis with a new linker command-line option, -z noreloc-overflow, which\ngot added recently:\n\n commit 4c10bbaa0912742322f10d9d5bb630ba4e15dfa7\n Author: H.J. Lu <hjl.tools@gmail.com>\n Date:   Tue Mar 15 11:07:06 2016 -0700\n\n    Add -z noreloc-overflow option to x86-64 ld\n\n    Add -z noreloc-overflow command-line option to the x86-64 ELF linker to\n    disable relocation overflow check.  This can be used to avoid relocation\n    overflow check if there will be no dynamic relocation overflow at\n    run-time.\n\nThe 64-bit compressed x86 kernel is built as PIE only if the linker supports\n-z noreloc-overflow.  So far 64-bit relocatable compressed x86 kernel\nboots fine even when it is built as a normal executable.\n\nSigned-off-by: H.J. Lu <hjl.tools@gmail.com>\nCc: Andy Lutomirski <luto@amacapital.net>\nCc: Borislav Petkov <bp@alien8.de>\nCc: Brian Gerst <brgerst@gmail.com>\nCc: Denys Vlasenko <dvlasenk@redhat.com>\nCc: H. Peter Anvin <hpa@zytor.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: linux-kernel@vger.kernel.org\n[ Edited the changelog and comments. ]\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nCc: Paul Bolle <pebolle@tiscali.nl>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/baselsayeh/p9-kernel-oreo-updated/commits/e4065737fa14418c97036dc859904abfa857cc6f"},{"sha":"4e5e97f19c125a7e2bafa839c75acc7ba310aff7","author":{"name":"Greg Kroah-Hartman","email":"4645f7897fd33786a2ee1264d590b3c400559d85@linuxfoundation.org"},"message":"Linux 4.4.26","distinct":true,"url":"https://api.github.com/repos/baselsayeh/p9-kernel-oreo-updated/commits/4e5e97f19c125a7e2bafa839c75acc7ba310aff7"}]}
{"actor":{"display_login":"baselsayeh"}}