All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2, 1/1] package/pkg-utils.mk: fix per-package build
@ 2021-08-29 19:18 Fabrice Fontaine
  2021-08-29 19:45 ` Yann E. MORIN
  0 siblings, 1 reply; 2+ messages in thread
From: Fabrice Fontaine @ 2021-08-29 19:18 UTC (permalink / raw)
  To: buildroot; +Cc: Fabrice Fontaine

Fix per-package build with ncurses and toolchains providing ncurses.h by
adding --update parameter to rsync call. Indeed, without this parameter,
the curses.h file installed by ncurses (with wchar support) could be
overriden by a curses.h file provided by the toolchain (without wchar
support) resulting in the following build failure on bmon or rtorrent:

rsync -a --link-dest=/tmp/instance-0/output-1/per-package/host-pkgconf/host/ /tmp/instance-0/output-1/per-package/host-pkgconf/host/ /tmp/instance-0/output-1/per-package/rtorrent/host
rsync -a --link-dest=/tmp/instance-0/output-1/per-package/host-skeleton/host/ /tmp/instance-0/output-1/per-package/host-skeleton/host/ /tmp/instance-0/output-1/per-package/rtorrent/host
rsync -a --link-dest=/tmp/instance-0/output-1/per-package/libcurl/host/ /tmp/instance-0/output-1/per-package/libcurl/host/ /tmp/instance-0/output-1/per-package/rtorrent/host
rsync -a --link-dest=/tmp/instance-0/output-1/per-package/libtorrent/host/ /tmp/instance-0/output-1/per-package/libtorrent/host/ /tmp/instance-0/output-1/per-package/rtorrent/host
rsync -a --link-dest=/tmp/instance-0/output-1/per-package/ncurses/host/ /tmp/instance-0/output-1/per-package/ncurses/host/ /tmp/instance-0/output-1/per-package/rtorrent/host
rsync -a --link-dest=/tmp/instance-0/output-1/per-package/skeleton/host/ /tmp/instance-0/output-1/per-package/skeleton/host/ /tmp/instance-0/output-1/per-package/rtorrent/host
rsync -a --link-dest=/tmp/instance-0/output-1/per-package/toolchain/host/ /tmp/instance-0/output-1/per-package/toolchain/host/ /tmp/instance-0/output-1/per-package/rtorrent/host

[...]

checking for NcursesW wide-character library... yes
checking for working ncursesw/curses.h... no
checking for working ncursesw.h... no
checking for working ncurses.h... no
configure: WARNING: could not find a working ncursesw/curses.h, ncursesw.h or ncurses.h

It should be noted that the same kind of issue is raised with libxcrypt.
Indeed, without the --update parameter, crypt.h provided by libxcrypt
will be overriden by crypt.h provided by the toolchain resulting in the
following build failure with linux-pam:

>>> linux-pam 1.5.1 Configuring
mkdir -p /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/flex/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/flex/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-autoconf/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-autoconf/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-automake/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-automake/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-flex/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-flex/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-libtool/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-libtool/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-pkgconf/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-pkgconf/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-skeleton/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-skeleton/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/libxcrypt/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/libxcrypt/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/skeleton/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/skeleton/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/toolchain/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/toolchain/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host

[...]

opasswd.c: In function 'compare_password':
opasswd.c:131:21: error: storage size of 'output' isn't known
  131 |   struct crypt_data output;
      |                     ^~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/8c0d13e3cc3ddd2a21f99477cad4e39522e9deec
 - http://autobuild.buildroot.org/results/d2f18ccad6a0330d78e97d70c810ac89b84d2261
 - http://autobuild.buildroot.org/results/24038989d4ab962c9abea5cf061345f17a57c688

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2:
 - Update commit log with libxcrypt

 package/pkg-utils.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
index ae3c7f9da9..5af34d4ee0 100644
--- a/package/pkg-utils.mk
+++ b/package/pkg-utils.mk
@@ -184,7 +184,7 @@ ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
 define per-package-rsync
 	mkdir -p $(3)
 	$(foreach pkg,$(1),\
-		rsync -a --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
+		rsync -au --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
 		$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
 		$(3)$(sep))
 endef
-- 
2.32.0

_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH v2, 1/1] package/pkg-utils.mk: fix per-package build
  2021-08-29 19:18 [Buildroot] [PATCH v2, 1/1] package/pkg-utils.mk: fix per-package build Fabrice Fontaine
@ 2021-08-29 19:45 ` Yann E. MORIN
  0 siblings, 0 replies; 2+ messages in thread
From: Yann E. MORIN @ 2021-08-29 19:45 UTC (permalink / raw)
  To: Fabrice Fontaine; +Cc: Romain Naour, Herve Codina, Thomas Petazzoni, buildroot

Fabrice, All,

+Hervé, +Thomas, +Arnout, +Romain

On 2021-08-29 21:18 +0200, Fabrice Fontaine spake thusly:
[--SNIP--]
> It should be noted that the same kind of issue is raised with libxcrypt.
> Indeed, without the --update parameter, crypt.h provided by libxcrypt
> will be overriden by crypt.h provided by the toolchain resulting in the
> following build failure with linux-pam:

Ouch... When we could say that the ncurses issue was due to a non-pure
toolchain, this case of libxcrypt is reallt problematic, because it
wants to override a file from the tolchain, on purpose...

This is going to be tricky...

I've marked this patch rejected, because it is not the proper solution
(as explained in the previous iteration).

Regards,
Yann E. MORIN.

> >>> linux-pam 1.5.1 Configuring
> mkdir -p /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/flex/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/flex/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-autoconf/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-autoconf/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-automake/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-automake/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-flex/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-flex/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-libtool/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-libtool/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-pkgconf/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-pkgconf/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-skeleton/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/host-skeleton/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/libxcrypt/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/libxcrypt/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/skeleton/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/skeleton/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> rsync -a --link-dest=/home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/toolchain/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/toolchain/host/ /home/giuliobenetti/autobuild/run/instance-2/output-1/per-package/linux-pam/host
> 
> [...]
> 
> opasswd.c: In function 'compare_password':
> opasswd.c:131:21: error: storage size of 'output' isn't known
>   131 |   struct crypt_data output;
>       |                     ^~~~~~
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/8c0d13e3cc3ddd2a21f99477cad4e39522e9deec
>  - http://autobuild.buildroot.org/results/d2f18ccad6a0330d78e97d70c810ac89b84d2261
>  - http://autobuild.buildroot.org/results/24038989d4ab962c9abea5cf061345f17a57c688
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> Changes v1 -> v2:
>  - Update commit log with libxcrypt
> 
>  package/pkg-utils.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
> index ae3c7f9da9..5af34d4ee0 100644
> --- a/package/pkg-utils.mk
> +++ b/package/pkg-utils.mk
> @@ -184,7 +184,7 @@ ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
>  define per-package-rsync
>  	mkdir -p $(3)
>  	$(foreach pkg,$(1),\
> -		rsync -a --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
> +		rsync -au --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
>  		$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
>  		$(3)$(sep))
>  endef
> -- 
> 2.32.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-08-29 19:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-29 19:18 [Buildroot] [PATCH v2, 1/1] package/pkg-utils.mk: fix per-package build Fabrice Fontaine
2021-08-29 19:45 ` Yann E. MORIN

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.