ballz version 1.0.1-2 failed to build on i386

Bug #765995 reported by Matthias Klose
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ballz (Ubuntu)
Fix Released
High
Unassigned
Oneiric
Fix Released
High
Unassigned

Bug Description

ballz version 1.0.1-2 failed to build on i386
Link to failed build: https://launchpad.net/ubuntu/+archive/test-rebuild-20110413/+buildjob/2446128

Direct link to the build log: https://launchpad.net/ubuntu/+archive/test-rebuild-20110413/+buildjob/2446128/+files/buildlog_ubuntu-natty-i386.ballz_1.0.1-2_FAILEDTOBUILD.txt.gz

This log snippet might be of interest, since it triggered the matcher 'Purging chroot-autobuild'.
Excerpt 1975 lines into the build log:

/build/buildd/ballz-1.0.1/src/sewersbackground.cpp:61: undefined reference to `makecol'
/build/buildd/ballz-1.0.1/src/sewersbackground.cpp:62: undefined reference to `makecol'
timer.o: In function `initTimer()':
/build/buildd/ballz-1.0.1/src/timer.cpp:50: undefined reference to `install_timer'
/build/buildd/ballz-1.0.1/src/timer.cpp:53: undefined reference to `install_int_ex'
collect2: ld returned 1 exit status
make[3]: *** [ballz] Error 1
make[3]: Leaving directory `/build/buildd/ballz-1.0.1/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/build/buildd/ballz-1.0.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/build/buildd/ballz-1.0.1'
dh_auto_build: make -j1 returned exit code 2
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
******************************************************************************
Build finished at 20110419-0240
FAILED [dpkg-buildpackage died]
Purging chroot-autobuild/build/buildd/ballz-1.0.1

Tags: ftbfs oneiric
Matthias Klose (doko)
Changed in ballz (Ubuntu):
importance: Undecided → High
Revision history for this message
Sylvain Beucler (beuc) wrote :

I believe there is a problem with your Allegro here. Looking at the trace, any symbol from allegro (key, play_sample(), etc.) is undefined.

Revision history for this message
Matthias Klose (doko) wrote :

no,

g++ -g -O2 -DALLEGRO_USE_CONSOLE -DBALLZ_DATA_PREFIX='"/usr/share/games/ballz"' -Wl,-Bsymbolic-functions -L/usr/lib -Wl,-Bsymbolic-functions -lalleg-4.2.2 -lguichan -lguichan_allegro -ldumb -laldmb -o ballz animatedtile.o ball.o blocktile.o breakingtile.o desertbackground.o doorbuttontile.o doortile.o fading.o firetile.o floorspiketile.o game.o goaltile.o hostiletile.o level.o levelhandler.o main.o music.o portaltile.o prisonbackground.o resourcehandler.o sewersbackground.o startile.o tilemap.o timer.o voidtile.o waterspikestile.o waterstartile.o watertile.o datawriter.o levelselector.o ballzlistbox.o ballzscrollarea.o

ld --as-needed is the default; you have to mention the object files before the libraries

Revision history for this message
Sylvain Beucler (beuc) wrote :

Thanks for the precision.

I'm not able to reproduce this problem under Debian wheezy/testing,
- with or without ld-gold installed
- even with LDFLAGS='-Wl,--as-needed' ./configure && make

$ ld --version
GNU gold (GNU Binutils for Debian 2.21.0.20110327) 1.11

$ LDFLAGS='-Wl,--as-needed' ./configure && make

=> g++ -g -O2 -DALLEGRO_USE_CONSOLE -DBALLZ_DATA_PREFIX='"/usr/local/share/ballz"' -Wl,--as-needed -L/usr/lib -lalleg-4.2.2 -lguichan -lguichan_allegro -ldumb -laldmb -o ballz animatedtile.o ball.o blocktile.o breakingtile.o desertbackground.o doorbuttontile.o doortile.o fading.o firetile.o floorspiketile.o game.o goaltile.o hostiletile.o level.o levelhandler.o main.o music.o portaltile.o prisonbackground.o resourcehandler.o sewersbackground.o startile.o tilemap.o timer.o voidtile.o waterspikestile.o waterstartile.o watertile.o datawriter.o levelselector.o ballzlistbox.o ballzscrollarea.o

=> OK

I'm surprised that with a pure, simple autoconf/automake project, such problem arises.
There may be something related to ordering -lalleg-4.2.2 -lguichan -lguichan_allegro, since Guichan depends on Allegro, however I'd like to know how to reproduce this.

I'm in the process of releasing a new upstream release, so I appreciate your input :)

Revision history for this message
Sylvain Beucler (beuc) wrote :

There was indeed a problem in upstream's configure.ac as it used LDFLAGS instead of LIBS to specify libs. I fixed it, but do you know why I can't reproduce the problem?

Changed in ballz (Ubuntu):
milestone: none → oneiric-alpha-3
Revision history for this message
Sylvain Beucler (beuc) wrote :

Hi,
I suggest you pull 1.0.2 from Debian.

Revision history for this message
Andreas Moog (ampelbein) wrote : Fixed in Oneiric

This bug is fixed with version 1.0.2-1 in Oneiric

Changed in ballz (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.