Navigation: Linux Kernel Driver DataBase - web LKDDB: Main index - T index

CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11: Work around buggy Thumb-2 short branch relocations in gas

General informations

The Linux kernel configuration item CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11:

Help text

Various binutils versions can resolve Thumb-2 branches to locally-defined, preemptible global symbols as short-range "b.n" branch instructions.

This is a problem, because there's no guarantee the final destination of the symbol, or any candidate locations for a trampoline, are within range of the branch. For this reason, the kernel does not support fixing up the R_ARM_THM_JUMP11 (102) relocation in modules at all, and it makes little sense to add support.

The symptom is that the kernel fails with an "unsupported relocation" error when loading some modules.

Until fixed tools are available, passing -fno-optimize-sibling-calls to gcc should prevent gcc generating code which hits this problem, at the cost of a bit of extra runtime stack usage in some cases.

The problem is described in more detail at: https://bugs.launchpad.net/binutils-linaro/+bug/725126

Only Thumb-2 kernels are affected.

Unless you are sure your tools don't have this problem, say Y.

Hardware

LKDDb

Raw data from LKDDb:

Sources

This page is automaticly generated with free (libre, open) software lkddb(see lkddb-sources).

The data is retrived from:

Automatic links from Google (and ads)

Custom Search

Popular queries:

Navigation: Linux Kernel Driver DataBase - web LKDDB: main index - T index

Automatically generated (in year 2024). See also LKDDb sources on GitLab