Summary: | games-arcade/performous-0.7.0 - CMakeFiles/performous.dir/webcam.cc.o: In function `~Mat': /usr/include/opencv2/core/mat.hpp:297: undefined reference to `cv::fastFree(void*)' | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Diego Elio Pettenò (RETIRED) <flameeyes> |
Component: | [OLD] Games | Assignee: | Gentoo Games <games> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dominique.c.michel, flyser42, kripton |
Priority: | Normal | Keywords: | STABLE |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | https://tinderboxlogs.s3.amazonaws.com/tbhs64.excelsior.flameeyes.eu/games-arcade%3Aperformous-0.7.0%3A20130115-212332.html | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
performous-0.7.0-r1.ebuild.diff
performous-0.7.0-cmake.patch performous-9999.ebuild |
Description
Diego Elio Pettenò (RETIRED)
2013-01-16 11:08:34 UTC
seems to be hardened related To me looks more like a problem with GCC or --as-needed. I don't have access to the Tinderbox right now... but I suppose "cv::fastFree(void*)" is defined in -lopencv or something like that... and I don't see it in the link line. Yes it is possible that it's declared as inline in the headers, and the developers expected this to work without linking to it, but GCC has its own heuristics on when to inline stuff or not.. /usr/lib/libopencv_core.so.2.4.3:00000000000d9aa0 T cv::fastFree(void*) /usr/include/opencv2/core/core.hpp:CV_EXPORTS void fastFree(void* ptr); okay this function is NOT inline so it can't be inlined, but there are other opencv functions that _are_ inline, and call it. Which basically makes it not an hardened issue at all. Just like for boost, using headers but not linking the libraries is not a good idea, even for C++... mh, weird, I expected it to fail with gold linker, but it didn't Which version of opencv is that? this was due to a broken bundled cmake-module and an automagic dependency, patches incoming Created attachment 336712 [details, diff]
performous-0.7.0-r1.ebuild.diff
this is too strong without a revbump
Created attachment 336714 [details, diff]
performous-0.7.0-cmake.patch
Hrm do me a favour and change the boost dependency to dev-libs/boost[threads(+)] please. Otherwise good catch and thanks for getting to the bottom of it :) +*performous-0.7.0-r1 (24 Jan 2013) + + 24 Jan 2013; Julian Ospald <hasufell@gentoo.org> +performous-0.7.0-r1.ebuild, + +files/performous-0.7.0-cmake.patch, metadata.xml: + add missing deps, add midi and webcam useflag, fix build time issues wrt + #452476, bump EAPI since old one is STABLE, we need to wait for stabilizing -r1 to close this I get that on ~amd64 with performous-0.7.0-r1: Linking CXX executable itg_pck cd /var/tmp/portage/games-arcade/performous-0.7.0-r1/work/performous-0.7.0_build/tools && /usr/bin/cmake -E cmake_link_script CMakeFiles/itg_pck.dir/link.txt --verbose=1 /usr/bin/x86_64-pc-linux-gnu-g++ -march=amdfam10 -mcx16 -msahf -mpopcnt -mabm --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=amdfam10 -O2 -pipe -std=c++98 -Wall -Wextra -Wl,-O1 -Wl,--as-needed CMakeFiles/itg_pck.dir/itg_pck.cc.o -o itg_pck -rdynamic -lboost_filesystem-mt -lboost_program_options-mt -lz /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/itg_pck.dir/itg_pck.cc.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv' /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: note: '_ZN5boost6system15system_categoryEv' is defined in DSO /usr/lib64/libboost_system.so.1.53.0 so try adding it to the linker command line /usr/lib64/libboost_system.so.1.53.0: could not read symbols: Invalid operation collect2: error: ld returned 1 exit status tools/CMakeFiles/itg_pck.dir/build.make:94: recipe for target 'tools/itg_pck' failed make[2]: *** [tools/itg_pck] Error 1 If I do in the ebuild: - CMAKE_REMOVE_MODULES_LIST="FindALSA FindBoost FindGettext FindJpeg FindPng FindTiff FindZ" + CMAKE_REMOVE_MODULES_LIST="FindALSA FindGettext FindJpeg FindPng FindTiff FindZ" it work fine. Should I fill a new bug? Created attachment 380832 [details]
performous-9999.ebuild
Since even the devs recommend using the current git HEAD instead of the 0.7.0 release, I created a live ebuild for the package. All patches shipped in portage are no longer needed. Builds and works fine here.
the -9999 ebuild is missing a libsdl2 dependency reopen if this is still an issue with performous-1.0 |