Summary: | dev-cpp/libcmis fail to build with gcc-5 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Cănărău Constantin <canarauc> |
Component: | [OLD] GCC Porting | Assignee: | Gentoo Office Team <office> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | asturm, gabemarcano, genzilla, jrmalaq, om, tetromino |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 549618 | ||
Bug Blocks: | 536984 | ||
Attachments: |
patch to build with gcc5
Modified libcmis-0.5.0.ebuild libcmis-0.5.0-fix-boost-configuration-with-gcc-5.patch libcmis-0.5.0-avoid-use-after-delete.patch |
Description
Cănărău Constantin
2015-04-16 08:37:19 UTC
Created attachment 401320 [details, diff]
patch to build with gcc5
Could it be that easy? Upstream has the following patch in git: http://sourceforge.net/p/libcmis/code/ci/645df9a0885931001e0a7afaf56de39cd33f9119/ I think the "big" upstream patch has to do with C++11 standard being forced by gcc5. For now, in Gentoo dev-libs/boost has: # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard. append-cxxflags -std=gnu++98 When I removed above line from ebuild and recompiled boost my patch was no longer sufficient. (In reply to Cănărău Constantin from comment #0) > dev-cpp/libcmis need -P to preprocessor > > Reproducible: Always Just renaming the ebuild libcmis-0.5.0.ebuild into libcmis-9999.ebuild and adding =dev-cpp/libcmis-9999 to /etc/portage/package.accept_keywords solves it for me here (gcc-5.1.0). (In reply to Cănărău Constantin from comment #1) > Created attachment 401320 [details, diff] [details, diff] > patch to build with gcc5 Neat, thanks, I confirm the problem and that this patch allows libcmis-0.5.0 to build with gcc 5.1.0. There are test failures, from /var/tmp/portage/dev-cpp/libcmis-0.5.0/work/libcmis-0.5.0/qa/libcmis/test-suite.log ============================================== libcmis 0.5.0: qa/libcmis/test-suite.log ============================================== # TOTAL: 8 # PASS: 7 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: test-ws ============= .E.E.E.E...E.E.E.E.E..E.E.E.E.E.E..E..E.E.E.E.E.E.E.E.E.E.E.... !!!FAILURES!!! Test Results: Run: 36 Failures: 0 Errors: 27 1) test: WSTest::getRepositoriesTest (E) uncaught exception of type std::logic_error - basic_string::_M_construct null not valid ... more similar failures upstream fixed version (dev-cpp/libcmis-9999) works at its best. Upstream devs should do a bump. So, meanwhile I've tried the patch on a pre-gcc-5 system and it doesn't make things worse (i.e. I can't reproduce the test failure). Created attachment 403294 [details]
Modified libcmis-0.5.0.ebuild
I did a bit of reading and checking out of what changes upstream did to fix the problem, and noticed they did not apply the -P flag, but rather used a fix included in the boost.m4 file that does... something... with sed to concatenate lines output by gcc after preprocessing. This fix in boost.m4 requires for configure to be re-generated. The way I've gone around the issue is by creating two patches using `git format-patch`. One of the patches has the work they did to fix the gcc5 problem, and the other fixes a bug (probably the one that was failing with tests). With these patches in place, and a modified ebuild to run eautoreconf to update the build scripts, libcmis build fine and tests report no problems. I'll be attaching the patches momentarily.
Created attachment 403296 [details, diff]
libcmis-0.5.0-fix-boost-configuration-with-gcc-5.patch
Both attachments should go in the files directory of the ebuild.
Created attachment 403298 [details, diff]
libcmis-0.5.0-avoid-use-after-delete.patch
The tests pass here anyway, so that's a different problem. Compatibility patch (from upstream) added. *** Bug 555982 has been marked as a duplicate of this bug. *** |