image-pipeline: patch twice to compile with gcc6 (#392)

This commit is contained in:
Lukas Bulwahn 2016-09-30 16:02:02 +02:00
parent 116083cc17
commit 855eebca0b
3 changed files with 198 additions and 0 deletions

View File

@ -0,0 +1,138 @@
From 6c2d65452bd5fe62723988a1a570789921900d59 Mon Sep 17 00:00:00 2001
From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Date: Fri, 30 Sep 2016 15:39:47 +0200
Subject: [PATCH 1/2] address gcc6 build error
With gcc6, compiling fails with `stdlib.h: No such file or directory`,
as including '-isystem /usr/include' breaks with gcc6, cf.,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129.
This commit addresses this issue for this package in the same way
it was addressed in various other ROS packages. A list of related
commits and pull requests is at:
https://github.com/ros/rosdistro/issues/12783
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Upstream-Status: Accepted [https://github.com/ros-perception/image_pipeline/commit/6c2d65452bd5fe62723988a1a570789921900d59]
This patch has been generated with:
`git format-patch -2 562332df73781c1e56ce9123542334cc1d91b143`
in the image_pipeline repository.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
depth_image_proc/CMakeLists.txt | 6 +-----
image_proc/CMakeLists.txt | 3 +--
image_publisher/CMakeLists.txt | 3 +--
image_rotate/CMakeLists.txt | 5 +----
image_view/CMakeLists.txt | 8 ++++----
stereo_image_proc/CMakeLists.txt | 4 +---
6 files changed, 9 insertions(+), 20 deletions(-)
diff --git a/depth_image_proc/CMakeLists.txt b/depth_image_proc/CMakeLists.txt
index 0a7c7e2..6ceebfe 100644
--- a/depth_image_proc/CMakeLists.txt
+++ b/depth_image_proc/CMakeLists.txt
@@ -10,11 +10,7 @@ catkin_package(
find_package(Boost REQUIRED)
find_package(Eigen REQUIRED)
find_package(OpenCV REQUIRED)
-include_directories(include
- SYSTEM ${BOOST_INCLUDE_DIRS}
- ${catkin_INCLUDE_DIRS}
- ${EIGEN_INCLUDE_DIRS}
-)
+include_directories(include ${BOOST_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS})
add_library(${PROJECT_NAME} src/nodelets/convert_metric.cpp
src/nodelets/crop_foremost.cpp
diff --git a/image_proc/CMakeLists.txt b/image_proc/CMakeLists.txt
index a13371f..34905f0 100755
--- a/image_proc/CMakeLists.txt
+++ b/image_proc/CMakeLists.txt
@@ -17,8 +17,7 @@ catkin_package(
LIBRARIES ${PROJECT_NAME}
)
-include_directories(SYSTEM ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
-include_directories(include)
+include_directories(include ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
# Nodelet library
add_library(${PROJECT_NAME} src/libimage_proc/processor.cpp
diff --git a/image_publisher/CMakeLists.txt b/image_publisher/CMakeLists.txt
index 8015a45..431109c 100644
--- a/image_publisher/CMakeLists.txt
+++ b/image_publisher/CMakeLists.txt
@@ -8,8 +8,7 @@ generate_dynamic_reconfigure_options(cfg/ImagePublisher.cfg)
catkin_package()
-# add the executable
-include_directories(SYSTEM ${catkin_INCLUDE_DIRS})
+include_directories(${catkin_INCLUDE_DIRS})
add_library(${PROJECT_NAME} SHARED src/nodelet/image_publisher_nodelet.cpp)
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})
diff --git a/image_rotate/CMakeLists.txt b/image_rotate/CMakeLists.txt
index 04ba03b..75d8e77 100644
--- a/image_rotate/CMakeLists.txt
+++ b/image_rotate/CMakeLists.txt
@@ -12,10 +12,7 @@ find_package(OpenCV REQUIRED core imgproc)
find_package(Eigen REQUIRED)
# add the executable
-include_directories(SYSTEM ${catkin_INCLUDE_DIRS}
- ${EIGEN_INCLUDE_DIRS}
- ${OpenCV_INCLUDE_DIRS}
-)
+include_directories(${catkin_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
add_library(${PROJECT_NAME} SHARED src/nodelet/image_rotate_nodelet.cpp)
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${OpenCV_LIBRARIES})
diff --git a/image_view/CMakeLists.txt b/image_view/CMakeLists.txt
index 78b9eaa..93fabe7 100644
--- a/image_view/CMakeLists.txt
+++ b/image_view/CMakeLists.txt
@@ -8,9 +8,9 @@ catkin_package(CATKIN_DEPENDS dynamic_reconfigure)
find_package(Boost REQUIRED COMPONENTS signals thread)
find_package(OpenCV REQUIRED)
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS}
- ${catkin_INCLUDE_DIRS}
- ${OpenCV_INCLUDE_DIRS}
+include_directories(${Boost_INCLUDE_DIRS}
+ ${catkin_INCLUDE_DIRS}
+ ${OpenCV_INCLUDE_DIRS}
)
# Extra tools
@@ -40,7 +40,7 @@ endif()
find_package(GTK2)
add_definitions(-DHAVE_GTK)
-include_directories(SYSTEM ${GTK2_INCLUDE_DIRS})
+include_directories(${GTK2_INCLUDE_DIRS})
# Nodelet library
add_library(image_view src/nodelets/image_nodelet.cpp src/nodelets/disparity_nodelet.cpp src/nodelets/window_thread.cpp)
diff --git a/stereo_image_proc/CMakeLists.txt b/stereo_image_proc/CMakeLists.txt
index b7127d2..e201436 100644
--- a/stereo_image_proc/CMakeLists.txt
+++ b/stereo_image_proc/CMakeLists.txt
@@ -16,9 +16,7 @@ catkin_package(
include_directories(include)
find_package(OpenCV REQUIRED)
-include_directories(SYSTEM ${catkin_INCLUDE_DIRS}
- ${OpenCV_INCLUDE_DIRS}
-)
+include_directories(${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
# Nodelet library
add_library(${PROJECT_NAME} src/libstereo_image_proc/processor.cpp src/nodelets/disparity.cpp src/nodelets/point_cloud2.cpp)
--
2.5.5

View File

@ -0,0 +1,57 @@
From 562332df73781c1e56ce9123542334cc1d91b143 Mon Sep 17 00:00:00 2001
From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Date: Thu, 6 Oct 2016 08:55:27 +0200
Subject: [PATCH 2/2] explicitly cast to std::vector<double> to make gcc6 happy
With gcc6, compiling image_publisher fails with this error:
```
/[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp: In member function 'virtual void image_publisher::ImagePublisherNodelet::onInit()':
/[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp:180:43: error: ambiguous overload for 'operator=' (operand types are 'sensor_msgs::CameraInfo_<std::allocator<void> >::_D_type {aka std::vector<double>}' and 'boost::assign_detail::generic_list<int>')
camera_info_.D = list_of(0)(0)(0)(0)(0);
```
After adding an initial explicit type cast for the assignment,
compiling fails further with:
```
| /[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp: In member function 'virtual void image_publisher::ImagePublisherNodelet::onInit()':
| /[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp:180:65: error: call of overloaded 'vector(boost::assign_detail::generic_list<int>&)' is ambiguous
| camera_info_.D = std::vector<double> (list_of(0)(0)(0)(0)(0));
```
Various sources on the internet [1, 2, 3] point to use the
`convert_to_container` method; hence, this commit follows those
suggestions and with that image_publisher compiles with gcc6.
[1] http://stackoverflow.com/questions/16211410/ambiguity-when-using-boostassignlist-of-to-construct-a-stdvector
[2] http://stackoverflow.com/questions/12352692/ambiguous-call-with-list-of-in-vs2010/12362548#12362548
[3] http://stackoverflow.com/questions/13285272/using-boostassignlist-of?rq=1
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Upstream-Status: Accepted [https://github.com/ros-perception/image_pipeline/commit/562332df73781c1e56ce9123542334cc1d91b143]
This patch has been generated with:
`git format-patch -2 562332df73781c1e56ce9123542334cc1d91b143`
in the image_pipeline repository.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
image_publisher/src/nodelet/image_publisher_nodelet.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/image_publisher/src/nodelet/image_publisher_nodelet.cpp b/image_publisher/src/nodelet/image_publisher_nodelet.cpp
index 4102d0d..26e1352 100644
--- a/image_publisher/src/nodelet/image_publisher_nodelet.cpp
+++ b/image_publisher/src/nodelet/image_publisher_nodelet.cpp
@@ -177,7 +177,7 @@ public:
camera_info_.width = image_.cols;
camera_info_.height = image_.rows;
camera_info_.distortion_model = "plumb_bob";
- camera_info_.D = list_of(0)(0)(0)(0)(0);
+ camera_info_.D = list_of(0)(0)(0)(0)(0).convert_to_container<std::vector<double> >();
camera_info_.K = list_of(1)(0)(camera_info_.width/2)(0)(1)(camera_info_.height/2)(0)(0)(1);
camera_info_.R = list_of(1)(0)(0)(0)(1)(0)(0)(0)(1);
camera_info_.P = list_of(1)(0)(camera_info_.width/2)(0)(0)(1)(camera_info_.height/2)(0)(0)(0)(1)(0);
--
2.5.5

View File

@ -2,6 +2,9 @@ SRC_URI = "https://github.com/ros-perception/${ROS_SPN}/archive/${PV}.tar.gz;dow
SRC_URI[md5sum] = "d727bc9da9f7772649ab7c5c7c9f652e" SRC_URI[md5sum] = "d727bc9da9f7772649ab7c5c7c9f652e"
SRC_URI[sha256sum] = "fc3073428fc930523efd6ed4a86d838ab0f0ff04a312eb4188c72a854d300e97" SRC_URI[sha256sum] = "fc3073428fc930523efd6ed4a86d838ab0f0ff04a312eb4188c72a854d300e97"
SRC_URI += "file://0001-address-gcc6-build-error.patch;patchdir=.."
SRC_URI += "file://0002-explicitly-cast-to-std-vector-double-to-make-gcc6-ha.patch;patchdir=.."
S = "${WORKDIR}/${ROS_SP}/${ROS_BPN}" S = "${WORKDIR}/${ROS_SP}/${ROS_BPN}"
inherit catkin inherit catkin