Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 545190 - dev-cpp/tbb should be multilib aware
Summary: dev-cpp/tbb should be multilib aware
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: AMD64 Linux
: Normal major (vote)
Assignee: Gentoo Science Related Packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-31 22:36 UTC by Peter Asplund
Modified: 2015-06-15 16:51 UTC (History)
2 users (show)

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


Attachments
new proposed ebuild (file_545190.txt,3.71 KB, text/plain)
2015-06-08 21:00 UTC, Peter Asplund
Details
build.log (tbb-4.3.20141023-r1:20150609-075629.log,65.04 KB, text/x-log)
2015-06-09 07:59 UTC, Justin Lecher (RETIRED)
Details
new proposed ebuild, patching build system instead of sed'ing (tbb-4.3.20141023-r1.ebuild,3.16 KB, text/plain)
2015-06-09 16:11 UTC, Ian Stakenvicius (RETIRED)
Details
patch to the build system (tbb-4.3-build.patch,4.62 KB, patch)
2015-06-09 16:12 UTC, Ian Stakenvicius (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Asplund 2015-03-31 22:36:17 UTC
I'm trying to start Civilization: Beyond Earth via Steam but I get an error when the game is loading:
/home/peter/.local/share/Steam/SteamApps/common/Sid Meier's Civilization Beyond Earth/./CivBE: error while loading shared libraries: libtbb.so.2: cannot open shared object file: No such file or directory

I checked what the library belongs to and it is dev-cpp/tbb:
[I] dev-cpp/tbb
     Available versions:  4.1.20121003-r1 (~)4.2.20131118 (~)4.2.20140122 (~)4.3.20141023 {debug doc examples}
     Installed versions:  4.3.20141023(00:26:22 2015-04-01)(-debug -doc -examples)
     Homepage:            http://www.threadingbuildingblocks.org/
     Description:         High level abstract threading library

The problem is that it is not multilib aware, so I am unable to build a 32-bit binary from it. Civilization:BE (and most Steam games it seems like) is 32-bit games.

Reproducible: Always

Steps to Reproduce:
1. Install steam-meta (with -steamruntime) from steam overlay
2. Install Civilization: Beyond Earth
3. Try to start it
Actual Results:  
Game doesn't start.
Comment 1 Peter Asplund 2015-05-16 09:52:14 UTC
Is there any way in which I can help to get this fixed?

It is a complete show stopper in regards to starting Civilization Beyond Earth at all.
Comment 2 Justin Lecher (RETIRED) gentoo-dev 2015-05-16 10:00:36 UTC
(In reply to Peter Asplund from comment #1)
> Is there any way in which I can help to get this fixed?
> 
> It is a complete show stopper in regards to starting Civilization Beyond
> Earth at all.

Sure, write the ebuild. If you have something working send a PR or attach things here in the bug. If you need help, join IRC and ping me.
Comment 3 Peter Asplund 2015-06-08 21:00:36 UTC
Created attachment 404782 [details]
new proposed ebuild

I worked this ebuild out together with the #gentoo-dev-help and _AxS_ helped me to clean it up.
He wrote an improved version, that he might push tomorrow, but I thought I might as well paste my version as well.
Comment 4 Justin Lecher (RETIRED) gentoo-dev 2015-06-09 05:17:16 UTC
Thanks for your work! I will look into it.
Comment 5 Justin Lecher (RETIRED) gentoo-dev 2015-06-09 07:57:36 UTC
(In reply to Peter Asplund from comment #3)
> Created attachment 404782 [details]
> new proposed ebuild

Please use Unix line endings instead of DOS in future.

I get this problem

Files matching a file type that is not allowed:
   usr/lib32/libtbb.so.2
   usr/lib32/libtbbmalloc.so.2
   usr/lib32/libtbbmalloc_proxy.so.2
 * ERROR: dev-cpp/tbb-4.3.20141023-r1::gentoo-cvs failed:
 *   multilib-strict check failed!
 * 
 * Call stack:
 *   misc-functions.sh, line 592:  Called install_qa_check
 *   misc-functions.sh, line 217:  Called source 'install_symlink_html_docs'
 *   80multilib-strict, line  47:  Called multilib_strict_check
 *   80multilib-strict, line  43:  Called die
 * The specific snippet of code:
Comment 6 Justin Lecher (RETIRED) gentoo-dev 2015-06-09 07:59:43 UTC
Created attachment 404810 [details]
build.log

It looks like the 32bit aren't compiled as 32bit.
Comment 7 Ian Stakenvicius (RETIRED) gentoo-dev 2015-06-09 16:10:40 UTC
(In reply to Justin Lecher from comment #6)
> Created attachment 404810 [details]
> build.log
> 
> It looks like the 32bit aren't compiled as 32bit.

I continued to do some work on this ebuild after posting the above version to IRC.  I'll be updating attachments in a moment.  Here's what I get merged, though:

/usr/lib32/libtbb.so.2:             ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib32/libtbbmalloc.so.2:       ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib32/libtbbmalloc_proxy.so.2: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib64/libtbb.so.2:             ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
/usr/lib64/libtbbmalloc.so.2:       ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
/usr/lib64/libtbbmalloc_proxy.so.2: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
Comment 8 Ian Stakenvicius (RETIRED) gentoo-dev 2015-06-09 16:11:25 UTC
Created attachment 404828 [details]
new proposed ebuild, patching build system instead of sed'ing
Comment 9 Ian Stakenvicius (RETIRED) gentoo-dev 2015-06-09 16:12:52 UTC
Created attachment 404830 [details, diff]
patch to the build system

I found that the sed's, although functional, seemed a little too generic (they have the ability to catch too much).  A patch to the build system seems to be a lot safer.
Comment 10 Justin Lecher (RETIRED) gentoo-dev 2015-06-15 16:51:09 UTC
+*tbb-4.3.20141023-r1 (15 Jun 2015)
+
+  15 Jun 2015; Justin Lecher <jlec@gentoo.org> +files/tbb-4.3-build.patch,
+  +tbb-4.3.20141023-r1.ebuild:
+  Add multilib support, bug #545190; thanks Peter Asplund and Ian Stakenvicius
+  preparing the ebuild
+