UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 51605

13.x - スタンドアロンの makefile を使用するとリンカーで実行ファイルがリンクされない

説明


リンカーによってコードの一部が再配置されないため、次のようなエラーが発生しているものと思われます。

mb-gcc -o fw_image1.elf new_test.o profinet.o ethernetip.o ethercat.o modbus.o webserver.o smtp.o -mlittle-endian -Wl,-EL -Wl,--gc-sections -Wl,-static -Wl,--oformat,elf32-microblazele -nostartfiles -nodefaultlibs -nostdlib -Wl,-L,../xilinx_iek_switch_install/lib -Wl,--start-group,-lSdaiPnOnly,-lextras,-ltarget,-lPROFINETStack,-lgcc,--end-group -Wl,-T,target.ld -Wl,-Map=ieksingle.map
../xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o): In function `set_device_mode_offline':
c:\cworkspace\CASE_929382_Dirk_linker_error\xilinx_lib\xilinx\SimpleDeviceAPI\all_fpga_eCos_gcc\mak\release/../../../sdai/protocol/user.c:2256: relocation truncated to fit: R_MICROBLAZE_32_PCREL_LO against symbol `user_sm_if_appl_get_alarm_ack_can_send' defined in .text section in ../xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o)
../xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o): In function `alarm_con':
c:\cworkspace\CASE_929382_Dirk_linker_error\xilinx_lib\xilinx\SimpleDeviceAPI\all_fpga_eCos_gcc\mak\release/../../../sdai/protocol/user.c:2113: relocation truncated to fit: R_MICROBLAZE_32_PCREL_LO against symbol `user_sm_switch_1_4_auto_read_res' defined in .text section in ../xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o)
../xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o): In function `user_connect_append_slot_diff':
c:\cworkspace\CASE_929382_Dirk_linker_error\xilinx_lib\xilinx\SimpleDeviceAPI\all_fpga_eCos_gcc\mak\release/../../../sdai/protocol/user_connect.c:1000: relocation truncated to fit: R_MICROBLAZE_32_PCREL_LO against symbol `user_util_find_module_list_element' defined in .text section in ../xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o)
collect2: ld returned 1 exit status
make: *** [fw_image1.elf] Error 1

グーグルで検索をし、次のような提案策が見つかりました。

「-mlong-calls」を使用することができる。

しかし、MicroBlaze / mb-gcc ではこれはオプションにないようです。

どうすればよいでしょうか。

ソリューション


この問題を回避するには、14.2 からの最新版コンパイラを使用してすべてを再コンパイルします。こうすると「relocation truncated to fit: R_MICROBLAZE_32_PCREL_LO against symbol」というメッセージは表示されず、実行ファイルを生成することができます。

ライブラリを再コンパイルせずにリンカーのみを実行しても問題は解決されません。
AR# 51605
作成日 09/04/2012
最終更新日 09/04/2012
ステータス アクティブ
タイプ 一般
ツール
  • EDK
  • EDK - 13