From e8d71735bac0d788fb3d19f6dd83d820f39c4f97 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 19 Jan 2021 21:09:20 -0500 Subject: [PATCH 1/3] upgrade minimum required Boost version to 1.67. --- INSTALL.md | 2 +- README.md | 2 +- cmake/HandleBoost.cmake | 4 ++-- cmake/HandleCPack.cmake | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 1fddf4df0..44051815a 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -13,7 +13,7 @@ $ make install ## Important Installation Notes 1. GTSAM requires the following libraries to be installed on your system: - - BOOST version 1.58 or greater (install through Linux repositories or MacPorts) + - BOOST version 1.67 or greater (install through Linux repositories or MacPorts) - Cmake version 3.0 or higher - Support for XCode 4.3 command line tools on Mac requires CMake 2.8.8 or higher diff --git a/README.md b/README.md index 60eff197a..82a17a8fa 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ $ make install Prerequisites: -- [Boost](http://www.boost.org/users/download/) >= 1.58 (Ubuntu: `sudo apt-get install libboost-all-dev`) +- [Boost](http://www.boost.org/users/download/) >= 1.67 (Ubuntu: `sudo apt-get install libboost-all-dev`) - [CMake](http://www.cmake.org/cmake/resources/software.html) >= 3.0 (Ubuntu: `sudo apt-get install cmake`) - A modern compiler, i.e., at least gcc 4.7.3 on Linux. diff --git a/cmake/HandleBoost.cmake b/cmake/HandleBoost.cmake index e73c2237d..a02afba57 100644 --- a/cmake/HandleBoost.cmake +++ b/cmake/HandleBoost.cmake @@ -22,7 +22,7 @@ endif() # Store these in variables so they are automatically replicated in GTSAMConfig.cmake and such. -set(BOOST_FIND_MINIMUM_VERSION 1.58) +set(BOOST_FIND_MINIMUM_VERSION 1.67) set(BOOST_FIND_MINIMUM_COMPONENTS serialization system filesystem thread program_options date_time timer chrono regex) find_package(Boost ${BOOST_FIND_MINIMUM_VERSION} COMPONENTS ${BOOST_FIND_MINIMUM_COMPONENTS}) @@ -30,7 +30,7 @@ find_package(Boost ${BOOST_FIND_MINIMUM_VERSION} COMPONENTS ${BOOST_FIND_MINIMUM # Required components if(NOT Boost_SERIALIZATION_LIBRARY OR NOT Boost_SYSTEM_LIBRARY OR NOT Boost_FILESYSTEM_LIBRARY OR NOT Boost_THREAD_LIBRARY OR NOT Boost_DATE_TIME_LIBRARY) - message(FATAL_ERROR "Missing required Boost components >= v1.58, please install/upgrade Boost or configure your search paths.") + message(FATAL_ERROR "Missing required Boost components >= v1.67, please install/upgrade Boost or configure your search paths.") endif() option(GTSAM_DISABLE_NEW_TIMERS "Disables using Boost.chrono for timing" OFF) diff --git a/cmake/HandleCPack.cmake b/cmake/HandleCPack.cmake index 1c32433a4..eff36c42d 100644 --- a/cmake/HandleCPack.cmake +++ b/cmake/HandleCPack.cmake @@ -25,4 +25,4 @@ set(CPACK_SOURCE_PACKAGE_FILE_NAME "gtsam-${GTSAM_VERSION_MAJOR}.${GTSAM_VERSION # Deb-package specific cpack set(CPACK_DEBIAN_PACKAGE_NAME "libgtsam-dev") -set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (>= 1.58)") #Example: "libc6 (>= 2.3.1-6), libgcc1 (>= 1:3.4.2-12)") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (>= 1.67)") #Example: "libc6 (>= 2.3.1-6), libgcc1 (>= 1:3.4.2-12)") From 3e8973e8a87b1ad93cf1a26f87cf86664c6738bc Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 19 Jan 2021 23:39:02 -0500 Subject: [PATCH 2/3] Revert "upgrade minimum required Boost version to 1.67." This reverts commit e8d71735bac0d788fb3d19f6dd83d820f39c4f97. --- INSTALL.md | 2 +- README.md | 2 +- cmake/HandleBoost.cmake | 4 ++-- cmake/HandleCPack.cmake | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 44051815a..1fddf4df0 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -13,7 +13,7 @@ $ make install ## Important Installation Notes 1. GTSAM requires the following libraries to be installed on your system: - - BOOST version 1.67 or greater (install through Linux repositories or MacPorts) + - BOOST version 1.58 or greater (install through Linux repositories or MacPorts) - Cmake version 3.0 or higher - Support for XCode 4.3 command line tools on Mac requires CMake 2.8.8 or higher diff --git a/README.md b/README.md index 82a17a8fa..60eff197a 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ $ make install Prerequisites: -- [Boost](http://www.boost.org/users/download/) >= 1.67 (Ubuntu: `sudo apt-get install libboost-all-dev`) +- [Boost](http://www.boost.org/users/download/) >= 1.58 (Ubuntu: `sudo apt-get install libboost-all-dev`) - [CMake](http://www.cmake.org/cmake/resources/software.html) >= 3.0 (Ubuntu: `sudo apt-get install cmake`) - A modern compiler, i.e., at least gcc 4.7.3 on Linux. diff --git a/cmake/HandleBoost.cmake b/cmake/HandleBoost.cmake index a02afba57..e73c2237d 100644 --- a/cmake/HandleBoost.cmake +++ b/cmake/HandleBoost.cmake @@ -22,7 +22,7 @@ endif() # Store these in variables so they are automatically replicated in GTSAMConfig.cmake and such. -set(BOOST_FIND_MINIMUM_VERSION 1.67) +set(BOOST_FIND_MINIMUM_VERSION 1.58) set(BOOST_FIND_MINIMUM_COMPONENTS serialization system filesystem thread program_options date_time timer chrono regex) find_package(Boost ${BOOST_FIND_MINIMUM_VERSION} COMPONENTS ${BOOST_FIND_MINIMUM_COMPONENTS}) @@ -30,7 +30,7 @@ find_package(Boost ${BOOST_FIND_MINIMUM_VERSION} COMPONENTS ${BOOST_FIND_MINIMUM # Required components if(NOT Boost_SERIALIZATION_LIBRARY OR NOT Boost_SYSTEM_LIBRARY OR NOT Boost_FILESYSTEM_LIBRARY OR NOT Boost_THREAD_LIBRARY OR NOT Boost_DATE_TIME_LIBRARY) - message(FATAL_ERROR "Missing required Boost components >= v1.67, please install/upgrade Boost or configure your search paths.") + message(FATAL_ERROR "Missing required Boost components >= v1.58, please install/upgrade Boost or configure your search paths.") endif() option(GTSAM_DISABLE_NEW_TIMERS "Disables using Boost.chrono for timing" OFF) diff --git a/cmake/HandleCPack.cmake b/cmake/HandleCPack.cmake index eff36c42d..1c32433a4 100644 --- a/cmake/HandleCPack.cmake +++ b/cmake/HandleCPack.cmake @@ -25,4 +25,4 @@ set(CPACK_SOURCE_PACKAGE_FILE_NAME "gtsam-${GTSAM_VERSION_MAJOR}.${GTSAM_VERSION # Deb-package specific cpack set(CPACK_DEBIAN_PACKAGE_NAME "libgtsam-dev") -set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (>= 1.67)") #Example: "libc6 (>= 2.3.1-6), libgcc1 (>= 1:3.4.2-12)") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (>= 1.58)") #Example: "libc6 (>= 2.3.1-6), libgcc1 (>= 1:3.4.2-12)") From 0bb6d25baca592b6ebc99bcf6bfe8deb8a250af7 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 19 Jan 2021 23:53:54 -0500 Subject: [PATCH 3/3] add known issues section with info about march=native --- INSTALL.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 1fddf4df0..520bddf3c 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -41,11 +41,6 @@ $ make install - MacOS 10.6 - 10.14 - Windows 7, 8, 8.1, 10 - Known issues: - - - MSVC 2013 is not yet supported because it cannot build the serialization module - of Boost 1.55 (or earlier). - 2. GTSAM makes extensive use of debug assertions, and we highly recommend you work in Debug mode while developing (enabled by default). Likewise, it is imperative that you switch to release mode when running finished code and for timing. GTSAM @@ -70,6 +65,13 @@ execute commands as follows for an out-of-source build: This will build the library and unit tests, run all of the unit tests, and then install the library itself. +## Known Issues + +- When using `GTSAM_BUILD_WITH_MARCH_NATIVE=ON`, you may encounter issues in running tests which we are still investigating: + - Use of a version of GCC < 7.5 results in an "Indeterminant Linear System" error for `testSmartProjectionFactor`. + - Use of Boost version < 1.67 with clang will give a segfault for mulitple test cases. +- MSVC 2013 is not yet supported because it cannot build the serialization module of Boost 1.55 (or earlier). + # Windows Installation This section details how to build a GTSAM `.sln` file using Visual Studio.