Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[boost] Update to 1.74.0 #14089

Merged
merged 21 commits into from
Nov 6, 2020
Merged

[boost] Update to 1.74.0 #14089

merged 21 commits into from
Nov 6, 2020

Conversation

niclar
Copy link
Contributor

@niclar niclar commented Oct 16, 2020

Update to boost-1.74.0

Fixes issue #13033

Tested
x64-windows-static
x64-linux-static

@ghost
Copy link

ghost commented Oct 16, 2020

CLA assistant check
All CLA requirements met.

@PhoebeHui PhoebeHui changed the title Issue13033 [boost] Update to 1.74.0 Oct 19, 2020
@PhoebeHui PhoebeHui added category:new-port The issue is requesting a new library to be added; consider making a PR! category:port-update The issue is with a library, which is requesting update new revision and removed category:new-port The issue is requesting a new library to be added; consider making a PR! labels Oct 19, 2020
@PhoebeHui
Copy link
Contributor

Thank you @niclar and all for your effort!

Here is CI testing failures, let me know if you need full failure logs.

gamedev-framework:x64-windows-static/gamedev-framework:x64-windows/gamedev-framework:x86-windows:

Failures:

D:\installed\x64-windows\include\boost/heap/detail/heap_node.hpp(145): error C2300: 'boost::heap::detail::parent_pointing_heap_node<gf::v1::`anonymous-namespace'::AStarHeapData>': class does not have a destructor called '~Node'

bond:arm64-windows/bond:x86-windows:

Failures:

D:\buildtrees\bond\src\9.0.2-8585f9f7d7.clean\cpp\inc\bond/core/exception.h(12): fatal error C1083: Cannot open include file: 'boost/locale/encoding_utf.hpp': No such file or directory

boost-nowide:x64-osx:

Failures:

clang-darwin.compile.c++ /Volumes/data/buildtrees/boost-nowide/x64-osx-dbg/boost/build/e09119a5fb93bc4a6ae7c27175ce30d3/filebuf.o
../src/filebuf.cpp:46:9: error: unknown type name 'constexpr'
        constexpr bool is_in_range(U value)
        ^
../src/filebuf.cpp:62:19: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
            const auto pos = BOOST_NOWIDE_FTELL(file);
                  ^
../src/filebuf.cpp:74:17: error: no matching function for call to 'is_in_range'
            if(!is_in_range<BOOST_NOWIDE_OFF_T>(offset))
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/filebuf.cpp:57:20: error: no matching function for call to 'is_in_range'
            return is_in_range<T>(value) ? static_cast<T>(value) : T(-1);
                   ^~~~~~~~~~~~~~
../src/filebuf.cpp:67:20: note: in instantiation of function template specialization 'boost::nowide::detail::cast_if_valid_or_minus_one<long long, long long>' requested here
            return cast_if_valid_or_minus_one<std::streamoff>(pos);
                   ^
1 warning and 3 errors generated.

Copy link
Contributor

@PhoebeHui PhoebeHui left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you remove the Port-Version in affect CONTROL files?

@niclar
Copy link
Contributor Author

niclar commented Oct 19, 2020

@Victor-Bergman can you take a look at ports\0001-Fix-boost-ICU-support.patch & ports\boost-locale\0001-Fix-boost-ICU-support.patch, seems like it prevents x86 deployment of locale

@niclar
Copy link
Contributor Author

niclar commented Oct 20, 2020

-can someone with a osx box take a look at the build ?

@niclar
Copy link
Contributor Author

niclar commented Oct 20, 2020

@jube & @ahugeat can you provide a boost 1.74 patch to gamedev-framework ?

@ahugeat
Copy link
Contributor

ahugeat commented Oct 20, 2020

Hello @niclar,

I have cloned your repo and the compilation of x64-windows is working.
Since we have recently updated gamedev-framework, I have tried with the new version. The triplets x64-windows, x86-windows, x64-windows-static and x86-windows-static are working.

Could you try again to compile the gamedev-framework and if it fails, could you send us the complete logs?

@PhoebeHui
Copy link
Contributor

Sorry for my late reply.

The failures on CI testing:

gamedev-framework:x64-windows and gamedev-framework:x86-windows:

D:\installed\x64-windows\include\boost/heap/detail/heap_node.hpp(145): error C2300: 'boost::heap::detail::parent_pointing_heap_node<gf::v1::`anonymous-namespace'::AStarHeapData>': class does not have a destructor called '~Node'

gamedev-framework.zip

bond:x86-windows and bond:arm64-windows:

D:\buildtrees\bond\src\9.0.2-8585f9f7d7.clean\cpp\inc\bond/core/exception.h(12): fatal error C1083: Cannot open include file: 'boost/locale/encoding_utf.hpp': No such file or directory

bond.zip

x64-linux and x64-osx:
boost-atomic
boost-container
boost-exception
boost-regex
boost-signals
boost-stacktrace
boost-system

The above port failed with same error:

CMake Error at CMakeLists.txt:117:
  Parse error.  Function missing ending ")".  End of file reached.

@longnguyen2004
Copy link
Contributor

@niclar Seems like you forget a closing paren :)
I'll try to find some time to test gamedev with MSVC and llvm-mingw later

@victorburckel
Copy link
Contributor

Hi, don't know if this can help, but it does not seem to be a bug related to the gamedev port. Rather it seems to be a bug with msvc compiling boost binomial heap 1.74. I reported it to see wether it is a bug or not (https://developercommunity.visualstudio.com/content/problem/1240121/problem-compiling-boost-binomial-heap.html). Meanwhile it seems it can be bypassed by patching the following line: https://github.com/boostorg/heap/blob/c0a8773051cd8bc0691ea3c067d59b4d4c5e96dc/include/boost/heap/detail/heap_node.hpp#L145 with a function call [](Node* n){ n->~Node(); }(n);

@victorburckel
Copy link
Contributor

Hello @niclar,

I tried to implement some fixes in #14337, the checks now run ok, can you check if this is ok for you, and maybe integrate them ?

Thanks

@longnguyen2004
Copy link
Contributor

longnguyen2004 commented Nov 3, 2020

If there are no updates from niclar in the coming days then we might as well merge #14337 instead
@victorburckel Can you try opening a PR on niclar's branch?

@victorburckel
Copy link
Contributor

Hi, @longnguyen2004 I'm not able to do a pull request on his repository.

@niclar
Copy link
Contributor Author

niclar commented Nov 3, 2020

@victorburckel , great! -I'll take a look tomorrow..

@victorburckel
Copy link
Contributor

@niclar Ok thanks, I took the liberty to push the commits to your repo so that we have the status (should be the same, hope you don't mind).
You'll see there's not much:

  • a patch for boost heap which comes directely from boost develop branch
  • the compilation of boost nowide with std=c++11 for apple (the CXXFLAGS in your fcbee3a commit are not taken into account as apple compilation uses clang and there is no such configuration for apple which forwards these flags as for gcc
    using gcc : 5.4.1 : @CMAKE_CXX_COMPILER@
    :
    <ranlib>@CMAKE_RANLIB@
    <archiver>@CMAKE_AR@
    @CXXFLAGS@
    @CFLAGS@
    @LDFLAGS@
    # MINGW here causes b2 to not run cygpath
    <flavor>mingw
    ;
    )
  • a new dependency to boost locale for the bond port

@longnguyen2004
Copy link
Contributor

@victorburckel @niclar Please also backport this commit, which fixes a bug when building with llvm-mingw

@victorburckel
Copy link
Contributor

@longnguyen2004 Sure, done

@niclar
Copy link
Contributor Author

niclar commented Nov 4, 2020

@victorburckel, it looks good now, thanks. Let's await the test suite run..

@victorburckel
Copy link
Contributor

Now there's a link error in rtabmap, but I see the exact same error in other PR, so there are chances the regression does not come from this PR
Here's a sample of the error:

octomap.lib(OcTreeNode.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Rtabmap.cpp.obj

@niclar
Copy link
Contributor Author

niclar commented Nov 4, 2020

@seanyen, rtabmap debug seem to link to the octomap release library (for x86-windows & x64-windows debug builds), -can you take a look ?

@victorburckel
Copy link
Contributor

That's strange, in the output of x64_windows I don't see any errors. I tried to reproduce the error on my machine for the x86 build, but I don't get any error.

@niclar
Copy link
Contributor Author

niclar commented Nov 4, 2020

@victorburckel if you install the octomap lib first (which is apparently done on the CI machine) rtabmap will optionally use it & you'll be able to reproduce the issue

@niclar
Copy link
Contributor Author

niclar commented Nov 4, 2020

@ras0219-msft et al. I can't understand why master is allowed to fail (or isn't staged) .. so I'll jump out of this rabbit hole until it passes.

@PhoebeHui
Copy link
Contributor

I will take a look at the rtabmap failure in CI testing, please ignore it.

@victorburckel
Copy link
Contributor

Nice, thanks a lot

@niclar
Copy link
Contributor Author

niclar commented Nov 5, 2020

@PhoebeHui thanks

@PhoebeHui
Copy link
Contributor

PhoebeHui commented Nov 6, 2020

Feature 'icu' has been tested for boost-locale and boost-regex, all passed with x64-windows.

One new components 'boost-stl-interfaces' was added in this revision.

@ras0219-msft, @BillyONeal, could you help further review?

@PhoebeHui PhoebeHui added info:reviewed Pull Request changes follow basic guidelines and removed requires:author-response labels Nov 6, 2020
@PhoebeHui PhoebeHui requested a review from BillyONeal November 6, 2020 09:33
@BillyONeal
Copy link
Member

Thanks for your (clearly extensive) help here! 👍

@BillyONeal BillyONeal merged commit 0e12523 into microsoft:master Nov 6, 2020
@yurybura yurybura mentioned this pull request Sep 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-update The issue is with a library, which is requesting update new revision info:reviewed Pull Request changes follow basic guidelines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants