mbox series

[v5,0/2] Makefile: libfdt: build only the strict necessary

Message ID 20200518160319.18861-1-cfontana@suse.de (mailing list archive)
Headers show
Series Makefile: libfdt: build only the strict necessary | expand

Message

Claudio Fontana May 18, 2020, 4:03 p.m. UTC
v4 -> v5:

* include the dtc submodule update commit in the 1/2 patch

v3 -> v4: NB! only useful when updating to latest dtc (not in QEMU yet)

* changed the approach to leverage new upstream dtc Makefile,
  needs dtc submodule update to include upstream dtc commit
  85e5d839847af54efab170f2b1331b2a6421e647.

* LIBFDT_srcdir does not exist anymore in upstream dtc: it is also
  not used anymore.

* LIBFDT_lib: need to avoid building libfdt.so at least for now, so pass as
  empty to avoid building the .so. This is to avoid breaking existing
  trees with objects already compiled without -fPIC.

* clean: no need to make dtc clean target, every artifact is captured by
  global clean rule

v2 -> v3:

* changed into a 2 patch series; in the second patch we remove the old
  compatibility gunks that were meant for removal some time after 4.1.

* renamed the libfdt PHONY rule to dtc/all, with the intent to make
  existing working trees forward and backward compatible across the change.

v1 -> v2:

* fix error generated when running UNCHECKED_GOALS without prior configure,
  for example during make docker-image-fedora. Without configure, DSOSUF is
  empty, and the module pattern rule in rules.mak that uses this variable
  can match too much; provide a default in the Makefile to avoid it.

* only attempt to build the archive when there is a non-empty list of objects.
  This could be done in general for the %.a: pattern in rules.mak, but maybe
  there are valid reasons to build an empty .a?

* removed some intermediate variables that did not add much value
  (LIBFDT_srcdir, LIBFDT_archive)

Tested locally with 3 VPATH configurations (no-, VPATH, VPATH in src subdir),
and with docker-image-fedora, docker-test-debug@fedora that failed before.

Claudio Fontana (2):
  Makefile: libfdt: build only the strict necessary
  Makefile: remove old compatibility gunks

 Makefile  | 32 ++++++++++++++++----------------
 configure |  6 +-----
 rules.mak |  2 ++
 3 files changed, 19 insertions(+), 21 deletions(-)

Comments

Claudio Fontana June 1, 2020, 11:28 a.m. UTC | #1
Hello all,

is this queued somewhere?

Thanks,

Claudio

On 5/18/20 6:03 PM, Claudio Fontana wrote:
> v4 -> v5:
> 
> * include the dtc submodule update commit in the 1/2 patch
> 
> v3 -> v4: NB! only useful when updating to latest dtc (not in QEMU yet)
> 
> * changed the approach to leverage new upstream dtc Makefile,
>   needs dtc submodule update to include upstream dtc commit
>   85e5d839847af54efab170f2b1331b2a6421e647.
> 
> * LIBFDT_srcdir does not exist anymore in upstream dtc: it is also
>   not used anymore.
> 
> * LIBFDT_lib: need to avoid building libfdt.so at least for now, so pass as
>   empty to avoid building the .so. This is to avoid breaking existing
>   trees with objects already compiled without -fPIC.
> 
> * clean: no need to make dtc clean target, every artifact is captured by
>   global clean rule
> 
> v2 -> v3:
> 
> * changed into a 2 patch series; in the second patch we remove the old
>   compatibility gunks that were meant for removal some time after 4.1.
> 
> * renamed the libfdt PHONY rule to dtc/all, with the intent to make
>   existing working trees forward and backward compatible across the change.
> 
> v1 -> v2:
> 
> * fix error generated when running UNCHECKED_GOALS without prior configure,
>   for example during make docker-image-fedora. Without configure, DSOSUF is
>   empty, and the module pattern rule in rules.mak that uses this variable
>   can match too much; provide a default in the Makefile to avoid it.
> 
> * only attempt to build the archive when there is a non-empty list of objects.
>   This could be done in general for the %.a: pattern in rules.mak, but maybe
>   there are valid reasons to build an empty .a?
> 
> * removed some intermediate variables that did not add much value
>   (LIBFDT_srcdir, LIBFDT_archive)
> 
> Tested locally with 3 VPATH configurations (no-, VPATH, VPATH in src subdir),
> and with docker-image-fedora, docker-test-debug@fedora that failed before.
> 
> Claudio Fontana (2):
>   Makefile: libfdt: build only the strict necessary
>   Makefile: remove old compatibility gunks
> 
>  Makefile  | 32 ++++++++++++++++----------------
>  configure |  6 +-----
>  rules.mak |  2 ++
>  3 files changed, 19 insertions(+), 21 deletions(-)
>
Thomas Huth June 7, 2020, 6:53 a.m. UTC | #2
Hi David,

could you maybe take this through your ppc tree?

 Thanks,
  Thomas


On 01/06/2020 13.28, Claudio Fontana wrote:
> Hello all,
> 
> is this queued somewhere?
> 
> Thanks,
> 
> Claudio
> 
> On 5/18/20 6:03 PM, Claudio Fontana wrote:
>> v4 -> v5:
>>
>> * include the dtc submodule update commit in the 1/2 patch
>>
>> v3 -> v4: NB! only useful when updating to latest dtc (not in QEMU yet)
>>
>> * changed the approach to leverage new upstream dtc Makefile,
>>   needs dtc submodule update to include upstream dtc commit
>>   85e5d839847af54efab170f2b1331b2a6421e647.
>>
>> * LIBFDT_srcdir does not exist anymore in upstream dtc: it is also
>>   not used anymore.
>>
>> * LIBFDT_lib: need to avoid building libfdt.so at least for now, so pass as
>>   empty to avoid building the .so. This is to avoid breaking existing
>>   trees with objects already compiled without -fPIC.
>>
>> * clean: no need to make dtc clean target, every artifact is captured by
>>   global clean rule
>>
>> v2 -> v3:
>>
>> * changed into a 2 patch series; in the second patch we remove the old
>>   compatibility gunks that were meant for removal some time after 4.1.
>>
>> * renamed the libfdt PHONY rule to dtc/all, with the intent to make
>>   existing working trees forward and backward compatible across the change.
>>
>> v1 -> v2:
>>
>> * fix error generated when running UNCHECKED_GOALS without prior configure,
>>   for example during make docker-image-fedora. Without configure, DSOSUF is
>>   empty, and the module pattern rule in rules.mak that uses this variable
>>   can match too much; provide a default in the Makefile to avoid it.
>>
>> * only attempt to build the archive when there is a non-empty list of objects.
>>   This could be done in general for the %.a: pattern in rules.mak, but maybe
>>   there are valid reasons to build an empty .a?
>>
>> * removed some intermediate variables that did not add much value
>>   (LIBFDT_srcdir, LIBFDT_archive)
>>
>> Tested locally with 3 VPATH configurations (no-, VPATH, VPATH in src subdir),
>> and with docker-image-fedora, docker-test-debug@fedora that failed before.
>>
>> Claudio Fontana (2):
>>   Makefile: libfdt: build only the strict necessary
>>   Makefile: remove old compatibility gunks
>>
>>  Makefile  | 32 ++++++++++++++++----------------
>>  configure |  6 +-----
>>  rules.mak |  2 ++
>>  3 files changed, 19 insertions(+), 21 deletions(-)
>>
> 
>
David Gibson June 8, 2020, 9:52 a.m. UTC | #3
On Sun, Jun 07, 2020 at 08:53:52AM +0200, Thomas Huth wrote:
>  Hi David,
> 
> could you maybe take this through your ppc tree?

Sounds reasonable, but this version doesn't seem to apply any more.

> 
>  Thanks,
>   Thomas
> 
> 
> On 01/06/2020 13.28, Claudio Fontana wrote:
> > Hello all,
> > 
> > is this queued somewhere?
> > 
> > Thanks,
> > 
> > Claudio
> > 
> > On 5/18/20 6:03 PM, Claudio Fontana wrote:
> >> v4 -> v5:
> >>
> >> * include the dtc submodule update commit in the 1/2 patch
> >>
> >> v3 -> v4: NB! only useful when updating to latest dtc (not in QEMU yet)
> >>
> >> * changed the approach to leverage new upstream dtc Makefile,
> >>   needs dtc submodule update to include upstream dtc commit
> >>   85e5d839847af54efab170f2b1331b2a6421e647.
> >>
> >> * LIBFDT_srcdir does not exist anymore in upstream dtc: it is also
> >>   not used anymore.
> >>
> >> * LIBFDT_lib: need to avoid building libfdt.so at least for now, so pass as
> >>   empty to avoid building the .so. This is to avoid breaking existing
> >>   trees with objects already compiled without -fPIC.
> >>
> >> * clean: no need to make dtc clean target, every artifact is captured by
> >>   global clean rule
> >>
> >> v2 -> v3:
> >>
> >> * changed into a 2 patch series; in the second patch we remove the old
> >>   compatibility gunks that were meant for removal some time after 4.1.
> >>
> >> * renamed the libfdt PHONY rule to dtc/all, with the intent to make
> >>   existing working trees forward and backward compatible across the change.
> >>
> >> v1 -> v2:
> >>
> >> * fix error generated when running UNCHECKED_GOALS without prior configure,
> >>   for example during make docker-image-fedora. Without configure, DSOSUF is
> >>   empty, and the module pattern rule in rules.mak that uses this variable
> >>   can match too much; provide a default in the Makefile to avoid it.
> >>
> >> * only attempt to build the archive when there is a non-empty list of objects.
> >>   This could be done in general for the %.a: pattern in rules.mak, but maybe
> >>   there are valid reasons to build an empty .a?
> >>
> >> * removed some intermediate variables that did not add much value
> >>   (LIBFDT_srcdir, LIBFDT_archive)
> >>
> >> Tested locally with 3 VPATH configurations (no-, VPATH, VPATH in src subdir),
> >> and with docker-image-fedora, docker-test-debug@fedora that failed before.
> >>
> >> Claudio Fontana (2):
> >>   Makefile: libfdt: build only the strict necessary
> >>   Makefile: remove old compatibility gunks
> >>
> >>  Makefile  | 32 ++++++++++++++++----------------
> >>  configure |  6 +-----
> >>  rules.mak |  2 ++
> >>  3 files changed, 19 insertions(+), 21 deletions(-)
> >>
> > 
> > 
>
Claudio Fontana June 8, 2020, 11:14 a.m. UTC | #4
On 6/8/20 11:52 AM, David Gibson wrote:
> On Sun, Jun 07, 2020 at 08:53:52AM +0200, Thomas Huth wrote:
>>  Hi David,
>>
>> could you maybe take this through your ppc tree?
> 
> Sounds reasonable, but this version doesn't seem to apply any more.

Hi David,

which problem are you experiencing?

I have applied the series to latest master without encountering problems and pushed to:

https://github.com/hw-claudio/qemu.git "v5-Makefile-build-necessary"

Thanks,

Claudio

> 
>>
>>  Thanks,
>>   Thomas
>>
>>
>> On 01/06/2020 13.28, Claudio Fontana wrote:
>>> Hello all,
>>>
>>> is this queued somewhere?
>>>
>>> Thanks,
>>>
>>> Claudio
>>>
>>> On 5/18/20 6:03 PM, Claudio Fontana wrote:
>>>> v4 -> v5:
>>>>
>>>> * include the dtc submodule update commit in the 1/2 patch
>>>>
>>>> v3 -> v4: NB! only useful when updating to latest dtc (not in QEMU yet)
>>>>
>>>> * changed the approach to leverage new upstream dtc Makefile,
>>>>   needs dtc submodule update to include upstream dtc commit
>>>>   85e5d839847af54efab170f2b1331b2a6421e647.
>>>>
>>>> * LIBFDT_srcdir does not exist anymore in upstream dtc: it is also
>>>>   not used anymore.
>>>>
>>>> * LIBFDT_lib: need to avoid building libfdt.so at least for now, so pass as
>>>>   empty to avoid building the .so. This is to avoid breaking existing
>>>>   trees with objects already compiled without -fPIC.
>>>>
>>>> * clean: no need to make dtc clean target, every artifact is captured by
>>>>   global clean rule
>>>>
>>>> v2 -> v3:
>>>>
>>>> * changed into a 2 patch series; in the second patch we remove the old
>>>>   compatibility gunks that were meant for removal some time after 4.1.
>>>>
>>>> * renamed the libfdt PHONY rule to dtc/all, with the intent to make
>>>>   existing working trees forward and backward compatible across the change.
>>>>
>>>> v1 -> v2:
>>>>
>>>> * fix error generated when running UNCHECKED_GOALS without prior configure,
>>>>   for example during make docker-image-fedora. Without configure, DSOSUF is
>>>>   empty, and the module pattern rule in rules.mak that uses this variable
>>>>   can match too much; provide a default in the Makefile to avoid it.
>>>>
>>>> * only attempt to build the archive when there is a non-empty list of objects.
>>>>   This could be done in general for the %.a: pattern in rules.mak, but maybe
>>>>   there are valid reasons to build an empty .a?
>>>>
>>>> * removed some intermediate variables that did not add much value
>>>>   (LIBFDT_srcdir, LIBFDT_archive)
>>>>
>>>> Tested locally with 3 VPATH configurations (no-, VPATH, VPATH in src subdir),
>>>> and with docker-image-fedora, docker-test-debug@fedora that failed before.
>>>>
>>>> Claudio Fontana (2):
>>>>   Makefile: libfdt: build only the strict necessary
>>>>   Makefile: remove old compatibility gunks
>>>>
>>>>  Makefile  | 32 ++++++++++++++++----------------
>>>>  configure |  6 +-----
>>>>  rules.mak |  2 ++
>>>>  3 files changed, 19 insertions(+), 21 deletions(-)
>>>>
>>>
>>>
>>
>
David Gibson June 10, 2020, 5:02 a.m. UTC | #5
On Mon, Jun 08, 2020 at 01:14:31PM +0200, Claudio Fontana wrote:
> On 6/8/20 11:52 AM, David Gibson wrote:
> > On Sun, Jun 07, 2020 at 08:53:52AM +0200, Thomas Huth wrote:
> >>  Hi David,
> >>
> >> could you maybe take this through your ppc tree?
> > 
> > Sounds reasonable, but this version doesn't seem to apply any more.
> 
> Hi David,
> 
> which problem are you experiencing?

Urgh, now I'm not sure what happened.  I seemed to get conflicts in
the Makefile, but now I seem to have them committed ok to my tree
after all.  I think I was just confused.

Anyway, they should be in ppc-for-5.1 now.

> I have applied the series to latest master without encountering problems and pushed to:
> 
> https://github.com/hw-claudio/qemu.git "v5-Makefile-build-necessary"
> 
> Thanks,
> 
> Claudio
> 
> > 
> >>
> >>  Thanks,
> >>   Thomas
> >>
> >>
> >> On 01/06/2020 13.28, Claudio Fontana wrote:
> >>> Hello all,
> >>>
> >>> is this queued somewhere?
> >>>
> >>> Thanks,
> >>>
> >>> Claudio
> >>>
> >>> On 5/18/20 6:03 PM, Claudio Fontana wrote:
> >>>> v4 -> v5:
> >>>>
> >>>> * include the dtc submodule update commit in the 1/2 patch
> >>>>
> >>>> v3 -> v4: NB! only useful when updating to latest dtc (not in QEMU yet)
> >>>>
> >>>> * changed the approach to leverage new upstream dtc Makefile,
> >>>>   needs dtc submodule update to include upstream dtc commit
> >>>>   85e5d839847af54efab170f2b1331b2a6421e647.
> >>>>
> >>>> * LIBFDT_srcdir does not exist anymore in upstream dtc: it is also
> >>>>   not used anymore.
> >>>>
> >>>> * LIBFDT_lib: need to avoid building libfdt.so at least for now, so pass as
> >>>>   empty to avoid building the .so. This is to avoid breaking existing
> >>>>   trees with objects already compiled without -fPIC.
> >>>>
> >>>> * clean: no need to make dtc clean target, every artifact is captured by
> >>>>   global clean rule
> >>>>
> >>>> v2 -> v3:
> >>>>
> >>>> * changed into a 2 patch series; in the second patch we remove the old
> >>>>   compatibility gunks that were meant for removal some time after 4.1.
> >>>>
> >>>> * renamed the libfdt PHONY rule to dtc/all, with the intent to make
> >>>>   existing working trees forward and backward compatible across the change.
> >>>>
> >>>> v1 -> v2:
> >>>>
> >>>> * fix error generated when running UNCHECKED_GOALS without prior configure,
> >>>>   for example during make docker-image-fedora. Without configure, DSOSUF is
> >>>>   empty, and the module pattern rule in rules.mak that uses this variable
> >>>>   can match too much; provide a default in the Makefile to avoid it.
> >>>>
> >>>> * only attempt to build the archive when there is a non-empty list of objects.
> >>>>   This could be done in general for the %.a: pattern in rules.mak, but maybe
> >>>>   there are valid reasons to build an empty .a?
> >>>>
> >>>> * removed some intermediate variables that did not add much value
> >>>>   (LIBFDT_srcdir, LIBFDT_archive)
> >>>>
> >>>> Tested locally with 3 VPATH configurations (no-, VPATH, VPATH in src subdir),
> >>>> and with docker-image-fedora, docker-test-debug@fedora that failed before.
> >>>>
> >>>> Claudio Fontana (2):
> >>>>   Makefile: libfdt: build only the strict necessary
> >>>>   Makefile: remove old compatibility gunks
> >>>>
> >>>>  Makefile  | 32 ++++++++++++++++----------------
> >>>>  configure |  6 +-----
> >>>>  rules.mak |  2 ++
> >>>>  3 files changed, 19 insertions(+), 21 deletions(-)
> >>>>
> >>>
> >>>
> >>
> > 
>