qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Build failure with make-4.0


From: Ken Moffat
Subject: Re: [Qemu-devel] Build failure with make-4.0
Date: Mon, 21 Oct 2013 19:22:29 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

On Sat, Oct 19, 2013 at 10:53:43AM +0100, Ken Moffat wrote:
> On Sat, Oct 19, 2013 at 10:05:10AM +0100, Peter Maydell wrote:
> > 
> > Well, the reason would be that nobody in practice will do
> > that. Make should be setting ARFLAGS correctly (as per
> > its documentation) unless you've somehow managed to
> > set ARFLAGS to something incorrect in your environment.
> > If you "unset ARFLAGS" does it work?
> > 
> > -- PMM
>  I don't normally touch ARFLAGS.  Here's a freshly-untarred qemu
> tree.
> 
> address@hidden /scratch/ken/tmp/qemu-1.6.1 $echo $ARFLAGS
> 
> address@hidden /scratch/ken/tmp/qemu-1.6.1 $unset ARFLAGS
> 
> ./configure --prefix=/usr --sysconfdir=/etc --target-list=x86_64-softmmu
> make
> 
>        AR libfdt/libfdt.a
> ar: two different operation options specified
> Makefile:234: recipe for target 'libfdt/libfdt.a' failed
> make[1]: *** [libfdt/libfdt.a] Error 1
> Makefile:153: recipe for target 'subdir-dtc' failed
> make: *** [subdir-dtc] Error 2
> 
 I took this to bug-make, but now I'm back here.  The first thing in
rules.mak is

# Don't use implicit rules or variables
# we have explicit rules for everything
MAKEFLAGS += -rR

 and Paul Smith said -

It's a qemu bug, that just happened to work with make-3.82.  By adding
the -R flag they are stating they don't want to use ANY default variable
values.  However they are relying on the default variable value for
ARFLAGS to be set.  If they want to use -R they should set ARFLAGS to an
acceptable value in their makefile.

In previous versions of GNU make adding those flags wouldn't take effect
in the current instance of make; it would only be in effect in a
sub-make; that bug/mis-feature was fixed in GNU make 4.0.  Now adding
those flags in a makefile takes effect immediately, within that same
instance of make.  From the NEWS for GNU make 4.0:

* Setting the -r and -R options in MAKEFLAGS inside a makefile now works as
  expected, removing all built-in rules and variables, respectively.

 Thread starts at
http://lists.gnu.org/archive/html/bug-make/2013-10/msg00151.html

ĸen
-- 
das eine Mal als Tragödie, dieses Mal als Farce



reply via email to

[Prev in Thread] Current Thread [Next in Thread]