Rockbox

Tasklist

FS#12051 - Building rbspeex is broken on Cygwin

Attached to Project: Rockbox
Opened by Tuukka Ojala (tuojal) - Thursday, 07 April 2011, 14:48 GMT
Task Type Bugs
Category Build environment
Status Unconfirmed
Assigned To No-one
Operating System SW-codec
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

Tested at r29689, gcc 3.4.4. When trying to create a voice file in Cygwin, the following comes out (taken from STDERR):
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x453): undefined reference to `_speex_nb_mode'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x45a): undefined reference to `_speex_wb_mode'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x462): undefined reference to `_speex_encoder_init'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x490): undefined reference to `_speex_bits_init'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x4b9): undefined reference to `_speex_encoder_ctl'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x4d9): undefined reference to `_speex_encoder_ctl'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x4f6): undefined reference to `_speex_encoder_ctl'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x513): undefined reference to `_speex_encoder_ctl'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x527): undefined reference to `_speex_encoder_ctl'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x5fd): undefined reference to `_speex_resampler_init'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x609): undefined reference to `_speex_resampler_skip_zeros'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x6ac): undefined reference to `_speex_resampler_process_int'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x6fc): undefined reference to `_speex_encode_int'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x724): undefined reference to `_speex_bits_write_whole_bytes'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x7c0): undefined reference to `_speex_bits_write'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x81d): undefined reference to `_speex_encoder_destroy'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x829): undefined reference to `_speex_bits_destroy'
librbspeex.a(rbspeex.o):rbspeex.c:(.text+0x83d): undefined reference to `_speex_resampler_destroy'
collect2: ld returned 1 exit status
make[2]: *** [../rbspeexenc] Error 1
make[1]: *** [rbspeexenc] Error 2
make: *** [voicetools] Virhe 2
This task depends upon

Comment by Andree Buschmann (Buschel) - Saturday, 09 April 2011, 19:57 GMT
"make rbspeexenc" works fine on my Cygwin. Just compiled it using r29692.
Comment by Tuukka Ojala (tuojal) - Saturday, 09 April 2011, 20:26 GMT
I found a solution. I removed all speex-related packages and after that rbspeexenc built without errors. Perhaps this should be noted in the Cygwin development wiki page.
Comment by Dominik Riebeling (bluebrother) - Saturday, 09 April 2011, 21:22 GMT
There's another catch: gcc4 doesn't support -mno-cygwin anymore. Depending on your installation gcc is gcc4, not gcc3. I'm considering to (a) remove -mno-cygwin when building rbspeexenc since the binary isn't usually distributed separately (if it's distributed building with MinGW works fine) and (b) change the Makefile to not use an installed libspeex and instead use the Rockbox implementation to avoid issues with the installed version (current Cygwin has a MinGW cross compiler but no libspeex package for it)

Loading...