http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51643
--- Comment #4 from Alexander Osipenko <sipych at gmail dot com> 2011-12-20 21:58:39 UTC --- >From ARM EABI specification (doc: ARM IHI 0044A) "On platforms that do not support dynamic pre-emption of symbols an unresolved weak reference to a symbol relocated by R_ARM_CALL shall be treated as a jump to the next instruction (the call becomes a no-op). The behaviour of R_ARM_JUMP24 in these conditions is unspecified." At least, tail call + epilogue shall not be replaced by (undefined) JUMP.