ARM GCC: MOVT/MOVW reloacations error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm compiling for armv7 windows mobile (coff-pe). The problem I have is that my build of gcc tries to use MOVT/MOVW in the following case:

static void test_func(){}

void test(struct teststruct * ts)
{
	ts->func = test_func;
}

The generated asm will be:
	...
	movw	r4, #:lower16:test_func
	movt	r4, #:upper16:test_func

When compiling I get this error:
GNU assembler version 2.20.51 (arm-mingw32ce) using BFD version (GNU Binutils) 2.20.51.20091016
test.s: Assembler messages:
...
test.s:10: Error: cannot represent BFD_RELOC_ARM_MOVW relocation in this object file format
test.s:11: Error: cannot represent BFD_RELOC_ARM_MOVT relocation in this object file format
...


basically, it simply fails in my case because such asm cannot work on windows, and I'm not sure if such thing can work anywhere else.
Can somebody maybe recommend where I need to look for in gcc code to make gcc not generate movw/movt sequences for functions (or anything else that isn't a real constant at compile time)?


Thanks




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux