diff mbox series

[v4] libbsd: Fix conflict error when enable multilib.

Message ID 20240430082706.51856-1-leimaohui@fujitsu.com
State New
Headers show
Series [v4] libbsd: Fix conflict error when enable multilib. | expand

Commit Message

Lei Maohui April 30, 2024, 8:27 a.m. UTC
From: Lei Maohui <leimaohui@fujitsu.com>

- Fix the conflict error by oe_multilib_header. The conflict error is as the following:
Error: Transaction test error:
  file /usr/include/bsd/sys/cdefs.h conflicts between attempted installs of libbsd-dev-0.12.1-r0.core2_64 and lib32-libbsd-dev-0.12.1-r0.core2_32

The difference of bsd/sys/cdefs.h between libbsd-dev and lib32-libbsd-dev is as following:

 /* Define the ABI for the current system. */
 -#define LIBBSD_SYS_TIME_BITS 64
 +#define LIBBSD_SYS_TIME_BITS 32
 #define LIBBSD_SYS_HAS_TIME64 1

- After oe_multilib_header on cdefs.h, the path of cdefs-64.h and cdefs-32.h in cdefs.h need to be corrected for overlay-mode. Please reference to https://man.archlinux.org/man/libbsd.7 for details.
  @@ -12,19 +12,19 @@
 #ifdef _MIPS_SIM

 #if _MIPS_SIM == _ABIO32
-#include <bsd/sys/cdefs-32.h>
+#include <sys/cdefs-32.h>
 #elif _MIPS_SIM == _ABIN32
-#include <bsd/sys/cdefs-n32.h>
+#include <sys/cdefs-n32.h>
 #else
 #error "Unknown _MIPS_SIM"
 #endif

 #else /* _MIPS_SIM is not defined */
-#include <bsd/sys/cdefs-32.h>
+#include <sys/cdefs-32.h>
 #endif

 #elif __WORDSIZE == 64
-#include <bsd/sys/cdefs-64.h>
+#include <sys/cdefs-64.h>
 #else
 #error "Unknown __WORDSIZE detected"
 #endif /* matches #if __WORDSIZE == 32 */

Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
---
 meta/recipes-support/libbsd/libbsd_0.12.2.bb | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Comments

Richard Purdie June 11, 2024, 9:23 a.m. UTC | #1
On Tue, 2024-04-30 at 16:27 +0800, leimaohui via lists.openembedded.org wrote:
> From: Lei Maohui <leimaohui@fujitsu.com>
> 
> - Fix the conflict error by oe_multilib_header. The conflict error is as the following:
> Error: Transaction test error:
>   file /usr/include/bsd/sys/cdefs.h conflicts between attempted installs of libbsd-dev-0.12.1-r0.core2_64 and lib32-libbsd-dev-0.12.1-r0.core2_32
> 
> The difference of bsd/sys/cdefs.h between libbsd-dev and lib32-libbsd-dev is as following:
> 
>  /* Define the ABI for the current system. */
>  -#define LIBBSD_SYS_TIME_BITS 64
>  +#define LIBBSD_SYS_TIME_BITS 32
>  #define LIBBSD_SYS_HAS_TIME64 1
> 
> - After oe_multilib_header on cdefs.h, the path of cdefs-64.h and cdefs-32.h in cdefs.h need to be corrected for overlay-mode. Please reference to https://man.archlinux.org/man/libbsd.7 for details.
>   @@ -12,19 +12,19 @@
>  #ifdef _MIPS_SIM
> 
>  #if _MIPS_SIM == _ABIO32
> -#include <bsd/sys/cdefs-32.h>
> +#include <sys/cdefs-32.h>
>  #elif _MIPS_SIM == _ABIN32
> -#include <bsd/sys/cdefs-n32.h>
> +#include <sys/cdefs-n32.h>
>  #else
>  #error "Unknown _MIPS_SIM"
>  #endif
> 
>  #else /* _MIPS_SIM is not defined */
> -#include <bsd/sys/cdefs-32.h>
> +#include <sys/cdefs-32.h>
>  #endif
> 
>  #elif __WORDSIZE == 64
> -#include <bsd/sys/cdefs-64.h>
> +#include <sys/cdefs-64.h>
>  #else
>  #error "Unknown __WORDSIZE detected"
>  #endif /* matches #if __WORDSIZE == 32 */
> 
> Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
> ---
>  meta/recipes-support/libbsd/libbsd_0.12.2.bb | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-support/libbsd/libbsd_0.12.2.bb b/meta/recipes-support/libbsd/libbsd_0.12.2.bb
> index 7d5e88f293..1791d97dfd 100644
> --- a/meta/recipes-support/libbsd/libbsd_0.12.2.bb
> +++ b/meta/recipes-support/libbsd/libbsd_0.12.2.bb
> @@ -40,8 +40,16 @@ SRC_URI = "https://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
>  
>  SRC_URI[sha256sum] = "b88cc9163d0c652aaf39a99991d974ddba1c3a9711db8f1b5838af2a14731014"
>  
> -inherit autotools pkgconfig
> +inherit autotools pkgconfig multilib_header
>  
>  DEPENDS += "libmd"
>  
> +do_install:append () {
> +   oe_multilib_header bsd/sys/cdefs.h
> +   # It hasn't been tested when libbsd is used in 'namespaced headers' mode according to
> +   # https://man.archlinux.org/man/libbsd.7.
> +   sed -i 's:#include <bsd/sys/cdefs:#include <sys/cdefs:g' ${D}${includedir}/bsd/sys/cdefs.h
> +}
> +
> +
>  BBCLASSEXTEND = "native nativesdk"

Firstly, I know several of us are not convinced this is the right thing
to do. We've not been able to easily describe why we're uneasy about
it. We did do some wider testing with this patch and it causes several
errors in meta-openembedeed:

https://errors.yoctoproject.org/Errors/Build/186567/

so we can't merge something with this approach.

We really do need to stick with the way upstream use their code.

Cheers,

Richard
Lei Maohui June 19, 2024, 8:34 a.m. UTC | #2
Hi, 

It really took so long time to test this patch. ^^
It seems that no matter how to change the header file, there are always different failures.
I'll try to ask this issue in upstream of libbsd. Thank you very much. 

Best regards
Lei



> -----Original Message-----
> From: Richard Purdie <richard.purdie@linuxfoundation.org>
> Sent: Tuesday, June 11, 2024 5:24 PM
> To: Lei, Maohui <leimaohui@fujitsu.com>;
> openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core][PATCH v4][PATCH] libbsd: Fix conflict error when
> enable multilib.
> 
> On Tue, 2024-04-30 at 16:27 +0800, leimaohui via lists.openembedded.org
> wrote:
> > From: Lei Maohui <leimaohui@fujitsu.com>
> >
> > - Fix the conflict error by oe_multilib_header. The conflict error is as the
> following:
> > Error: Transaction test error:
> >   file /usr/include/bsd/sys/cdefs.h conflicts between attempted
> > installs of libbsd-dev-0.12.1-r0.core2_64 and
> > lib32-libbsd-dev-0.12.1-r0.core2_32
> >
> > The difference of bsd/sys/cdefs.h between libbsd-dev and lib32-libbsd-dev
> is as following:
> >
> >  /* Define the ABI for the current system. */
> >  -#define LIBBSD_SYS_TIME_BITS 64
> >  +#define LIBBSD_SYS_TIME_BITS 32
> >  #define LIBBSD_SYS_HAS_TIME64 1
> >
> > - After oe_multilib_header on cdefs.h, the path of cdefs-64.h and cdefs-32.h
> in cdefs.h need to be corrected for overlay-mode. Please reference to
> https://man.archlinux.org/man/libbsd.7 for details.
> >   @@ -12,19 +12,19 @@
> >  #ifdef _MIPS_SIM
> >
> >  #if _MIPS_SIM == _ABIO32
> > -#include <bsd/sys/cdefs-32.h>
> > +#include <sys/cdefs-32.h>
> >  #elif _MIPS_SIM == _ABIN32
> > -#include <bsd/sys/cdefs-n32.h>
> > +#include <sys/cdefs-n32.h>
> >  #else
> >  #error "Unknown _MIPS_SIM"
> >  #endif
> >
> >  #else /* _MIPS_SIM is not defined */
> > -#include <bsd/sys/cdefs-32.h>
> > +#include <sys/cdefs-32.h>
> >  #endif
> >
> >  #elif __WORDSIZE == 64
> > -#include <bsd/sys/cdefs-64.h>
> > +#include <sys/cdefs-64.h>
> >  #else
> >  #error "Unknown __WORDSIZE detected"
> >  #endif /* matches #if __WORDSIZE == 32 */
> >
> > Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
> > ---
> >  meta/recipes-support/libbsd/libbsd_0.12.2.bb | 10 +++++++++-
> >  1 file changed, 9 insertions(+), 1 deletion(-)
> >
> > diff --git a/meta/recipes-support/libbsd/libbsd_0.12.2.bb
> > b/meta/recipes-support/libbsd/libbsd_0.12.2.bb
> > index 7d5e88f293..1791d97dfd 100644
> > --- a/meta/recipes-support/libbsd/libbsd_0.12.2.bb
> > +++ b/meta/recipes-support/libbsd/libbsd_0.12.2.bb
> > @@ -40,8 +40,16 @@ SRC_URI =
> "https://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
> >
> >  SRC_URI[sha256sum] =
> "b88cc9163d0c652aaf39a99991d974ddba1c3a9711db8f1b5838af2a147310
> 14"
> >
> > -inherit autotools pkgconfig
> > +inherit autotools pkgconfig multilib_header
> >
> >  DEPENDS += "libmd"
> >
> > +do_install:append () {
> > +   oe_multilib_header bsd/sys/cdefs.h
> > +   # It hasn't been tested when libbsd is used in 'namespaced
> > +headers' mode according to
> > +   # https://man.archlinux.org/man/libbsd.7.
> > +   sed -i 's:#include <bsd/sys/cdefs:#include <sys/cdefs:g'
> > +${D}${includedir}/bsd/sys/cdefs.h }
> > +
> > +
> >  BBCLASSEXTEND = "native nativesdk"
> 
> Firstly, I know several of us are not convinced this is the right thing to do.
> We've not been able to easily describe why we're uneasy about it. We did do
> some wider testing with this patch and it causes several errors in
> meta-openembedeed:
> 
> https://errors.yoctoproject.org/Errors/Build/186567/
> 
> so we can't merge something with this approach.
> 
> We really do need to stick with the way upstream use their code.
> 
> Cheers,
> 
> Richard
>
diff mbox series

Patch

diff --git a/meta/recipes-support/libbsd/libbsd_0.12.2.bb b/meta/recipes-support/libbsd/libbsd_0.12.2.bb
index 7d5e88f293..1791d97dfd 100644
--- a/meta/recipes-support/libbsd/libbsd_0.12.2.bb
+++ b/meta/recipes-support/libbsd/libbsd_0.12.2.bb
@@ -40,8 +40,16 @@  SRC_URI = "https://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
 
 SRC_URI[sha256sum] = "b88cc9163d0c652aaf39a99991d974ddba1c3a9711db8f1b5838af2a14731014"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig multilib_header
 
 DEPENDS += "libmd"
 
+do_install:append () {
+   oe_multilib_header bsd/sys/cdefs.h
+   # It hasn't been tested when libbsd is used in 'namespaced headers' mode according to
+   # https://man.archlinux.org/man/libbsd.7.
+   sed -i 's:#include <bsd/sys/cdefs:#include <sys/cdefs:g' ${D}${includedir}/bsd/sys/cdefs.h
+}
+
+
 BBCLASSEXTEND = "native nativesdk"