kallsyms: add support for relative offsets in kallsyms address table
[deliverable/linux.git] / init / Kconfig
index b17824a875fa67c212996b2fca4565e03daba7ac..fd664b3ab99ef79432643ab3e954943e759f81ca 100644 (file)
@@ -1424,6 +1424,24 @@ config KALLSYMS_ABSOLUTE_PERCPU
        bool
        default X86_64 && SMP
 
+config KALLSYMS_BASE_RELATIVE
+       bool
+       depends on KALLSYMS
+       default !IA64 && !(TILE && 64BIT)
+       help
+         Instead of emitting them as absolute values in the native word size,
+         emit the symbol references in the kallsyms table as 32-bit entries,
+         each containing a relative value in the range [base, base + U32_MAX]
+         or, when KALLSYMS_ABSOLUTE_PERCPU is in effect, each containing either
+         an absolute value in the range [0, S32_MAX] or a relative value in the
+         range [base, base + S32_MAX], where base is the lowest relative symbol
+         address encountered in the image.
+
+         On 64-bit builds, this reduces the size of the address table by 50%,
+         but more importantly, it results in entries whose values are build
+         time constants, and no relocation pass is required at runtime to fix
+         up the entries based on the runtime load address of the kernel.
+
 config PRINTK
        default y
        bool "Enable support for printk" if EXPERT
This page took 0.028005 seconds and 5 git commands to generate.