[dpdk-dev] mk: remove "u" modifier from "ar" command

Message ID 1433502340-14725-1-git-send-email-bruce.richardson@intel.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Bruce Richardson June 5, 2015, 11:05 a.m. UTC
  On Fedora 22, the "ar" binary operates by default in deterministic mode,
making the "u" parameter irrelevant, and leading to warning messages
getting printed in the build output like below.

  INSTALL-LIB librte_kvargs.a
ar: `u' modifier ignored since `D' is the default (see `U')

There are two options to remove these warnings:
* add in the "U" flag to make "ar" non-deterministic again
* remove the "u" flag to have all objects always updated

This patch takes the second approach.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 mk/rte.lib.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Olivier Matz June 8, 2015, 8:13 a.m. UTC | #1
Hi Bruce,

On 06/05/2015 01:05 PM, Bruce Richardson wrote:
> On Fedora 22, the "ar" binary operates by default in deterministic mode,
> making the "u" parameter irrelevant, and leading to warning messages
> getting printed in the build output like below.
> 
>   INSTALL-LIB librte_kvargs.a
> ar: `u' modifier ignored since `D' is the default (see `U')
> 
> There are two options to remove these warnings:
> * add in the "U" flag to make "ar" non-deterministic again
> * remove the "u" flag to have all objects always updated

Indeed, I think that removing 'u' won't have any impact in this case,
as we always regenerate the full archive without updating it.
However, why not explicitly use 'D' to have the same behavior across
distributions?

Regards,
Olivier


> 
> This patch takes the second approach.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
>  mk/rte.lib.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
> index 0d7482d..6bd67aa 100644
> --- a/mk/rte.lib.mk
> +++ b/mk/rte.lib.mk
> @@ -70,7 +70,7 @@ else
>  _CPU_LDFLAGS := $(CPU_LDFLAGS)
>  endif
>  
> -O_TO_A = $(AR) crus $(LIB) $(OBJS-y)
> +O_TO_A = $(AR) crs $(LIB) $(OBJS-y)
>  O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight
>  O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)","  AR $(@)")
>  O_TO_A_CMD = "cmd_$@ = $(O_TO_A_STR)"
>
  
Bruce Richardson June 8, 2015, 10:47 a.m. UTC | #2
On Mon, Jun 08, 2015 at 10:13:30AM +0200, Olivier MATZ wrote:
> Hi Bruce,
> 
> On 06/05/2015 01:05 PM, Bruce Richardson wrote:
> > On Fedora 22, the "ar" binary operates by default in deterministic mode,
> > making the "u" parameter irrelevant, and leading to warning messages
> > getting printed in the build output like below.
> > 
> >   INSTALL-LIB librte_kvargs.a
> > ar: `u' modifier ignored since `D' is the default (see `U')
> > 
> > There are two options to remove these warnings:
> > * add in the "U" flag to make "ar" non-deterministic again
> > * remove the "u" flag to have all objects always updated
> 
> Indeed, I think that removing 'u' won't have any impact in this case,
> as we always regenerate the full archive without updating it.
> However, why not explicitly use 'D' to have the same behavior across
> distributions?
> 
> Regards,
> Olivier
> 

Good question. I didn't bother adding in the "D" flag as I didn't see the need.
[Basically, I asked "why" instead of "why not" :-)]
However, if folks think it's worthwhile doing, I don't think doing a V2 of
this patch would tax me unduly :-)

/Bruce

> 
> > 
> > This patch takes the second approach.
> > 
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
> >  mk/rte.lib.mk | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
> > index 0d7482d..6bd67aa 100644
> > --- a/mk/rte.lib.mk
> > +++ b/mk/rte.lib.mk
> > @@ -70,7 +70,7 @@ else
> >  _CPU_LDFLAGS := $(CPU_LDFLAGS)
> >  endif
> >  
> > -O_TO_A = $(AR) crus $(LIB) $(OBJS-y)
> > +O_TO_A = $(AR) crs $(LIB) $(OBJS-y)
> >  O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight
> >  O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)","  AR $(@)")
> >  O_TO_A_CMD = "cmd_$@ = $(O_TO_A_STR)"
> >
  

Patch

diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
index 0d7482d..6bd67aa 100644
--- a/mk/rte.lib.mk
+++ b/mk/rte.lib.mk
@@ -70,7 +70,7 @@  else
 _CPU_LDFLAGS := $(CPU_LDFLAGS)
 endif
 
-O_TO_A = $(AR) crus $(LIB) $(OBJS-y)
+O_TO_A = $(AR) crs $(LIB) $(OBJS-y)
 O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight
 O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)","  AR $(@)")
 O_TO_A_CMD = "cmd_$@ = $(O_TO_A_STR)"