[v3,meta-oe] rtc-tools: Add a recipe

Message ID 20220127230607.35740-1-festevam@gmail.com
State New
Headers show
Series [v3,meta-oe] rtc-tools: Add a recipe | expand

Commit Message

Fabio Estevam Jan. 27, 2022, 11:06 p.m. UTC
From: Fabio Estevam <festevam@denx.de>

rtc-tools is a useful utility developed by Alexandre Belloni
for testing RTC kernel drivers, such as y2038 support.

Based on the initial recipe from Heiko Schocher <hs@denx.de>.

Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 .../0001-rtc-tools-Add-a-Makefile.patch       | 44 +++++++++++++++++++
 .../rtc-tools/rtc-tools_1.0.0.bb              | 18 ++++++++
 2 files changed, 62 insertions(+)
 create mode 100644 meta-oe/recipes-support/rtc-tools/rtc-tools/0001-rtc-tools-Add-a-Makefile.patch
 create mode 100644 meta-oe/recipes-support/rtc-tools/rtc-tools_1.0.0.bb

Comments

Peter Kjellerstedt Jan. 28, 2022, 4:48 a.m. UTC | #1
> -----Original Message-----
> From: openembedded-devel@lists.openembedded.org <openembedded-devel@lists.openembedded.org> On Behalf Of Fabio Estevam
> Sent: den 28 januari 2022 00:06
> To: openembedded-devel@lists.openembedded.org
> Cc: otavio.salvador@ossystems.com.br; hs@denx.de; alexandre.belloni@bootlin.com; raj.khem@gmail.com; Peter Kjellerstedt <peter.kjellerstedt@axis.com>; Fabio Estevam <festevam@denx.de>
> Subject: [oe] [PATCH v3 meta-oe] rtc-tools: Add a recipe
> 
> From: Fabio Estevam <festevam@denx.de>
> 
> rtc-tools is a useful utility developed by Alexandre Belloni
> for testing RTC kernel drivers, such as y2038 support.
> 
> Based on the initial recipe from Heiko Schocher <hs@denx.de>.
> 
> Signed-off-by: Fabio Estevam <festevam@denx.de>
> ---
>  .../0001-rtc-tools-Add-a-Makefile.patch       | 44 +++++++++++++++++++
>  .../rtc-tools/rtc-tools_1.0.0.bb              | 18 ++++++++
>  2 files changed, 62 insertions(+)
>  create mode 100644 meta-oe/recipes-support/rtc-tools/rtc-tools/0001-rtc-tools-Add-a-Makefile.patch
>  create mode 100644 meta-oe/recipes-support/rtc-tools/rtc-tools_1.0.0.bb
> 
> diff --git a/meta-oe/recipes-support/rtc-tools/rtc-tools/0001-rtc-tools-Add-a-Makefile.patch b/meta-oe/recipes-support/rtc-tools/rtc-tools/0001-rtc-tools-Add-a-Makefile.patch
> new file mode 100644
> index 000000000000..c1d1fa97eaa3
> --- /dev/null
> +++ b/meta-oe/recipes-support/rtc-tools/rtc-tools/0001-rtc-tools-Add-a-
> Makefile.patch
> @@ -0,0 +1,44 @@
> +From b19924f797d69475b1857272231500c97ba9959c Mon Sep 17 00:00:00 2001
> +From: Fabio Estevam <festevam@denx.de>
> +Date: Thu, 27 Jan 2022 18:40:29 -0300
> +Subject: [PATCH rtc-tools v2] rtc-tools: Add a Makefile
> +
> +Add a Makefile to make installation and uninstallation
> +process easier.
> +
> +Upstream-Status: Submitted [https://marc.info/?l=linux-rtc&m=164332426030004&w=2]
> +Signed-off-by: Fabio Estevam <festevam@denx.de>
> +---
> +Changes since v1:
> +- Simplify the Makefile by taking Peter Kjellerstedt's feedback in
> +the oe-devel list.

This doesn't belong in the Makefile.patch file, it belongs after the 
commit message as it relates to the review process and has no bearing 
once this is integrated.

> +
> + Makefile | 16 ++++++++++++++++
> + 1 file changed, 16 insertions(+)
> + create mode 100644 Makefile
> +
> +diff --git a/Makefile b/Makefile
> +new file mode 100644
> +index 0000000..71a4c9c
> +--- /dev/null
> ++++ b/Makefile
> +@@ -0,0 +1,16 @@
> ++prefix ?= /usr
> ++bindir ?= $(prefix)/bin
> ++
> ++EXEC = rtc-range rtc rtc-sync
> ++
> ++all: $(EXEC)
> ++
> ++clean:
> ++	$(RM) $(EXEC)
> ++
> ++install:
> ++	install -d $(DESTDIR)$(bindir)
> ++	install $(EXEC) $(DESTDIR)$(bindir)
> ++
> ++uninstall:
> ++	$(RM) -r $(addprefix $(DESTDIR)$(bindir)/,$(EXEC))
> +--
> +2.25.1
> +
> diff --git a/meta-oe/recipes-support/rtc-tools/rtc-tools_1.0.0.bb b/meta-oe/recipes-support/rtc-tools/rtc-tools_1.0.0.bb
> new file mode 100644
> index 000000000000..64ea3173d8a4
> --- /dev/null
> +++ b/meta-oe/recipes-support/rtc-tools/rtc-tools_1.0.0.bb
> @@ -0,0 +1,18 @@
> +SUMMARY = "Useful programs to test rtc drivers"
> +LICENSE = "GPL-2.0-only"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=74274e8a218423e49eefdea80bc55038"
> +
> +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/${BPN}.git;protocol=https;branch=master \
> +           file://0001-rtc-tools-Add-a-Makefile.patch \
> +           "
> +SRCREV = "acc442e7af4e1e783432a43d37f1a7938c692659"
> +
> +S = "${WORKDIR}/git"
> +
> +TARGET_CC_ARCH += "${LDFLAGS}"

You forgot to remove the TAGET_CC_ARCH line.

> +
> +EXTRA_OEMAKE = "DESTDIR=${D}"
> +
> +do_install() {
> +	oe_runmake install
> +}
> --
> 2.25.1

//Peter
Fabio Estevam Jan. 28, 2022, 10:28 a.m. UTC | #2
Hi Peter,

On Fri, Jan 28, 2022 at 1:48 AM Peter Kjellerstedt
<peter.kjellerstedt@axis.com> wrote:

> > +TARGET_CC_ARCH += "${LDFLAGS}"
>
> You forgot to remove the TAGET_CC_ARCH line.

If I remove this line, the following error happens:

ERROR: rtc-tools-1.0.0-r0 do_package_qa: QA Issue: File
/usr/bin/rtc-sync in package rtc-tools doesn't have GNU_HASH (didn't
pass LDFLAGS?)
File /usr/bin/rtc in package rtc-tools doesn't have GNU_HASH (didn't
pass LDFLAGS?)
File /usr/bin/rtc-range in package rtc-tools doesn't have GNU_HASH
(didn't pass LDFLAGS?) [ldflags]
ERROR: rtc-tools-1.0.0-r0 do_package_qa: QA run found fatal errors.
Please consider fixing them.

Any suggestions as to how this should be fixed?

Thanks
Khem Raj Jan. 28, 2022, 3:33 p.m. UTC | #3
On Fri, Jan 28, 2022 at 2:28 AM Fabio Estevam <festevam@gmail.com> wrote:

> Hi Peter,
>
> On Fri, Jan 28, 2022 at 1:48 AM Peter Kjellerstedt
> <peter.kjellerstedt@axis.com> wrote:
>
> > > +TARGET_CC_ARCH += "${LDFLAGS}"
> >
> > You forgot to remove the TAGET_CC_ARCH line.
>
> If I remove this line, the following error happens:
>
> ERROR: rtc-tools-1.0.0-r0 do_package_qa: QA Issue: File
> /usr/bin/rtc-sync in package rtc-tools doesn't have GNU_HASH (didn't
> pass LDFLAGS?)
> File /usr/bin/rtc in package rtc-tools doesn't have GNU_HASH (didn't
> pass LDFLAGS?)
> File /usr/bin/rtc-range in package rtc-tools doesn't have GNU_HASH
> (didn't pass LDFLAGS?) [ldflags]
> ERROR: rtc-tools-1.0.0-r0 do_package_qa: QA run found fatal errors.
> Please consider fixing them.
>
> Any suggestions as to how this should be fixed?


I already suggested in earlier email to add LDFLAGS in makefile rules

>
>
> Thanks
>
Peter Kjellerstedt Jan. 28, 2022, 6:36 p.m. UTC | #4
The default rules provided by make do include $(LDFLAGS). This is the default rule provided by make to link a binary from a .c file:

%: %.c
#  recipe to execute (built-in):
        $(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@

where LINK.c is defined as:

LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)

(you can see the default rules by running make -p anywhere where there isn’t a Makefile).

I have now also applied the patch for the rtc-tools recipe. I then removed the TARGET_CC_ARCH line from it and built it without problems.

@Fabio: Are you sure you built with the correct version of the recipe and Makefile when you got the error about GNU_HASH? Because it should work (and I’ve verified that the files I built have the GNU_HASH and I never built with the TARGET_CC_ARCH line in the recipe).

//Peter

From: Khem Raj <raj.khem@gmail.com>
Sent: den 28 januari 2022 16:33
To: Fabio Estevam <festevam@gmail.com>
Cc: Fabio Estevam <festevam@denx.de>; Peter Kjellerstedt <peter.kjellerstedt@axis.com>; alexandre.belloni@bootlin.com; hs@denx.de; openembedded-devel@lists.openembedded.org; otavio.salvador@ossystems.com.br
Subject: Re: [oe] [PATCH v3 meta-oe] rtc-tools: Add a recipe



On Fri, Jan 28, 2022 at 2:28 AM Fabio Estevam <festevam@gmail.com<mailto:festevam@gmail.com>> wrote:
Hi Peter,

On Fri, Jan 28, 2022 at 1:48 AM Peter Kjellerstedt
<peter.kjellerstedt@axis.com<mailto:peter.kjellerstedt@axis.com>> wrote:

> > +TARGET_CC_ARCH += "${LDFLAGS}"
>
> You forgot to remove the TAGET_CC_ARCH line.

If I remove this line, the following error happens:

ERROR: rtc-tools-1.0.0-r0 do_package_qa: QA Issue: File
/usr/bin/rtc-sync in package rtc-tools doesn't have GNU_HASH (didn't pass LDFLAGS?)
File /usr/bin/rtc in package rtc-tools doesn't have GNU_HASH (didn't pass LDFLAGS?)
File /usr/bin/rtc-range in package rtc-tools doesn't have GNU_HASH (didn't pass LDFLAGS?) [ldflags]
ERROR: rtc-tools-1.0.0-r0 do_package_qa: QA run found fatal errors.
Please consider fixing them.

Any suggestions as to how this should be fixed?

I already suggested in earlier email to add LDFLAGS in makefile rules


Thanks
Fabio Estevam Jan. 28, 2022, 7:58 p.m. UTC | #5
Hi Peter,

On Fri, Jan 28, 2022 at 3:36 PM Peter Kjellerstedt
<peter.kjellerstedt@axis.com> wrote:

> @Fabio: Are you sure you built with the correct version of the recipe and Makefile when you got the error about GNU_HASH? Because it should work (and I’ve verified that the files I built have the GNU_HASH and I never built with the TARGET_CC_ARCH line in the recipe).

You are right. I rebuilt without the TARGET_CC_ARCH line in the recipe
and it builds fine.

I have sent v4 without this line.

Thanks for your help, really appreciate it.

Patch

diff --git a/meta-oe/recipes-support/rtc-tools/rtc-tools/0001-rtc-tools-Add-a-Makefile.patch b/meta-oe/recipes-support/rtc-tools/rtc-tools/0001-rtc-tools-Add-a-Makefile.patch
new file mode 100644
index 000000000000..c1d1fa97eaa3
--- /dev/null
+++ b/meta-oe/recipes-support/rtc-tools/rtc-tools/0001-rtc-tools-Add-a-Makefile.patch
@@ -0,0 +1,44 @@ 
+From b19924f797d69475b1857272231500c97ba9959c Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <festevam@denx.de>
+Date: Thu, 27 Jan 2022 18:40:29 -0300
+Subject: [PATCH rtc-tools v2] rtc-tools: Add a Makefile
+
+Add a Makefile to make installation and uninstallation
+process easier.
+
+Upstream-Status: Submitted [https://marc.info/?l=linux-rtc&m=164332426030004&w=2]
+Signed-off-by: Fabio Estevam <festevam@denx.de>
+---
+Changes since v1:
+- Simplify the Makefile by taking Peter Kjellerstedt's feedback in
+the oe-devel list.
+
+ Makefile | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+ create mode 100644 Makefile
+
+diff --git a/Makefile b/Makefile
+new file mode 100644
+index 0000000..71a4c9c
+--- /dev/null
++++ b/Makefile
+@@ -0,0 +1,16 @@
++prefix ?= /usr
++bindir ?= $(prefix)/bin
++
++EXEC = rtc-range rtc rtc-sync
++
++all: $(EXEC)
++
++clean:
++	$(RM) $(EXEC)
++
++install:
++	install -d $(DESTDIR)$(bindir)
++	install $(EXEC) $(DESTDIR)$(bindir)
++
++uninstall:
++	$(RM) -r $(addprefix $(DESTDIR)$(bindir)/,$(EXEC))
+-- 
+2.25.1
+
diff --git a/meta-oe/recipes-support/rtc-tools/rtc-tools_1.0.0.bb b/meta-oe/recipes-support/rtc-tools/rtc-tools_1.0.0.bb
new file mode 100644
index 000000000000..64ea3173d8a4
--- /dev/null
+++ b/meta-oe/recipes-support/rtc-tools/rtc-tools_1.0.0.bb
@@ -0,0 +1,18 @@ 
+SUMMARY = "Useful programs to test rtc drivers"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=74274e8a218423e49eefdea80bc55038"
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/${BPN}.git;protocol=https;branch=master \
+           file://0001-rtc-tools-Add-a-Makefile.patch \
+           "
+SRCREV = "acc442e7af4e1e783432a43d37f1a7938c692659"
+
+S = "${WORKDIR}/git"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+EXTRA_OEMAKE = "DESTDIR=${D}"
+
+do_install() {
+	oe_runmake install
+}