resolv: Fix tst-resolv tests for 2.35 ABIs and later

Message ID 20220211234239.1251406-1-shorne@gmail.com
State Committed
Commit ee5d27bea53626c0187f77feec2c883f2c6ac4b3
Delegated to: Adhemerval Zanella Netto
Headers
Series resolv: Fix tst-resolv tests for 2.35 ABIs and later |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Stafford Horne Feb. 11, 2022, 11:42 p.m. UTC
  The commit 737e873b30 ("resolv: Do not build libanl.so for ABIs starting
at 2.35") disabled building libanl for ports supporting only 2.35 and
later like OpenRISC.

However, the if statement was not updated quite correctly and the change
ends up disabling many tst-resolv* tests.  This was not supposed to be
done and it causes test dependency errors like:

     make: Entering directory 'gnu-home/glibc/resolv'
     make: *** No rule to make target 'gnu-home/build-glibc/resolv/tst-resolv-res_ninit.out', needed by 'gnu-home/build-glibc/resolv/mtrace-tst-resolv-res_ninit.out'. Stop.
     make: Leaving directory 'gnu-home/glibc/resolv'

This patch move the extra-libs += libanl definition and condition down
to be closer to other libanl definitions.  The $(have-GLIBC_2.34)
condition now includes libanl-routines and libanl-shared-only-routines as
well.

Also, I have added a comment to endif of $(have-thread-library) to help
show the bondary of the have-thread-library definitions.
---
Notes:
 - I also moved libanl-shared-only-routines into the have-GLIBC_2.34 condition,
   Florian didn't mention this in his mail but it seems correct.
 - I documented the boundary of the have-thread-library condition.  I think this
   highlights that for non have-thread-library builds the tst-resolv-res_ninit
   will still be broken, because tst-resolv-res_ninit is outside the
   have-thread-library condition.

 resolv/Makefile | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
  

Comments

Stafford Horne Feb. 19, 2022, 7:55 a.m. UTC | #1
Ping?

On Sat, Feb 12, 2022 at 08:42:39AM +0900, Stafford Horne wrote:
> The commit 737e873b30 ("resolv: Do not build libanl.so for ABIs starting
> at 2.35") disabled building libanl for ports supporting only 2.35 and
> later like OpenRISC.
> 
> However, the if statement was not updated quite correctly and the change
> ends up disabling many tst-resolv* tests.  This was not supposed to be
> done and it causes test dependency errors like:
> 
>      make: Entering directory 'gnu-home/glibc/resolv'
>      make: *** No rule to make target 'gnu-home/build-glibc/resolv/tst-resolv-res_ninit.out', needed by 'gnu-home/build-glibc/resolv/mtrace-tst-resolv-res_ninit.out'. Stop.
>      make: Leaving directory 'gnu-home/glibc/resolv'
> 
> This patch move the extra-libs += libanl definition and condition down
> to be closer to other libanl definitions.  The $(have-GLIBC_2.34)
> condition now includes libanl-routines and libanl-shared-only-routines as
> well.
> 
> Also, I have added a comment to endif of $(have-thread-library) to help
> show the bondary of the have-thread-library definitions.
> ---
> Notes:
>  - I also moved libanl-shared-only-routines into the have-GLIBC_2.34 condition,
>    Florian didn't mention this in his mail but it seems correct.
>  - I documented the boundary of the have-thread-library condition.  I think this
>    highlights that for non have-thread-library builds the tst-resolv-res_ninit
>    will still be broken, because tst-resolv-res_ninit is outside the
>    have-thread-library condition.
> 
>  resolv/Makefile | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/resolv/Makefile b/resolv/Makefile
> index c465479e8b..438672786f 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -79,11 +79,6 @@ generate := mtrace-tst-leaks.out tst-leaks.mtrace tst-leaks2.mtrace
>  extra-libs := libresolv libnss_dns
>  ifeq ($(have-thread-library),yes)
>  routines += gai_sigqueue
> -endif
> -
> -ifeq ($(have-GLIBC_2.34)$(have-thread-library),yesyes)
> -# Empty compatibility library for old binaries.
> -extra-libs += libanl
>  
>  tests += \
>    tst-bug18665 \
> @@ -144,7 +139,8 @@ xtests += tst-resolv-qtypes
>  
>  # This test has dropped packet tests and runs for a long time.
>  xtests += tst-resolv-rotate
> -endif
> +endif # $(have-thread-library)
> +
>  extra-libs-others = $(extra-libs)
>  libresolv-routines := \
>    base64 \
> @@ -168,6 +164,13 @@ libresolv-routines := \
>    resolv-deprecated \
>    # libresolv-routines
>  
> +ifeq ($(have-GLIBC_2.34)$(have-thread-library),yesyes)
> +# Empty compatibility library for old binaries.
> +extra-libs += libanl
> +libanl-routines += libanl-compat
> +libanl-shared-only-routines += libanl-compat
> +endif
> +
>  $(libanl-routines-var) += \
>    gai_cancel \
>    gai_error \
> @@ -177,9 +180,6 @@ $(libanl-routines-var) += \
>    getaddrinfo_a \
>    # $(libanl-routines-var)
>  
> -libanl-routines += libanl-compat
> -libanl-shared-only-routines += libanl-compat
> -
>  # Pretend that libanl.so is a linker script, so that the symbolic link
>  # is not installed.
>  install-lib-ldscripts = libanl.so
> -- 
> 2.31.1
>
  
Adhemerval Zanella Feb. 21, 2022, 6:24 p.m. UTC | #2
On 11/02/2022 20:42, Stafford Horne via Libc-alpha wrote:
> The commit 737e873b30 ("resolv: Do not build libanl.so for ABIs starting
> at 2.35") disabled building libanl for ports supporting only 2.35 and
> later like OpenRISC.
> 
> However, the if statement was not updated quite correctly and the change
> ends up disabling many tst-resolv* tests.  This was not supposed to be
> done and it causes test dependency errors like:
> 
>      make: Entering directory 'gnu-home/glibc/resolv'
>      make: *** No rule to make target 'gnu-home/build-glibc/resolv/tst-resolv-res_ninit.out', needed by 'gnu-home/build-glibc/resolv/mtrace-tst-resolv-res_ninit.out'. Stop.
>      make: Leaving directory 'gnu-home/glibc/resolv'
> 
> This patch move the extra-libs += libanl definition and condition down
> to be closer to other libanl definitions.  The $(have-GLIBC_2.34)
> condition now includes libanl-routines and libanl-shared-only-routines as
> well.
> 
> Also, I have added a comment to endif of $(have-thread-library) to help
> show the bondary of the have-thread-library definitions.
> ---
> Notes:
>  - I also moved libanl-shared-only-routines into the have-GLIBC_2.34 condition,
>    Florian didn't mention this in his mail but it seems correct.
>  - I documented the boundary of the have-thread-library condition.  I think this
>    highlights that for non have-thread-library builds the tst-resolv-res_ninit
>    will still be broken, because tst-resolv-res_ninit is outside the
>    have-thread-library condition.


LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> 
>  resolv/Makefile | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/resolv/Makefile b/resolv/Makefile
> index c465479e8b..438672786f 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -79,11 +79,6 @@ generate := mtrace-tst-leaks.out tst-leaks.mtrace tst-leaks2.mtrace
>  extra-libs := libresolv libnss_dns
>  ifeq ($(have-thread-library),yes)
>  routines += gai_sigqueue
> -endif
> -
> -ifeq ($(have-GLIBC_2.34)$(have-thread-library),yesyes)
> -# Empty compatibility library for old binaries.
> -extra-libs += libanl
>  
>  tests += \
>    tst-bug18665 \
> @@ -144,7 +139,8 @@ xtests += tst-resolv-qtypes
>  
>  # This test has dropped packet tests and runs for a long time.
>  xtests += tst-resolv-rotate
> -endif
> +endif # $(have-thread-library)
> +
>  extra-libs-others = $(extra-libs)
>  libresolv-routines := \
>    base64 \
> @@ -168,6 +164,13 @@ libresolv-routines := \
>    resolv-deprecated \
>    # libresolv-routines
>  
> +ifeq ($(have-GLIBC_2.34)$(have-thread-library),yesyes)
> +# Empty compatibility library for old binaries.
> +extra-libs += libanl
> +libanl-routines += libanl-compat
> +libanl-shared-only-routines += libanl-compat
> +endif
> +
>  $(libanl-routines-var) += \
>    gai_cancel \
>    gai_error \
> @@ -177,9 +180,6 @@ $(libanl-routines-var) += \
>    getaddrinfo_a \
>    # $(libanl-routines-var)
>  
> -libanl-routines += libanl-compat
> -libanl-shared-only-routines += libanl-compat
> -
>  # Pretend that libanl.so is a linker script, so that the symbolic link
>  # is not installed.
>  install-lib-ldscripts = libanl.so
  
Stafford Horne Feb. 21, 2022, 9:14 p.m. UTC | #3
On Mon, Feb 21, 2022 at 03:24:21PM -0300, Adhemerval Zanella wrote:
> 
> 
> On 11/02/2022 20:42, Stafford Horne via Libc-alpha wrote:
> > The commit 737e873b30 ("resolv: Do not build libanl.so for ABIs starting
> > at 2.35") disabled building libanl for ports supporting only 2.35 and
> > later like OpenRISC.
> > 
> > However, the if statement was not updated quite correctly and the change
> > ends up disabling many tst-resolv* tests.  This was not supposed to be
> > done and it causes test dependency errors like:
> > 
> >      make: Entering directory 'gnu-home/glibc/resolv'
> >      make: *** No rule to make target 'gnu-home/build-glibc/resolv/tst-resolv-res_ninit.out', needed by 'gnu-home/build-glibc/resolv/mtrace-tst-resolv-res_ninit.out'. Stop.
> >      make: Leaving directory 'gnu-home/glibc/resolv'
> > 
> > This patch move the extra-libs += libanl definition and condition down
> > to be closer to other libanl definitions.  The $(have-GLIBC_2.34)
> > condition now includes libanl-routines and libanl-shared-only-routines as
> > well.
> > 
> > Also, I have added a comment to endif of $(have-thread-library) to help
> > show the bondary of the have-thread-library definitions.
> > ---
> > Notes:
> >  - I also moved libanl-shared-only-routines into the have-GLIBC_2.34 condition,
> >    Florian didn't mention this in his mail but it seems correct.
> >  - I documented the boundary of the have-thread-library condition.  I think this
> >    highlights that for non have-thread-library builds the tst-resolv-res_ninit
> >    will still be broken, because tst-resolv-res_ninit is outside the
> >    have-thread-library condition.
> 
> 
> LGTM, thanks.
> 
> Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

Thanks, I think we should backport this to the 2.35 branch as well, I will
do that.

-Stafford

> > 
> >  resolv/Makefile | 18 +++++++++---------
> >  1 file changed, 9 insertions(+), 9 deletions(-)
> > 
> > diff --git a/resolv/Makefile b/resolv/Makefile
> > index c465479e8b..438672786f 100644
> > --- a/resolv/Makefile
> > +++ b/resolv/Makefile
> > @@ -79,11 +79,6 @@ generate := mtrace-tst-leaks.out tst-leaks.mtrace tst-leaks2.mtrace
> >  extra-libs := libresolv libnss_dns
> >  ifeq ($(have-thread-library),yes)
> >  routines += gai_sigqueue
> > -endif
> > -
> > -ifeq ($(have-GLIBC_2.34)$(have-thread-library),yesyes)
> > -# Empty compatibility library for old binaries.
> > -extra-libs += libanl
> >  
> >  tests += \
> >    tst-bug18665 \
> > @@ -144,7 +139,8 @@ xtests += tst-resolv-qtypes
> >  
> >  # This test has dropped packet tests and runs for a long time.
> >  xtests += tst-resolv-rotate
> > -endif
> > +endif # $(have-thread-library)
> > +
> >  extra-libs-others = $(extra-libs)
> >  libresolv-routines := \
> >    base64 \
> > @@ -168,6 +164,13 @@ libresolv-routines := \
> >    resolv-deprecated \
> >    # libresolv-routines
> >  
> > +ifeq ($(have-GLIBC_2.34)$(have-thread-library),yesyes)
> > +# Empty compatibility library for old binaries.
> > +extra-libs += libanl
> > +libanl-routines += libanl-compat
> > +libanl-shared-only-routines += libanl-compat
> > +endif
> > +
> >  $(libanl-routines-var) += \
> >    gai_cancel \
> >    gai_error \
> > @@ -177,9 +180,6 @@ $(libanl-routines-var) += \
> >    getaddrinfo_a \
> >    # $(libanl-routines-var)
> >  
> > -libanl-routines += libanl-compat
> > -libanl-shared-only-routines += libanl-compat
> > -
> >  # Pretend that libanl.so is a linker script, so that the symbolic link
> >  # is not installed.
> >  install-lib-ldscripts = libanl.so
  

Patch

diff --git a/resolv/Makefile b/resolv/Makefile
index c465479e8b..438672786f 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -79,11 +79,6 @@  generate := mtrace-tst-leaks.out tst-leaks.mtrace tst-leaks2.mtrace
 extra-libs := libresolv libnss_dns
 ifeq ($(have-thread-library),yes)
 routines += gai_sigqueue
-endif
-
-ifeq ($(have-GLIBC_2.34)$(have-thread-library),yesyes)
-# Empty compatibility library for old binaries.
-extra-libs += libanl
 
 tests += \
   tst-bug18665 \
@@ -144,7 +139,8 @@  xtests += tst-resolv-qtypes
 
 # This test has dropped packet tests and runs for a long time.
 xtests += tst-resolv-rotate
-endif
+endif # $(have-thread-library)
+
 extra-libs-others = $(extra-libs)
 libresolv-routines := \
   base64 \
@@ -168,6 +164,13 @@  libresolv-routines := \
   resolv-deprecated \
   # libresolv-routines
 
+ifeq ($(have-GLIBC_2.34)$(have-thread-library),yesyes)
+# Empty compatibility library for old binaries.
+extra-libs += libanl
+libanl-routines += libanl-compat
+libanl-shared-only-routines += libanl-compat
+endif
+
 $(libanl-routines-var) += \
   gai_cancel \
   gai_error \
@@ -177,9 +180,6 @@  $(libanl-routines-var) += \
   getaddrinfo_a \
   # $(libanl-routines-var)
 
-libanl-routines += libanl-compat
-libanl-shared-only-routines += libanl-compat
-
 # Pretend that libanl.so is a linker script, so that the symbolic link
 # is not installed.
 install-lib-ldscripts = libanl.so