https://sourceware.org/bugzilla/show_bug.cgi?id=19410
Bug ID: 19410 Summary: gold doesn't transform blx to bl in ARM code Product: binutils Version: 2.27 (HEAD) Status: NEW Severity: normal Priority: P2 Component: gold Assignee: ccoutant at gmail dot com Reporter: loic.yhuel at gmail dot com CC: ian at airs dot com Target Milestone: --- ld.bfd (both in ARM and Thumb code), and ld.gold (in Thumb code) are able to choose between bl and blx depending on the target address. But in ARM code, ld.gold is only able to transform bl into blx, and not the opposite. echo "void fn(void) {}" | arm-linux-gnueabihf-gcc -marm -c -o called.o -xc - echo "\t.arm\ncaller:\n\tblx fn" | arm-linux-gnueabihf-as -o caller.o arm-linux-ld.gold -o gold.out caller.o called.o arm-linux-ld.bfd -o bfd.out caller.o called.o arm-linux-gnueabihf-objdump -d gold.out ... 00008094 <caller>: 8094: faffffff blx 8098 <fn> ... arm-linux-gnueabihf-objdump -d bfd.out ... 00010074 <caller>: 10074: ebffffff bl 10078 <fn> ... It makes WebKit crash when compiling in ARM mode and linking with gold, due to https://github.com/WebKit/webkit/blob/master/Source/JavaScriptCore/offlineasm/arm.rb#L570. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils