Date:2013-01-31 22:44:28 (10 years 3 months ago)
Author:Helge Deller
Message:parisc: add CONFIG_MLONGCALLS option to enable linkage of huge vmlinux executables

When building a 64bit kernel which includes all necessary drivers and
filesystems the vmlinux kernel often gets so huge, that the linker won't
be able to resolve the branch stubs. This patch overcomes this limit by
providing an option to compile the kernel with the -mlong-calls compiler

Signed-off-by: Helge Deller <>
Files: arch/parisc/Kconfig (1 diff)
arch/parisc/Makefile (1 diff)

Change Details

161161    def_bool y
162162    depends on PA8X00 || PA7200
164config MLONGCALLS
165    bool "Enable the -mlong-calls compiler option for big kernels"
166    def_bool y if (!MODULES)
167    depends on PA8X00
168    help
169      If you configure the kernel to include many drivers built-in instead
170      as modules, the kernel executable may become too big, so that the
171      linker will not be able to resolve some long branches and fails to link
172      your vmlinux kernel. In that case enabling this option will help you
173      to overcome this limit by using the -mlong-calls compiler option.
175      Usually you want to say N here, unless you e.g. want to build
176      a kernel which includes all necessary drivers built-in and which can
177      be used for TFTP booting without the need to have an initrd ramdisk.
179      Enabling this option will probably slow down your kernel.
164181config 64BIT
165182    bool "64-bit kernel"
166183    depends on PA8X00
6464  cflags-y += -ffunction-sections
67# Use long jumps instead of long branches (needed if your linker fails to
68# link a too big vmlinux executable)
69cflags-$(CONFIG_MLONGCALLS) += -mlong-calls
6771# select which processor to optimise for
6872cflags-$(CONFIG_PA7100) += -march=1.1 -mschedule=7100
6973cflags-$(CONFIG_PA7200) += -march=1.1 -mschedule=7200

Archive Download the corresponding diff file