lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 21 Oct 2014 17:10:52 -0700 From: Stephen Boyd <sboyd@...eaurora.org> To: josh@...htriplett.org, Peter Hüwe <PeterHuewe@....de> CC: linux-kernel@...r.kernel.org Subject: Re: .exit.text section in vmlinux ? On 10/21/2014 04:56 PM, Stephen Boyd wrote: > On 10/21/2014 04:35 PM, josh@...htriplett.org wrote: >> --->8--- >> From 1646d051a4a4c18b9a6163fceabcafa20628c728 Mon Sep 17 00:00:00 2001 >> From: Josh Triplett <josh@...htriplett.org> >> Date: Tue, 21 Oct 2014 16:14:19 -0700 >> Subject: [PATCH] linux/init.h: Always omit __exit code and data for in-kernel >> compilation >> >> __exit code and data only exists for module removal; when compiling such >> code in the kernel, omit the __exit functions to save space. For x86 >> defconfig this saves about 9k, and significantly more in the compiled >> binary size. > Does it boot? Usually we can't get rid of the exit section because we > have some table pointing at it somewhere for bug tables, alternatives, > etc. See this comment in arch/x86/kernel/vmlinux.lds.S for example: > > /* > * .exit.text is discard at runtime, not link time, to deal with > * references from .altinstructions and .eh_frame > */ > .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { > EXIT_TEXT > } > > .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { > EXIT_DATA > } > > Furthermore, on ARM we discard the exit text and exit data in the linker script if we're not using the generic bug tables or patching spinlocks for uniprocessor hardware (see arch/arm/kernel/vmlinux.lds.S). Maybe something similar can be done for x86? #if (defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)) || \ defined(CONFIG_GENERIC_BUG) #define ARM_EXIT_KEEP(x) x #define ARM_EXIT_DISCARD(x) #else #define ARM_EXIT_KEEP(x) #define ARM_EXIT_DISCARD(x) x #endif -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists