diff mbox series

package/libselinux: host gcc at least 4.7

Message ID 20180813143326.14262-1-matthew.weber@rockwellcollins.com
State Superseded
Headers show
Series package/libselinux: host gcc at least 4.7 | expand

Commit Message

Matt Weber Aug. 13, 2018, 2:33 p.m. UTC
Resolves.
label_file.h: In function 'compile_regex':
label_file.h:353: error: '__ATOMIC_ACQUIRE' undeclared (first use in this function)
label_file.h:353: error: (Each undeclared identifier is reported only once
label_file.h:353: error: for each function it appears in.)
label_file.h:405: error: '__ATOMIC_RELEASE' undeclared (first use in this function)

Fixes:
http://autobuild.buildroot.net/results/3d3/3d3ecf63236bb41abca7d1996619ba697a7cbdb8/
http://autobuild.buildroot.net/results/e98/e98789785a03e238e7cdca0ad07526d70fcfa30b/

Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
---
 package/libselinux/Config.in | 2 ++
 1 file changed, 2 insertions(+)

Comments

Baruch Siach Aug. 13, 2018, 2:47 p.m. UTC | #1
Hi Matt,

On Mon, Aug 13, 2018 at 09:33:26AM -0500, Matt Weber wrote:
> Resolves.
> label_file.h: In function 'compile_regex':
> label_file.h:353: error: '__ATOMIC_ACQUIRE' undeclared (first use in this function)
> label_file.h:353: error: (Each undeclared identifier is reported only once
> label_file.h:353: error: for each function it appears in.)
> label_file.h:405: error: '__ATOMIC_RELEASE' undeclared (first use in this function)
> 
> Fixes:
> http://autobuild.buildroot.net/results/3d3/3d3ecf63236bb41abca7d1996619ba697a7cbdb8/
> http://autobuild.buildroot.net/results/e98/e98789785a03e238e7cdca0ad07526d70fcfa30b/
> 
> Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
> ---
>  package/libselinux/Config.in | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/package/libselinux/Config.in b/package/libselinux/Config.in
> index 6be816db77..74d87bef1a 100644
> --- a/package/libselinux/Config.in
> +++ b/package/libselinux/Config.in
> @@ -6,6 +6,8 @@ config BR2_PACKAGE_LIBSELINUX
>  	depends on BR2_TOOLCHAIN_USES_GLIBC
>  	# Toolchain issue: "fixup not contained within frag"
>  	depends on !BR2_arc
> +	# Uses __ATOMIC_*
> +	depends on BR2_HOST_GCC_AT_LEAST_4_7

You add the dependency to the target libselinux. But libselinux is not even 
enabled in the build configs you reference in the commit log. The failing 
package is host-libselinux.

We don't see target libselinux failures in autobuilders because we don't test 
target toolchains older than gcc 4.7. This change is probably correct though, 
but it doesn't fix the autobuilders. In any case, for target libselinux you 
need to propagate this dependency to all libselinux reverse dependencies.

baruch

>  	select BR2_PACKAGE_LIBSEPOL
>  	select BR2_PACKAGE_PCRE
>  	help
Matt Weber Aug. 13, 2018, 2:50 p.m. UTC | #2
Baruch,
On Mon, Aug 13, 2018 at 9:47 AM Baruch Siach <baruch@tkos.co.il> wrote:
>
> Hi Matt,
>
> On Mon, Aug 13, 2018 at 09:33:26AM -0500, Matt Weber wrote:
> > Resolves.
> > label_file.h: In function 'compile_regex':
> > label_file.h:353: error: '__ATOMIC_ACQUIRE' undeclared (first use in this function)
> > label_file.h:353: error: (Each undeclared identifier is reported only once
> > label_file.h:353: error: for each function it appears in.)
> > label_file.h:405: error: '__ATOMIC_RELEASE' undeclared (first use in this function)
> >
> > Fixes:
> > http://autobuild.buildroot.net/results/3d3/3d3ecf63236bb41abca7d1996619ba697a7cbdb8/
> > http://autobuild.buildroot.net/results/e98/e98789785a03e238e7cdca0ad07526d70fcfa30b/
> >
> > Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
> > ---
> >  package/libselinux/Config.in | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/package/libselinux/Config.in b/package/libselinux/Config.in
> > index 6be816db77..74d87bef1a 100644
> > --- a/package/libselinux/Config.in
> > +++ b/package/libselinux/Config.in
> > @@ -6,6 +6,8 @@ config BR2_PACKAGE_LIBSELINUX
> >       depends on BR2_TOOLCHAIN_USES_GLIBC
> >       # Toolchain issue: "fixup not contained within frag"
> >       depends on !BR2_arc
> > +     # Uses __ATOMIC_*
> > +     depends on BR2_HOST_GCC_AT_LEAST_4_7
>
> You add the dependency to the target libselinux. But libselinux is not even
> enabled in the build configs you reference in the commit log. The failing
> package is host-libselinux.
>
> We don't see target libselinux failures in autobuilders because we don't test
> target toolchains older than gcc 4.7. This change is probably correct though,
> but it doesn't fix the autobuilders. In any case, for target libselinux you
> need to propagate this dependency to all libselinux reverse dependencies.

Ah true..... host-.  So I need to add a randconfig update.  I'll fix
the dependency propogation you mention and add a second patch for the
cfg generation filtering
Baruch Siach Aug. 13, 2018, 2:54 p.m. UTC | #3
Hi Matt,

On Mon, Aug 13, 2018 at 09:50:24AM -0500, Matthew Weber wrote:
> On Mon, Aug 13, 2018 at 9:47 AM Baruch Siach <baruch@tkos.co.il> wrote:
> > On Mon, Aug 13, 2018 at 09:33:26AM -0500, Matt Weber wrote:
> > > Resolves.
> > > label_file.h: In function 'compile_regex':
> > > label_file.h:353: error: '__ATOMIC_ACQUIRE' undeclared (first use in this function)
> > > label_file.h:353: error: (Each undeclared identifier is reported only once
> > > label_file.h:353: error: for each function it appears in.)
> > > label_file.h:405: error: '__ATOMIC_RELEASE' undeclared (first use in this function)
> > >
> > > Fixes:
> > > http://autobuild.buildroot.net/results/3d3/3d3ecf63236bb41abca7d1996619ba697a7cbdb8/
> > > http://autobuild.buildroot.net/results/e98/e98789785a03e238e7cdca0ad07526d70fcfa30b/
> > >
> > > Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
> > > ---
> > >  package/libselinux/Config.in | 2 ++
> > >  1 file changed, 2 insertions(+)
> > >
> > > diff --git a/package/libselinux/Config.in b/package/libselinux/Config.in
> > > index 6be816db77..74d87bef1a 100644
> > > --- a/package/libselinux/Config.in
> > > +++ b/package/libselinux/Config.in
> > > @@ -6,6 +6,8 @@ config BR2_PACKAGE_LIBSELINUX
> > >       depends on BR2_TOOLCHAIN_USES_GLIBC
> > >       # Toolchain issue: "fixup not contained within frag"
> > >       depends on !BR2_arc
> > > +     # Uses __ATOMIC_*
> > > +     depends on BR2_HOST_GCC_AT_LEAST_4_7
> >
> > You add the dependency to the target libselinux. But libselinux is not even
> > enabled in the build configs you reference in the commit log. The failing
> > package is host-libselinux.
> >
> > We don't see target libselinux failures in autobuilders because we don't test
> > target toolchains older than gcc 4.7. This change is probably correct though,
> > but it doesn't fix the autobuilders. In any case, for target libselinux you
> > need to propagate this dependency to all libselinux reverse dependencies.
> 
> Ah true..... host-.  So I need to add a randconfig update.  I'll fix
> the dependency propogation you mention and add a second patch for the
> cfg generation filtering

Note that you need to propagate the host- dependency as well.

baruch
Matt Weber Aug. 13, 2018, 2:56 p.m. UTC | #4
Baruch
On Mon, Aug 13, 2018 at 9:54 AM Baruch Siach <baruch@tkos.co.il> wrote:
>
> Hi Matt,
>
> On Mon, Aug 13, 2018 at 09:50:24AM -0500, Matthew Weber wrote:
> > On Mon, Aug 13, 2018 at 9:47 AM Baruch Siach <baruch@tkos.co.il> wrote:
> > > On Mon, Aug 13, 2018 at 09:33:26AM -0500, Matt Weber wrote:
> > > > Resolves.
> > > > label_file.h: In function 'compile_regex':
> > > > label_file.h:353: error: '__ATOMIC_ACQUIRE' undeclared (first use in this function)
> > > > label_file.h:353: error: (Each undeclared identifier is reported only once
> > > > label_file.h:353: error: for each function it appears in.)
> > > > label_file.h:405: error: '__ATOMIC_RELEASE' undeclared (first use in this function)
> > > >
> > > > Fixes:
> > > > http://autobuild.buildroot.net/results/3d3/3d3ecf63236bb41abca7d1996619ba697a7cbdb8/
> > > > http://autobuild.buildroot.net/results/e98/e98789785a03e238e7cdca0ad07526d70fcfa30b/
> > > >
> > > > Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
> > > > ---
> > > >  package/libselinux/Config.in | 2 ++
> > > >  1 file changed, 2 insertions(+)
> > > >
> > > > diff --git a/package/libselinux/Config.in b/package/libselinux/Config.in
> > > > index 6be816db77..74d87bef1a 100644
> > > > --- a/package/libselinux/Config.in
> > > > +++ b/package/libselinux/Config.in
> > > > @@ -6,6 +6,8 @@ config BR2_PACKAGE_LIBSELINUX
> > > >       depends on BR2_TOOLCHAIN_USES_GLIBC
> > > >       # Toolchain issue: "fixup not contained within frag"
> > > >       depends on !BR2_arc
> > > > +     # Uses __ATOMIC_*
> > > > +     depends on BR2_HOST_GCC_AT_LEAST_4_7
> > >
> > > You add the dependency to the target libselinux. But libselinux is not even
> > > enabled in the build configs you reference in the commit log. The failing
> > > package is host-libselinux.
> > >
> > > We don't see target libselinux failures in autobuilders because we don't test
> > > target toolchains older than gcc 4.7. This change is probably correct though,
> > > but it doesn't fix the autobuilders. In any case, for target libselinux you
> > > need to propagate this dependency to all libselinux reverse dependencies.
> >
> > Ah true..... host-.  So I need to add a randconfig update.  I'll fix
> > the dependency propogation you mention and add a second patch for the
> > cfg generation filtering
>
> Note that you need to propagate the host- dependency as well.

You mean in utils/genrandconfig's update for this, right?

For the original patch above, I'm assuming I should propogate the
depends on BR2_HOST_GCC_AT_LEAST_4_7  but also add depends on
BR2_GCC_AT_LEAST_4_7.

Matt
Matt Weber Aug. 13, 2018, 3:01 p.m. UTC | #5
Baruch,
On Mon, Aug 13, 2018 at 9:56 AM Matthew Weber
<matthew.weber@rockwellcollins.com> wrote:
>
> Baruch
> On Mon, Aug 13, 2018 at 9:54 AM Baruch Siach <baruch@tkos.co.il> wrote:
> >
> > Hi Matt,
> >
> > On Mon, Aug 13, 2018 at 09:50:24AM -0500, Matthew Weber wrote:
> > > On Mon, Aug 13, 2018 at 9:47 AM Baruch Siach <baruch@tkos.co.il> wrote:
> > > > On Mon, Aug 13, 2018 at 09:33:26AM -0500, Matt Weber wrote:
> > > > > Resolves.
> > > > > label_file.h: In function 'compile_regex':
> > > > > label_file.h:353: error: '__ATOMIC_ACQUIRE' undeclared (first use in this function)
> > > > > label_file.h:353: error: (Each undeclared identifier is reported only once
> > > > > label_file.h:353: error: for each function it appears in.)
> > > > > label_file.h:405: error: '__ATOMIC_RELEASE' undeclared (first use in this function)
> > > > >
> > > > > Fixes:
> > > > > http://autobuild.buildroot.net/results/3d3/3d3ecf63236bb41abca7d1996619ba697a7cbdb8/
> > > > > http://autobuild.buildroot.net/results/e98/e98789785a03e238e7cdca0ad07526d70fcfa30b/
> > > > >
> > > > > Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
> > > > > ---
> > > > >  package/libselinux/Config.in | 2 ++
> > > > >  1 file changed, 2 insertions(+)
> > > > >
> > > > > diff --git a/package/libselinux/Config.in b/package/libselinux/Config.in
> > > > > index 6be816db77..74d87bef1a 100644
> > > > > --- a/package/libselinux/Config.in
> > > > > +++ b/package/libselinux/Config.in
> > > > > @@ -6,6 +6,8 @@ config BR2_PACKAGE_LIBSELINUX
> > > > >       depends on BR2_TOOLCHAIN_USES_GLIBC
> > > > >       # Toolchain issue: "fixup not contained within frag"
> > > > >       depends on !BR2_arc
> > > > > +     # Uses __ATOMIC_*
> > > > > +     depends on BR2_HOST_GCC_AT_LEAST_4_7
> > > >
> > > > You add the dependency to the target libselinux. But libselinux is not even
> > > > enabled in the build configs you reference in the commit log. The failing
> > > > package is host-libselinux.
> > > >
> > > > We don't see target libselinux failures in autobuilders because we don't test
> > > > target toolchains older than gcc 4.7. This change is probably correct though,
> > > > but it doesn't fix the autobuilders. In any case, for target libselinux you
> > > > need to propagate this dependency to all libselinux reverse dependencies.
> > >
> > > Ah true..... host-.  So I need to add a randconfig update.  I'll fix
> > > the dependency propogation you mention and add a second patch for the
> > > cfg generation filtering
> >
> > Note that you need to propagate the host- dependency as well.
>
> You mean in utils/genrandconfig's update for this, right?
>
> For the original patch above, I'm assuming I should propogate the
> depends on BR2_HOST_GCC_AT_LEAST_4_7  but also add depends on
> BR2_GCC_AT_LEAST_4_7.
>

Just realized this is going to get messy.  Here's more detail.

For these, I'll propagate the BR2_HOST_GCC_AT_LEAST_4_7 and
BR2_GCC_AT_LEAST_4_7 based on the .mk having a make depends on
host-libselinux
android-tools
restorecond
checkpolicy
setools
libsemanage

For these just, BR2_GCC_AT_LEAST_4_7 as there is no host-libselinux built.
busybox

Matt
Baruch Siach Aug. 13, 2018, 3:05 p.m. UTC | #6
Hi Matt,

On Mon, Aug 13, 2018 at 09:56:57AM -0500, Matthew Weber wrote:
> On Mon, Aug 13, 2018 at 9:54 AM Baruch Siach <baruch@tkos.co.il> wrote:
> > On Mon, Aug 13, 2018 at 09:50:24AM -0500, Matthew Weber wrote:
> > > On Mon, Aug 13, 2018 at 9:47 AM Baruch Siach <baruch@tkos.co.il> wrote:
> > > > On Mon, Aug 13, 2018 at 09:33:26AM -0500, Matt Weber wrote:
> > > > > Resolves.
> > > > > label_file.h: In function 'compile_regex':
> > > > > label_file.h:353: error: '__ATOMIC_ACQUIRE' undeclared (first use in this function)
> > > > > label_file.h:353: error: (Each undeclared identifier is reported only once
> > > > > label_file.h:353: error: for each function it appears in.)
> > > > > label_file.h:405: error: '__ATOMIC_RELEASE' undeclared (first use in this function)
> > > > >
> > > > > Fixes:
> > > > > http://autobuild.buildroot.net/results/3d3/3d3ecf63236bb41abca7d1996619ba697a7cbdb8/
> > > > > http://autobuild.buildroot.net/results/e98/e98789785a03e238e7cdca0ad07526d70fcfa30b/
> > > > >
> > > > > Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
> > > > > ---
> > > > >  package/libselinux/Config.in | 2 ++
> > > > >  1 file changed, 2 insertions(+)
> > > > >
> > > > > diff --git a/package/libselinux/Config.in b/package/libselinux/Config.in
> > > > > index 6be816db77..74d87bef1a 100644
> > > > > --- a/package/libselinux/Config.in
> > > > > +++ b/package/libselinux/Config.in
> > > > > @@ -6,6 +6,8 @@ config BR2_PACKAGE_LIBSELINUX
> > > > >       depends on BR2_TOOLCHAIN_USES_GLIBC
> > > > >       # Toolchain issue: "fixup not contained within frag"
> > > > >       depends on !BR2_arc
> > > > > +     # Uses __ATOMIC_*
> > > > > +     depends on BR2_HOST_GCC_AT_LEAST_4_7
> > > >
> > > > You add the dependency to the target libselinux. But libselinux is not even
> > > > enabled in the build configs you reference in the commit log. The failing
> > > > package is host-libselinux.
> > > >
> > > > We don't see target libselinux failures in autobuilders because we don't test
> > > > target toolchains older than gcc 4.7. This change is probably correct though,
> > > > but it doesn't fix the autobuilders. In any case, for target libselinux you
> > > > need to propagate this dependency to all libselinux reverse dependencies.
> > >
> > > Ah true..... host-.  So I need to add a randconfig update.  I'll fix
> > > the dependency propogation you mention and add a second patch for the
> > > cfg generation filtering
> >
> > Note that you need to propagate the host- dependency as well.
> 
> You mean in utils/genrandconfig's update for this, right?

No. I mean all host and target packages that have host-libselinux in their 
_DEPENDENCIES. Otherwise, enabling any of them would cause a build of 
host-libselinux regardless of the Config.in dependency.

Isn't it easier to apply the alternative patch that uses the older __sync 
routines for older gcc?

> For the original patch above, I'm assuming I should propogate the
> depends on BR2_HOST_GCC_AT_LEAST_4_7  but also add depends on
> BR2_GCC_AT_LEAST_4_7.

Both dependencies need to be propagated, as far as I understand.

baruch
Matt Weber Aug. 13, 2018, 3:18 p.m. UTC | #7
Baruch,
On Mon, Aug 13, 2018 at 10:06 AM Baruch Siach <baruch@tkos.co.il> wrote:
>
> Hi Matt,
>
> On Mon, Aug 13, 2018 at 09:56:57AM -0500, Matthew Weber wrote:
> > On Mon, Aug 13, 2018 at 9:54 AM Baruch Siach <baruch@tkos.co.il> wrote:
> > > On Mon, Aug 13, 2018 at 09:50:24AM -0500, Matthew Weber wrote:
> > > > On Mon, Aug 13, 2018 at 9:47 AM Baruch Siach <baruch@tkos.co.il> wrote:
> > > > > On Mon, Aug 13, 2018 at 09:33:26AM -0500, Matt Weber wrote:
> > > > > > Resolves.
> > > > > > label_file.h: In function 'compile_regex':
> > > > > > label_file.h:353: error: '__ATOMIC_ACQUIRE' undeclared (first use in this function)
> > > > > > label_file.h:353: error: (Each undeclared identifier is reported only once
> > > > > > label_file.h:353: error: for each function it appears in.)
> > > > > > label_file.h:405: error: '__ATOMIC_RELEASE' undeclared (first use in this function)
> > > > > >
> > > > > > Fixes:
> > > > > > http://autobuild.buildroot.net/results/3d3/3d3ecf63236bb41abca7d1996619ba697a7cbdb8/
> > > > > > http://autobuild.buildroot.net/results/e98/e98789785a03e238e7cdca0ad07526d70fcfa30b/
> > > > > >
> > > > > > Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
> > > > > > ---
> > > > > >  package/libselinux/Config.in | 2 ++
> > > > > >  1 file changed, 2 insertions(+)
> > > > > >
> > > > > > diff --git a/package/libselinux/Config.in b/package/libselinux/Config.in
> > > > > > index 6be816db77..74d87bef1a 100644
> > > > > > --- a/package/libselinux/Config.in
> > > > > > +++ b/package/libselinux/Config.in
> > > > > > @@ -6,6 +6,8 @@ config BR2_PACKAGE_LIBSELINUX
> > > > > >       depends on BR2_TOOLCHAIN_USES_GLIBC
> > > > > >       # Toolchain issue: "fixup not contained within frag"
> > > > > >       depends on !BR2_arc
> > > > > > +     # Uses __ATOMIC_*
> > > > > > +     depends on BR2_HOST_GCC_AT_LEAST_4_7
> > > > >
> > > > > You add the dependency to the target libselinux. But libselinux is not even
> > > > > enabled in the build configs you reference in the commit log. The failing
> > > > > package is host-libselinux.
> > > > >
> > > > > We don't see target libselinux failures in autobuilders because we don't test
> > > > > target toolchains older than gcc 4.7. This change is probably correct though,
> > > > > but it doesn't fix the autobuilders. In any case, for target libselinux you
> > > > > need to propagate this dependency to all libselinux reverse dependencies.
> > > >
> > > > Ah true..... host-.  So I need to add a randconfig update.  I'll fix
> > > > the dependency propogation you mention and add a second patch for the
> > > > cfg generation filtering
> > >
> > > Note that you need to propagate the host- dependency as well.
> >
> > You mean in utils/genrandconfig's update for this, right?
>
> No. I mean all host and target packages that have host-libselinux in their
> _DEPENDENCIES. Otherwise, enabling any of them would cause a build of
> host-libselinux regardless of the Config.in dependency.
>
> Isn't it easier to apply the alternative patch that uses the older __sync
> routines for older gcc?
>
> > For the original patch above, I'm assuming I should propogate the
> > depends on BR2_HOST_GCC_AT_LEAST_4_7  but also add depends on
> > BR2_GCC_AT_LEAST_4_7.
>
> Both dependencies need to be propagated, as far as I understand.
>

http://patchwork.ozlabs.org/project/buildroot/list/?series=60561
Thomas Petazzoni Aug. 13, 2018, 4:51 p.m. UTC | #8
Hello,

On Mon, 13 Aug 2018 18:05:59 +0300, Baruch Siach wrote:

> No. I mean all host and target packages that have host-libselinux in their 
> _DEPENDENCIES. Otherwise, enabling any of them would cause a build of 
> host-libselinux regardless of the Config.in dependency.
> 
> Isn't it easier to apply the alternative patch that uses the older __sync 
> routines for older gcc?

Is it would be much easier. The question is: is this patch correct ? I
am not super familiar with the semantic of those atomic operations, so
I'm not super confident in reviewing Hollis proposal. But if you think
Hollis patch is correct, a Acked-by or Reviewed-by on it would be good.

Thanks!

Thomas
diff mbox series

Patch

diff --git a/package/libselinux/Config.in b/package/libselinux/Config.in
index 6be816db77..74d87bef1a 100644
--- a/package/libselinux/Config.in
+++ b/package/libselinux/Config.in
@@ -6,6 +6,8 @@  config BR2_PACKAGE_LIBSELINUX
 	depends on BR2_TOOLCHAIN_USES_GLIBC
 	# Toolchain issue: "fixup not contained within frag"
 	depends on !BR2_arc
+	# Uses __ATOMIC_*
+	depends on BR2_HOST_GCC_AT_LEAST_4_7
 	select BR2_PACKAGE_LIBSEPOL
 	select BR2_PACKAGE_PCRE
 	help