Re: [PATCH V4 2/3] scripts: dtc: Build fdtoverlay tool

2021-01-20 Thread Rob Herring
On Tue, Jan 19, 2021 at 12:28 PM Frank Rowand  wrote:
>
> Hi Viresh,
>
> I made these comments in the v2 patch series.  I am copying them here since
> this is the current version.
>
> On 1/12/21 2:29 AM, Viresh Kumar wrote:
> > We will start building overlays for platforms soon in the kernel and
> > would need fdtoverlay going forward. Lets start building it.
> >
> > The fdtoverlay program applies (or merges) one ore more overlay dtb
> > blobs to a base dtb blob. The kernel build system would later use
> > fdtoverlay to generate the overlaid blobs based on platform specific
> > configurations.
> >
> > Signed-off-by: Viresh Kumar 
> > ---
> >  scripts/dtc/Makefile | 6 +-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> > index 4852bf44e913..5f19386a49eb 100644
> > --- a/scripts/dtc/Makefile
> > +++ b/scripts/dtc/Makefile
> > @@ -1,13 +1,17 @@
> >  # SPDX-License-Identifier: GPL-2.0
> >  # scripts/dtc makefile
> >
> > -hostprogs-always-$(CONFIG_DTC)   += dtc
> > +hostprogs-always-$(CONFIG_DTC)   += dtc fdtoverlay
> >  hostprogs-always-$(CHECK_DT_BINDING) += dtc
> >
> >  dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
> >  srcpos.o checks.o util.o
> >  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
> >
>
> # The upstream project builds libfdt as a separate library.  We are choosing 
> to
> # instead directly link the libfdt object files into fdtoverly
>
> > +libfdt-objs  := fdt.o fdt_ro.o fdt_wip.o fdt_sw.o fdt_rw.o fdt_strerror.o 
> > fdt_empty_tree.o fdt_addresses.o fdt_overlay.o
> > +libfdt   = $(addprefix libfdt/,$(libfdt-objs))
> > +fdtoverlay-objs  := $(libfdt) fdtoverlay.o util.o
> > +
> >  # Source files need to get at the userspace version of libfdt_env.h to 
> > compile
> >  HOST_EXTRACFLAGS += -I $(srctree)/$(src)/libfdt
> >
> >
>
> In general, I am a proponent of using shared libraries (which the upstream 
> project
> builds by default) because if a security bug in the library is fixed, it is 
> fixed
> for all users of the library.
>
> In this specific case, I actually prefer the implementation that the patch 
> provides
> (directly linking the library object files into fdtoverlay, which uses the 
> library)
> because it is the only user of the library _and_ fdtoverlay will not 
> inadvertently
> use the system wide libfdt if it happens to be installed (as it is on my 
> system).
>
> Any thoughts on this Rob?

I agree. No point in complicating the build to do a library.

Rob


Re: [PATCH V4 2/3] scripts: dtc: Build fdtoverlay tool

2021-01-19 Thread Frank Rowand
Hi Viresh,

I made these comments in the v2 patch series.  I am copying them here since
this is the current version.

On 1/12/21 2:29 AM, Viresh Kumar wrote:
> We will start building overlays for platforms soon in the kernel and
> would need fdtoverlay going forward. Lets start building it.
> 
> The fdtoverlay program applies (or merges) one ore more overlay dtb
> blobs to a base dtb blob. The kernel build system would later use
> fdtoverlay to generate the overlaid blobs based on platform specific
> configurations.
> 
> Signed-off-by: Viresh Kumar 
> ---
>  scripts/dtc/Makefile | 6 +-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> index 4852bf44e913..5f19386a49eb 100644
> --- a/scripts/dtc/Makefile
> +++ b/scripts/dtc/Makefile
> @@ -1,13 +1,17 @@
>  # SPDX-License-Identifier: GPL-2.0
>  # scripts/dtc makefile
>  
> -hostprogs-always-$(CONFIG_DTC)   += dtc
> +hostprogs-always-$(CONFIG_DTC)   += dtc fdtoverlay
>  hostprogs-always-$(CHECK_DT_BINDING) += dtc
>  
>  dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
>  srcpos.o checks.o util.o
>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>  

# The upstream project builds libfdt as a separate library.  We are choosing to
# instead directly link the libfdt object files into fdtoverly

> +libfdt-objs  := fdt.o fdt_ro.o fdt_wip.o fdt_sw.o fdt_rw.o fdt_strerror.o 
> fdt_empty_tree.o fdt_addresses.o fdt_overlay.o
> +libfdt   = $(addprefix libfdt/,$(libfdt-objs))
> +fdtoverlay-objs  := $(libfdt) fdtoverlay.o util.o
> +
>  # Source files need to get at the userspace version of libfdt_env.h to 
> compile
>  HOST_EXTRACFLAGS += -I $(srctree)/$(src)/libfdt
>  
> 

In general, I am a proponent of using shared libraries (which the upstream 
project
builds by default) because if a security bug in the library is fixed, it is 
fixed
for all users of the library.

In this specific case, I actually prefer the implementation that the patch 
provides
(directly linking the library object files into fdtoverlay, which uses the 
library)
because it is the only user of the library _and_ fdtoverlay will not 
inadvertently
use the system wide libfdt if it happens to be installed (as it is on my 
system).

Any thoughts on this Rob?

-Frank


[PATCH V4 2/3] scripts: dtc: Build fdtoverlay tool

2021-01-12 Thread Viresh Kumar
We will start building overlays for platforms soon in the kernel and
would need fdtoverlay going forward. Lets start building it.

The fdtoverlay program applies (or merges) one ore more overlay dtb
blobs to a base dtb blob. The kernel build system would later use
fdtoverlay to generate the overlaid blobs based on platform specific
configurations.

Signed-off-by: Viresh Kumar 
---
 scripts/dtc/Makefile | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
index 4852bf44e913..5f19386a49eb 100644
--- a/scripts/dtc/Makefile
+++ b/scripts/dtc/Makefile
@@ -1,13 +1,17 @@
 # SPDX-License-Identifier: GPL-2.0
 # scripts/dtc makefile
 
-hostprogs-always-$(CONFIG_DTC) += dtc
+hostprogs-always-$(CONFIG_DTC) += dtc fdtoverlay
 hostprogs-always-$(CHECK_DT_BINDING)   += dtc
 
 dtc-objs   := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
   srcpos.o checks.o util.o
 dtc-objs   += dtc-lexer.lex.o dtc-parser.tab.o
 
+libfdt-objs:= fdt.o fdt_ro.o fdt_wip.o fdt_sw.o fdt_rw.o fdt_strerror.o 
fdt_empty_tree.o fdt_addresses.o fdt_overlay.o
+libfdt = $(addprefix libfdt/,$(libfdt-objs))
+fdtoverlay-objs:= $(libfdt) fdtoverlay.o util.o
+
 # Source files need to get at the userspace version of libfdt_env.h to compile
 HOST_EXTRACFLAGS += -I $(srctree)/$(src)/libfdt
 
-- 
2.25.0.rc1.19.g042ed3e048af