Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 102829 - emerge of crystalspace fails ~AMD64 (hardened problem)
Summary: emerge of crystalspace fails ~AMD64 (hardened problem)
Status: RESOLVED TEST-REQUEST
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: AMD64 Linux
: High normal
Assignee: Philip Walls (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-08-17 06:14 UTC by Attila Stehr
Modified: 2007-02-02 18:46 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Attila Stehr 2005-08-17 06:14:27 UTC
Looks like an glx issue - please see results.

Reproducible: Always
Steps to Reproduce:

magic atti # ACCEPT_KEYWORDS="~amd64" emerge -pvD crystalspace

These are the packages that I would merge, in order:

Calculating dependencies  ...done!
[ebuild  N    ] dev-games/crystalspace-0.99_pre20050518  -3ds -debug +mikmod
+mng +oggvorbis +openal +truetype 0 kB

Total size of downloads: 0 kB

Actual Results:  

MkDir1 ./out/linux/optimize/plugins/video/canvas/wxgl
C++ ./out/linux/optimize/plugins/video/canvas/wxgl/GLWXDriver2D.o
LinkPlugin wxgl.so
./out/linux/optimize/plugins/video/canvas/wxgl/GLWXDriver2D.o(.text+0xb67): In
function `csGraphics2DWX::GetProcAddress(char const*)':
: undefined reference to `glXGetProcAddress'
./out/linux/optimize/plugins/video/canvas/wxgl/GLWXDriver2D.o(.gnu.linkonce.t._ZN14csGraphics2DWX17eiOpenGLInterface14GetProcAddressEPKc+0x17):
In function `csGraphics2DWX::eiOpenGLInterface::GetProcAddress(char const*)':
: undefined reference to `glXGetProcAddress'
collect2: ld gab 1 als Ende-Status zur
Comment 1 Attila Stehr 2005-08-17 06:14:27 UTC
Looks like an glx issue - please see results.

Reproducible: Always
Steps to Reproduce:

magic atti # ACCEPT_KEYWORDS="~amd64" emerge -pvD crystalspace

These are the packages that I would merge, in order:

Calculating dependencies  ...done!
[ebuild  N    ] dev-games/crystalspace-0.99_pre20050518  -3ds -debug +mikmod
+mng +oggvorbis +openal +truetype 0 kB

Total size of downloads: 0 kB

Actual Results:  

MkDir1 ./out/linux/optimize/plugins/video/canvas/wxgl
C++ ./out/linux/optimize/plugins/video/canvas/wxgl/GLWXDriver2D.o
LinkPlugin wxgl.so
./out/linux/optimize/plugins/video/canvas/wxgl/GLWXDriver2D.o(.text+0xb67): In
function `csGraphics2DWX::GetProcAddress(char const*)':
: undefined reference to `glXGetProcAddress'
./out/linux/optimize/plugins/video/canvas/wxgl/GLWXDriver2D.o(.gnu.linkonce.t._ZN14csGraphics2DWX17eiOpenGLInterface14GetProcAddressEPKc+0x17):
In function `csGraphics2DWX::eiOpenGLInterface::GetProcAddress(char const*)':
: undefined reference to `glXGetProcAddress'
collect2: ld gab 1 als Ende-Status zurück

    g++ -o wxgl.so ./out/linux/optimize/plugins/video/canvas/wxgl/GLWXDriver2D.o
 -Wl,-O1 -lm -ldl -lnsl -L/usr/local/lib
./out/linux/optimize/libs/libcrystalspace_opengl.a
./out/linux/optimize/libs/libcrystalspace.a -lGL -lSM -lICE -L/usr/lib64 -lX11
-lXext -lpthread -lm -lpthread -lz -L/usr/lib64 -pthread -lwx_gtk2u-2.4
-L/usr/X11R6/lib -lwx_gtk2u_gl-2.4 -lGL -lGLU -lGL -lSM -lICE -L/usr/lib64 -lX11
-lXext -lpthread -lm -Wl,-O1 -lm -ldl -lnsl -L/usr/local/lib \
      -Wl,-soname,wxgl.so

...failed LinkPlugin wxgl.so ...
Copy wxgl.csplugin
MkDir1 ./out/linux/optimize/plugins/video/canvas/xextf86vm
C++ ./out/linux/optimize/plugins/video/canvas/xextf86vm/xextf86vm.o
...on 1000th target...


Expected Results:  
clean emerge

Portage 2.0.51.22-r2 (default-linux/amd64/2005.0, gcc-3.4.4, glibc-2.3.5-r1,
2.6.12-gentoo-r4 x86_64)
=================================================================
System uname: 2.6.12-gentoo-r4 x86_64 AMD Athlon(tm) 64 Processor 3000+
Gentoo Base System version 1.6.13
dev-lang/python:     2.3.5
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O3 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/
/usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/
/usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /usr/X11R6/bin/startx /etc/env.d"
CXXFLAGS="-march=athlon64 -O3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig candy distlocks sandbox severe sfperms strict"
GENTOO_MIRRORS="http://pandemonium.tiscali.de/pub/gentoo/
ftp://ftp.tu-clausthal.de/pub/linux/gentoo/
ftp://ftp.gentoo.mesh-solutions.com/gentoo/
http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/"
LANG="de_DE@euro"
LC_ALL="de_DE@euro"
LDFLAGS="-Wl,-O1"
LINGUAS="de"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="X a52 aac acpi alsa amd64 audiofile avi berkdb bitmap-fonts bzlib cdr crypt
cups curl dbus dga directfb dlloader dmalloc dpms dts dvd dvdr dvdread eds emacs
encode esd exif fam fame fat fbcon ffmpeg firefox flac foomaticdb fortran gdbm
gif gimpprint gnome gpm gstreamer gtk gtk2 hal hardened howl imagemagick imlib
ipv6 ithreads javascript jpeg jpeg2k kde lcms libsamplerate libwww lzo lzw
lzw-tiff mad matroska memlimit mikmod mjpeg mmap mng mozcalendar mozdevelop
mozsvg mp3 mpeg mpi ncurses nls nptl nptlonly ntfs nvidia ogg oggvorbis
on-the-fly-crypt openal openexr opengl pam pda pdflib perl png ppds python qt
quicktime readline real reiserfs sdl slang sndfile spell ssl svg symlink tcltk
tcpd test tetex tga theora threads tidy tiff toolbar truetype truetype-fonts
type1-fonts unicode usb userlocales videos vorbis wmf xine xml2 xmms xpm xprint
xtermtoolbar xv xvid xvmc yv12 zlib linguas_de userland_GNU kernel_linux
elibc_glibc"
Unset:  ASFLAGS, CTARGET, PORTDIR_OVERLAY
Comment 2 Donnie Berkholz (RETIRED) gentoo-dev 2005-08-17 10:05:56 UTC
Which driver are you using -- nvidia by any chance?
Comment 3 Attila Stehr 2005-08-17 11:39:59 UTC
yes, I use the nvidia driver --->

magic atti # emerge -pvD nvidia-glx

These are the packages that I would merge, in order:

Calculating dependencies    ...done!
[ebuild     UD] media-video/nvidia-kernel-1.0.6629-r4 [1.0.7667] 0 kB
[ebuild     UD] media-video/nvidia-glx-1.0.6629-r6 [1.0.7667] 0 kB

Total size of downloads: 0 kB
Comment 4 Donnie Berkholz (RETIRED) gentoo-dev 2005-08-17 11:58:26 UTC
http://www.flipcode.com/cgi-bin/fcmsg.cgi?thread_show=9165 is why I asked.
Comment 6 Attila Stehr 2005-08-17 15:22:06 UTC
So there is a solution. Does that mean the bug will be fixed soon?
Comment 7 Attila Stehr 2005-08-29 17:23:36 UTC
This is a hardened issue! proof:


I. installation works using gcc-vanilla
---------------------------------------

magic atti # emerge --info
Portage 2.0.51.22-r2 (default-linux/amd64/2005.0, gcc-3.4.4-vanilla,
glibc-2.3.5-r1, 2.6.12-gentoo-r4 x86_64)
=================================================================
System uname: 2.6.12-gentoo-r4 x86_64 AMD Athlon(tm) 64 Processor 3000+
Gentoo Base System version 1.6.13
dev-lang/python:     2.3.5
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O3 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/
/usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/
/usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /usr/X11R6/bin/startx /etc/env.d"
CXXFLAGS="-march=athlon64 -O3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig candy distlocks sandbox severe sfperms strict test"
GENTOO_MIRRORS="http://pandemonium.tiscali.de/pub/gentoo/
ftp://ftp.tu-clausthal.de/pub/linux/gentoo/
ftp://ftp.gentoo.mesh-solutions.com/gentoo/
http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/"
LANG="de_DE@euro"
LC_ALL="de_DE@euro"
LINGUAS="de"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="X a52 aac acpi alsa amd64 audiofile avi berkdb bitmap-fonts bzlib cdr crypt
cups curl dbus dga directfb dlloader dmalloc dpms dts dvd dvdr dvdread eds emacs
encode esd exif fam fame fat fbcon ffmpeg firefox flac foomaticdb fortran gdbm
gif gimpprint gnome gpm gstreamer gtk gtk2 hal hardened howl imagemagick imlib
ipv6 ithreads javascript jpeg jpeg2k kde lcms libsamplerate libwww lzo lzw
lzw-tiff mad matroska memlimit mikmod mjpeg mmap mng mozcalendar mozdevelop
mozsvg mp3 mpeg mpi ncurses nls nptl nptlonly ntfs nvidia ogg oggvorbis
on-the-fly-crypt openal openexr opengl pam pda pdflib perl png ppds python qt
quicktime readline real reiserfs sdl slang sndfile spell ssl svg symlink tcltk
tcpd test tetex tga theora threads tidy tiff toolbar truetype truetype-fonts
type1-fonts unicode usb userlocales videos vorbis wmf xine xml2 xmms xpm xprint
xtermtoolbar xv xvid xvmc yv12 zlib linguas_de userland_GNU kernel_linux
elibc_glibc"
Unset:  ASFLAGS, CTARGET, LDFLAGS, PORTDIR_OVERLAY


>>> dev-games/crystalspace-0.99_pre20050518 merged.
>>> Recording dev-games/crystalspace in "world" favorites file...

>>> clean: No packages selected for removal.

>>> Auto-cleaning packages ...

>>> No outdated packages were found on your system.


 * GNU info directory index is up-to-date.


magic atti # gcc-config -l
[1] x86_64-pc-linux-gnu-3.4.4
[2] x86_64-pc-linux-gnu-3.4.4-hardenednopie
[3] x86_64-pc-linux-gnu-3.4.4-hardenednopiessp
[4] x86_64-pc-linux-gnu-3.4.4-hardenednossp
[5] x86_64-pc-linux-gnu-3.4.4-vanilla *



II. installation does NOT work using the standard gcc
-----------------------------------------------------

magic atti # gcc-config 1
 * Switching to x86_64-pc-linux-gnu-3.4.4 compiler ...                         
                                                             [ ok ]
 * If you intend to use the gcc from the new profile in an already
 * running shell, please remember to do:

 *   # source /etc/profile

magic atti # source /etc/profile
magic atti # ACCEPT_KEYWORDS="~amd64" emerge -vD crystalspace
Calculating dependencies  ...done!
[...]
MkDir1 ./out/linux/optimize/plugins/video/cursor
C++ ./out/linux/optimize/plugins/video/cursor/cursor.o
LinkPlugin cscursor.so
Copy cscursor.csplugin
...failed updating 1 target(s)...
...updated 1149 target(s)...

!!! ERROR: dev-games/crystalspace-0.99_pre20050518 failed.
!!! Function src_compile, Line 52, Exitcode 1
!!! compile failed
!!! If you need support, post the topmost build error, NOT this status message.



III) so here's the workaround

a) gcc-config -l
        -> this shows you the number of the vanilla version
b) gcc-config -c <number of vanilla version here>
c) ACCEPT_KEYWORDS emerge -vD crystalspace

You may add oneshot to the emerge options to prevent crystalspace to be added to
your world file - I have no problem with that so I did not.



IIII. NO problems with further "emerge -pv planeshift" with standard gcc
------------------------------------------------------------------------

>>> dev-games/cel-0.99_pre20050518 merge
>>> games-rpg/planeshift-0.3.010 merged.d.




Special thanks go to Mr Kevin F. Quinn who told me to try it with gcc-vanilla!!!
(see bug #93862 comments #12+ for details)



So can this be fixed avoiding use of gcc-config twice?
Comment 8 Attila Stehr 2005-08-29 18:00:40 UTC
Ups I forgot source /etc/profile (when changing back), option "-c" is wrong and
for completeness as well - here's the (hopefully) exhaustive how-to-workaround ;-)

1) gcc-config -l
        -> this shows you the number of the vanilla and usual version

2) gcc-config <number of vanilla version here>
3) source /etc/profile
4) ACCEPT_KEYWORDS emerge -vD crystalspace

5) gcc-config <number of usual version>
6) source /etc/profile
7) emerge -vD planeshift
Comment 9 Attila Stehr 2005-08-29 18:02:29 UTC
Darn! At the moment 7) must be 

ACCEPT_KEYWORDS emerge -vD planeshift

sorry!
Comment 10 Attila Stehr 2005-08-29 19:04:01 UTC
same for crystalspace

btw: Where is the edit functionality for comments?!
Comment 11 Attila Stehr 2005-08-29 19:06:29 UTC
grrrrrrrrrrrrr plz forgive me its 04:04 (am) here ...

1) gcc-config -l
        -> this shows you the number of the vanilla and usual version

2) gcc-config <number of vanilla version here>
3) source /etc/profile
4) ACCEPT_KEYWORDS="~amd64" emerge -vD crystalspace

5) gcc-config <number of usual version>
6) source /etc/profile
7) ACCEPT_KEYWORDS="~amd64" emerge -vD planeshift
Comment 12 Tupone Alfredo gentoo-dev 2007-02-02 07:00:37 UTC
Can you see if this problem is still on crystalspace-1.0 ?
Comment 13 Kevin F. Quinn (RETIRED) gentoo-dev 2007-02-02 08:00:12 UTC
just for the record; "undefined symbol X" errors during link with the hardened toolchain are not so much caused by the hardened toolchain as such, it's just they become fatal (thanks to the default '-Wl,-z,now' behaviour).  When linked with the vanilla toolchain, the problem (a symbol is not resolved at link time) still exists, but doesn't cause the link to fail.  The effect can be that when the code is executed, the symbol can't be resolved and you get a segfault.  Other times the symbol is available via other means (separately dynamically loaded code, for example), and can successfully be bound lazily by the time the code containing the symbol reference is reached.  This does occur in the X code, due to the way upstream design their modules.
Comment 14 Attila Stehr 2007-02-02 18:46:07 UTC
(In reply to comment #12)
> Can you see if this problem is still on crystalspace-1.0 ?

------------ snip ----------------------
magic atti # ACCEPT_KEYWORDS="~amd64" emerge -pvD crystalspace

Calculating dependencies      ... done!
[blocks B     ] <=x11-base/xorg-x11-6.9 (is blocking x11-misc/util-macros-1.1.5)
------------ snip ----------------------

:-\ Looks like I have to move to modular X to give an answer to that question.
I'll report back when I've successfully done so.