Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 164113 - x11-libs/qt-embedded-3.x won't compile with gcc 4 on amd64
Summary: x11-libs/qt-embedded-3.x won't compile with gcc 4 on amd64
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-01-27 22:24 UTC by Boris Kropivnitsky
Modified: 2009-03-27 23:55 UTC (History)
1 user (show)

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


Attachments
64bit gcc4 fix (qt-embedded-3.3.8-castfix.patch,5.77 KB, patch)
2007-06-03 21:23 UTC, Christoph Mende (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Boris Kropivnitsky 2007-01-27 22:24:27 UTC
Stops with a bunch of invalid type casts. My guess is that this happens because of the mismatch of the pointer size between 32-bit and 64-bit architectures. See additional info for the error message.


Reproducible: Always

Steps to Reproduce:
1. ACCEPT_KEYWORDS="~amd64" emerge qt-embedded
2.
3.




-emb-auto/ -o .obj/release-shared-mt-emb-auto/qclipboard_qws.o kernel/qclipboard_qws.cpp
kernel/qfontmanager_qws.h:177: warning: âclass QCachePolicyâ has virtual functions but non-virtual destructor
kernel/qfontmanager_qws.h:188: warning: âclass QDefaultCachePolicyâ has virtual functions but non-virtual destructor
kernel/qwindowsystem_qws.h:223: warning: âclass QWSServer::KeyboardFilterâ has virtual functions but non-virtual destructor
kernel/qapplication_qws.cpp: In static member function âstatic void QApplication::setOverrideCursor(const QCursor&, bool)â:
kernel/qapplication_qws.cpp:1884: error: cast from âvoid*â to âintâ loses precision
kernel/qapplication_qws.cpp: In static member function âstatic void QApplication::restoreOverrideCursor()â:
kernel/qapplication_qws.cpp:1903: error: cast from âvoid*â to âintâ loses precision
kernel/qapplication_qws.cpp:1907: error: cast from âvoid*â to âintâ loses precision
kernel/qapplication_qws.cpp: In member function âint QApplication::qwsProcessEvent(QWSEvent*)â:
kernel/qapplication_qws.cpp:2135: error: cast from âvoid*â to âintâ loses precision
make[1]: *** [.obj/release-shared-mt-emb-auto/qapplication_qws.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/var/tmp/portage/qt-embedded-3.3.4-r1/work/qt-embedded-free-3.3.4/src'
make: *** [sub-src] Error 2

!!! ERROR: x11-libs/qt-embedded-3.3.4-r1 failed.
Call stack:
  ebuild.sh, line 1546:   Called dyn_compile
  ebuild.sh, line 937:   Called src_compile
  qt-embedded-3.3.4-r1.ebuild, line 85:   Called die
Comment 1 Richard Connon 2007-01-28 14:50:15 UTC
Changing various (int) or (unsigned int) casts to (long) and (unsigned long) seems to make it build further but make still stops at another problem:

make[3]: Entering directory `/var/tmp/portage/x11-libs/qt-embedded-3.3.4-r1/work/qt-embedded-free-3.3.4/tools/assistant'
/var/tmp/portage/x11-libs/qt-embedded-3.3.4-r1/work/qt-embedded-free-3.3.4/bin/uic -L /var/tmp/portage/x11-libs/qt-embedded-3.3.4-r1/work/qt-embedded-free-3.3.4/plugins finddialog.ui -o finddialog.h
make[3]: /var/tmp/portage/x11-libs/qt-embedded-3.3.4-r1/work/qt-embedded-free-3.3.4/bin/uic: Command not found
make[3]: *** [finddialog.h] Error 127
make[3]: Leaving directory `/var/tmp/portage/x11-libs/qt-embedded-3.3.4-r1/work/qt-embedded-free-3.3.4/tools/assistant'
make[2]: *** [sub-assistant] Error 2
make[2]: Leaving directory `/var/tmp/portage/x11-libs/qt-embedded-3.3.4-r1/work/qt-embedded-free-3.3.4/tools'
make[1]: *** [sub-tools] Error 2
make[1]: Leaving directory `/var/tmp/portage/x11-libs/qt-embedded-3.3.4-r1/work/qt-embedded-free-3.3.4'
make: *** [init] Error 2
Comment 2 Boris Kropivnitsky 2007-01-29 07:12:45 UTC
I too got it compiled by replacing ints with longs. I did not have missing uic error since I had regular qt-3 installed beforehand. uic is a tool that came with it on my machine (I wonder if qt-embedded should have dependency on qt then, or it must include uic otherwise?... but that probably would be a different issue). So, I got it compiled with these sort of fixes. Unfortunately I cannot tell if it actually works because I have nothing to test qt-embedded with.
Comment 3 Caleb Tennis (RETIRED) gentoo-dev 2007-01-31 13:06:00 UTC
I've bumped qt embedded to 3.3.7.  Can you try it and see if it fixes these issues?
Comment 4 Simon Stelling (RETIRED) gentoo-dev 2007-02-12 19:09:54 UTC
it's still failing, unfortunately
Comment 5 Christoph Mende (RETIRED) gentoo-dev 2007-06-03 21:23:24 UTC
Created attachment 121068 [details, diff]
64bit gcc4 fix

qt-embedded-3.3.8 compiles fine for me with attached patch and USE="cups debug doc gif ipv6 opengl sqlite (-firebird) -mysql -nis -odbc -postgres", I have not taken this upstream yet
Comment 6 Evil Compile Person 2008-01-09 01:27:23 UTC
it's still broken :D
Comment 7 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2008-12-08 01:08:40 UTC
(In reply to comment #5)
> Created an attachment (id=121068) [edit]
> 64bit gcc4 fix
> 
> qt-embedded-3.3.8 compiles fine for me with attached patch and USE="cups debug
> doc gif ipv6 opengl sqlite (-firebird) -mysql -nis -odbc -postgres", I have not
> taken this upstream yet
> 

Ok, well. it has been over a year without action. I reverted the ~amd64 keyword. You can add it back if this patch gets applied (or add us to CC for additional testing, etc). Thanks.
Comment 8 Ben de Groot (RETIRED) gentoo-dev 2009-03-27 23:55:47 UTC
Patch added. ~amd64 keyword re-added. 
Thanks for your contributions!