diff mbox series

[2/2] package/libdisplay-info: new package

Message ID 20230507142319.1001150-2-bernd.kuhls@t-online.de
State Superseded
Headers show
Series [1/2] package/hwdata: install to staging | expand

Commit Message

Bernd Kuhls May 7, 2023, 2:23 p.m. UTC
Needed for upcoming Kodi version 21.0-Omega.
Depends on the previous patch to enable staging install of hwdata.

Disable -fPIC on BR2_m68k_cf to avoid build failure:

/tmp/ccgMh4YA.s: Assembler messages:
/tmp/ccgMh4YA.s: Fatal error: Tried to convert PC relative branch to absolute jump

For details see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101971#c11

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 DEVELOPERS                                    |  1 +
 package/Config.in                             |  1 +
 ...0001-displayid.c-Include-sys-types.h.patch | 36 +++++++++++++++++++
 package/libdisplay-info/Config.in             |  8 +++++
 package/libdisplay-info/libdisplay-info.hash  |  3 ++
 package/libdisplay-info/libdisplay-info.mk    | 24 +++++++++++++
 6 files changed, 73 insertions(+)
 create mode 100644 package/libdisplay-info/0001-displayid.c-Include-sys-types.h.patch
 create mode 100644 package/libdisplay-info/Config.in
 create mode 100644 package/libdisplay-info/libdisplay-info.hash
 create mode 100644 package/libdisplay-info/libdisplay-info.mk

Comments

Yann E. MORIN June 18, 2023, 4:25 p.m. UTC | #1
Bernd, All,

On 2023-05-07 16:23 +0200, Bernd Kuhls spake thusly:
> Needed for upcoming Kodi version 21.0-Omega.
> Depends on the previous patch to enable staging install of hwdata.
> 
> Disable -fPIC on BR2_m68k_cf to avoid build failure:
> 
> /tmp/ccgMh4YA.s: Assembler messages:
> /tmp/ccgMh4YA.s: Fatal error: Tried to convert PC relative branch to absolute jump
> 
> For details see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101971#c11
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
[--SNIP--]
> diff --git a/package/libdisplay-info/0001-displayid.c-Include-sys-types.h.patch b/package/libdisplay-info/0001-displayid.c-Include-sys-types.h.patch
> new file mode 100644
> index 0000000000..334b786fff
> --- /dev/null
> +++ b/package/libdisplay-info/0001-displayid.c-Include-sys-types.h.patch
> @@ -0,0 +1,36 @@
> +From 648c1cb66b571b037976b61363654f39448f5fac Mon Sep 17 00:00:00 2001
> +From: Bernd Kuhls <bernd.kuhls@t-online.de>
> +Date: Sun, 7 May 2023 14:14:48 +0200
> +Subject: [PATCH] displayid.c: Include sys/types.h
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +Fixes build error
> +../displayid.c:377:10: error: ‘ssize_t’ undeclared (first use in this function); did you mean ‘size_t’?
> +
> +seen with:
> +arc-linux-gcc.br_real (Buildroot 2021.11-4428-g6b6741b) 10.2.0
> +
> +Upstream: https://gitlab.freedesktop.org/emersion/libdisplay-info/-/merge_requests/163

This has now been merged, good! So, when you respin, please update to
use a pointer to the actual commit, not the MR. Thanks!

[--SNIP--]
> diff --git a/package/libdisplay-info/libdisplay-info.mk b/package/libdisplay-info/libdisplay-info.mk
> new file mode 100644
> index 0000000000..d11f682a5a
> --- /dev/null
> +++ b/package/libdisplay-info/libdisplay-info.mk
> @@ -0,0 +1,24 @@
> +################################################################################
> +#
> +# libdisplay-info
> +#
> +################################################################################
> +
> +LIBDISPLAY_INFO_VERSION = 0.1.1
> +LIBDISPLAY_INFO_SOURCE = libdisplay-info-$(LIBDISPLAY_INFO_VERSION).tar.bz2
> +LIBDISPLAY_INFO_SITE = https://gitlab.freedesktop.org/emersion/libdisplay-info/-/archive/$(LIBDISPLAY_INFO_VERSION)
> +LIBDISPLAY_INFO_LICENSE = MIT
> +LIBDISPLAY_INFO_LICENSE_FILES = LICENSE
> +LIBDISPLAY_INFO_INSTALL_STAGING = YES
> +LIBDISPLAY_INFO_DEPENDENCIES = hwdata
> +
> +# workaround for static_assert on uclibc-ng < 1.0.42
> +LIBDISPLAY_INFO_CFLAGS += $(TARGET_CFLAGS) -Dstatic_assert=_Static_assert

So what happens with toolchains using uclibc-ng >= 1.0.42 ?

> +# m68k_cf can't use meson's default -fPIC, so we need to disable it to
> +# avoid a build failure.
> +ifeq ($(BR2_m68k_cf),y)
> +LIBDISPLAY_INFO_CONF_OPTS += -Db_staticpic=false

If static+PIC is really borked on coldfire, then we should do that for
all packages, not just libdisplay-info, no?

If so, then it should go into the meson-package infra, i.e. in
package/pkg-meson.mk around line 158.

Regards,
Yann E. MORIN.

> +endif
> +
> +$(eval $(meson-package))
> -- 
> 2.39.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Bernd Kuhls June 18, 2023, 6:34 p.m. UTC | #2
Am Sun, 18 Jun 2023 18:25:25 +0200 schrieb Yann E. MORIN:

Hi Yann,

>> +Upstream: https://gitlab.freedesktop.org/emersion/libdisplay-info/-/
merge_requests/163
> 
> This has now been merged, good! So, when you respin, please update to
> use a pointer to the actual commit, not the MR. Thanks!

done in v2.

>> +# workaround for static_assert on uclibc-ng < 1.0.42
>> +LIBDISPLAY_INFO_CFLAGS += $(TARGET_CFLAGS) -
Dstatic_assert=_Static_assert
> 
> So what happens with toolchains using uclibc-ng >= 1.0.42 ?

No negative impact, it just works ;) A similar fix is used by iproute2:
https://git.busybox.net/buildroot/commit/package/iproute2/iproute2.mk?
id=f640de44fac0c31e26e23a35b39d2b49b2060fbd

>> +LIBDISPLAY_INFO_CONF_OPTS += -Db_staticpic=false
> 
> If static+PIC is really borked on coldfire, then we should do that for
> all packages, not just libdisplay-info, no?
> 
> If so, then it should go into the meson-package infra, i.e. in
> package/pkg-meson.mk around line 158.

Done: https://patchwork.ozlabs.org/project/buildroot/patch/
20230618183105.2474342-1-bernd@kuhls.net/

Regards, Bernd
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 57b67e091e..10ab602a0b 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -364,6 +364,7 @@  F:	package/libbluray/
 F:	package/libbroadvoice/
 F:	package/libcdio/
 F:	package/libcec/
+F:	package/libdisplay-info/
 F:	package/libcodec2/
 F:	package/libcrossguid/
 F:	package/libdeflate/
diff --git a/package/Config.in b/package/Config.in
index eaac32a01a..b59bd74dec 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1676,6 +1676,7 @@  menu "Hardware handling"
 	source "package/libatasmart/Config.in"
 	source "package/libblockdev/Config.in"
 	source "package/libcec/Config.in"
+	source "package/libdisplay-info/Config.in"
 	source "package/libfreefare/Config.in"
 	source "package/libftdi/Config.in"
 	source "package/libftdi1/Config.in"
diff --git a/package/libdisplay-info/0001-displayid.c-Include-sys-types.h.patch b/package/libdisplay-info/0001-displayid.c-Include-sys-types.h.patch
new file mode 100644
index 0000000000..334b786fff
--- /dev/null
+++ b/package/libdisplay-info/0001-displayid.c-Include-sys-types.h.patch
@@ -0,0 +1,36 @@ 
+From 648c1cb66b571b037976b61363654f39448f5fac Mon Sep 17 00:00:00 2001
+From: Bernd Kuhls <bernd.kuhls@t-online.de>
+Date: Sun, 7 May 2023 14:14:48 +0200
+Subject: [PATCH] displayid.c: Include sys/types.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes build error
+../displayid.c:377:10: error: ‘ssize_t’ undeclared (first use in this function); did you mean ‘size_t’?
+
+seen with:
+arc-linux-gcc.br_real (Buildroot 2021.11-4428-g6b6741b) 10.2.0
+
+Upstream: https://gitlab.freedesktop.org/emersion/libdisplay-info/-/merge_requests/163
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ displayid.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/displayid.c b/displayid.c
+index 398772b..f1749c6 100644
+--- a/displayid.c
++++ b/displayid.c
+@@ -3,6 +3,7 @@
+ #include <inttypes.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <sys/types.h>
+ 
+ #include "bits.h"
+ #include "displayid.h"
+-- 
+2.39.2
+
diff --git a/package/libdisplay-info/Config.in b/package/libdisplay-info/Config.in
new file mode 100644
index 0000000000..b8363ed61b
--- /dev/null
+++ b/package/libdisplay-info/Config.in
@@ -0,0 +1,8 @@ 
+config BR2_PACKAGE_LIBDISPLAY_INFO
+	bool "libdisplay-info"
+	select BR2_PACKAGE_HWDATA
+	select BR2_PACKAGE_HWDATA_PNP_IDS
+	help
+	  EDID and DisplayID library.
+
+	  https://gitlab.freedesktop.org/emersion/libdisplay-info
diff --git a/package/libdisplay-info/libdisplay-info.hash b/package/libdisplay-info/libdisplay-info.hash
new file mode 100644
index 0000000000..a0829479a8
--- /dev/null
+++ b/package/libdisplay-info/libdisplay-info.hash
@@ -0,0 +1,3 @@ 
+# Locally computed
+sha256  51cdb0362882ca2af62532ab4d95e60d81e9890b339264719fd55f8e3945d695  libdisplay-info-0.1.1.tar.bz2
+sha256  15b396244e58830c5614b9394f4deccfe684970cd507f299383ab57ad339eedd  LICENSE
diff --git a/package/libdisplay-info/libdisplay-info.mk b/package/libdisplay-info/libdisplay-info.mk
new file mode 100644
index 0000000000..d11f682a5a
--- /dev/null
+++ b/package/libdisplay-info/libdisplay-info.mk
@@ -0,0 +1,24 @@ 
+################################################################################
+#
+# libdisplay-info
+#
+################################################################################
+
+LIBDISPLAY_INFO_VERSION = 0.1.1
+LIBDISPLAY_INFO_SOURCE = libdisplay-info-$(LIBDISPLAY_INFO_VERSION).tar.bz2
+LIBDISPLAY_INFO_SITE = https://gitlab.freedesktop.org/emersion/libdisplay-info/-/archive/$(LIBDISPLAY_INFO_VERSION)
+LIBDISPLAY_INFO_LICENSE = MIT
+LIBDISPLAY_INFO_LICENSE_FILES = LICENSE
+LIBDISPLAY_INFO_INSTALL_STAGING = YES
+LIBDISPLAY_INFO_DEPENDENCIES = hwdata
+
+# workaround for static_assert on uclibc-ng < 1.0.42
+LIBDISPLAY_INFO_CFLAGS += $(TARGET_CFLAGS) -Dstatic_assert=_Static_assert
+
+# m68k_cf can't use meson's default -fPIC, so we need to disable it to
+# avoid a build failure.
+ifeq ($(BR2_m68k_cf),y)
+LIBDISPLAY_INFO_CONF_OPTS += -Db_staticpic=false
+endif
+
+$(eval $(meson-package))