FC2ブログ

[LM8]relocation truncated to fit

こんなエラー出た。どういう事だ?

INFO : gcc ---------------------------
INFO : as ---------------------------
INFO : ld ---------------------------
crt0.o: In function `_start':
(.vectors+0x8): relocation truncated to fit: R_LM8_8 against symbol `__stack' defined in *ABS* section in main



echo "INFO : gcc ---------------------------"
lm8-elf-gcc -c $src_name.c
echo "INFO : as ---------------------------"
lm8-elf-as crt0.S -o crt0.o
echo "INFO : ld ---------------------------"
lm8-elf-ld -Map $src_name.map -T linker.ld crt0.o $src_name.o -o $src_name



crt0.S

.section .vectors,"ax"

.globl _start
_start:
/* Clear bss */
movi r0,_lo(__bss_start)
movi r1,0

/* Setup the stack */
movi r14,__stack

/* Mark the end-of-stack */
movi r15,0

seti
call main
clri

__irq_save_restore2:
iret



linker.ld

output_format("elf32-lm8")
output_arch("lm8")
entry(_start)
/*
* this section defines memory attributes (name, origin, length) for the platform
*/
memory
{
text (rx) : origin = 0, length = 12288
data (rw!x) : origin = 0, length = 1024
}



sections
{

.text :
{
_ftext = .;
*(.vectors)
keep (*(.vectors))
*(.text .text.*)
/* constructors and destructors */
keep (*crtbegin*.o(.ctors))
keep (*(exclude_file (*crtend*.o ) .ctors))
keep (*(sort(.ctors.*)))
keep (*(.ctors))
keep (*crtbegin*.o(.dtors))
keep (*(exclude_file (*crtend*.o ) .dtors))
keep (*(sort(.dtors.*)))
keep (*(.dtors))
keep (*(.jcr))
_etext = .;
} > text



.data :
at (loadaddr (.text) + 12288)
{
provide (__data_start = .);

/* reserved for interrupts */
long(0)

*(.data .data.* .gnu.linkonce.d.*)
*(.data*)
sort(constructors)
*(.sdata .sdata.* .gnu.linkonce.s.*)
*(.rodata .rodata.* .gnu.linkonce.r.*)
*(.rodata*)

. = align(2);
_edata = .;
provide (__data_end = .);
} > data



.bss :
at (loadaddr (.text) + 12288 + sizeof (.data))
{
provide (__bss_start = .);

*(.dynsbss)
*(.sbss .sbss.* .gnu.linkonce.sb.*)
*(.scommon)
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(common)

provide (__bss_end = .);
} > data



.irq_stack :
at (loadaddr (.text) + 12288 + sizeof (.data) + sizeof(.bss))
{
*(.irq_stack)
} > data



. = align(4);
.end = .;
provide(__stack = origin (data) + length (data) - 4);
__data_load_start = loadaddr(.data);
__data_load_end = __data_load_start + sizeof(.data);
/* stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }



/* dwarf debug sections.
symbols in the dwarf debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* dwarf 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* gnu dwarf 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* dwarf 1.1 and dwarf 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* dwarf 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* sgi/mips dwarf 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
}

スポンサーサイト



コメントの投稿

非公開コメント

カレンダー
01 | 2020/02 | 03
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード