Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 112820 - gnubg-0.14.3 fails to emerge
Summary: gnubg-0.14.3 fails to emerge
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Games
URL: http://lists.gnu.org/archive/html/bug...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-17 07:09 UTC by Denis Dupeyron (RETIRED)
Modified: 2006-08-28 02:42 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
gnubg-0.14.3.ebuild (gnubg-0.14.3.ebuild,2.53 KB, text/plain)
2005-11-17 07:12 UTC, Denis Dupeyron (RETIRED)
Details
gnubg-0.14.3-font3d.diff (gnubg-0.14.3-font3d.diff,972 bytes, patch)
2005-11-17 07:14 UTC, Denis Dupeyron (RETIRED)
Details | Diff
gnubg-0.14.3.ebuild.diff (gnubg-0.14.3.ebuild.diff,403 bytes, patch)
2006-07-19 12:25 UTC, Denis Dupeyron (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Denis Dupeyron (RETIRED) gentoo-dev 2005-11-17 07:09:30 UTC
Emerging gnubg-0.14.3 returns the following error :
./board3d/libboard3d.a(font3d.o):(.gnu.linkonce.r._ZTV13MyOutlineFont+0x20):
undefined reference to `FTGLOutlineFont::MakeGlyph(unsigned int)'
collect2: ld returned 1 exit status

The fix was found in the gnubg mailing-list archive at
http://lists.gnu.org/archive/html/bug-gnubg/2005-09/msg00009.html

I have created a small patch for it and added the corresponding epatch statement
to the ebuild.

Reproducible: Always
Steps to Reproduce:
1. emerge =games-board/gnubg-0.14.3
Actual Results:  
./board3d/libboard3d.a(font3d.o):(.gnu.linkonce.r._ZTV13MyOutlineFont+0x20):
undefined reference to `FTGLOutlineFont::MakeGlyph(unsigned int)'
collect2: ld returned 1 exit status

Expected Results:  
Should emerge without producing an error.

emerge info :

Portage 2.0.53_rc7 (default-linux/x86/2005.1, gcc-3.4.4, glibc-2.3.5-r3,
2.6.14-ck4 i686)
=================================================================
System uname: 2.6.14-ck4 i686 Mobile Intel(R) Pentium(R) 4 - M CPU 2.00GHz
Gentoo Base System version 1.12.0_pre10
dev-lang/python:     2.3.5, 2.4.2
sys-apps/sandbox:    1.2.13
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.5.20-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -pipe -Os -fomit-frame-pointer -fno-ident -fforce-addr
-ftracer -fweb -falign-functions=4 -ffast-math"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium4 -pipe -Os -fomit-frame-pointer -fno-ident -fforce-addr
-ftracer -fweb -falign-functions=4 -ffast-math -fvisibility-inlines-hidden
-D_FILE_OFFSET_BITS=64"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LDFLAGS="-Wl,-O1 -Wl,--sort-common"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X aac acpi alsa audiofile avi bash-completion berkdb bitmap-fonts bzip2
cdparanoia cjk crypt cups dts dv dvd dvdread edl emboss encode exif expat fam
firefox foomaticdb fortran gdbm gif glibc-omitfp glitz glut gmp gnome gtk gtk2
hal howl i8x0 imlib ipv6 java jpeg lcms libg++ libwww live logrotate lzo mad
matroska mikmod mmx mmxext mng motif moznocompose moznoirc moznomail mozsvg mp3
mpeg ncurses nls nptl nptlonly nsplugin ogg oggvorbis opengl oss pam pdflib perl
pic plotutils png python quicktime readline rle rtc samba sdl spell sse sse2 ssl
svg tcpd theora tiff truetype truetype-fonts type1-fonts udev unicode usb
userlocales vorbis win32codecs xanim xml2 xv xvid xvmc zlib userland_GNU
kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LINGUAS, MAKEOPTS
Comment 1 Denis Dupeyron (RETIRED) gentoo-dev 2005-11-17 07:12:05 UTC
Created attachment 73090 [details]
gnubg-0.14.3.ebuild
Comment 2 Denis Dupeyron (RETIRED) gentoo-dev 2005-11-17 07:14:01 UTC
Created attachment 73091 [details, diff]
gnubg-0.14.3-font3d.diff
Comment 3 Denis Dupeyron (RETIRED) gentoo-dev 2006-07-19 12:25:51 UTC
Created attachment 92228 [details, diff]
gnubg-0.14.3.ebuild.diff

Here's a diff against the current version of gnubg-0.14.3 as discussed yesterday on irc with SpanKY and Mr. Bones. In our discussion there was an allusion to removing the gnuconfig_update statement, as the games eclass was doing this. It looks to me that this used to be the case but not anymore, or am I just being shortsighted as usual ?

Please tell me if you'd like me to commit this myself. This bug is getting old, so I'm even ready to add my name to the metadata if that's the price to pay to get it in portage... ;o)

Denis.
Comment 4 Mr. Bones. (RETIRED) gentoo-dev 2006-07-19 14:41:43 UTC
The reason the bug has been open for so long is because it doesn't fail for me and I haven't heard an explaination why it fails.  I don't have a problem with the patch per se, I just don't like patching stuff when it's not obvious why the patch is needed.  If you can explain what exactly is broken so I can reproduce the problem here, that'd be great.
Comment 5 Denis Dupeyron (RETIRED) gentoo-dev 2006-07-20 12:09:52 UTC
(In reply to comment #4)
> The reason the bug has been open for so long is because it doesn't fail for me
> and I haven't heard an explaination why it fails.  I don't have a problem with
> the patch per se, I just don't like patching stuff when it's not obvious why
> the patch is needed.  If you can explain what exactly is broken so I can
> reproduce the problem here, that'd be great.

Do you build gnubg with gtk and opengl USE flags ? If you don't, you can't have the issue, as you need both these USE flags enabled to make use of FTGL.

I'm really not good at C++, but here's what I understand. A 'MyOutlineFont' class is defined, based on FTGLOutlineFont, in order to avoid using FTGLOutlineFont::Render and speed-up rendering. This fails at link time because the new class can't obviously access FTGLOutlineFont::MakeGlyph which is a private virtual. I suppose this used to work with older versions of FTGL.

gnubg-0.14.3 is an old thing, and 3D rendering has certainly made a lot of progress since it was released. Even my not so recent Athlon XP 1600+ with 256 MB of RAM and a Geforce 3 Ti 200 has no issue rendering gnubg in 3D with the proposed patch (not that I like gnubg in 3D, though). This makes the trick of shunting FTGLOutlineFont::Render less necessary nowadays. And for those who still have machines old enough to suffer from rendering slowdowns in 3D, they can either build without opengl and/or simply not use the 3D boards since they are, thank Zeus, not mandatory.

Denis.
Comment 6 Mr. Bones. (RETIRED) gentoo-dev 2006-07-20 12:27:18 UTC
It builds fine for me with:

USE="X args esd gdbm gtk opengl python readline nls" ebuild ./gnubg-0.14.3.ebuild clean install

for both versions of ftgl in portage.

Here's my emerge --info:

Portage 2.1.1_pre3-r1 (default-linux/x86/2006.0, gcc-3.4.6, glibc-2.3.6-r4, 2.6.17-rc4 i686)
=================================================================
System uname: 2.6.17-rc4 i686 AMD Athlon(tm) Processor
Gentoo Base System version 1.6.15
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
ccache version 2.3 [enabled]
app-admin/eselect-compiler: [Not Present]
dev-lang/python:     2.3.5-r2, 2.4.3-r1
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.3
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.16.1-r3
sys-devel/gcc-config: 1.3.13-r3
sys-devel/libtool:   1.3.5, 1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-mtune=athlon -O3 -pipe -Wall"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config /var/bind"
CONFIG_PROTECT_MASK="/etc/X11/app-defaults /etc/X11/rstart /etc/X11/serverconfig /etc/X11/starthere /etc/X11/xdm /etc/bash_completion /etc/env.d /etc/gconf /etc/init.d /etc/pango /etc/revdep-rebuild /etc/sound/events /etc/ssmtp /etc/terminfo /usr/lib/X11/xkb"
CXXFLAGS="-mtune=athlon -O3 -Wall -Wno-deprecated"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache cvs distcc distlocks metadata-transfer parallel-fetch sandbox sfperms"
GENTOO_MIRRORS="http://mirrors.acm.cs.rpi.edu/gentoo/ http://gentoo.osuosl.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"
LANG="C"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/home/msterret/gentoo-x86"
PORTDIR_OVERLAY="/home/msterret/src/portage-overlay"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 3dnow 3dnowex 3dnowext X aac alsa apache2 apm arts artworkextra avi bash-completion berkdb bitmap-fonts browserplugin bzip2 cli crypt cscope cups divx4linux dlloader dri dvd eds encode esd firefox flac foomaticdb gdbm gif gimpprint gnome gpm gstreamer gtk gtk2 isdnlog java joystick jpeg libg++ libwww live lzo mad matroska mikmod mmx mmx2 mmxext moznocompose moznoirc moznomail mp3 mpeg musepack ncurses network nomotif noreiserfs nptl nsplugin nvidia ogg opengl oss pam pcre pdflib perl png ppds pppd python quicktime readline real reflection sdl session spell spl ssl svg tcpd theora tiff truetype truetype-fonts type1-fonts udev userlocales vorbis win32codecs xml xmms xorg xv zlib elibc_glibc input_devices_keyboard input_devices_mouse kernel_linux userland_GNU video_cards_vesa video_cards_vga video_cards_dummy video_cards_nvidia video_cards_nv"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 7 Denis Dupeyron (RETIRED) gentoo-dev 2006-07-25 11:29:10 UTC
I can confirm the whole thing is due to FTGL being compiled with -fvisibility-inline-hidden. Note that gnubg doesn't care being built with it or not (which seems logical).

Now the question is, since -fvisibility-inline-hidden is on the "you're on your own" flag list (at least for some devs), is it worth opening a new bug for FTGL or not ?

Denis.
Comment 8 Mr. Bones. (RETIRED) gentoo-dev 2006-07-25 12:34:32 UTC
I added strip-flags to the latest ftgl ebuild.  Can you verify that it fixes things up for you please?
Comment 9 Denis Dupeyron (RETIRED) gentoo-dev 2006-07-26 10:05:30 UTC
(In reply to comment #8)
> I added strip-flags to the latest ftgl ebuild.  Can you verify that it fixes
> things up for you please?

It does, thanks a lot.
Denis.
Comment 10 Mr. Bones. (RETIRED) gentoo-dev 2006-07-26 11:04:58 UTC
great, thanks for tracking this down.
Comment 11 Jozsef Daniel 2006-08-28 02:42:33 UTC
This update also fixes the amd64 arch "recompile with -fPIC" error when building anything that depends on FTGL.