[uClinux-dev] M68k porting trouble: reloc error

David McCullough davidm at snapgear.com
Wed Aug 3 18:16:41 EDT 2005


Jivin Gavin Lambert lays it down ...
> (Resent because it didn't seem to make it the first time)
> 
> Slightly weird problem :)  Probably because I'm still a newbie.
> 
> I've got a fairly large program (final flat binary around 460kb) using
> C++ and STL on a m5272.  Or at least trying to.
> 
> Compiling the main uclinux dist seemed to work ok (I've got a shell),
> but I'm having trouble porting this program.
> 
> I keep getting errors like the following:
>   BINFMT_FLAT: reloc outside program 0x70d5000 (0 - 0xffe95b14/0x62520),
> killing testApp!
> 
> My current link line is as follows:
>   m68k-elf-gcc -m5307 -DCONFIG_COLDFIRE -O1 -g -fno-common -Wall -Dlinux
> -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -msep-data
> -Wl,-elf2flt -o testApp testApp.eo ../testLib/libtestLib.a
> ../testCore/libtestCore.ea -lstdc++
> 
> An example compile line is like so:
>   m68k-elf-g++ -m5307 -DCONFIG_COLDFIRE -c -O1 -g -fno-common -Wall
> -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -msep-data
> -I../testLib -I../testCore -o testApp.eo testApp.cpp
> 
> There aren't any errors during compile/link.  I'm using the 3.4.0
> binaries (compiled for RedHat 7.2 host, though I'm actually on Ubuntu)
> of the toolchain.
> 
> Every so often (after a clean rebuild), the app will start up instead of
> displaying that error message, but it acts weird.  (Global variables
> aren't initialized properly, only some of main() seems to run, etc.)

Sounds like you need more stack,  you only have 4K (see below).

> The output of flthdr is as follows:
>    Magic:       bFLT
>    Rev:         4
>    Build Date:  Mon Aug  1 19:22:52 2005
>    Entry:       0x48
>    Data Start:  0x62560
>    Data End:    0x70d90
>    BSS End:     0x780b0
>    Stack Size:  0x1000
>    Reloc Start: 0x70d90
>    Reloc Count: 0x54a
>    Flags:       0x2 ( Has-PIC-GOT )
> 
> The app runs fine under native Linux.  Does anybody know how I can get
> this working properly?
> 
> (and yes, I tried linking it to STLport and uClibc as well.  That had
> similar results.)

Add

	FLTFLAGS += -s 64000 

to the apps Makefile and see how you go,

Cheers,
Davidm

-- 
David McCullough, davidm at snapgear.com  Ph:+61 7 34352815 http://www.SnapGear.com
Custom Embedded Solutions + Security   Fx:+61 7 38913630 http://www.uCdot.org



More information about the uClinux-dev mailing list