Hi Ralph

I'm trying to cross compile squeezeslave to a marvell 6281 arm
processor. 
The compiler complains about some relocation stuff - which I've read is
due to some code is wrongfully being compiled to x86. The error message
is pasted below:


Code:
--------------------
    
  arm-none-linux-gnueabi-gcc -I/usr/local/arm-none-linux-gnueabi/include 
-L/usr/local/arm-none-linux-gnueabi/lib -s -static -o bin/squeezeslave 
src/squeezeslave/squeezeslave.o src/squeezeslave/help.o 
src/squeezeslave/daemonize.o src/squeezeslave/interactive.o 
lib/portmixer/px_unix_oss/px_unix_oss.o lib/libportaudio.a lib/libslimproto.a 
lib/libgetopt.a lib/libmad/lnx26/lib/libmad.a 
lib/vorbis/lnx26/lib/libvorbisfile.a lib/vorbis/lnx26/lib/libvorbis.a 
lib/vorbis/lnx26/lib/libvorbisenc.a lib/vorbis/lnx26/lib/libogg.a 
lib/flac/lnx26/lib/libFLAC.a -lpthread -lm --enable-shared=no
  
/usr/local/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld:
 lib/libportaudio.a(pa_unix.o): Relocations in generic ELF (EM: 3)
  lib/libportaudio.a: could not read symbols: File in wrong format
  collect2: ld returned 1 exit status
  make: *** [bin/squeezeslave] Error 1
  
--------------------


The toolchain has been downloaded from
sourceforge.net/projects/dsgpl/files/ and unpacked using this command:
tar zxpf gcc421_glibc25_88f6281.tgz –C /usr/local/

The makefile I'm using is a slightly modified mipsel makefile:

Code:
--------------------
    
  #
  # makefile.linux26 for ds109 by jonask
  #
  
  # export PATH
  PATH:=/usr/local/arm-none-linux-gnueabi/bin:$(PATH)
  export PATH
  
  # Linux 2.6.24 MARVELL 6281 ARM
  OS=lnx26
  CC=arm-none-linux-gnueabi-gcc
  CXX=arm-none-linux-gnueabi-g++
  CPP=arm-none-linux-gnueabi-cpp
  RANLIB=arm-none-linux-gnueabi-ranlib
  AR=arm-none-linux-gnueabi-ar
  LD=arm-none-linux-gnueabi-ld
  TAR=tar
  SED=sed
  SHELL=/bin/bash
  PATCH=patch
  CFLAGS=-I/usr/local/arm-none-linux-gnueabi/include
  LDFLAGS=-L/usr/local/arm-none-linux-gnueabi/lib -s -static
  
  INCLUDE=-Ilib/getopt -Ilib/portaudio/pa_common -Ilib/portaudio/pablio 
-Ilib/portmixer/px_common -Isrc -Ilib/libmad/$(OS)/include 
-Ilib/vorbis/$(OS)/include -Ilib/flac/$(OS)/include
  
  PORTAUDIOFILES:=lib/portaudio/pa_unix_oss/pa_unix.c 
lib/portaudio/pa_unix_oss/pa_unix_oss.c lib/portaudio/pa_common/pa_lib.c 
lib/portaudio/pa_common/pa_convert.c lib/portaudio/pablio/ringbuffer.c 
  
  LIBMAD=libmad-0.15.1b
  LIBOGG=libogg-1.2.0
  LIBVORBIS=libvorbis-1.3.1
  LIBFLAC=flac-1.2.1
  
  PORTMIXERFILES:=lib/portmixer/px_unix_oss/px_unix_oss.c
  
  GETOPTFILES=lib/getopt/getopt.c lib/getopt/getopt1.c
  
  SLIMPROTOFILES:=src/slimaudio/slimaudio_http.c 
src/slimaudio/slimaudio_decoder.c src/slimaudio/slimaudio_decoder_flac.c 
src/slimaudio/slimaudio_decoder_mad.c src/slimaudio/slimaudio_decoder_vorbis.c 
src/slimaudio/slimaudio_decoder_pcm.c src/slimaudio/slimaudio_output.c 
src/slimaudio/slimaudio_buffer.c src/slimaudio/slimaudio.c 
src/slimproto/slimproto.c
  
  SQUEEZESLAVEFILES:=src/squeezeslave/squeezeslave.c src/squeezeslave/help.c 
src/squeezeslave/daemonize.c src/squeezeslave/interactive.c
  
  LIBPORTAUDIO=lib/libportaudio.a
  
  LIBSLIMPROTO=lib/libslimproto.a
  
  LIBGETOPT=lib/libgetopt.a
  
  SUPPORTLIBS=lib/libmad/$(OS)/lib/libmad.a 
lib/vorbis/$(OS)/lib/libvorbisfile.a lib/vorbis/$(OS)/lib/libvorbis.a 
lib/vorbis/$(OS)/lib/libvorbisenc.a lib/vorbis/$(OS)/lib/libogg.a 
lib/flac/$(OS)/lib/libFLAC.a
  
  SQUEEZESLAVE=bin/squeezeslave
  
  .c.o:
        $(CC) $(CFLAGS) $(LDFLAGS) -b arm-linux-gnu -c $(INCLUDE) $< -o $*.o 
  
  all: $(SUPPORTLIBS) $(SQUEEZESLAVE)
  
  lib/libmad/$(OS)/lib/libmad.a:
        cd lib/libmad/$(OS)/build && ${TAR} --bzip -xf 
../../../../sources/$(LIBMAD).tar.bz2
        cd lib/libmad/$(OS)/build && ${PATCH} -p0 -i 
../../../../patches/libmad-forcemem.patch
  #     cd lib/libmad/$(OS)/build/$(LIBMAD) && CC="$(CC)"                 
CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure 
--enable-shared=no --enable-fpm=intel
        cd lib/libmad/$(OS)/build/$(LIBMAD) && CC="$(CC)" CXXCPP="$(CPP)" 
CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure 
--enable-shared=no --enable-fpm=arm --host=armle-unknown-linux 
--target=armle-unknown-linux --build=i686-pc-linux --prefix=/usr/local
        cd lib/libmad/$(OS)/build/$(LIBMAD) && make clean && make
        cp -p lib/libmad/$(OS)/build/$(LIBMAD)/.libs/libmad.a 
lib/libmad/$(OS)/lib
        cp -p lib/libmad/$(OS)/build/$(LIBMAD)/mad.h lib/libmad/$(OS)/include
  
  lib/vorbis/$(OS)/lib/libogg.a:
        cd lib/vorbis/$(OS)/build && ${TAR} --bzip -xf 
../../../../sources/$(LIBOGG).tar.bz2
  #     cd lib/vorbis/$(OS)/build/$(LIBOGG) && CC="$(CC)"                 
CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure 
--enable-shared=no
        cd lib/vorbis/$(OS)/build/$(LIBOGG) && CC="$(CC)" CXXCPP="$(CPP)" 
CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure 
--enable-shared=no --host=armle-unknown-linux --target=armle-unknown-linux 
--build=i686-pc-linux --prefix=/usr/local
        cd lib/vorbis/$(OS)/build/$(LIBOGG) && make clean && make
        cp -p lib/vorbis/$(OS)/build/$(LIBOGG)/src/.libs/libogg.a 
lib/vorbis/$(OS)/lib
        cp -p 
lib/vorbis/$(OS)/build/$(LIBOGG)/include/ogg/{ogg.h,os_types.h,config_types.h} 
lib/vorbis/$(OS)/include/ogg
  
  lib/vorbis/$(OS)/lib/libvorbisfile.a: lib/vorbis/$(OS)/lib/libogg.a
  lib/vorbis/$(OS)/lib/libvorbisenc.a: lib/vorbis/$(OS)/lib/libogg.a
  lib/vorbis/$(OS)/lib/libvorbis.a: lib/vorbis/$(OS)/lib/libogg.a
        cd lib/vorbis/$(OS)/build && ${TAR} --bzip -xf 
../../../../sources/$(LIBVORBIS).tar.bz2
        cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && $(SED) -i "s/-mno-ieee-fp//g" 
configure
  # cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && CC="$(CC)"                 
OGG_CFLAGS=-I`pwd`/../../include OGG_LIBS=`pwd`/../../lib/libogg.a 
CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS) ${OGG_LIBS}" 
./configure --enable-shared=no
        cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && CC="$(CC)" CXXCPP="$(CPP)" 
OGG_CFLAGS=-I`pwd`/../../include OGG_LIBS=`pwd`/../../lib/libogg.a 
CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS) ${OGG_LIBS}" 
./configure --enable-shared=no --host=armle-unknown-linux 
--target=armle-unknown-linux --build=i686-pc-linux --prefix=/usr/local
        cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && $(SED) -i "s:^LIBS =.*:LIBS = 
`pwd`/../../lib/libogg.a:" examples/Makefile
        cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && make clean && make
        cp -p 
lib/vorbis/$(OS)/build/$(LIBVORBIS)/lib/.libs/{libvorbis.a,libvorbisenc.a,libvorbisfile.a}
 lib/vorbis/$(OS)/lib
        cp -p 
lib/vorbis/$(OS)/build/$(LIBVORBIS)/include/vorbis/{codec.h,vorbisenc.h,vorbisfile.h}
 lib/vorbis/$(OS)/include/vorbis
  
  lib/flac/$(OS)/lib/libFLAC.a: lib/vorbis/$(OS)/lib/libogg.a
        cd lib/flac/$(OS)/build && ${TAR} --bzip -xf 
../../../../sources/$(LIBFLAC).tar.bz2
  #     cd lib/flac/$(OS)/build/$(LIBFLAC) && CC="$(CC)"                 
OGG_CFLAGS=-I`pwd`/../../include OGG_LIBS=`pwd`/../../lib/libogg.a 
CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS) ${OGG_LIBS}" 
./configure --enable-shared=no --disable-oggtest 
--with-ogg-libraries=`pwd`/../../../../vorbis/$(OS)/lib 
--with-ogg-includes=`pwd`/../../../../vorbis/$(OS)/include
        cd lib/flac/$(OS)/build/$(LIBFLAC) && CC="$(CC)" CXXCPP="$(CPP)" 
OGG_CFLAGS=-I`pwd`/../../include OGG_LIBS=`pwd`/../../lib/libogg.a 
CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS) ${OGG_LIBS}" 
./configure --enable-shared=no --disable-oggtest 
--with-ogg-libraries=`pwd`/../../../../vorbis/$(OS)/lib 
--with-ogg-includes=`pwd`/../../../../vorbis/$(OS)/include 
--host=armle-unknown-linux --target=armle-unknown-linux --build=i686-pc-linux 
--prefix=/usr/local
        cd lib/flac/$(OS)/build/$(LIBFLAC)/src/libFLAC && make clean && make
        cp -p lib/flac/$(OS)/build/$(LIBFLAC)/src/libFLAC/.libs/libFLAC.a 
lib/flac/$(OS)/lib
        cp -p 
lib/flac/$(OS)/build/$(LIBFLAC)/include/FLAC/{all.h,export.h,ordinals.h,assert.h,format.h,stream_decoder.h,callback.h,metadata.h,stream_encoder.h}
 lib/flac/$(OS)/include/FLAC
  
  $(LIBPORTAUDIO): $(PORTAUDIOFILES:.c=.o)
        $(AR) -cru $(LIBPORTAUDIO) $^
        $(RANLIB) $(LIBPORTAUDIO)
  
  $(LIBSLIMPROTO): $(SLIMPROTOFILES:.c=.o)
        $(AR) -cru $(LIBSLIMPROTO) $^
        $(RANLIB) $(LIBSLIMPROTO)
  
  $(LIBGETOPT): $(GETOPTFILES:.c=.o)
        $(AR) -cru $(LIBGETOPT) $^
        $(RANLIB) $(LIBGETOPT)
  
  $(SQUEEZESLAVE): $(SQUEEZESLAVEFILES:.c=.o) $(PORTMIXERFILES:.c=.o) 
$(LIBPORTAUDIO) $(LIBSLIMPROTO) $(LIBGETOPT) $(SUPPORTLIBS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $(SQUEEZESLAVE) $^ -lpthread -lm 
--enable-shared=no
  
  clean:
        -...@rm -f $(SLIMPROTOFILES:.c=.o)
        -...@rm -f $(SQUEEZESLAVEFILES:.c=.o)
        -...@rm -f $(PORTMIXERFILES:.c=.o)
        -...@rm -f $(GETOPTFILES:.c=.o)
        -...@rm -f $(LIBPORTAUDIO)
        -...@rm -f $(LIBSLIMPROTO)
        -...@rm -f $(LIBGETOPT)
        -...@rm -f $(SQUEEZESLAVE)
  
  realclean: clean
        -...@rm -rf lib/libmad/$(OS)/build/$(LIBMAD)
        -...@rm -rf lib/vorbis/$(OS)/build/$(LIBOGG)
        -...@rm -rf lib/vorbis/$(OS)/build/$(LIBVORBIS)
        -...@rm -rf lib/flac/$(OS)/build/$(LIBFLAC)
        -...@rm -f lib/libmad/$(OS)/lib/libmad.a lib/libmad/$(OS)/include/mad.h
        -...@rm -f lib/vorbis/$(OS)/lib/libogg.a 
lib/vorbis/$(OS)/include/ogg/{ogg.h,os_types.h,config_types.h}
        -...@rm -f 
lib/vorbis/$(OS)/lib/{libvorbis.a,libvorbisenc.a,libvorbisfile.a}
        -...@rm -f 
lib/vorbis/$(OS)/include/vorbis/{codec.h,vorbisenc.h,vorbisfile.h}
        -...@rm -f lib/flac/$(OS)/lib/libFLAC.a
        -...@rm -f 
lib/flac/$(OS)/include/FLAC/{all.h,export.h,ordinals.h,assert.h,format.h,stream_decoder.h,callback.h,metadata.h,stream_encoder.h}
  
--------------------


I'm out of ideas right now. Can you (or anyone with experience in
cross-compiling) help me?

regards Jonas


-- 
Jonas K
------------------------------------------------------------------------
Jonas K's Profile: http://forums.slimdevices.com/member.php?userid=39432
View this thread: http://forums.slimdevices.com/showthread.php?t=63966

_______________________________________________
discuss mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/discuss

Reply via email to