3
votes

I have installed Eclipse CDT, CodeSourcery G++ toolchain on Linux host. I am using the Code Sourcery Eclipse IDE. I have installed Linux kernel using Linux Target Image Builder from the Freescale site, onto the MCF5485 board.

I have created a "helloworld" project on my Linux host using the Sourcery Eclipse IDE. I have copied the executables(like gdbserver,catchsgev etc) from the Sourcery folder onto the board in the root filesystem.

I run the gdbserver on the board and then debug using TCP from my Linux machine. In the Sourcery Eclipse IDE I have specified sysroot on target as / because I have installed gdbserver in the root on the board (/root/bin).

I have specified the IP address in the debug configuration in Eclipse while rest is default. I have selected the option "Translate sysroot pathnames" in the Shared Libraries tab in Debug Configurations

I start gdbsrver on board (gdbserver IP:port /pathname/to/executable) and then I launch debug configuration on Linux host. It stops at main() because of breakpoint. When I press resume it gives me the following error.

warning: .dynamic section for "C:\\Program Files\\CodeSourcery\\Sourcery G++\\m68k-linux-gnu\\libc/lib/libc.so.6" is not at the expected address (wrong library or version mismatch?)
Stopped due to shared library event
Stopped due to shared library event
Stopped due to shared library event

My program is as follows:

include <stdio.h>

int main(void)
{
    int i=0;
    printf("Hello = %d",i);
    return 0;
}

I read on some forum that I need to set sysroot but I also read that if I have installed sysroot in the root filesystem on the board I do not need to do anything.

1

1 Answers

1
votes

Not sure you need to put the Code Sourcery tools on the target, but it does look like the GDB client or Eclipse can not find the target libraries, or the target library does not match the library the Code Sourcery tools are using.

I would expect these libraries to be built as a part of the target linux build. They need to be cross compiled for your target processor, and would end up on your target file system under /lib directory. Code Sourcery might provide pre-built lib's for your target, and then these must be the libraries your target should be using. they need to be part of your target's file system.