Bug 178354 - pykde4 fails to compile
Summary: pykde4 fails to compile
Status: RESOLVED FIXED
Alias: None
Product: bindings
Classification: Developer tools
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: kde-bindings
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-21 10:27 UTC by Benjamin Schulz
Modified: 2009-01-05 20:56 UTC (History)
8 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Schulz 2008-12-21 10:27:52 UTC
Version:           4.1.85 (4.2 Beta 2) (using Devel)
Compiler:          gcc-4.1.2 
OS:                Linux
Installed from:    Compiled sources

Trying to compile pykde4 (for kde-4.1.85, or Kde-4.2 Beta 2) fails with


/usr/include/python2.5/pyconfig.h:948:1: Warnung: »_XOPEN_SOURCE« redefiniert
<Kommandozeile>:1:1: Warnung: dies ist die Stelle der vorherigen Definition
[100%] Building CXX object python/pykde4/CMakeFiles/python_module_PyKDE4_soprano.dir/sip/soprano/sipsopranopart7.o
In Datei, eingefügt von /usr/include/python2.5/Python.h:13,
von /usr/include/python2.5/sip.h:28,
von /var/tmp/portage/kde-base/pykde4-4.1.85/work/pykde4_build/python/pykde4/sip/soprano/sipAPIsoprano.h:11,
von /var/tmp/portage/kde-base/pykde4-4.1.85/work/pykde4_build/python/pykde4/sip/soprano/sipsopranopart7.cpp:7:
/usr/include/python2.5/pyconfig.h:948:1: Warnung: »_XOPEN_SOURCE« redefiniert
<Kommandozeile>:1:1: Warnung: dies ist die Stelle der vorherigen Definition
Linking CXX shared library ../../lib/pykde/soprano.so
[100%] Built target python_module_PyKDE4_soprano
Linking CXX shared library ../../lib/pykde/plasma.so
CMakeFiles/python_module_PyKDE4_plasma.dir/sip/plasma/sipplasmapart0.o: In function `void* qMetaTypeConstructHelper<Plasma::Containment::StyleOption>(Plasma::Containment::StyleOption const*)':
sipplasmapart0.cpp:(.text._Z24qMetaTypeConstructHelperIN6Plasma11Containment11StyleOptionEEPvPKT_[void* qMetaTypeConstructHelper<Plasma::Containment::StyleOption>(Plasma::Containment::StyleOption const*)]+0x2f): undefined reference to `Plasma::Containment::StyleOption::StyleOption(Plasma::Containment::StyleOption const&)'
sipplasmapart0.cpp:(.text._Z24qMetaTypeConstructHelperIN6Plasma11Containment11StyleOptionEEPvPKT_[void* qMetaTypeConstructHelper<Plasma::Containment::StyleOption>(Plasma::Containment::StyleOption const*)]+0x4e): undefined reference to `Plasma::Containment::StyleOption::StyleOption()'
CMakeFiles/python_module_PyKDE4_plasma.dir/sip/plasma/sipplasmapart6.o: In function `init_Plasma_Containment_StyleOption':
sipplasmapart6.cpp:(.text+0x4c8f): undefined reference to `Plasma::Containment::StyleOption::StyleOption(QStyleOptionGraphicsItem const&)'
sipplasmapart6.cpp:(.text+0x4cbe): undefined reference to `Plasma::Containment::StyleOption::StyleOption()'
sipplasmapart6.cpp:(.text+0x4cfd): undefined reference to `Plasma::Containment::StyleOption::StyleOption(Plasma::Containment::StyleOption const&)'
collect2: ld gab 1 als Ende-Status zurück
make[2]: *** [lib/pykde/plasma.so] Fehler 1
make[1]: *** [python/pykde4/CMakeFiles/python_module_PyKDE4_plasma.dir/all] Fehler 2
make: *** [all] Fehler 2
*
* ERROR: kde-base/pykde4-4.1.85 failed.
* Call stack:
* ebuild.sh, line 49: Called src_compile
* environment, line 3678: Called kde4-meta_src_compile
* environment, line 2819: Called kde4-base_src_make
* environment, line 2580: Called cmake-utils_src_make
* environment, line 991: Called die
* The specific snippet of code:
* emake "$@" || die "Make failed!";
* The die message: 




Basic data of my systems are:

Portage 2.2_rc18 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.27-gentoo-r6 i686)
=================================================================
System uname: Linux-2.6.27-gentoo-r6-i686-Intel-R-_Core-TM-2_Duo_CPU_T9300_@_2.50GHz-with-glibc2.0
Timestamp of tree: Sun, 21 Dec 2008 06:35:01 +0000
ccache version 2.4 [disabled]
app-shells/bash: 3.2_p33
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python: 2.5.2-r7
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache: 2.4-r7
dev-util/cmake: 2.6.2
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox: 1.2.18.1-r2
sys-devel/autoconf: 2.13, 2.61-r2
sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils: 2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool: 1.5.26
virtual/os-headers: 2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -mtune=prescott -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -mtune=prescott -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="de_DE@euro"
LC_ALL="de_DE@euro"
LDFLAGS="-Wl,-O1"
LINGUAS="de en en_GB"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/wschlich-testing /usr/portage/local/layman/kde-crazy /usr/portage/local/layman/berkano /usr/portage/local/layman/sunrise /usr/portage/local/layman/science"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="7zip X a52 aac acl acpi ads aften alsa amrnb apm arts aspell async automount avahi berkdb bittorrent bzip2 cairo cardbus cdaudio cdparanoia cdr cdrom cern cli consolekit context contrast cpudetection cracklib crypt cups custom-optimization cvs dbus dga disk-partition djvu dri dts dv dvb dvd dvdrdvdread dvi dx dxr2 dxr3-audio-denoise eds em84xx emacs embedded emovix encode excel exif exiv2 extra fam ffmpeg fftw filepicker firefox flac fontconfig foomaticdb fortran fortran95 fpx ftp gadu gamess gd gdbm general ggi gif gimp git glut glw gnome-print gnomecd gnuplot gphoto2 gpm grammar graphics graphviz groupwise gs gstreamer gtk gtk-perl gtkhtml gtkspell gzip hal hdaps hdri html htmlhandbook http humanities iconv ieee1394 imagemagick imlib imlib2 ipv6 ipw4965 isdnlog java jbig joystick jpeg jpeg2k kde kpathsea lapack laptop latex ldap libwww lm_sensors logitech-mouse lyx lzma lzo md5sum mdnsresponder-compat messenger midi mikmod mjpeg mmx mmxext mng motif mp3 mp4 mp4live mpeg mpeg2 mplayer mudflap musepack mysql ncurses network networkmanager nls nptl nptlonly nsplugin nuv octave office ogg ogg123 ogm omega openexr opengl opengl-video openvpn pam parport parted pascal passwdqc pcre pdf perl player plotutils png pop postscript ppds pppd preview-latex ps pstricks publishers python qq qt3 qt3support qt4 quicktime quotas radio rar raw readline realmedia reflection rpm rtc rtf rtsp samba scanner science scv sdl semantic-desktop session smp sms sndfile spell spl sse sse2 ssl ssse3 stream subversion svg svga swat sysfs syslog t1lib tcpd tex4ht theora threads thunderbird tiff tk totem truetype type1 unicode unzip usb v4l v4l2 vcd vcdx vdrvidix vorbis wav wavpack webkit win32codecs winbind wma wmf wxwindows x264 x86 xcomposite xemacs xetex xext xine xml xmlreader xmlwriter xorg xprint xulrunner xv xvid xvmc zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop emptyextplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics evdev joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de en en_GB" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa vga apm"
Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Gavin Pryke 2009-01-01 22:29:40 UTC
I am on Gentoo as well but compiling KDE from trunk using kdesvn-build.

python-2.5.2 installed into ~/kde
sip-4.7.9
PyQt-4.4.4

Trying to build pykde4 from kdebindings fails with same error, curious how we are both on Gentoo, maybe that is something to do with it? I've been unable to build pykde4 from trunk since i started using kdesvn-build last year :(

CMakeFiles/python_module_PyKDE4_plasma.dir/sip/plasma/sipplasmapart0.o: In function `void* qMetaTypeConstructHelper<Plasma::Containment::StyleOption>(Plasma::Containment::StyleOption const*)':
/home/kde4test/qt4/include/QtCore/qmetatype.h:123: undefined reference to `Plasma::Containment::StyleOption::StyleOption(Plasma::Containment::StyleOption const&)'
/home/kde4test/qt4/include/QtCore/qmetatype.h:122: undefined reference to `Plasma::Containment::StyleOption::StyleOption()'
CMakeFiles/python_module_PyKDE4_plasma.dir/sip/plasma/sipplasmapart6.o: In function `init_Plasma_Containment_StyleOption':
/home/kde4test/kdesvn/build/kdebindings/python/pykde4/sipplasmapart6.cpp:4788: undefined reference to `Plasma::Containment::StyleOption::StyleOption(QStyleOptionGraphicsItem const&)'
/home/kde4test/kdesvn/build/kdebindings/python/pykde4/sipplasmapart6.cpp:4764: undefined reference to `Plasma::Containment::StyleOption::StyleOption()'
/home/kde4test/kdesvn/build/kdebindings/python/pykde4/sipplasmapart6.cpp:4776: undefined reference to `Plasma::Containment::StyleOption::StyleOption(Plasma::Containment::StyleOption const&)'
collect2: ld returned 1 exit status
distcc[10819] ERROR: compile (null) on localhost failed
make[2]: *** [lib/pykde/plasma.so] Error 1
make[1]: *** [python/pykde4/CMakeFiles/python_module_PyKDE4_plasma.dir/all] Error 2
Comment 2 Benjamin Schulz 2009-01-01 23:32:21 UTC
Many others have the same bug:

http://www.gentoo.ru/node/12855

However, I believe the reason for it coming only in view of gentoo users, is, that gentoo users are actually compiling kde itself.

Ohter distros use precompiled packages.

However, this bug is very problematic. For example, the new printing module of KDE4 depends on pykde4. It cannot be, that all those, who compile kde4 by themselves cannot install the printer module because of this stupid pykde4 failure.
Comment 3 stefnn 2009-01-02 19:39:50 UTC
same problem here with gentoo ebuild from kde-testing overlay with both
pykde4-4.1.85 and pykde4-4.1.87.
Comment 4 Simon Edwards 2009-01-03 10:00:59 UTC
Which compiler are you guys using?
Comment 5 Claudio Girlanda 2009-01-03 12:13:37 UTC
Hi, I confirm this error.

(In reply to comment #4)
> Which compiler are you guys using?

I have test
gcc 4.1.2 (gcc-config: i686-pc-linux-gnu-4.1.2)
gcc 4.3.2 (gcc-config: i686-pc-linux-gnu-4.3.2)

with the same error.

I have try to download kdebindings 4.1.85 source and compile fail with same error. Now I check with 4.1.87; I suspect problem is in kdelibs compilations.

Comment 6 stefnn 2009-01-03 13:04:00 UTC
using gcc version 4.1.2 as above.
Comment 7 Benjamin Schulz 2009-01-03 14:20:21 UTC
I tested it with pykde4-1.87.
Under my system with gcc 4.1.2 under CFLAGS="-O2 -mtune=prescott -pipe -fomit-frame-pointer", compilation fails with the same error.

By the way, I think this bug should get more votes and it is more severe than "normal".
Comment 8 Gökmen GÖKSEL 2009-01-03 22:17:03 UTC
(In reply to comment #7)
> I tested it with pykde4-1.87.
> Under my system with gcc 4.1.2 under CFLAGS="-O2 -mtune=prescott -pipe
> -fomit-frame-pointer", compilation fails with the same error.
I can build it successfully under Pardus 2008 with gcc 4.3.2 and the following settings;

cflags = -mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2

same for cxxflags

And we also build all kde packages from source..
Comment 9 Simon Edwards 2009-01-03 23:57:13 UTC
When I run this command below I get the following output:

    strings libplasma.so | c++filt | grep Plasma::Containment::StyleOption

Plasma::Containment::StyleOption::StyleOption(QStyleOptionGraphicsItem const&)
Plasma::Containment::StyleOption::StyleOption(QStyleOptionGraphicsItem const&)
Plasma::Containment::StyleOption::StyleOption(Plasma::Containment::StyleOption const&)
Plasma::Containment::StyleOption::StyleOption(Plasma::Containment::StyleOption const&)
Plasma::Containment::StyleOption::StyleOption()
Plasma::Containment::StyleOption::StyleOption()

This shows that my libplasma contains the needed StyleOption symbols. People who are having trouble with this issue, should also check their libplasma and see if it contains StyleOption. The real problem appears to be in the compilation of libplasma.

The only special thing I can see about StyleOption (defined in containment.h) is that it is a nested class inside an exported class. StyleOption itself doesn't have its own PLASMA_EXPORT. Maybe there is a difference in the compilers with respect to has this is handled. Should the nested class also be exported?? Perhaps someone could try added a PLASMA_EXPORT to the StyleOption declaration and see if that helps.

Comment 10 Benjamin Schulz 2009-01-04 00:25:28 UTC
Thank you simon.

On my system, after cd /usr/lib and
strings libplasma.so | c++filt | grep Plasma::Containment::StyleOption

there is NO output. I repeat no output.
If I type strings libplasma.so | c++filt | grep Plasma::Containment I get the following output:

Plasma::Containment::staticMetaObject
Plasma::Containment::activity() const
Plasma::Containment::drawWallpaper()
Plasma::Containment::wallpaper() const
Plasma::Containment::Containment(QGraphicsItem*, QString const&, unsigned int)
Plasma::Containment::containmentType() const
Plasma::Containment::showDropZone(QPoint)
Plasma::Containment::screen() const
Plasma::Containment::desktop() const
Plasma::Containment::toolBoxItem() const
Plasma::Containment::openToolBox()
Plasma::Containment::closeToolBox()
Plasma::Containment::setToolBoxOpen(bool)
Plasma::Containment::metaObject() const
Plasma::Containment::contextChanged(Plasma::Context*)
Plasma::Containment::configureRequested(Plasma::Containment*)
Plasma::Containment::screenChanged(int, int, Plasma::Containment*)
Plasma::Containment::showAddWidgetsInterface(QPointF const&)
Plasma::Containment::addSiblingContainment(Plasma::Containment*)
Plasma::Containment::addSiblingContainment()
Plasma::Containment::toolBoxToggled()
Plasma::Containment::zoomRequested(Plasma::Containment*, Plasma::ZoomDirection)
Plasma::Containment::appletRemoved(Plasma::Applet*)
Plasma::Containment::appletAdded(Plasma::Applet*, QPointF const&)
Plasma::Containment::qt_metacast(char const*)
Plasma::Containment::applets() const
Plasma::Containment::addToolBoxAction(QAction*)
Plasma::Containment::showConfigurationInterface()
Plasma::Containment::removeToolBoxAction(QAction*)
Plasma::Containment::resizeEvent(QGraphicsSceneResizeEvent*)
Plasma::Containment::corona() const
non-virtual thunk to Plasma::Containment::~Containment()
non-virtual thunk to Plasma::Containment::~Containment()
Plasma::Containment::~Containment()
non-virtual thunk to Plasma::Containment::mouseReleaseEvent(QGraphicsSceneMouseEvent*)
Plasma::Containment::mouseReleaseEvent(QGraphicsSceneMouseEvent*)
non-virtual thunk to Plasma::Containment::mousePressEvent(QGraphicsSceneMouseEvent*)
Plasma::Containment::mousePressEvent(QGraphicsSceneMouseEvent*)
non-virtual thunk to Plasma::Containment::mouseMoveEvent(QGraphicsSceneMouseEvent*)
Plasma::Containment::mouseMoveEvent(QGraphicsSceneMouseEvent*)
non-virtual thunk to Plasma::Containment::wheelEvent(QGraphicsSceneWheelEvent*)
Plasma::Containment::wheelEvent(QGraphicsSceneWheelEvent*)
non-virtual thunk to Plasma::Containment::dragMoveEvent(QGraphicsSceneDragDropEvent*)
Plasma::Containment::dragMoveEvent(QGraphicsSceneDragDropEvent*)
Plasma::Containment::Containment(QObject*, QList<QVariant> const&)
Plasma::Containment::Containment(QObject*, QList<QVariant> const&)
Plasma::Containment::setFormFactor(Plasma::FormFactor)
non-virtual thunk to Plasma::Containment::keyPressEvent(QKeyEvent*)
Plasma::Containment::keyPressEvent(QKeyEvent*)
non-virtual thunk to Plasma::Containment::sceneEventFilter(QGraphicsItem*, QEvent*)
Plasma::Containment::sceneEventFilter(QGraphicsItem*, QEvent*)
Plasma::Containment::clearApplets()
Plasma::Containment::focusPreviousApplet()
Plasma::Containment::focusNextApplet()
non-virtual thunk to Plasma::Containment::itemChange(QGraphicsItem::GraphicsItemChange, QVariant const&)
Plasma::Containment::itemChange(QGraphicsItem::GraphicsItemChange, QVariant const&)
Plasma::Containment::removeAssociatedWidget(QWidget*)
Plasma::Containment::addAssociatedWidget(QWidget*)
Plasma::Containment::setLocation(Plasma::Location)
Plasma::Containment::~Containment()
non-virtual thunk to Plasma::Containment::~Containment()
non-virtual thunk to Plasma::Containment::~Containment()
Plasma::Containment::~Containment()
Plasma::Containment::saveContents(KConfigGroup&) const
Plasma::Containment::save(KConfigGroup&) const
Plasma::Containment::destroy(bool)
Plasma::Containment::qt_metacall(QMetaObject::Call, int, void**)
Plasma::Containment::destroy()
Plasma::Containment::setActivity(QString const&)
Plasma::Containment::setWallpaper(QString const&, QString const&)
Plasma::Containment::setDrawWallpaper(bool)
Plasma::Containment::enableAction(QString const&, bool)
Plasma::Containment::setScreen(int, int)
Plasma::Containment::restore(KConfigGroup&)
Plasma::Containment::setContainmentType(Plasma::Containment::Type)
Plasma::Containment::init()
Plasma::Containment::Containment(QGraphicsItem*, QString const&, unsigned int)
non-virtual thunk to Plasma::Containment::dragEnterEvent(QGraphicsSceneDragDropEvent*)
Plasma::Containment::dragEnterEvent(QGraphicsSceneDragDropEvent*)
Plasma::Containment::listContainmentsForMimetype(QString const&)
Plasma::Containment::addApplet(Plasma::Applet*, QPointF const&, bool)
Plasma::Containment::addApplet(QString const&, QList<QVariant> const&, QRectF const&)
Plasma::Containment::showContextMenu(QPointF const&, QPoint const&)
non-virtual thunk to Plasma::Containment::contextMenuEvent(QGraphicsSceneContextMenuEvent*)
Plasma::Containment::contextMenuEvent(QGraphicsSceneContextMenuEvent*)
Plasma::Containment::restoreContents(KConfigGroup&)
non-virtual thunk to Plasma::Containment::dropEvent(QGraphicsSceneDragDropEvent*)
Plasma::Containment::dropEvent(QGraphicsSceneDragDropEvent*)
Plasma::Containment::listContainments(QString const&, QString const&)
Comment 11 Claudio Girlanda 2009-01-04 01:16:45 UTC
Ok, in my system is the same:

>On my system, after cd /usr/lib and strings libplasma.so | c++filt | grep >Plasma::Containment::StyleOption 
>there is NO output

I compile kdelibs from source (not gentoo ebuild) with very simple cmake and the result is the same.

Now I try:
>Perhaps someone could try added a PLASMA_EXPORT to the StyleOption declaration and see if that helps. 



Comment 12 Benjamin Schulz 2009-01-04 01:25:22 UTC
Simon wrote:
Should the nested class also be exported??

Yes, It must be! Anything else would be a kind of inofficial compiler hack which may only work on certain architectures and (faulty) gcc versions. According to c++ rules, all symbols must be explicitely exported.  

In fact, after adding PLASMA_EXPORT to the StyleOption class in containment.h, I could compile pykde4 sucessfully!
Comment 13 Claudio Girlanda 2009-01-04 02:04:54 UTC
Thanks to Simon that point all in right direction...

Like Benjamin, i rebuild kdelibs via ebuild command changing:

kdelibs-4.1.87/plasma/containment.h:
change line 72
from
 class StyleOption : public QStyleOptionGraphicsItem
to
 class PLASMA_EXPORT StyleOption : public QStyleOptionGraphicsItem

Now, pykde4 compile fine.

Now I mail to ebuild mantainer for creating a patch for gentoo world, but I think is better including this explicit export in kde source.
Comment 14 Jeff 2009-01-04 07:27:23 UTC
hey Claudio, you're a life saver, Thanks !!!
Comment 15 Simon Edwards 2009-01-04 11:21:07 UTC
Claudio saw this bug on two gcc versions:

gcc 4.1.2 (gcc-config: i686-pc-linux-gnu-4.1.2)
gcc 4.3.2 (gcc-config: i686-pc-linux-gnu-4.3.2) 

I'm still left wondering which piece of software is at fault here. I'm using 4.3.2 here and don't have any problems. I guess the problem must be some where else in the tool chain.
Comment 16 Erik Boritsch 2009-01-04 12:38:20 UTC
AFAIK this bug is amd64 only. x86 seem to work.
Comment 17 kavol 2009-01-04 12:49:11 UTC
(In reply to comment #16)
> AFAIK this bug is amd64 only. x86 seem to work.

it failed on my x86 system too ...
Comment 18 Claudio Girlanda 2009-01-04 13:27:10 UTC
I am using x86.

For Simon:
When pykde4 fail to compile, i check:

a) change gcc (switch to 4.1.2), and recompile pykde4: failed
b) Searching, I find pykde4 ebuild is part of kdebindings official source. I download and compile kdebindings with both compiler and fail (same error)
c) In that moment, I suspect in kdelibs...and read your post.
d) Now I compile from official source kdelibs-4.1.87 and check with strings | c++... as you suggest:
- gcc 4.3.2 compile correctly
- gcc 4.1.2 compile correctly
I think problem is in "gentoo way".

Revert from snapshot (thanks to virtualization :-))) and:
1) set gcc 4.1.2 (with gcc-config) and manually ebuild kdelibs-4.1.87.ebuild compile 
libplasma has no symbol (thus is not correct)

2) set gcc 4.3.2 (with gcc-config) and manually ebuild kdelibs-4.1.87.ebuild compile 
libplasma has symbol (is correct)

Mmmmmm....
I look in portage... what change from 2 day ago?
I found: 

-rw-r--r--  1 portage portage   1757 Aug 19 20:37 gcc-4.3.1-r1.ebuild
-rw-r--r--  1 portage portage   1748 Jun 29  2008 gcc-4.3.1.ebuild
-rw-r--r--  1 root    root      2191 Jan  2 21:37 gcc-4.3.2-r2.ebuild
-rw-r--r--  1 root    root      1830 Dec 29 11:06 gcc-4.3.2.ebuild

At this moment I think gcc-4.3.2.ebuild dated dec 29 is the problem.

... reverting and recompiling...

Stay tuned :-))




Comment 19 Claudio Girlanda 2009-01-04 14:26:06 UTC
emerged gcc-4.3.2.ebuild dated dec 29.

kdelibs build correct...
...now I am confusing.

In this moment I am not able to reproduce error.

Tomorrow I check again...
Comment 20 Manuel Mommertz 2009-01-04 22:53:42 UTC
Logos manuel # cd /usr/kde/4.2/lib64/
Logos lib64 # strings libplasma.so | c++filt | grep Plasma::Containment::StyleOption
Logos lib64 # cd /home/kde-devel/kde/lib/
Logos lib # strings libplasma.so | c++filt | grep Plasma::Containment::StyleOption
Logos lib #

After that I added PLASMA_EXPORT and tadaaa:

Logos lib # cd /home/kde-devel/kde/lib/
Logos lib # strings libplasma.so | c++filt | grep Plasma::Containment::StyleOption
Plasma::Containment::StyleOption::StyleOption(QStyleOptionGraphicsItem const&)
Plasma::Containment::StyleOption::StyleOption(Plasma::Containment::StyleOption const&)
Plasma::Containment::StyleOption::StyleOption()
Plasma::Containment::StyleOption::StyleOption()
Plasma::Containment::StyleOption::StyleOption(QStyleOptionGraphicsItem const&)
Plasma::Containment::StyleOption::StyleOption(Plasma::Containment::StyleOption const&)
Logos lib #


So please add it at least to trunk.
Comment 21 Manuel Mommertz 2009-01-04 22:55:54 UTC
*** This bug has been confirmed by popular vote. ***
Comment 22 Simon Edwards 2009-01-05 20:56:31 UTC
SVN commit 906246 by sedwards:

BUG: 178354

StyleOption isn't being exported correctly on some versions of gcc.



 M  +1 -1      containment.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=906246