kallsyms: add support for relative offsets in kallsyms address table
[deliverable/linux.git] / init / Kconfig
index 22320804fbafdc57b7228b68392199657a7c2f49..fd664b3ab99ef79432643ab3e954943e759f81ca 100644 (file)
@@ -1420,6 +1420,28 @@ config KALLSYMS_ALL
 
           Say N unless you really need all symbols.
 
+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.02339 seconds and 5 git commands to generate.