Explicitely include a needed header to fix compile time error.

sys/stat.h used to be indirectly included from another header but
no longer is.

Signed-off-by: Max Krummenacher <[email protected]>
---
 .../chromium-40/add_missing_stat_h_include.patch   | 39 ++++++++++++++++++++++
 recipes-browser/chromium/chromium_40.0.2214.91.bb  |  1 +
 2 files changed, 40 insertions(+)
 create mode 100644 
recipes-browser/chromium/chromium/chromium-40/add_missing_stat_h_include.patch

diff --git 
a/recipes-browser/chromium/chromium/chromium-40/add_missing_stat_h_include.patch
 
b/recipes-browser/chromium/chromium/chromium-40/add_missing_stat_h_include.patch
new file mode 100644
index 0000000..64fe840
--- /dev/null
+++ 
b/recipes-browser/chromium/chromium/chromium-40/add_missing_stat_h_include.patch
@@ -0,0 +1,39 @@
+sys/stat.h used to be indirectly included through
+device/udev_linux/scoped_udev.h -> libudev.h -> sys/stat.h
+but libudev.h in jethro no longer includes sys/stat.h resulting in the
+following compile time errors:
+
+arm-angstrom-linux-gnueabi-g++ ...  
../../components/storage_monitor/storage_monitor_linux.cc -o 
obj/components/storage_monitor/storage_monitor.storage_monitor_linux.o
+../../components/storage_monitor/storage_monitor_linux.cc: In function 
'scoped_ptr<storage_monitor::StorageInfo> 
storage_monitor::{anonymous}::GetDeviceInfo(const base::FilePath&, const 
base::FilePath&)':
+../../components/storage_monitor/storage_monitor_linux.cc:132:15: error: 
aggregate 'storage_monitor::{anonymous}::GetDeviceInfo(const base::FilePath&, 
const base::FilePath&)::stat device_stat' has incomplete type and cannot be 
defined
+   struct stat device_stat;
+               ^
+../../components/storage_monitor/storage_monitor_linux.cc:133:53: error: 
invalid use of incomplete type 'struct 
storage_monitor::{anonymous}::GetDeviceInfo(const base::FilePath&, const 
base::FilePath&)::stat'
+   if (stat(device_path.value().c_str(), &device_stat) < 0)
+                                                     ^
+../../components/storage_monitor/storage_monitor_linux.cc:132:10: error: 
forward declaration of 'struct 
storage_monitor::{anonymous}::GetDeviceInfo(const base::FilePath&, const 
base::FilePath&)::stat'
+   struct stat device_stat;
+          ^
+../../components/storage_monitor/storage_monitor_linux.cc:137:34: error: 
'S_ISCHR' was not declared in this scope
+   if (S_ISCHR(device_stat.st_mode))
+                                  ^
+../../components/storage_monitor/storage_monitor_linux.cc:139:39: error: 
'S_ISBLK' was not declared in this scope
+   else if (S_ISBLK(device_stat.st_mode))
+                                       ^
+
+As the code makes use of stat systemcalls include the file explicitely.
+Tested with ARCH armv7.
+
+Signed-off-by: Max Krummenacher <max.oss.09 at gmail.com>
+Upstream-Status: Pending
+
+--- chromium-40.0.2214.91/components/storage_monitor/storage_monitor_linux.cc~ 
2015-01-21 21:28:16.000000000 +0100
++++ chromium-40.0.2214.91/components/storage_monitor/storage_monitor_linux.cc  
2015-10-27 13:21:08.405655894 +0100
+@@ -8,6 +8,7 @@
+ 
+ #include <mntent.h>
+ #include <stdio.h>
++#include <sys/stat.h>
+ 
+ #include <list>
+ 
diff --git a/recipes-browser/chromium/chromium_40.0.2214.91.bb 
b/recipes-browser/chromium/chromium_40.0.2214.91.bb
index 44f8593..8bc05ee 100644
--- a/recipes-browser/chromium/chromium_40.0.2214.91.bb
+++ b/recipes-browser/chromium/chromium_40.0.2214.91.bb
@@ -27,6 +27,7 @@ SRC_URI = "\
         file://google-chrome \
         file://google-chrome.desktop \
         file://chromium-40/fix-build-error-with-GCC-in-Debug-mode.patch \
+        file://chromium-40/add_missing_stat_h_include.patch \
 "
 #
 # * use-egl : Without this packageconfig, the Chromium build will use GLX for 
creating an OpenGL context in X11,
-- 
1.9.3

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to