From mboxrd@z Thu Jan 1 00:00:00 1970 From: arnd@arndb.de (Arnd Bergmann) Date: Fri, 12 Feb 2016 10:45:55 +0100 Subject: [PATCH v2] ARM: mm: mark section-aligned portion of rodata NX In-Reply-To: <20160211180032.GY10826@n2100.arm.linux.org.uk> References: <20151207223534.GA13722@www.outflux.net> <20160211180032.GY10826@n2100.arm.linux.org.uk> Message-ID: <4300378.sBT9DdB2Gc@wuerfel> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thursday 11 February 2016 18:00:32 Russell King - ARM Linux wrote: > On Fri, Jan 22, 2016 at 01:19:03PM -0800, Kees Cook wrote: > > On Tue, Dec 8, 2015 at 10:38 AM, Kees Cook wrote: > > > On Mon, Dec 7, 2015 at 11:47 PM, Ard Biesheuvel > > > wrote: > > >> On 7 December 2015 at 23:35, Kees Cook wrote: > > >>> /* > > >>> + * Without CONFIG_DEBUG_ALIGN_RODATA, __start_rodata_section_aligned will > > >>> + * be the first section-aligned location after __start_rodata. Otherwise, > > >>> + * it will be equal to __start_rodata. > > >>> + */ > > >>> +__start_rodata_section_aligned = ALIGN(__start_rodata, 1 << SECTION_SHIFT); > ... > > I'm afraid this causes build errors on two configurations: > > ./arch/arm/kernel/vmlinux.lds:701: undefined symbol `SECTION_SHIFT' referenced in expression > > which I think is down to the new __start_rodata_section_aligned line. > > Olof's builder errored out with this for both allnoconfig and > lpc18xx_defconfig builds. Both probably due to CONFIG_MMU being > unset, and hence no definition for SECTION_SHIFT. > > I think you need to make this conditional on CONFIG_MMU. I've hit another problem with this patch, when using XIP_KERNEL, I now see arch/arm/mm/built-in.o:(.data+0x4bc): undefined reference to `__start_rodata_section_aligned' in linux-next, apparently because of the combination with "ARM: 8513/1: xip: Move XIP linking to a separate file". Arnd