diff mbox series

[2/2] tools: kwboot: use pkg-config to get -ltinfo

Message ID 20220719183837.536343-2-heiko.thiery@gmail.com
State Superseded
Headers show
Series [1/2] tools: mkeficapsule: use pkg-config to get -luuid and -lgnutls | expand

Commit Message

Heiko Thiery July 19, 2022, 6:38 p.m. UTC
Instead of hardcoding -ltinfo as the flags needed to build
kwboot, use pkg-config when available.

We gracefully fallback on the previous behavior of hardcoding -ltinfo
if pkg-config is not available or fails with an error.

Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
---
 tools/Makefile | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Pali Rohár July 19, 2022, 6:52 p.m. UTC | #1
On Tuesday 19 July 2022 20:38:39 Heiko Thiery wrote:
> Instead of hardcoding -ltinfo as the flags needed to build
> kwboot, use pkg-config when available.

Interesting, I did not know that there is pc file also for tinfo.
Anyway when using it, there should be also HOSTCFLAGS_kwboot definition
from pkg-config.

> We gracefully fallback on the previous behavior of hardcoding -ltinfo
> if pkg-config is not available or fails with an error.
> 
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> ---
>  tools/Makefile | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/Makefile b/tools/Makefile
> index 9f6b282ad8..45195a8ce7 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -198,7 +198,9 @@ hostprogs-$(CONFIG_EXYNOS5420) += mkexynosspl
>  HOSTCFLAGS_mkexynosspl.o := -pedantic
>  
>  HOSTCFLAGS_kwboot.o += -pthread
> -HOSTLDLIBS_kwboot += -pthread -ltinfo
> +HOSTLDLIBS_kwboot += -pthread
> +HOSTLDLIBS_kwboot += \
> +	$(shell pkg-config --libs tinfo 2> /dev/null || echo "-ltinfo")
>  
>  ifdtool-objs := $(LIBFDT_OBJS) ifdtool.o
>  hostprogs-$(CONFIG_X86) += ifdtool
> -- 
> 2.30.2
>
Heiko Thiery July 19, 2022, 7:11 p.m. UTC | #2
Hi,

Am Di., 19. Juli 2022 um 20:52 Uhr schrieb Pali Rohár <pali@kernel.org>:
>
> On Tuesday 19 July 2022 20:38:39 Heiko Thiery wrote:
> > Instead of hardcoding -ltinfo as the flags needed to build
> > kwboot, use pkg-config when available.
>
> Interesting, I did not know that there is pc file also for tinfo.
> Anyway when using it, there should be also HOSTCFLAGS_kwboot definition
> from pkg-config.

Just checked the cflags for tinfo.

# pkg-config --cflags tinfo
-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600

Can we also add that to kwboot?

>
> > We gracefully fallback on the previous behavior of hardcoding -ltinfo
> > if pkg-config is not available or fails with an error.
> >
> > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> > ---
> >  tools/Makefile | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/tools/Makefile b/tools/Makefile
> > index 9f6b282ad8..45195a8ce7 100644
> > --- a/tools/Makefile
> > +++ b/tools/Makefile
> > @@ -198,7 +198,9 @@ hostprogs-$(CONFIG_EXYNOS5420) += mkexynosspl
> >  HOSTCFLAGS_mkexynosspl.o := -pedantic
> >
> >  HOSTCFLAGS_kwboot.o += -pthread
> > -HOSTLDLIBS_kwboot += -pthread -ltinfo
> > +HOSTLDLIBS_kwboot += -pthread
> > +HOSTLDLIBS_kwboot += \
> > +     $(shell pkg-config --libs tinfo 2> /dev/null || echo "-ltinfo")
> >
> >  ifdtool-objs := $(LIBFDT_OBJS) ifdtool.o
> >  hostprogs-$(CONFIG_X86) += ifdtool
> > --
> > 2.30.2
> >

--
Heiko
Pali Rohár July 19, 2022, 7:18 p.m. UTC | #3
On Tuesday 19 July 2022 21:11:21 Heiko Thiery wrote:
> Hi,
> 
> Am Di., 19. Juli 2022 um 20:52 Uhr schrieb Pali Rohár <pali@kernel.org>:
> >
> > On Tuesday 19 July 2022 20:38:39 Heiko Thiery wrote:
> > > Instead of hardcoding -ltinfo as the flags needed to build
> > > kwboot, use pkg-config when available.
> >
> > Interesting, I did not know that there is pc file also for tinfo.
> > Anyway when using it, there should be also HOSTCFLAGS_kwboot definition
> > from pkg-config.
> 
> Just checked the cflags for tinfo.
> 
> # pkg-config --cflags tinfo
> -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600

I think these two flags are harmless...

> Can we also add that to kwboot?

... but now it reminds me that we have issues with tinfo header files
which are in direct conflict with linux uapi termbits header files.
And so kwboot.c does not include any tinfo header file.

Therefore tinfo cflags are not used at all.

So I would rather stick with not importing --cflags to prevent possible
future incompatibility (in case into tinfo cflags in future would be
added something which conflict with linux uapi header files). We do not
need them at all.

> >
> > > We gracefully fallback on the previous behavior of hardcoding -ltinfo
> > > if pkg-config is not available or fails with an error.
> > >
> > > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> > > ---
> > >  tools/Makefile | 4 +++-
> > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/tools/Makefile b/tools/Makefile
> > > index 9f6b282ad8..45195a8ce7 100644
> > > --- a/tools/Makefile
> > > +++ b/tools/Makefile
> > > @@ -198,7 +198,9 @@ hostprogs-$(CONFIG_EXYNOS5420) += mkexynosspl
> > >  HOSTCFLAGS_mkexynosspl.o := -pedantic
> > >
> > >  HOSTCFLAGS_kwboot.o += -pthread
> > > -HOSTLDLIBS_kwboot += -pthread -ltinfo
> > > +HOSTLDLIBS_kwboot += -pthread
> > > +HOSTLDLIBS_kwboot += \
> > > +     $(shell pkg-config --libs tinfo 2> /dev/null || echo "-ltinfo")
> > >
> > >  ifdtool-objs := $(LIBFDT_OBJS) ifdtool.o
> > >  hostprogs-$(CONFIG_X86) += ifdtool
> > > --
> > > 2.30.2
> > >
> 
> --
> Heiko
Pali Rohár July 19, 2022, 7:20 p.m. UTC | #4
On Tuesday 19 July 2022 20:38:39 Heiko Thiery wrote:
> Instead of hardcoding -ltinfo as the flags needed to build
> kwboot, use pkg-config when available.
> 
> We gracefully fallback on the previous behavior of hardcoding -ltinfo
> if pkg-config is not available or fails with an error.
> 
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>

So... in current form this patch is OK.

Reviewed-by: Pali Rohár <pali@kernel.org>

> ---
>  tools/Makefile | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/Makefile b/tools/Makefile
> index 9f6b282ad8..45195a8ce7 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -198,7 +198,9 @@ hostprogs-$(CONFIG_EXYNOS5420) += mkexynosspl
>  HOSTCFLAGS_mkexynosspl.o := -pedantic
>  
>  HOSTCFLAGS_kwboot.o += -pthread
> -HOSTLDLIBS_kwboot += -pthread -ltinfo
> +HOSTLDLIBS_kwboot += -pthread
> +HOSTLDLIBS_kwboot += \
> +	$(shell pkg-config --libs tinfo 2> /dev/null || echo "-ltinfo")
>  
>  ifdtool-objs := $(LIBFDT_OBJS) ifdtool.o
>  hostprogs-$(CONFIG_X86) += ifdtool
> -- 
> 2.30.2
>
Heiko Thiery July 20, 2022, 6:06 a.m. UTC | #5
Hi,


Am Di., 19. Juli 2022 um 21:20 Uhr schrieb Pali Rohár <pali@kernel.org>:
>
> On Tuesday 19 July 2022 20:38:39 Heiko Thiery wrote:
> > Instead of hardcoding -ltinfo as the flags needed to build
> > kwboot, use pkg-config when available.
> >
> > We gracefully fallback on the previous behavior of hardcoding -ltinfo
> > if pkg-config is not available or fails with an error.
> >
> > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
>
> So... in current form this patch is OK.

I already sent a v2 that introduced the cflags. I will send a v3 that
removes adding this again. Ok?

> Reviewed-by: Pali Rohár <pali@kernel.org>
>
> > ---
> >  tools/Makefile | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/tools/Makefile b/tools/Makefile
> > index 9f6b282ad8..45195a8ce7 100644
> > --- a/tools/Makefile
> > +++ b/tools/Makefile
> > @@ -198,7 +198,9 @@ hostprogs-$(CONFIG_EXYNOS5420) += mkexynosspl
> >  HOSTCFLAGS_mkexynosspl.o := -pedantic
> >
> >  HOSTCFLAGS_kwboot.o += -pthread
> > -HOSTLDLIBS_kwboot += -pthread -ltinfo
> > +HOSTLDLIBS_kwboot += -pthread
> > +HOSTLDLIBS_kwboot += \
> > +     $(shell pkg-config --libs tinfo 2> /dev/null || echo "-ltinfo")
> >
> >  ifdtool-objs := $(LIBFDT_OBJS) ifdtool.o
> >  hostprogs-$(CONFIG_X86) += ifdtool
> > --
> > 2.30.2
> >
Pali Rohár July 20, 2022, 7:05 a.m. UTC | #6
On Wednesday 20 July 2022 08:06:28 Heiko Thiery wrote:
> Hi,
> 
> 
> Am Di., 19. Juli 2022 um 21:20 Uhr schrieb Pali Rohár <pali@kernel.org>:
> >
> > On Tuesday 19 July 2022 20:38:39 Heiko Thiery wrote:
> > > Instead of hardcoding -ltinfo as the flags needed to build
> > > kwboot, use pkg-config when available.
> > >
> > > We gracefully fallback on the previous behavior of hardcoding -ltinfo
> > > if pkg-config is not available or fails with an error.
> > >
> > > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> >
> > So... in current form this patch is OK.
> 
> I already sent a v2 that introduced the cflags. I will send a v3 that
> removes adding this again. Ok?

Ou, sorry for that :-(

Anyway, details about this issue are described here:
https://source.denx.de/u-boot/u-boot/-/blob/master/tools/termios_linux.h
https://source.denx.de/u-boot/u-boot/-/commit/e8d26e8276358fcd1c2fe28293d3b4c82a735731

> > Reviewed-by: Pali Rohár <pali@kernel.org>
> >
> > > ---
> > >  tools/Makefile | 4 +++-
> > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/tools/Makefile b/tools/Makefile
> > > index 9f6b282ad8..45195a8ce7 100644
> > > --- a/tools/Makefile
> > > +++ b/tools/Makefile
> > > @@ -198,7 +198,9 @@ hostprogs-$(CONFIG_EXYNOS5420) += mkexynosspl
> > >  HOSTCFLAGS_mkexynosspl.o := -pedantic
> > >
> > >  HOSTCFLAGS_kwboot.o += -pthread
> > > -HOSTLDLIBS_kwboot += -pthread -ltinfo
> > > +HOSTLDLIBS_kwboot += -pthread
> > > +HOSTLDLIBS_kwboot += \
> > > +     $(shell pkg-config --libs tinfo 2> /dev/null || echo "-ltinfo")
> > >
> > >  ifdtool-objs := $(LIBFDT_OBJS) ifdtool.o
> > >  hostprogs-$(CONFIG_X86) += ifdtool
> > > --
> > > 2.30.2
> > >
diff mbox series

Patch

diff --git a/tools/Makefile b/tools/Makefile
index 9f6b282ad8..45195a8ce7 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -198,7 +198,9 @@  hostprogs-$(CONFIG_EXYNOS5420) += mkexynosspl
 HOSTCFLAGS_mkexynosspl.o := -pedantic
 
 HOSTCFLAGS_kwboot.o += -pthread
-HOSTLDLIBS_kwboot += -pthread -ltinfo
+HOSTLDLIBS_kwboot += -pthread
+HOSTLDLIBS_kwboot += \
+	$(shell pkg-config --libs tinfo 2> /dev/null || echo "-ltinfo")
 
 ifdtool-objs := $(LIBFDT_OBJS) ifdtool.o
 hostprogs-$(CONFIG_X86) += ifdtool