ts-7000
[Top] [All Lists]

[ts-7000] TS-4700 Crosstool usage and shared library linking

To:
Subject: [ts-7000] TS-4700 Crosstool usage and shared library linking
From: "Dunge2" <>
Date: Tue, 06 Mar 2012 16:35:59 -0000
Hello,

I received a TS-TPC-8390 socket with a TS-4700 macrocontroller and was happy to 
see that unlike my previous TS-7390, the board actually comes with an 
up-to-date Debian distribution, linked to EmDebian, using EABI binaries and 
everything.

My goal is to build my application using the supplied crosstool (arm-2008q3 in 
TS FTP). I installed it and managed to get a "hello world" working right away.

My problem actually relies on shared libraries such as BOOST, SDL and TSLIB. 
Boost builded with no problem since it don't require external dependencies. I 
then went on the board itself and used apt-get to download the rest, and copied 
the entire /usr/lib and /usr/include folders to a USB key to re-copy to the 
crosstool directory.

That's where I'm mixed up.
First, where should I copy my shared libs/include files to be referenced? 
There's a lot of already created /lib and /include folders:
arm-2008q3/
arm-2008q3/arm-none-linux-gnueabi/
arm-2008q3/arm-none-linux-gnueabi/libc/
arm-2008q3/arm-none-linux-gnueabi/libc/usr/

I used the second one but that's just a wild guess.

Then, what is the difference between the 2 versions of GCC binaries in the 
crosstool paths? I use arm-none-linux-gnueabi-gcc, but is the other any use?:
arm-2008q3/bin/arm-none-linux-gnueabi-gcc
arm-2008q3/arm-none-linux-gnueabi/bin/gcc





So when creating the makefile for my application, I reference the complete path 
for everything (note that [...] is my base path omitted to make it easier to 
read):
CC=[...]/arm-2008q3/bin/arm-none-linux-gnueabi-g++

For the include files I use
CFLAGS=-c -O2 [...] -I[...]/arm-2008q3/arm-none-linux-gnueabi/include

When I create some static link files (I need to) I use directly
[...]/arm-2008q3/bin/arm-none-linux-gnueabi-ar rcs $(OUTLIB) $(SOURCES)

Up to now every works and I get usable .a and .o files. Problem arise when I 
create the executable with all those libs at the end and try to link with SDL 
shared library:

LDFLAGS=-L[...]/arm-2008q3/arm-none-linux-gnueabi/lib -pthread -lcrypt 
-lSDL-1.2 -lSDL_image-1.2 -Wl,-rpath-link 
[...]/arm-2008q3/arm-none-linux-gnueabi/lib


That's the output I get:
[...]/arm-2008q3/bin/arm-none-linux-gnueabi-g++ 
-L[...]/arm-2008q3/arm-none-linux-gnueabi/lib -pthread -lcrypt -lSDL-1.2 
-lSDL_image-1.2 -Wl,-rpath-link [...]/arm-2008q3/arm-none-linux-gnueabi/lib 
main.o [...].a -o tmg-arm
[...]/arm-2008q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/../../../../arm-none-linux-gnueabi/bin/ld:
 cannot find -lSDL-1.2

Note here that it seems to use simply "ld" instead of 
"arm-none-linux-gnueabi-ld", but at least it's the cross-compiler one, not the 
base system one. I tried to simply write -lSDL instead of -lSDL-1.2, no help. I 
tried to copy the libSDL-1.2.so.0 / libSDL-1.2.so.0.11.3 files to every /lib 
paths in the crosstool directory structure, it can never find it.

What am I understanding wrong?



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU