All of lore.kernel.org
 help / color / mirror / Atom feed
* [[oe] [meta-oe] [PATCH]] gpsd: Upgrade 3.19 -> 3.20
@ 2020-05-11 17:45 Sean Nyekjaer
  2020-05-15  6:09 ` Alistair Francis
  0 siblings, 1 reply; 3+ messages in thread
From: Sean Nyekjaer @ 2020-05-11 17:45 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Sean Nyekjaer

Revert "SConstruct: Add test for sizeof(time_t), result in SIZEOF_TIME_T."
Do not cross-compile a small for it to be executed on the host.

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
---
 ...t-Add-test-for-sizeof-time_t-result-.patch | 108 ++++++++++++++++++
 .../0001-gps_shm_close-Free-privdata.patch    |  37 ------
 .../gpsd/{gpsd_3.19.bb => gpsd_3.20.bb}       |   6 +-
 3 files changed, 111 insertions(+), 40 deletions(-)
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0001-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch
 delete mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch
 rename meta-oe/recipes-navigation/gpsd/{gpsd_3.19.bb => gpsd_3.20.bb} (95%)

diff --git a/meta-oe/recipes-navigation/gpsd/gpsd/0001-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch b/meta-oe/recipes-navigation/gpsd/gpsd/0001-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch
new file mode 100644
index 000000000..b021d0b72
--- /dev/null
+++ b/meta-oe/recipes-navigation/gpsd/gpsd/0001-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch
@@ -0,0 +1,108 @@
+Subject: [PATCH] Revert "SConstruct: Add test for sizeof(time_t), result in
+ SIZEOF_TIME_T."
+
+This reverts commit b32ff1a86c44fa738dabaf63de1b5462e0071ad3.
+
+Upstream-Status: Inappropriate [cross-compile specific]
+
+---
+ SConstruct             | 54 ++++--------------------------------------
+ android/gpsd_config.in |  1 -
+ 2 files changed, 5 insertions(+), 50 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 33e0ff326..e3c62fa3c 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -597,42 +597,6 @@ def CheckHeaderDefines(context, file, define):
+     return ret
+ 
+ 
+-def CheckSizeOf(context, type):
+-    """Check sizeof 'type'"""
+-    context.Message('Checking size of ' + type + '... ')
+-
+-    program = """
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-/*
+- * The CheckSizeOf function does not have a way for the caller to
+- * specify header files to be included to provide the type being
+- * checked.  As a workaround until that is remedied, include the
+- * header required for time_t, which is the sole current use of this
+- * function.
+- */
+-#include <time.h>
+-
+-int main() {
+-    printf("%d", (int)sizeof(""" + type + """));
+-    return 0;
+-}
+-"""
+-
+-    # compile it
+-    ret = context.TryCompile(program, '.c')
+-    if 0 == ret:
+-        announce('ERROR: TryCompile failed\n')
+-        # fall back to sizeof(time_t) is 8
+-        return '8'
+-
+-    # run it
+-    ret = context.TryRun(program, '.c')
+-    context.Result(ret[0])
+-    return ret[1]
+-
+-
+ def CheckCompilerDefines(context, define):
+     context.Message('Checking if compiler supplies %s... ' % (define,))
+     ret = context.TryLink("""
+@@ -703,15 +667,13 @@ env.Prepend(LIBPATH=[os.path.realpath(os.curdir)])
+ 
+ # CheckXsltproc works, but result is incorrectly saved as "no"
+ config = Configure(env, custom_tests={
+-    'CheckC11': CheckC11,
+-    'CheckCompilerDefines': CheckCompilerDefines,
+-    'CheckCompilerOption': CheckCompilerOption,
+-    'CheckHeaderDefines': CheckHeaderDefines,
+     'CheckPKG': CheckPKG,
+-    'CheckSizeOf': CheckSizeOf,
+     'CheckXsltproc': CheckXsltproc,
+-    'GetPythonValue': GetPythonValue,
+-    })
++    'CheckCompilerOption': CheckCompilerOption,
++    'CheckCompilerDefines': CheckCompilerDefines,
++    'CheckC11': CheckC11,
++    'CheckHeaderDefines': CheckHeaderDefines,
++    'GetPythonValue': GetPythonValue})
+ 
+ # Use print, rather than announce, so we see it in -s mode.
+ print("This system is: %s" % sys.platform)
+@@ -1043,12 +1005,6 @@ else:
+             confdefs.append("/* #undef HAVE_%s_H */\n"
+                             % hdr.replace("/", "_").upper())
+ 
+-    sizeof_time_t = config.CheckSizeOf("time_t")
+-    confdefs.append("#define SIZEOF_TIME_T %s\n" % sizeof_time_t)
+-    announce("sizeof(time_t) is %s" % sizeof_time_t)
+-    if 4 >= int(sizeof_time_t):
+-        announce("WARNING: time_t is too small.  It will fail in 2038")
+-
+     # check function after libraries, because some function require libraries
+     # for example clock_gettime() require librt on Linux glibc < 2.17
+     for f in ("cfmakeraw", "clock_gettime", "daemon", "fcntl", "fork",
+diff --git a/android/gpsd_config.in b/android/gpsd_config.in
+index 758251986..d240f6d34 100644
+--- a/android/gpsd_config.in
++++ b/android/gpsd_config.in
+@@ -19,7 +19,6 @@
+ #define HAVE_ARPA_INET_H 1
+ #define HAVE_SYSLOG_H 1
+ #define HAVE_DAEMON 1
+-#define SIZEOF_TIME_T 8
+ #define HAVE_CLOCK_GETTIME 1
+ #define HAVE_STRPTIME 1
+ #define HAVE_GMTIME_R 1
+-- 
+2.26.2
+
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch b/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch
deleted file mode 100644
index 9b3801580..000000000
--- a/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 2a4b3bcde0d73a3a4a6644d5f944ac9d16023ba9 Mon Sep 17 00:00:00 2001
-From: Adrian Bunk <bunk@stusta.de>
-Date: Mon, 21 Oct 2019 13:53:25 +0300
-Subject: gps_shm_close: Free privdata
-
-Previously every open/close cycle leaked privdata.
-
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
-Signed-off-by: Gary E. Miller <gem@rellim.com>
-
-Upstream-Status: Backport
----
- libgps_shm.c | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/libgps_shm.c b/libgps_shm.c
-index d93972bba..12bb3760b 100644
---- a/libgps_shm.c
-+++ b/libgps_shm.c
-@@ -163,8 +163,12 @@ int gps_shm_read(struct gps_data_t *gpsdata)
- 
- void gps_shm_close(struct gps_data_t *gpsdata)
- {
--    if (PRIVATE(gpsdata) && PRIVATE(gpsdata)->shmseg != NULL)
--	(void)shmdt((const void *)PRIVATE(gpsdata)->shmseg);
-+    if (PRIVATE(gpsdata)) {
-+        if (PRIVATE(gpsdata)->shmseg != NULL)
-+	    (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg);
-+        free(PRIVATE(gpsdata));
-+        gpsdata->privdata = NULL;
-+    }
- }
- 
- int gps_shm_mainloop(struct gps_data_t *gpsdata, int timeout,
--- 
-2.20.1
-
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.20.bb
similarity index 95%
rename from meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb
rename to meta-oe/recipes-navigation/gpsd/gpsd_3.20.bb
index f74ebda5f..0914f7ec2 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb
+++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.20.bb
@@ -7,10 +7,10 @@ PROVIDES = "virtual/gpsd"
 
 SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
     file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
-    file://0001-gps_shm_close-Free-privdata.patch \
+    file://0001-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch \
 "
-SRC_URI[md5sum] = "b3bf88706794eb8e5f2c2543bf7ba87b"
-SRC_URI[sha256sum] = "27dd24d45b2ac69baab7933da2bf6ae5fb0be90130f67e753c110a3477155f39"
+SRC_URI[md5sum] = "cf7fdec7ce7221d20bee1a7246362b05"
+SRC_URI[sha256sum] = "172a7805068eacb815a3c5225436fcb0be46e7e49a5001a94034eac43df85e50"
 
 inherit scons update-rc.d python3-dir python3native systemd update-alternatives
 
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [[oe] [meta-oe] [PATCH]] gpsd: Upgrade 3.19 -> 3.20
  2020-05-11 17:45 [[oe] [meta-oe] [PATCH]] gpsd: Upgrade 3.19 -> 3.20 Sean Nyekjaer
@ 2020-05-15  6:09 ` Alistair Francis
  2020-05-15 14:42   ` Khem Raj
  0 siblings, 1 reply; 3+ messages in thread
From: Alistair Francis @ 2020-05-15  6:09 UTC (permalink / raw)
  To: Sean Nyekjaer; +Cc: openembeded-devel

On Mon, May 11, 2020 at 10:46 AM Sean Nyekjaer <sean@geanix.com> wrote:
>
> Revert "SConstruct: Add test for sizeof(time_t), result in SIZEOF_TIME_T."
> Do not cross-compile a small for it to be executed on the host.
>
> Signed-off-by: Sean Nyekjaer <sean@geanix.com>

This causes gpsd to fail to build when cross compiling for Aarch64
with this error:

| aarch64-oe-linux-ld
--sysroot=/home/alistair/oe-master/build/tmp-glibc/work/aarch64-oe-linux/gpsd/3.20-r0/recipe-sysroot
-o libgps.so.25.0.0 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
--sysroot=/home/alistair/oe-master/build/tmp-glibc/work/aarch64-oe-linux/gpsd/3.20-r0/recipe-sysroot
-pthread -shared -Wl,-Bsymbolic -Wl,-soname=libgps.so.25 ais_json.os
bits.os gpsdclient.os gps_maskdump.os gpsutils.os hex.os json.os
libgps_core.os libgps_dbus.os libgps_json.os libgps_shm.os
libgps_sock.os netlib.os os_compat.os rtcm2_json.os rtcm3_json.os
shared_json.os timespec_str.os libgpsmm.os -L.
-L/home/alistair/oe-master/build/tmp-glibc/work/aarch64-oe-linux/gpsd/3.20-r0/recipe-sysroot/usr/lib
-lrt -lm -ldbus-1 -lbluetooth -ldbus-1 -lrt
| aarch64-oe-linux-ld: unrecognized option '-Wl,-O1'
| aarch64-oe-linux-ld: use the --help option for usage information
| scons: *** [libgps.so.25.0.0] Error 1
| scons: building terminated because of errors.

Reverting this patch fixes the issue.

Alistair

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [[oe] [meta-oe] [PATCH]] gpsd: Upgrade 3.19 -> 3.20
  2020-05-15  6:09 ` Alistair Francis
@ 2020-05-15 14:42   ` Khem Raj
  0 siblings, 0 replies; 3+ messages in thread
From: Khem Raj @ 2020-05-15 14:42 UTC (permalink / raw)
  To: Alistair Francis, Sean Nyekjaer; +Cc: openembeded-devel



On 5/14/20 11:09 PM, Alistair Francis wrote:
> On Mon, May 11, 2020 at 10:46 AM Sean Nyekjaer <sean@geanix.com> wrote:
>>
>> Revert "SConstruct: Add test for sizeof(time_t), result in SIZEOF_TIME_T."
>> Do not cross-compile a small for it to be executed on the host.
>>
>> Signed-off-by: Sean Nyekjaer <sean@geanix.com>
> 
> This causes gpsd to fail to build when cross compiling for Aarch64
> with this error:
> 
> | aarch64-oe-linux-ld
> --sysroot=/home/alistair/oe-master/build/tmp-glibc/work/aarch64-oe-linux/gpsd/3.20-r0/recipe-sysroot
> -o libgps.so.25.0.0 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
> --sysroot=/home/alistair/oe-master/build/tmp-glibc/work/aarch64-oe-linux/gpsd/3.20-r0/recipe-sysroot
> -pthread -shared -Wl,-Bsymbolic -Wl,-soname=libgps.so.25 ais_json.os
> bits.os gpsdclient.os gps_maskdump.os gpsutils.os hex.os json.os
> libgps_core.os libgps_dbus.os libgps_json.os libgps_shm.os
> libgps_sock.os netlib.os os_compat.os rtcm2_json.os rtcm3_json.os
> shared_json.os timespec_str.os libgpsmm.os -L.
> -L/home/alistair/oe-master/build/tmp-glibc/work/aarch64-oe-linux/gpsd/3.20-r0/recipe-sysroot/usr/lib
> -lrt -lm -ldbus-1 -lbluetooth -ldbus-1 -lrt
> | aarch64-oe-linux-ld: unrecognized option '-Wl,-O1'
> | aarch64-oe-linux-ld: use the --help option for usage information
> | scons: *** [libgps.so.25.0.0] Error 1
> | scons: building terminated because of errors.
> 
> Reverting this patch fixes the issue.
> 

Stragely it does not show up on OE builders for qemuarm64, Somehow LD is 
set to bare ld, perhaps setting LD from what bitbake brings into 
environment should fix it.

> Alistair
> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-05-15 14:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-11 17:45 [[oe] [meta-oe] [PATCH]] gpsd: Upgrade 3.19 -> 3.20 Sean Nyekjaer
2020-05-15  6:09 ` Alistair Francis
2020-05-15 14:42   ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.