Gentoo Archives: gentoo-amd64

From: Markos Chandras <hwoarang@g.o>
To: gentoo-amd64@l.g.o
Cc: davidepesa@×××××.com
Subject: Re: [gentoo-amd64] Re: my amd64 system is not recognised at linux-*-64
Date: Fri, 24 Apr 2009 08:40:07
Message-Id: 200904240940.01333.hwoarang@gentoo.org
In Reply to: [gentoo-amd64] Re: my amd64 system is not recognised at linux-*-64 by Duncan <1i5t5.duncan@cox.net>
1 On Friday 24 April 2009 08:40:50 Duncan wrote:
2 > Markos Chandras <hwoarang@g.o> posted
3 > 200904231600.12638.hwoarang@g.o, excerpted below, on Thu, 23 Apr
4 >
5 > 2009 16:00:07 +0100:
6 > > I asked about this on #gentoo-amd64, but I ll be quite busy and I might
7 > > miss the answer.
8 >
9 > Looks like you got a workaround for the ebuild from another subthread,
10 > tested and unmasked it, but that appears to be what it was, a
11 > workaround. Nobody explored the why.
12 >
13 > Well, I'm not an expert by any means and the following guess is just what
14 > it says on the label, a guess, without properly delving into the qmake
15 > internals, but maybe this will provide a place to start exploring, for
16 > you or anyone else interested.
17 >
18 >
19 I tried to figure out why but I couldnt. I also contacted upstream but they
20 were unable to help me more. The workaround is quite safe and doent causes any
21 further problems :)
22 > > So
23 > >
24 > > I have a problem with qt-creator installation on amd64
25 > >
26 > > Take a look on this code
27 > >
28 > > linux-*-64 {
29 > > IDE_LIBRARY_BASENAME = lib64
30 > > } else {
31 > > IDE_LIBRARY_BASENAME = lib
32 > > }
33 > >
34 > > According to this, when the system is amd64, libraries should be
35 > > installed under lib64/ directory, else they will be installed on lib/
36 > > directory.
37 >
38 > Makes sense, but what is it testing there?
39 >
40 > The first thing that reminded me of was the CHOST/CBUILD/CTARGET set of
41 > vars from the GNU make build system, with CHOST set in the (cascaded)
42 > profile make.defaults (profiles/arch/amd64/make.defaults for 2008.0/amd64
43 > profile users).
44 >
45 > But, CHOST isn't it as the order is wrong. My CHOST is
46 > x86_64-pc-linux-gnu according to emerge --info (and following the
47 > cascading profiles, from the file mentioned above), and that's not going
48 > to match linux-*-64 at all. Since CHOST is standardized, that can't be
49 > what they're testing against.
50 >
51 > Well, I'm not familiar with qmake (which I got from the tarball README,
52 > tho the ebuild would have had it too), and I'm not going to try to
53 > explain how it gets from here to there as I don't know, but the best
54 > match for the above pattern I could come up with is the following:
55 >
56 > 1) equery belongs qmake says it's part of the qt-core-4.5.0 package, here
57 > (and also part of qt-3.3.8b-r1, but that's beside the point).
58 >
59 > 2) Looking at equery files qt-core, the following jumps out due to the
60 > pattern, which matches the one above:
61 >
62 > /usr/share/qt4/mkspecs/linux-*-64 , with * being the three: ecc, c++,
63 > icc .
64 >
65 > So, a reasonable theory might be that it's matching the mkspecs,
66 > expecting a pattern similar to linux-*-64 for our case. How it comes up
67 > with that is as they say, "an exercise for further research", reading up
68 > on qmake, it's MAKE vars (or whatever qmake calls them), etc.
69 >
70 > 3) However, I found the following symlink, also from the qt-core package,
71 > also of interest:
72 >
73 > /usr/share/qt4/mkspecs/default -> linux-g++-64
74 >
75 > 4) So a further supposition, given the failure of the test above, may be
76 > that it's ultimately using mkspecs/default instead of linux-g++-64
77 > specifically. If the test was on the symlink itself (not dereferenced)
78 > and not on what it pointed to, that would necessarily cause it to fail
79 > the match.
80 >
81 > So without knowing much at all about how qmake functions and where it
82 > gets its config such as the bit it's testing above, that's my working
83 > theory and why I'd /guess/ it's failing the match. Qt based package
84 > maintainers and devs would of course be expected to know (or at least
85 > know where to look up when necessary) rather more about qmake internals,
86 > and be able to take it from there, proving or disproving my admittedly
87 > rather badly informed /guess/.
88 >
89 > > The thing is that on my amd64 system, they install on lib/ directory. Do
90 > > you have any ideas why it fails to pick the right directory?
91 > >
92 > > My features are
93 > >
94 > > Eternity ~ # portageq envvar FEATURES buildpkg ccache distlocks
95 > > fixpackages metadata-transfer parallel-fetch preserve-libs protect-owned
96 > > sandbox sfperms strict unmerge-orphans userfetch
97 > >
98 > >
99 > > I tried to add multilib on FEATURES but it didnt solve this issue
100 >
101 > As others have said, on Gentoo, multilib isn't something you should be
102 > messing with directly. It's part of your profile. To change it, you
103 > change your profile (and deal with all that entails). Trying to do
104 > otherwise, if it does anything at all, "may have unintended consequences"
105 > as they say. =:^)
106
107 qmake will read the QMAKESPEC variable. This variable is 'usually' set as
108 /usr/share/qt4/mkspecs/default which is a symlink to the actual mkspec. So my
109 symlink is right
110
111 That is
112
113 Eternity ~ # ls -la /usr/share/qt4/mkspecs/|grep default
114 lrwxrwxrwx 1 root root 12 2009-04-23 19:33 default -> linux-g++-64
115
116 So the initial code should work flawlessly. But it doesnt. So either the .pro
117 file of qt-creator is broken or our ( as in Qt team ) qmake is broken as well.
118 qmake doesnt seem to read QMAKESPEC . Of course it needs further investigation
119 but it is rather complicated to do this right now
120
121 --
122 Markos Chandras (hwoarang)
123 Gentoo Linux Developer
124 Qt/KDE/Sunrise/Sound
125 Web: http://hwoarang.silverarrow.gr

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
[gentoo-amd64] Re: my amd64 system is not recognised at linux-*-64 Duncan <1i5t5.duncan@×××.net>