Updated version with patches to ensure thermald with musl and x32.

Signed-off-by: Anuj Mittal <[email protected]>
---
 ...0001-Include-poll.h-instead-of-sys-poll.h.patch | 36 +++++++++
 ...0002-Use-correct-format-specifier-for-X32.patch | 87 ++++++++++++++++++++++
 .../{thermald_1.6.bb => thermald_1.7.1.bb}         |  7 +-
 3 files changed, 128 insertions(+), 2 deletions(-)
 create mode 100644 
recipes-bsp/thermald/files/0001-Include-poll.h-instead-of-sys-poll.h.patch
 create mode 100644 
recipes-bsp/thermald/files/0002-Use-correct-format-specifier-for-X32.patch
 rename recipes-bsp/thermald/{thermald_1.6.bb => thermald_1.7.1.bb} (80%)

diff --git 
a/recipes-bsp/thermald/files/0001-Include-poll.h-instead-of-sys-poll.h.patch 
b/recipes-bsp/thermald/files/0001-Include-poll.h-instead-of-sys-poll.h.patch
new file mode 100644
index 0000000..16d2ff1
--- /dev/null
+++ b/recipes-bsp/thermald/files/0001-Include-poll.h-instead-of-sys-poll.h.patch
@@ -0,0 +1,36 @@
+From b3de44c28cd930d68c17638575d46e590679f9fe Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <[email protected]>
+Date: Thu, 18 Jan 2018 10:10:40 +0800
+Subject: [PATCH] Include poll.h instead of sys/poll.h
+
+POSIX specifies poll.h to be the correct header name [1]. Also fixes
+a warning when built with musl.
+
+ | <sysroot>/usr/include/sys/poll.h:1:2: warning: #warning redirecting 
incorrect #include <sys/poll.h> to <poll.h> [-Werror=cpp]
+ | #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
+
+[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/poll.h.html
+
+Upstream-Status: Submitted [https://github.com/intel/thermal_daemon/pull/147]
+
+Signed-off-by: Anuj Mittal <[email protected]>
+---
+ src/thd_kobj_uevent.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/thd_kobj_uevent.h b/src/thd_kobj_uevent.h
+index d30ea5c..aa8e33f 100644
+--- a/src/thd_kobj_uevent.h
++++ b/src/thd_kobj_uevent.h
+@@ -28,7 +28,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ 
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+-- 
+2.7.4
+
diff --git 
a/recipes-bsp/thermald/files/0002-Use-correct-format-specifier-for-X32.patch 
b/recipes-bsp/thermald/files/0002-Use-correct-format-specifier-for-X32.patch
new file mode 100644
index 0000000..893b343
--- /dev/null
+++ b/recipes-bsp/thermald/files/0002-Use-correct-format-specifier-for-X32.patch
@@ -0,0 +1,87 @@
+From fa6cfd59e52be6a45a067cc770adc62437295085 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <[email protected]>
+Date: Thu, 18 Jan 2018 14:29:09 +0800
+Subject: [PATCH 2/2] Use correct format specifier for X32
+
+time_t in x32 is of long long type. Using %ld specifier leads
+to errors like:
+
+| ../git/src/thd_model.cpp: In member function 'unsigned int 
cthd_model::update_set_point(unsigned int)':
+| ../git/src/thermald.h:74:68: error: format '%ld' expects argument of type 
'long int', but argument 4 has type 'time_t {aka long long int}' 
[-Werror=format=]
+|  #define thd_log_info(...) g_log(NULL, G_LOG_LEVEL_INFO, __VA_ARGS__)
+|                                                                     ^
+| ../git/src/thd_model.cpp:112:3: note: in expansion of macro 'thd_log_info'
+|    thd_log_info("update_pid %ld %ld %d %g %d\n", now, last_time, error,
+|    ^~~~~~~~~~~~
+
+Use the correct format specifier based on the address model.
+
+Upstream-Status: Submitted [https://github.com/intel/thermal_daemon/pull/147]
+
+Signed-off-by: Anuj Mittal <[email protected]>
+---
+ src/thd_model.cpp      | 14 ++++++++++++++
+ src/thd_trip_point.cpp |  6 ++++++
+ 2 files changed, 20 insertions(+)
+
+diff --git a/src/thd_model.cpp b/src/thd_model.cpp
+index 5f1d0d7..46b95dc 100644
+--- a/src/thd_model.cpp
++++ b/src/thd_model.cpp
+@@ -109,8 +109,14 @@ unsigned int cthd_model::update_set_point(unsigned int 
curr_temp) {
+               /*Compute PID Output*/
+               output = kp * error + ki * err_sum + kd * d_err;
+               _setpoint = max_temp - (unsigned int) output;
++
++#if defined __x86_64__ && defined __ILP32__
++              thd_log_info("update_pid %lld %lld %d %g %d\n", now, last_time, 
error,
++                              output, _setpoint);
++#else
+               thd_log_info("update_pid %ld %ld %d %g %d\n", now, last_time, 
error,
+                               output, _setpoint);
++#endif
+               if ((_setpoint < 0) || (abs(set_point - _setpoint) > 
max_compensation))
+                       set_point -= max_compensation;
+               else
+@@ -134,10 +140,18 @@ void cthd_model::add_sample(int temperature) {
+       updated_set_point = false;
+       if (trend_increase_start == 0 && temperature > hot_zone) {
+               trend_increase_start = tm;
++#if defined __x86_64__ && defined __ILP32__
++              thd_log_debug("Trend increase start %lld\n", 
trend_increase_start);
++#else
+               thd_log_debug("Trend increase start %ld\n", 
trend_increase_start);
++#endif
+       } else if (trend_increase_start && temperature < hot_zone) {
+               int _set_point;
++#if defined __x86_64__ && defined __ILP32__
++              thd_log_debug("Trend increase stopped %lld\n", 
trend_increase_start);
++#else
+               thd_log_debug("Trend increase stopped %ld\n", 
trend_increase_start);
++#endif
+               trend_increase_start = 0;
+               _set_point = read_set_point(); // Restore set point to a 
calculated max
+               if (_set_point > set_point) {
+diff --git a/src/thd_trip_point.cpp b/src/thd_trip_point.cpp
+index dd1b881..170adcf 100644
+--- a/src/thd_trip_point.cpp
++++ b/src/thd_trip_point.cpp
+@@ -132,9 +132,15 @@ bool cthd_trip_point::thd_trip_point_check(int id, 
unsigned int read_temp,
+                               time_t tm;
+                               time(&tm);
+                               if ((tm - cdevs[i].last_op_time) < 
cdevs[i].sampling_priod) {
++#if defined __x86_64__ && defined __ILP32__
++                                      thd_log_info("Too early to act index %d 
tm %lld\n",
++                                                      
cdev->thd_cdev_get_index(),
++                                                      tm - 
cdevs[i].last_op_time);
++#else
+                                       thd_log_info("Too early to act index %d 
tm %ld\n",
+                                                       
cdev->thd_cdev_get_index(),
+                                                       tm - 
cdevs[i].last_op_time);
++#endif
+                                       break;
+                               }
+                               cdevs[i].last_op_time = tm;
+-- 
+2.7.4
+
diff --git a/recipes-bsp/thermald/thermald_1.6.bb 
b/recipes-bsp/thermald/thermald_1.7.1.bb
similarity index 80%
rename from recipes-bsp/thermald/thermald_1.6.bb
rename to recipes-bsp/thermald/thermald_1.7.1.bb
index e6cbb62..c3a43f4 100644
--- a/recipes-bsp/thermald/thermald_1.6.bb
+++ b/recipes-bsp/thermald/thermald_1.7.1.bb
@@ -13,8 +13,11 @@ DEPENDS_append_toolchain-clang = " openmp"
 LICENSE = "GPL-2.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ea8831610e926e2e469075b52bf08848"
 
-SRC_URI = "git://github.com/intel/thermal_daemon/"
-SRCREV = "5f1be4d9d6f3b27d2c9884f833ca05cdcb4428e0"
+SRC_URI = "git://github.com/intel/thermal_daemon/ \
+           file://0001-Include-poll.h-instead-of-sys-poll.h.patch \
+           file://0002-Use-correct-format-specifier-for-X32.patch \
+           "
+SRCREV = "c0d224b7b5cf62d384f5ad0a29bfaaba4bdc4ac1"
 S = "${WORKDIR}/git"
 
 inherit pkgconfig autotools systemd
-- 
2.7.4

-- 
_______________________________________________
meta-intel mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/meta-intel

Reply via email to