https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69082
Bug ID: 69082 Summary: Final link fails on ARM using lto Product: gcc Version: 4.9.3 Status: UNCONFIRMED Severity: critical Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: tulipawn at gmail dot com Target Milestone: --- Created attachment 37189 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37189&action=edit The offending assembly file Only when compiling with -flto the final link fails (all goes fine without lto): ===> LD [ufo] /tmp/ccUuOyr9.s: Assembler messages: /tmp/ccUuOyr9.s:11199: Error: offset out of range /tmp/ccUuOyr9.s:11208: Error: offset out of range /tmp/ccUuOyr9.s:11487: Error: offset out of range /tmp/ccUuOyr9.s:11521: Error: offset out of range /tmp/ccUuOyr9.s:11788: Error: offset out of range /tmp/ccUuOyr9.s:11797: Error: offset out of range lto-wrapper: /usr/bin/g++-4.9.real returned 1 exit status /usr/bin/ld.gold.real: fatal error: lto-wrapper failed collect2: error: ld returned 1 exit status Flags that were given explicitly: -O3 -mcpu=cortex-a5 -mfpu=neon -mfloat-abi=hard -fsigned-char -ffast-math -ftree-vectorize -Ofast -save-temps -v -flto -ffat-lto-objects The full command line for the binaries being compiled: ===> LD [ufo2map] COLLECT_GCC_OPTIONS='-D' 'HAVE_CONFIG_H' '-g' '-Winline' '-Wcast-qual' '-Wcast-align' '-Wmissing-declarations' '-Wpointer-arith' '-Wno-long-long' '-Wpedantic' '-Wall' '-Wextra' '-Wno-sign-compare' '-Wno-unused-parameter' '-Wreturn-type' '-Wwrite-strings' '-Wno-variadic-macros' '-Wno-format-zero-length' '-D' 'NDEBUG' '-D' 'SHARED_EXT="so"' '-D' '_GNU_SOURCE' '-D' '_BSD_SOURCE' '-D' '_XOPEN_SOURCE' '-O3' '-mcpu=cortex-a5' '-mfpu=neon' '-mfloat-abi=hard' '-fsigned-char' '-ftree-vectorize' '-Ofast' '-save-temps' '-v' '-flto' '-ffat-lto-objects' '-D' 'PANDORA' '-D' 'ARM' '-D' 'NEON' '-D' 'HAVE_GLES' '-ffast-math' '-funroll-loops' '-D' '_FORTIFY_SOURCE=2' '-D' 'NDEBUG' '-Wnon-virtual-dtor' '-D' 'COMPILE_MAP' '-D' '_REENTRANT' '-I' '/usr/include/SDL2' '-c' '-o' 'release-openpandora-armv7l/ufoslicer/ports/unix/unix_main.cpp.o' '-MP' '-MD' '-MT' 'release-openpandora-armv7l/ufoslicer/ports/unix/unix_main.cpp.o' '-shared-libgcc' '-mthumb' '-mtls-dialect=gnu' as -v -I /usr/include/SDL2 -mcpu=cortex-a5 -mfloat-abi=hard -mfpu=neon -meabi=5 -o release-openpandora-armv7l/ufoslicer/ports/unix/unix_main.cpp.o unix_main.s GNU assembler version 2.24 (arm-linux-gnueabihf) using BFD version (GNU Binutils for Ubuntu) 2.24 COMPILER_PATH=/usr/lib/gcc/arm-linux-gnueabihf/4.9/:/usr/lib/gcc/arm-linux-gnueabihf/4.9/:/usr/lib/gcc/arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/4.9/:/usr/lib/gcc/arm-linux-gnueabihf/ LIBRARY_PATH=/usr/lib/gcc/arm-linux-gnueabihf/4.9/:/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../lib/:/lib/arm-linux-gnueabihf/:/lib/../lib/:/usr/lib/arm-linux-gnueabihf/:/usr/lib/../lib/:/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-D' 'HAVE_CONFIG_H' '-g' '-Winline' '-Wcast-qual' '-Wcast-align' '-Wmissing-declarations' '-Wpointer-arith' '-Wno-long-long' '-Wpedantic' '-Wall' '-Wextra' '-Wno-sign-compare' '-Wno-unused-parameter' '-Wreturn-type' '-Wwrite-strings' '-Wno-variadic-macros' '-Wno-format-zero-length' '-D' 'NDEBUG' '-D' 'SHARED_EXT="so"' '-D' '_GNU_SOURCE' '-D' '_BSD_SOURCE' '-D' '_XOPEN_SOURCE' '-O3' '-mcpu=cortex-a5' '-mfpu=neon' '-mfloat-abi=hard' '-fsigned-char' '-ftree-vectorize' '-Ofast' '-save-temps' '-v' '-flto' '-ffat-lto-objects' '-D' 'PANDORA' '-D' 'ARM' '-D' 'NEON' '-D' 'HAVE_GLES' '-ffast-math' '-funroll-loops' '-D' '_FORTIFY_SOURCE=2' '-D' 'NDEBUG' '-Wnon-virtual-dtor' '-D' 'COMPILE_MAP' '-D' '_REENTRANT' '-I' '/usr/include/SDL2' '-c' '-o' 'release-openpandora-armv7l/ufoslicer/ports/unix/unix_main.cpp.o' '-MP' '-MD' '-MT' 'release-openpandora-armv7l/ufoslicer/ports/unix/unix_main.cpp.o' '-shared-libgcc' '-mthumb' '-mtls-dialect=gnu' The final link commands: /usr/lib/gcc/arm-linux-gnueabihf/4.9/collect2 -plugin /usr/lib/gcc/arm-linux-gnueabihf/4.9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/arm-linux-gnueabihf/4.9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccx67lBs.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=gnu --as-needed -m armelf_linux_eabi -z relro -o ufo /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../arm-linux-gnueabihf/crt1.o /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../arm-linux-gnueabihf/crti.o /usr/lib/gcc/arm-linux-gnueabihf/4.9/crtbegin.o -L/usr/lib/gcc/arm-linux-gnueabihf/4.9 -L/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../arm-linux-gnueabihf -L/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../lib -L/lib/arm-linux-gnueabihf -L/lib/../lib -L/usr/lib/arm-linux-gnueabihf -L/usr/lib/../lib -L/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../.. release-openpandora-armv7l/ufo/client/cl_console.cpp.o release-openpandora-armv7l/ufo/client/cl_http.cpp.o release-openpandora-armv7l/ufo/client/cl_inventory_callbacks.cpp.o release-openpandora-armv7l/ufo/client/cl_inventory.cpp.o release-openpandora-armv7l/ufo/client/cl_irc.cpp.o release-openpandora-armv7l/ufo/client/cl_language.cpp.o release-openpandora-armv7l/ufo/client/cl_lua.cpp.o release-openpandora-armv7l/ufo/client/cl_main.cpp.o release-openpandora-armv7l/ufo/client/cl_menu.cpp.o release-openpandora-armv7l/ufo/client/cl_screen.cpp.o release-openpandora-armv7l/ufo/client/cl_team.cpp.o release-openpandora-armv7l/ufo/client/cl_tip.cpp.o release-openpandora-armv7l/ufo/client/cl_tutorials.cpp.o release-openpandora-armv7l/ufo/client/cl_video.cpp.o release-openpandora-armv7l/ufo/client/input/cl_input.cpp.o release-openpandora-armv7l/ufo/client/input/cl_joystick.cpp.o release-openpandora-armv7l/ufo/client/input/cl_keys.cpp.o release-openpandora-armv7l/ufo/client/cinematic/cl_cinematic.cpp.o release-openpandora-armv7l/ufo/client/cinematic/cl_cinematic_ogm.cpp.o release-openpandora-armv7l/ufo/client/cinematic/cl_cinematic_roq.cpp.o release-openpandora-armv7l/ufo/client/cinematic/cl_sequence.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_actor.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_battlescape.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_camera.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_hud_callbacks.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_hud.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_localentity.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_parse.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_particle.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_radar.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_spawn.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_ugv.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_view.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/e_main.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/e_parse.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/e_server.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actoradd.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorappear.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorclientaction.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actordie.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorendshot.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actormove.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorreactionfireabortshot.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorreactionfireaddtarget.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/ac /usr/bin/ld.gold.real -plugin /usr/lib/gcc/arm-linux-gnueabihf/4.9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/arm-linux-gnueabihf/4.9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccx67lBs.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=gnu --as-needed -m armelf_linux_eabi -z relro -o ufo /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../arm-linux-gnueabihf/crt1.o /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../arm-linux-gnueabihf/crti.o /usr/lib/gcc/arm-linux-gnueabihf/4.9/crtbegin.o -L/usr/lib/gcc/arm-linux-gnueabihf/4.9 -L/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../arm-linux-gnueabihf -L/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../lib -L/lib/arm-linux-gnueabihf -L/lib/../lib -L/usr/lib/arm-linux-gnueabihf -L/usr/lib/../lib -L/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../.. release-openpandora-armv7l/ufo/client/cl_console.cpp.o release-openpandora-armv7l/ufo/client/cl_http.cpp.o release-openpandora-armv7l/ufo/client/cl_inventory_callbacks.cpp.o release-openpandora-armv7l/ufo/client/cl_inventory.cpp.o release-openpandora-armv7l/ufo/client/cl_irc.cpp.o release-openpandora-armv7l/ufo/client/cl_language.cpp.o release-openpandora-armv7l/ufo/client/cl_lua.cpp.o release-openpandora-armv7l/ufo/client/cl_main.cpp.o release-openpandora-armv7l/ufo/client/cl_menu.cpp.o release-openpandora-armv7l/ufo/client/cl_screen.cpp.o release-openpandora-armv7l/ufo/client/cl_team.cpp.o release-openpandora-armv7l/ufo/client/cl_tip.cpp.o release-openpandora-armv7l/ufo/client/cl_tutorials.cpp.o release-openpandora-armv7l/ufo/client/cl_video.cpp.o release-openpandora-armv7l/ufo/client/input/cl_input.cpp.o release-openpandora-armv7l/ufo/client/input/cl_joystick.cpp.o release-openpandora-armv7l/ufo/client/input/cl_keys.cpp.o release-openpandora-armv7l/ufo/client/cinematic/cl_cinematic.cpp.o release-openpandora-armv7l/ufo/client/cinematic/cl_cinematic_ogm.cpp.o release-openpandora-armv7l/ufo/client/cinematic/cl_cinematic_roq.cpp.o release-openpandora-armv7l/ufo/client/cinematic/cl_sequence.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_actor.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_battlescape.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_camera.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_hud_callbacks.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_hud.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_localentity.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_parse.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_particle.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_radar.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_spawn.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_ugv.cpp.o release-openpandora-armv7l/ufo/client/battlescape/cl_view.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/e_main.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/e_parse.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/e_server.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actoradd.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorappear.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorclientaction.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actordie.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorendshot.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actormove.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorreactionfireabortshot.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorreactionfireaddtarget.cpp.o release-openpandora-armv7l/ufo/client/battlescape/events/event/actor/e_event_actorreactio