linux-stable/arch/arc/kernel
Yuriy Kolerov 6de6066c0d ARC: change some branchs to jumps to resolve linkage errors
When kernel's binary becomes large enough (32M and more) errors
may occur during the final linkage stage. It happens because
the build system uses short relocations for ARC  by default.
This problem may be easily resolved by passing -mlong-calls
option to GCC to use long absolute jumps (j) instead of short
relative branchs (b).

But there are fragments of pure assembler code exist which use
branchs in inappropriate places and cause a linkage error because
of relocations overflow.

First of these fragments is .fixup insertion in futex.h and
unaligned.c. It inserts a code in the separate section (.fixup)
with branch instruction. It leads to the linkage error when
kernel becomes large.

Second of these fragments is calling scheduler's functions
(common kernel code) from entry.S of ARC's code. When kernel's
binary becomes large it may lead to the linkage error because
scheduler may occur far enough from ARC's code in the final
binary.

Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2015-08-20 18:53:15 +05:30
..
.gitignore ARC: Add some .gitignore entries 2013-08-26 09:40:24 +05:30
arc_hostlink.c ARC: Hostlink Pseudo-Driver for Metaware Debugger 2013-02-15 23:16:10 +05:30
arcksyms.c
asm-offsets.c ARCv2: [vdk] dts files and defconfig for HS38 VDK 2015-06-25 06:00:21 +05:30
clk.c ARC: fix typo with clock speed 2013-05-07 13:43:54 +05:30
ctx_sw.c ARC: [SMP] Fix build failures for large NR_CPUS 2013-11-06 10:41:46 +05:30
ctx_sw_asm.S ARC: Fix build breakage for !CONFIG_ARC_DW2_UNWIND 2014-06-26 10:14:02 +05:30
devtree.c ARCv2: [axs103] Support ARC SDP FPGA platform for HS38x cores 2015-06-25 06:00:20 +05:30
disasm.c ARC: rename kconfig option for unaligned emulation 2014-10-13 14:46:15 +05:30
entry-arcv2.S ARCv2: STAR 9000793984: Handle return from intr to Delay Slot 2015-06-22 14:06:55 +05:30
entry-compact.S ARC: entry.S: use single EXCEPTION_PROLOGUE 2015-06-19 18:09:39 +05:30
entry.S ARC: change some branchs to jumps to resolve linkage errors 2015-08-20 18:53:15 +05:30
fpu.c ARC: Process-creation/scheduling/idle-loop 2013-02-11 20:00:38 +05:30
head.S ARCv2: Support for ARCv2 ISA and HS38x cores 2015-06-22 14:06:55 +05:30
intc-arcv2.c arc:irqchip: prepare for drivers/irqchip/irqchip.h removal 2015-07-09 17:36:32 +05:30
intc-compact.c arc:irqchip: prepare for drivers/irqchip/irqchip.h removal 2015-07-09 17:36:32 +05:30
irq.c ARC: intc: split into ARCompact ISA specific, common bits 2015-06-19 18:09:40 +05:30
kgdb.c ARC: kgdb: generic kgdb_arch_pc() suffices 2014-10-22 16:14:04 -06:00
kprobes.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-11-15 16:47:22 -08:00
Makefile ARCv2: SMP: Support ARConnect (MCIP) for Inter-Core-Interrupts et al 2015-06-22 14:06:56 +05:30
mcip.c arc:irqchip: prepare for drivers/irqchip/irqchip.h removal 2015-07-09 17:36:32 +05:30
module.c ARC: Fix coding style issues 2013-04-09 12:21:14 +05:30
perf_event.c ARC: perf: Remove unnecessary local variable 2015-06-19 18:09:28 +05:30
process.c ARC: Fix build failures for ARCompact in linux-next after ARCv2 support 2015-06-28 20:30:13 +05:30
ptrace.c ARCv2: Support for ARCv2 ISA and HS38x cores 2015-06-22 14:06:55 +05:30
reset.c arc: export symbol for pm_power_off in reset.c 2013-11-06 10:41:44 +05:30
setup.c ARCv2: spinlock/rwlock/atomics: Delayed retry of failed SCOND with exponential backoff 2015-08-04 09:26:34 +05:30
signal.c ARCv2: Support for ARCv2 ISA and HS38x cores 2015-06-22 14:06:55 +05:30
smp.c ARCv2: SMP: ARConnect debug/robustness 2015-06-22 14:06:57 +05:30
stacktrace.c ARC: stack unwinder to bail if PC is not kernel mode 2015-06-19 18:09:29 +05:30
sys.c ARC: ABIv3: fork/vfork wrappers not needed in "no-legacy-syscall" ABI 2013-03-11 19:01:10 +05:30
time.c ARC/time: Migrate to new 'set-state' interface 2015-07-20 13:30:31 +03:00
traps.c ARC: rename unhandled exception handler 2015-04-13 15:14:57 +05:30
troubleshoot.c ARC: fix unused var wanring 2015-07-06 11:09:01 +05:30
unaligned.c ARC: change some branchs to jumps to resolve linkage errors 2015-08-20 18:53:15 +05:30
unwind.c treewide: Fix typo in printk messages 2015-03-06 23:05:39 +01:00
vmlinux.lds.S ARC: optimize kernel bss clearing in early boot code 2014-06-26 10:14:05 +05:30