Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 250794 - media-sound/amarok-2.0 links to a .a instead of a .so in dev-db/mysql-5.0.72-r1
Summary: media-sound/amarok-2.0 links to a .a instead of a .so in dev-db/mysql-5.0.72-r1
Status: RESOLVED DUPLICATE of bug 238487
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-13 03:32 UTC by Duncan
Modified: 2009-02-09 15:38 UTC (History)
1 user (show)

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


Attachments
emerge --info (emerge.info,4.81 KB, text/plain)
2008-12-13 03:38 UTC, Duncan
Details
log file from the emerge attempt (media-sound:amarok-2.0:20081213-025133.log,469.21 KB, text/plain)
2008-12-13 03:42 UTC, Duncan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Duncan 2008-12-13 03:32:50 UTC
I just merged mysql to merge amarok-2.0, so it's new.  Trying to merge amarok-2.0, I get:

[ 93%] Building CXX object src/scriptengine/generator/generator/CMakeFiles/qtscript_gui.dir/generated_cpp/com_trolltech_qt_gui/qtscript_QHelpEvent.o
Linking CXX shared module ../../../lib/libamarok_collection-daapcollection.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/mysql/libmysqld.a(client.o): relocation R_X86_64_32 against `mysql_server_last_error' can not be used when making a shared object; recompile with -fPIC
/usr/lib64/mysql/libmysqld.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [lib/libamarok_collection-sqlcollection.so] Error 1
make[1]: *** [src/collection/sqlcollection/CMakeFiles/amarok_collection-sqlcollection.dir/all] Error 2

This is very interesting, since I'm ~amd64 no-multilib, yet it looks to be trying to do something with 32-bit!  Also (and perhaps the important bit), it's trying to link the .a which will have been compiled without -fPIC, which of course won't work for shared libraries on amd64, instead of the .so, which should have been compiled with -fPIC as needed.

Of course since this is the only reason I need mysql and it's a new merge too, there's nothing else that has tried linking to it, so whether it's amarok specific or a problem with mysql, I don't know.

emerge --info to be attached
Comment 1 Duncan 2008-12-13 03:38:59 UTC
Created attachment 175175 [details]
emerge --info

Yes, I have some unusual cflags/ldflags.  I haven't tried without them yet but I will, and post the results, just in case they screwed something up.
Comment 2 Duncan 2008-12-13 03:42:19 UTC
Created attachment 175177 [details]
log file from the emerge attempt
Comment 3 Duncan 2008-12-13 04:24:03 UTC
OK, with:
CFLAGS="-march=opteron-sse3 -pipe -O2"
CXXFLAGS="-march=opteron-sse3 -pipe -O2"
LDFLAGS="-Wl,-O1"

and after remerging mysql with those flags as well, I get the same error, tho earlier (64%) in the build, probably due to ccache.

[ 64%] Building CXX object src/scriptengine/generator/generator/CMakeFiles/qtscript_gui.dir/generated_cpp/com_trolltech_qt_gui/qtscriptshell_QStyleOptionTitleBar.o
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/mysql/libmysqld.a(client.o): relocation R_X86_64_32 against `mysql_server_last_error' can not be used when making a shared object; recompile with -fPIC
/usr/lib64/mysql/libmysqld.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [lib/libamarok_collection-sqlcollection.so] Error 1
make[1]: *** [src/collection/sqlcollection/CMakeFiles/amarok_collection-sqlcollection.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Comment 4 Duncan 2008-12-13 04:33:29 UTC
FWIW:

ls /usr/lib64/mysql/libmysqld* only lists the single libmysqld.a, no shared object, no *.la file.

Should mysql include the .so, or should amarok be trying static linking?
Comment 5 Tomáš Chvátal (RETIRED) gentoo-dev 2008-12-13 13:06:14 UTC
My dear, did you se that amarok has amd64 keyword?
Nopes.
So please dont open bug about something we know that is not working. And even did not allowed user to install by default.
Closing as duplicate.

*** This bug has been marked as a duplicate of bug 238487 ***
Comment 6 Duncan 2008-12-13 13:40:17 UTC
(In reply to comment #5)
> My dear, did you se that amarok has amd64 keyword?
> Nopes.

No I didn't, as I've been running ** on both 1.4.9999 and the 2.0 beta series (with 1.90 being the last one available in the tree I guess since it was taken paludis only) for ages.

But thanks for pointing it out and doing the dup thing.

I'd just not seen that error since I went no-multilib and didn't know it was even possible on a 64-bit only system, so found it rather unsettling, to say the least.  Additionally, I saw the amarok 2.0 announcements... and nothing saying "legacy 32-bit" only.  What is this, proprietaryware or something?  Even Adobe's coming round on 64-bit, but now Amarok's falling off the clue train?  WTF?  Or is it a Gentoo-only issue?

Oh, well, I guess that means KDE-4 continues to be effectively broken for even longer, here.  And I was hoping with 4.2 I could actually switch.  <shrug>
Comment 7 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2008-12-15 11:57:14 UTC
Duncan,

check the bug Tomáš listead as being the duplicate.
As you can read there, cmake wants to do a dynamic link to a static lib, mysql doesn't include a build rule to make a dynamic version of libmysqld and on amd64 it isn't possible to link to a non -fPIC lib - in short, a big mess.
We're already trying to add a build rule to make mysql build a shared lib for mysqld.
Comment 8 Duncan 2008-12-15 12:42:35 UTC
(In reply to comment #7)
> check the bug Tomáš listead as being the duplicate.
> As you can read there [snip]

Thanks.  I saw that after I got over my bad mood and decided to check it out.  I evaluated apologizing, but had elected to save the additional noise, instead.

So anyway, now that I'm replying, please consider this an apology, too.  That hit me at a bad time, is all, and after I'd read yet another blog rehashing recent KDE history... to see the what appeared belittling term "my dear"... (which may not be that way in his culture, in hindsight).

I still think it's stupid for upstream to make such a prominent dependency on a library with such obvious problems for a large and growing segment of their userbase, especially this far into the KDE 4.x cycle, not pre-4.0 or 4.1, but it's still not fair to lash out at some of the folks working hard at finding a solution to something they too were stuck with, after all.

BTW, I did search for amarok-2, but of course that didn't catch Amarok2... so I missed the other bug.

So anyway, thanks again for your patience and hard work (both of you and the entire Gentoo/KDE team).  I know you guys are working hard to make choices made by others that you may not have made, actually work in practice, and it's appreciated, even tho sometimes it doesn't get communicated so well!