diff mbox series

[meta-ti,master] libulm: Fix "buildpaths" QA error

Message ID 20240719203603.21930-1-reatmon@ti.com
State Rejected
Delegated to: Ryan Eatmon
Headers show
Series [meta-ti,master] libulm: Fix "buildpaths" QA error | expand

Commit Message

Ryan Eatmon July 19, 2024, 8:36 p.m. UTC
The TI cl6x compiler does not have a mechanism for replacing paths in
the obj files it creates.  So replace the string we want to remove with
an equally sized replacement string that does not contain the path.

Signed-off-by: Ryan Eatmon <reatmon@ti.com>
---
 ...m-makefile-Fix-reproducibility-error.patch | 31 +++++++++++++++++++
 .../recipes-bsp/dsptop/libulm_git.bb          | 12 +++++--
 2 files changed, 41 insertions(+), 2 deletions(-)
 create mode 100644 meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch

Comments

Denys Dmytriyenko July 20, 2024, 6:02 p.m. UTC | #1
On Fri, Jul 19, 2024 at 03:36:03PM -0500, Ryan Eatmon via lists.yoctoproject.org wrote:
> The TI cl6x compiler does not have a mechanism for replacing paths in
> the obj files it creates.  So replace the string we want to remove with
> an equally sized replacement string that does not contain the path.
> 
> Signed-off-by: Ryan Eatmon <reatmon@ti.com>
> ---
>  ...m-makefile-Fix-reproducibility-error.patch | 31 +++++++++++++++++++
>  .../recipes-bsp/dsptop/libulm_git.bb          | 12 +++++--
>  2 files changed, 41 insertions(+), 2 deletions(-)
>  create mode 100644 meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch
> 
> diff --git a/meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch b/meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch
> new file mode 100644
> index 00000000..6ea59517
> --- /dev/null
> +++ b/meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch
> @@ -0,0 +1,31 @@
> +From 8619e4b2f983130bf1909cc9c9bc238cd43ded41 Mon Sep 17 00:00:00 2001
> +From: Ryan Eatmon <reatmon@ti.com>
> +Date: Fri, 19 Jul 2024 14:37:55 -0500
> +Subject: [master][PATCH] dstop/ulm/makefile: Fix reproducibility error
> +
> +The TI cl6x compiler does not have a mechanism for replacing paths in
> +the obj files it creates.  So replace the string we want to remove with
> +an equally sized replacement string that does not contain the path.
> +
> +Upstream-Status: Inappropriate [OE-specific]
> +
> +Signed-off-by: Ryan Eatmon <reatmon@ti.com>
> +---
> + makefile | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/makefile b/makefile
> +index dffb211..586dcc2 100644
> +--- a/makefile
> ++++ b/makefile
> +@@ -82,6 +82,7 @@ $(OBJDIR)/%.obj: %.c $(INCLUDE_FILES)
> + 	@echo "Compiling" $<
> + 	@mkdir -p $(OBJDIR)
> + 	$(CC) $(CFLAGS) $(INCLUDE_PATH) -fe $@ $<
> ++	perl -pi -e 's#${SEARCH}#${REPLACE}#g' $@

That assumes perl host tool dependency - is it safe? Can this be done with 
sed instead?


> + 
> + libtiulm.a libtiulm.ae66: $(OBJECTS)
> + 	@echo "Building target" $@
> +-- 
> +2.17.1
> +
> diff --git a/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb b/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
> index 6a2cde30..aafae21f 100644
> --- a/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
> +++ b/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
> @@ -6,7 +6,7 @@ inherit features_check
>  
>  REQUIRED_MACHINE_FEATURES = "dsp"
>  
> -DEPENDS = "ti-cgt6x-native"
> +DEPENDS = "ti-cgt6x-native perl-native"
>  PR = "${INC_PR}.0"
>  
>  S = "${WORKDIR}/git/dsptop/ulm"
> @@ -14,7 +14,13 @@ S = "${WORKDIR}/git/dsptop/ulm"
>  DEVICE=""
>  DEVICE:dra7xx = "DRA7xx"
>  
> -EXTRA_OEMAKE = "release DEVICE=${DEVICE} CROSS_COMPILE=${TARGET_PREFIX}"
> +EXTRA_OEMAKE = " \
> +    release \
> +    DEVICE=${DEVICE} \
> +    CROSS_COMPILE=${TARGET_PREFIX} \
> +    SEARCH=${WORKDIR} \
> +    REPLACE=${@'_'*(len(d.getVar('WORKDIR'))-7)+"workdir"} \
> +"
>  
>  do_compile() {
>      oe_runmake arm XPORT_ONLY CC="${CC}"
> @@ -40,6 +46,8 @@ FILES:${PN}-dev += "\
>  
>  include dsptop.inc
>  
> +SRC_URI += "file://0001-dstop-ulm-makefile-Fix-reproducibility-error.patch"
> +
>  ALLOW_EMPTY:${PN} = "1"
>  
>  PARALLEL_MAKE= ""
> -- 
> 2.17.1
Denys Dmytriyenko July 20, 2024, 6:25 p.m. UTC | #2
On Sat, Jul 20, 2024 at 02:02:01PM -0400, Denys Dmytriyenko wrote:
> On Fri, Jul 19, 2024 at 03:36:03PM -0500, Ryan Eatmon via lists.yoctoproject.org wrote:
> > The TI cl6x compiler does not have a mechanism for replacing paths in
> > the obj files it creates.  So replace the string we want to remove with
> > an equally sized replacement string that does not contain the path.
> > 
> > Signed-off-by: Ryan Eatmon <reatmon@ti.com>
> > ---
> >  ...m-makefile-Fix-reproducibility-error.patch | 31 +++++++++++++++++++
> >  .../recipes-bsp/dsptop/libulm_git.bb          | 12 +++++--
> >  2 files changed, 41 insertions(+), 2 deletions(-)
> >  create mode 100644 meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch
> > 
> > diff --git a/meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch b/meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch
> > new file mode 100644
> > index 00000000..6ea59517
> > --- /dev/null
> > +++ b/meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch
> > @@ -0,0 +1,31 @@
> > +From 8619e4b2f983130bf1909cc9c9bc238cd43ded41 Mon Sep 17 00:00:00 2001
> > +From: Ryan Eatmon <reatmon@ti.com>
> > +Date: Fri, 19 Jul 2024 14:37:55 -0500
> > +Subject: [master][PATCH] dstop/ulm/makefile: Fix reproducibility error
> > +
> > +The TI cl6x compiler does not have a mechanism for replacing paths in
> > +the obj files it creates.  So replace the string we want to remove with
> > +an equally sized replacement string that does not contain the path.
> > +
> > +Upstream-Status: Inappropriate [OE-specific]
> > +
> > +Signed-off-by: Ryan Eatmon <reatmon@ti.com>
> > +---
> > + makefile | 1 +
> > + 1 file changed, 1 insertion(+)
> > +
> > +diff --git a/makefile b/makefile
> > +index dffb211..586dcc2 100644
> > +--- a/makefile
> > ++++ b/makefile
> > +@@ -82,6 +82,7 @@ $(OBJDIR)/%.obj: %.c $(INCLUDE_FILES)
> > + 	@echo "Compiling" $<
> > + 	@mkdir -p $(OBJDIR)
> > + 	$(CC) $(CFLAGS) $(INCLUDE_PATH) -fe $@ $<
> > ++	perl -pi -e 's#${SEARCH}#${REPLACE}#g' $@
> 
> That assumes perl host tool dependency - is it safe? Can this be done with 
> sed instead?

Never mind - I see you have perl-native in DEPENDS.

And for patching binary files perl is definitely better than sed.


> > + libtiulm.a libtiulm.ae66: $(OBJECTS)
> > + 	@echo "Building target" $@
> > +-- 
> > +2.17.1
> > +
> > diff --git a/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb b/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
> > index 6a2cde30..aafae21f 100644
> > --- a/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
> > +++ b/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
> > @@ -6,7 +6,7 @@ inherit features_check
> >  
> >  REQUIRED_MACHINE_FEATURES = "dsp"
> >  
> > -DEPENDS = "ti-cgt6x-native"
> > +DEPENDS = "ti-cgt6x-native perl-native"
> >  PR = "${INC_PR}.0"
> >  
> >  S = "${WORKDIR}/git/dsptop/ulm"
> > @@ -14,7 +14,13 @@ S = "${WORKDIR}/git/dsptop/ulm"
> >  DEVICE=""
> >  DEVICE:dra7xx = "DRA7xx"
> >  
> > -EXTRA_OEMAKE = "release DEVICE=${DEVICE} CROSS_COMPILE=${TARGET_PREFIX}"
> > +EXTRA_OEMAKE = " \
> > +    release \
> > +    DEVICE=${DEVICE} \
> > +    CROSS_COMPILE=${TARGET_PREFIX} \
> > +    SEARCH=${WORKDIR} \
> > +    REPLACE=${@'_'*(len(d.getVar('WORKDIR'))-7)+"workdir"} \
> > +"
> >  
> >  do_compile() {
> >      oe_runmake arm XPORT_ONLY CC="${CC}"
> > @@ -40,6 +46,8 @@ FILES:${PN}-dev += "\
> >  
> >  include dsptop.inc
> >  
> > +SRC_URI += "file://0001-dstop-ulm-makefile-Fix-reproducibility-error.patch"
> > +
> >  ALLOW_EMPTY:${PN} = "1"
> >  
> >  PARALLEL_MAKE= ""
> > -- 
> > 2.17.1
diff mbox series

Patch

diff --git a/meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch b/meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch
new file mode 100644
index 00000000..6ea59517
--- /dev/null
+++ b/meta-ti-extras/recipes-bsp/dsptop/files/0001-dstop-ulm-makefile-Fix-reproducibility-error.patch
@@ -0,0 +1,31 @@ 
+From 8619e4b2f983130bf1909cc9c9bc238cd43ded41 Mon Sep 17 00:00:00 2001
+From: Ryan Eatmon <reatmon@ti.com>
+Date: Fri, 19 Jul 2024 14:37:55 -0500
+Subject: [master][PATCH] dstop/ulm/makefile: Fix reproducibility error
+
+The TI cl6x compiler does not have a mechanism for replacing paths in
+the obj files it creates.  So replace the string we want to remove with
+an equally sized replacement string that does not contain the path.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Ryan Eatmon <reatmon@ti.com>
+---
+ makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/makefile b/makefile
+index dffb211..586dcc2 100644
+--- a/makefile
++++ b/makefile
+@@ -82,6 +82,7 @@ $(OBJDIR)/%.obj: %.c $(INCLUDE_FILES)
+ 	@echo "Compiling" $<
+ 	@mkdir -p $(OBJDIR)
+ 	$(CC) $(CFLAGS) $(INCLUDE_PATH) -fe $@ $<
++	perl -pi -e 's#${SEARCH}#${REPLACE}#g' $@
+ 
+ libtiulm.a libtiulm.ae66: $(OBJECTS)
+ 	@echo "Building target" $@
+-- 
+2.17.1
+
diff --git a/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb b/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
index 6a2cde30..aafae21f 100644
--- a/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
+++ b/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
@@ -6,7 +6,7 @@  inherit features_check
 
 REQUIRED_MACHINE_FEATURES = "dsp"
 
-DEPENDS = "ti-cgt6x-native"
+DEPENDS = "ti-cgt6x-native perl-native"
 PR = "${INC_PR}.0"
 
 S = "${WORKDIR}/git/dsptop/ulm"
@@ -14,7 +14,13 @@  S = "${WORKDIR}/git/dsptop/ulm"
 DEVICE=""
 DEVICE:dra7xx = "DRA7xx"
 
-EXTRA_OEMAKE = "release DEVICE=${DEVICE} CROSS_COMPILE=${TARGET_PREFIX}"
+EXTRA_OEMAKE = " \
+    release \
+    DEVICE=${DEVICE} \
+    CROSS_COMPILE=${TARGET_PREFIX} \
+    SEARCH=${WORKDIR} \
+    REPLACE=${@'_'*(len(d.getVar('WORKDIR'))-7)+"workdir"} \
+"
 
 do_compile() {
     oe_runmake arm XPORT_ONLY CC="${CC}"
@@ -40,6 +46,8 @@  FILES:${PN}-dev += "\
 
 include dsptop.inc
 
+SRC_URI += "file://0001-dstop-ulm-makefile-Fix-reproducibility-error.patch"
+
 ALLOW_EMPTY:${PN} = "1"
 
 PARALLEL_MAKE= ""