[PATCH] elf: Use a temporary file to generate Makefile fragments [BZ #28550]

H.J. Lu hjl.tools@gmail.com
Tue Nov 16 13:15:03 GMT 2021


On Tue, Nov 16, 2021 at 4:52 AM Adhemerval Zanella
<adhemerval.zanella@linaro.org> wrote:
>
>
>
> On 16/11/2021 01:48, H.J. Lu wrote:
> >
> > This works for me.
> >
> > Thanks.
> >
>
> > From a928b52c036bb888797b3e81014f441f0d876b65 Mon Sep 17 00:00:00 2001
> > From: "H.J. Lu" <hjl.tools@gmail.com>
> > Date: Mon, 15 Nov 2021 16:28:39 -0800
> > Subject: [PATCH] elf: Use a temporary file to generate Makefile fragments [BZ
> >  #28550]
> >
> > Use a temporary file to generate Makefile fragments for DSO sorting tests
> > and use -include on them.
> >
> > This partially fixes BZ #28550.
> > ---
> >  elf/Makefile | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/elf/Makefile b/elf/Makefile
> > index a311c3e23c..57374fc690 100644
> > --- a/elf/Makefile
> > +++ b/elf/Makefile
> > @@ -498,8 +498,9 @@ endif
> >  define include_dsosort_tests
> >  $(objpfx)$(1).generated-makefile: $(1)
> >       $(PYTHON) $(..)scripts/dso-ordering-test.py \
> > -     --description-file $$< --objpfx $(objpfx) --output-makefile $$@
> > -include $(objpfx)$(1).generated-makefile
> > +     --description-file $$< --objpfx $(objpfx) --output-makefile $$@T
> > +     mv $$@T $$@
> > +-include $(objpfx)$(1).generated-makefile
> >  endef
> >
> >  # Generate from each testcase description file
> > --
> > 2.33.1
>
> I think you need the below on top of your patch.  The 'avoid-generated' and
> 'postclean-generated' are required so a 'make clean' removes the autogenerated
> fragments so a subsequent 'make' regenerates them.

Fixed in the v2 patch.

Thanks.

> diff --git a/elf/Makefile b/elf/Makefile
> index 57374fc690..31759279d4 100644
> --- a/elf/Makefile
> +++ b/elf/Makefile
> @@ -491,6 +491,7 @@ tests-special += $(objpfx)order-cmp.out $(objpfx)tst-array1-cmp.out \
>                  $(objpfx)tst-unused-dep-cmp.out
>  endif
>
> +ifndef avoid-generated
>  # DSO sorting tests:
>  # The dso-ordering-test.py script generates testcase source files in $(objpfx),
>  # creating a $(objpfx)<testcase-name>-dir for each testcase, and creates a
> @@ -508,6 +509,9 @@ ifeq (yes,$(have-tunables))
>  $(eval $(call include_dsosort_tests,dso-sort-tests-1.def))
>  $(eval $(call include_dsosort_tests,dso-sort-tests-2.def))
>  endif
> +endif
> +postclean-generated += $(objpfx)/dso-sort-tests-2.generated-makefile \
> +                      $(objpfx)/dso-sort-tests-2.generated-makefile
>
>  check-abi: $(objpfx)check-abi-ld.out
>  tests-special += $(objpfx)check-abi-ld.out



-- 
H.J.


More information about the Libc-alpha mailing list