Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode
Mark, On Sat, Nov 18, 2006 at 11:52:55AM +, Mark Purcell wrote: > On Thursday 16 November 2006 06:03, Steve Langasek wrote: > [...] > > I don't know yet why this define isn't propagating; it seems to be part of > > debian/patches/libgsm.patch though, and there's probably a race condition > > in the autotools handling that's preventing it from getting where it needs > > to be. In a rebuild test on amd64, config.log looks right to me, yet it's > > not *consistently* ending up in the generated src/twinkle_config.h, because > > there's a race condition with whether src/twinkle_config.h gets regenerated > > after autoheader is run. > I think I have tracked it down. > debian/patches/libgsm.patch was only applied to configure.in, the necessary > changes to configure wern't in the patch. > As a result, if autoconf was called and configure was regenerated it would > dynamically link libgsm, but if configure wasn't regenerated twinkle would > try and both dynamically and static link libgsm, hence the race condition. In my testing, configure was always regenerated but it wasn't guaranteed that *autoheader* would be called at the right time to regenerate the twinkle_config.h.in file. To completely fix this race condition, I think you need to handle both the autoheader-generated and the autoconf-generated pieces at patch time before calling configure. Cheers, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. [EMAIL PROTECTED] http://www.debian.org/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode
On Thursday 16 November 2006 06:03, Steve Langasek wrote: [...] > I don't know yet why this define isn't propagating; it seems to be part of > debian/patches/libgsm.patch though, and there's probably a race condition > in the autotools handling that's preventing it from getting where it needs > to be. In a rebuild test on amd64, config.log looks right to me, yet it's > not *consistently* ending up in the generated src/twinkle_config.h, because > there's a race condition with whether src/twinkle_config.h gets regenerated > after autoheader is run. Thanks Steve, I think I have tracked it down. debian/patches/libgsm.patch was only applied to configure.in, the necessary changes to configure wern't in the patch. As a result, if autoconf was called and configure was regenerated it would dynamically link libgsm, but if configure wasn't regenerated twinkle would try and both dynamically and static link libgsm, hence the race condition. Mark -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#394153: Fwd: Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode
On Wed, Nov 15, 2006 at 11:11:31AM +, Mark Purcell wrote: > On Wednesday 15 November 2006 03:35, Julien Cristau wrote: > > clone 394153 -1 > > reassign -1 libgsm > > retitle -1 please add extern "C" declaration for use in c++ programs > Julien, Kurt, > libgsm1 does have an extern "C" declaration: > /usr/include/gsm.h > [...] > #ifdef __cplusplus > extern "C" { > #endif > I'm not sure why this is occurring... Sure enough, this isn't a bug in libgsm. #ifdef HAVE_GSM #include #else #include "gsm/inc/gsm.h" #endif this is the code in audio_encoder.h, and the HAVE_GSM check is failing -- which means the build is using a local copy of gsm in the src/audio/gsm directory (bad) and the build is failing as a result (good :). I don't know yet why this define isn't propagating; it seems to be part of debian/patches/libgsm.patch though, and there's probably a race condition in the autotools handling that's preventing it from getting where it needs to be. In a rebuild test on amd64, config.log looks right to me, yet it's not *consistently* ending up in the generated src/twinkle_config.h, because there's a race condition with whether src/twinkle_config.h gets regenerated after autoheader is run. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. [EMAIL PROTECTED] http://www.debian.org/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#394153: Fwd: Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode
On Wednesday 15 November 2006 03:35, Julien Cristau wrote: > clone 394153 -1 > reassign -1 libgsm > retitle -1 please add extern "C" declaration for use in c++ programs Julien, Kurt, libgsm1 does have an extern "C" declaration: /usr/include/gsm.h [...] #ifdef __cplusplus extern "C" { #endif I'm not sure why this is occurring... Twinkle version 1:0.9-3 built fine on AMD64, 1:0.9-4 built fine all all arch except AMD64. There was no source change in the package between -3 & -4 and there has been no change to the libgsm package since 2004. Can you assist with the debug of this issue as clearly something isn't quite right, but I'm not entirely sure it is in twinkle/ libgsm. On i386 I did see a transitory issue with the build failing at this point, but it all appears fine as I can see it. There are a lot of programmes with rdepends on libgsm1 and I don't think we have seen this issue with them? Can we reschedule a build on amd64? Mark > > On Wed, Nov 15, 2006 at 03:06:28 +0100, Julien Cristau wrote: > > found 394153 1:0.9-4 > > thanks > > > > On Fri, Nov 3, 2006 at 06:41:30 +, Mark Purcell wrote: > > > Version: 1:0.9-3 > > > > > > This appears to be a transitory bug which was fixed by the subsequent > > > reload of the application. > > > > > > It has built fine on amd64 now: > > > http://buildd.debian.org/build.php?&pkg=twinkle&arch=amd64 > > > > And the latest build failed again: > > http://buildd.debian.org/fetch.cgi?pkg=twinkle;ver=1%3A0.9-4;arch=amd64;stamp=1162650577 > > libgsm's headers aren't safe to use from c++ programs, they're missing > an extern "C" declaration. > > Cheers, > Julien -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Processed: Re: Bug#394153: Fwd: Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode
Processing commands for [EMAIL PROTECTED]: > clone 394153 -1 Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode Bug 394153 cloned as bug 398697. > reassign -1 libgsm Bug#398697: twinkle: FTBFS: undefined reference to gsm_decode Bug reassigned from package `twinkle' to `libgsm'. > severity -1 important Bug#398697: twinkle: FTBFS: undefined reference to gsm_decode Severity set to `important' from `serious' > retitle -1 please add extern "C" declaration for use in c++ programs Bug#398697: twinkle: FTBFS: undefined reference to gsm_decode Changed Bug title. (By the way, that Bug is currently marked as done.) > thanks Stopping processing here. Please contact me if you need assistance. Debian bug tracking system administrator (administrator, Debian Bugs database) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#394153: Fwd: Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode
clone 394153 -1 reassign -1 libgsm severity -1 important retitle -1 please add extern "C" declaration for use in c++ programs thanks On Wed, Nov 15, 2006 at 03:06:28 +0100, Julien Cristau wrote: > found 394153 1:0.9-4 > thanks > > On Fri, Nov 3, 2006 at 06:41:30 +, Mark Purcell wrote: > > > Version: 1:0.9-3 > > > > This appears to be a transitory bug which was fixed by the subsequent > > reload > > of the application. > > > > It has built fine on amd64 now: > > http://buildd.debian.org/build.php?&pkg=twinkle&arch=amd64 > > > And the latest build failed again: > http://buildd.debian.org/fetch.cgi?pkg=twinkle;ver=1%3A0.9-4;arch=amd64;stamp=1162650577 > libgsm's headers aren't safe to use from c++ programs, they're missing an extern "C" declaration. Cheers, Julien signature.asc Description: Digital signature
Bug#394153: Fwd: Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode
found 394153 1:0.9-4 thanks On Fri, Nov 3, 2006 at 06:41:30 +, Mark Purcell wrote: > Version: 1:0.9-3 > > This appears to be a transitory bug which was fixed by the subsequent reload > of the application. > > It has built fine on amd64 now: > http://buildd.debian.org/build.php?&pkg=twinkle&arch=amd64 > And the latest build failed again: http://buildd.debian.org/fetch.cgi?pkg=twinkle;ver=1%3A0.9-4;arch=amd64;stamp=1162650577 Cheers, Julien signature.asc Description: Digital signature
Processed: Re: Fwd: Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode
Processing commands for [EMAIL PROTECTED]: > found 394153 1:0.9-4 Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode Bug marked as found in version 1:0.9-4. > thanks Stopping processing here. Please contact me if you need assistance. Debian bug tracking system administrator (administrator, Debian Bugs database) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#394153: twinkle: FTBFS: undefined reference to gsm_decode
Package: twinkle Version: 1:0.9-2 Severity: serious Hi, Your package is failing to build (on amd64) with the following error: g++ -g -Wall -O2 -D_GNU_SOURCE -L /usr/lib -o twinkle main.o libtwinkle.a ../src/parser/libsipparser.a ../src/sdp/libsdpparser.a ../src/sockets/libsocket.a ../src/threads/libthread.a ../src/audio/libaudio.a ../src/audits/libaudits.a ../src/stun/libstun.a -pthread -lccrtp1 -lccgnu2 -ldl -lrt -lboost_regex -lzrtpcpp -lspeex -lasound -lgsm -lsndfile -L/usr/lib -lccext2 -lccgnu2 -lz -ldl -lrt -pthread -lresolv -lsndfile -lboost_regex -lboost_regex -lzrtpcpp -lspeex -lasound -lgsm -lsndfile -L/usr/lib -lccext2 -lccgnu2 -lz -ldl -lrt -pthread ../src/audio/libaudio.a(audio_decoder.o): In function `t_gsm_audio_decoder::dec ode(unsigned char*, unsigned short, short*, unsigned short)': /build/buildd/twinkle-0.9/src/audio/audio_decoder.cpp:152: undefined reference to `gsm_decode(gsm_state*, unsigned char*, short*)' ../src/audio/libaudio.a(audio_decoder.o): In function `~t_gsm_audio_decoder': /build/buildd/twinkle-0.9/src/audio/audio_decoder.cpp:140: undefined reference to `gsm_destroy(gsm_state*)' /build/buildd/twinkle-0.9/src/audio/audio_decoder.cpp:140: undefined reference to `gsm_destroy(gsm_state*)' /build/buildd/twinkle-0.9/src/audio/audio_decoder.cpp:140: undefined reference to `gsm_destroy(gsm_state*)' ../src/audio/libaudio.a(audio_decoder.o): In function `t_gsm_audio_decoder': /build/buildd/twinkle-0.9/src/audio/audio_decoder.cpp:136: undefined reference to `gsm_create()' /build/buildd/twinkle-0.9/src/audio/audio_decoder.cpp:136: undefined reference to `gsm_create()' ../src/audio/libaudio.a(audio_encoder.o): In function `t_gsm_audio_encoder::enc ode(short*, unsigned short, unsigned char*, unsigned short, bool&)': /build/buildd/twinkle-0.9/src/audio/audio_encoder.cpp:140: undefined reference to `gsm_encode(gsm_state*, short*, unsigned char*)' ../src/audio/libaudio.a(audio_encoder.o): In function `~t_gsm_audio_encoder': /build/buildd/twinkle-0.9/src/audio/audio_encoder.cpp:132: undefined reference to `gsm_destroy(gsm_state*)' /build/buildd/twinkle-0.9/src/audio/audio_encoder.cpp:132: undefined reference to `gsm_destroy(gsm_state*)' /build/buildd/twinkle-0.9/src/audio/audio_encoder.cpp:132: undefined reference to `gsm_destroy(gsm_state*)' ../src/audio/libaudio.a(audio_encoder.o): In function `t_gsm_audio_encoder': /build/buildd/twinkle-0.9/src/audio/audio_encoder.cpp:128: undefined reference to `gsm_create()' /build/buildd/twinkle-0.9/src/audio/audio_encoder.cpp:128: undefined reference to `gsm_create()' collect2: ld returned 1 exit status This looks like it's expecting C++ linkage, but it's a C library. It shouldn't have the complete prototype for the function for a C library. Kurt -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]