Sat Jul 25 09:51:40 CEST 2009

Debian arm cross toolchain

Getting a filesystem bootstrapped wasn't so difficult.  See [1].  I'd
like to figure out how to run some things in the emulator though.  But
that can wait.

Let's first install an xc for zni -> debian-arm.  Add this line to

  deb http://www.emdebian.org/debian/ unstable main

Then install with:

  apt-get update
  apt-get install gcc-4.3-arm-linux-gnu

Ok. It can build executables that work in the arm debian fs previously

Now the question is, does this also work for the TI code?

Apparently tinyscheme chokes on linux/limits.s not being installed.
This should be just a kernel headers problem.

  apt-get install linux-kernel-headers-arm-cross

This compiles tinyscheme.  But the TI objects choke on ABI problems:

/usr/bin/arm-linux-gnu-gcc -o test test.o
./ti/lib/codec/encodedecode_x470MV.a ./ti/lib/common/TraceUtil.a
./ti/lib/common/bioslog.a ./ti/lib/visa/video.a ./ti/lib/visa/audio.a
./ti/lib/visa/speech.a ./ti/lib/common/ce.a
./ti/lib/common/Algorithm_noOS.a ./ti/lib/common/alg.a
./ti/lib/common/osal_dsplink_linux_6446.a ./ti/lib/common/dman3Cfg.a
./ti/lib/common/acpy3.a ./ti/lib/module/cmem.a
./ti/lib/module/dsplink.lib ./ti/lib/common/XdmUtils.a
./ti/lib/common/gt.a -lpthread tinyscheme/libtinyscheme.a -lm

ERROR: Source object /usr/arm-linux-gnu/lib/libpthread.so.0 has EABI
version 0, but target test has EABI version 4

I don't understand why libpthread.so.0 should have version 0 since it
is bundled with the arm gcc for debian?

tom@zni:/var/lib/dpkg/info$ dpkg -S /usr/arm-linux-gnu/
linux-kernel-headers-arm-cross, libc6-arm-cross, libgcc1-arm-cross,
libc6-dev-arm-cross, binutils-arm-linux-gnu: /usr/arm-linux-gnu

I guess the problem is presenting the linker with the .a files from TI
which have a different ABI.  I can't check this..  How to instruct the
compiler to produce this ABI version?  Let's google a bit more..
Trying this:

  apt-get install gcc-4.4-arm-linux-gnueabi

Ok, but that one doesn't have associated kernel headers..  Maybe I can
link it from the other?

  cd /usr/arm-linux-gnueabi/include
  sudo ln -s ../../arm-linux-gnu/include/linux .

Ha. It builds and links using /usr/bin/arm-linux-gnueabi-gcc

But it probably won't run on the debian..  And I'm not sure if
foefeling the headers like that is a good idea.

[1] entry://20090520-121129
[2] http://forums.arm.com/lofiversion/index.php?t8842.html