Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 462130 - dev-cpp/tbb detects arch from running kernel (which messes up in x86 chroot on x86_64 f.ex.)
Summary: dev-cpp/tbb detects arch from running kernel (which messes up in x86 chroot o...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: x86 Linux
: Normal normal
Assignee: Gentoo Science Related Packages
URL:
Whiteboard: x86-chroot, was:=media-libs/opencv-2....
Keywords:
: 463388 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-03-18 01:47 UTC by Frank Steinmetzger
Modified: 2013-05-02 15:58 UTC (History)
3 users (show)

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


Attachments
emerge --info (emerge.info,5.42 KB, text/plain)
2013-03-18 01:48 UTC, Frank Steinmetzger
Details
build log (opencv.log,41.94 KB, text/plain)
2013-03-18 01:48 UTC, Frank Steinmetzger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Frank Steinmetzger 2013-03-18 01:47:35 UTC
opencv 2.4.3 fails on my x86 system. The relevant parts of the build log are attached, but here is the culprit nonetheless:


[ 89%] Building CXX object modules/gpu/CMakeFiles/opencv_gpu.dir/src/graphcuts.cpp.o       [...]

../../lib/libopencv_objdetect.so.2.4.3: undefined reference to `tbb::internal::allocate_child_proxy::allocate(unsigned int) const'
../../lib/libopencv_core.so.2.4.3: undefined reference to `tbb::task_scheduler_init::initialize(int, unsigned int)'
../../lib/libopencv_calib3d.so.2.4.3: undefined reference to `tbb::internal::allocate_additional_child_of_proxy::allocate(unsigned int) const'
../../lib/libopencv_objdetect.so.2.4.3: undefined reference to `tbb::internal::concurrent_vector_base_v3::internal_push_back(unsigned int, unsigned int&)'
../../lib/libopencv_objdetect.so.2.4.3: undefined reference to `tbb::internal::allocate_continuation_proxy::allocate(unsigned int) const'
../../lib/libopencv_objdetect.so.2.4.3: undefined reference to `tbb::internal::allocate_root_proxy::allocate(unsigned int)'
../../lib/libopencv_objdetect.so.2.4.3: undefined reference to `tbb::internal::NFS_Allocate(unsigned int, unsigned int, void*)'
../../lib/libopencv_objdetect.so.2.4.3: undefined reference to `tbb::internal::allocate_root_with_context_proxy::allocate(unsigned int) const'
../../lib/libopencv_objdetect.so.2.4.3: undefined reference to `tbb::internal::concurrent_vector_base_v3::internal_clear(void (*)(void*, unsigned int))'

Reproducible: Always




Apart from opencv and aufs3, which is wholly unrelated, world is fully up-to-date.
Comment 1 Frank Steinmetzger 2013-03-18 01:48:10 UTC
Created attachment 342446 [details]
emerge --info
Comment 2 Frank Steinmetzger 2013-03-18 01:48:59 UTC
Created attachment 342448 [details]
build log

Excerpt: configure phase and last few compile lines before the error.
Comment 3 Andreas K. Hüttel archtester gentoo-dev 2013-03-29 13:32:49 UTC
*** Bug 463388 has been marked as a duplicate of this bug. ***
Comment 4 Luke-Jr 2013-04-28 04:44:16 UTC
Workaround: USE='-threads'
Comment 5 Andreas K. Hüttel archtester gentoo-dev 2013-04-30 20:52:15 UTC
Which version of dev-cpp/tbb do you use?
Does upgrading opencv or tbb to ~arch help?
Comment 6 Luke-Jr 2013-04-30 20:55:29 UTC
I tried both 4.1.20121003 and 4.1.20130116 to no avail.
Comment 7 Andreas K. Hüttel archtester gentoo-dev 2013-04-30 21:11:38 UTC
Both failures are on systems where the kernel is x86_64 (64bit), but the userland is x86 (32bit). 

This probably means tbb is autodetecting the architecture somewhere (using the kernel as source) and adapting the function exports. 

http://software.intel.com/en-us/forums/topic/292627
^ this thread may be relevant, I'll investigate more later.
Comment 8 Luke-Jr 2013-04-30 21:28:22 UTC
FWIW, my system is not a chroot.
Comment 9 Frank Steinmetzger 2013-05-01 05:03:28 UTC
I was able to build opencv 2.4.3 with -threads. I don’t have (lib)tbb installed though.
Comment 10 Andreas K. Hüttel archtester gentoo-dev 2013-05-01 23:28:34 UTC
I've added tbb-4.1.20130116-r1 (without keywords since I cannot test it).

Please check if updating to that version helps (you will need to place 
=dev-cpp/tbb-4.1.20130116-r1 **
in your package.keywords) and tell us here...
Comment 11 Luke-Jr 2013-05-02 00:18:02 UTC
With tbb-4.1.20130116-r1, opencv[threads] merges cleanly.

Please note that merely keywording tbb-4.1.20130116-r1 as '~arch' will leave plain old stable 'arch' broken. Maybe -r1 can be backported to stable tbb?
Comment 12 Andreas K. Hüttel archtester gentoo-dev 2013-05-02 15:58:48 UTC
(In reply to comment #11)
> With tbb-4.1.20130116-r1, opencv[threads] merges cleanly.
> 
> Please note that merely keywording tbb-4.1.20130116-r1 as '~arch' will leave
> plain old stable 'arch' broken. Maybe -r1 can be backported to stable tbb?

Makes sense, done.