jam: Remove ignored archiver flag modifier

The call of make in buildtools/jam produces the following output:

LINKLIBS= ./jam0
...patience...
...found 271 target(s)...
...updating 33 target(s)...
MkDir1 bin.linuxx86
Cc bin.linuxx86/builtins.o
< reduced output >
Cc bin.linuxx86/variable.o
Archive bin.linuxx86/libjam.a
ar: `u' modifier ignored since `D' is the default (see `U')
ar: creating bin.linuxx86/libjam.a
...

'make' bootstraps 'jam0' which calls 'ar' to create the static library 'libjam.a'.
The call looks like this:

ar ru bin.linuxx86/libjam.a bin.linuxx86/builtins.o <reduced output> bin.linuxx86/variable.o

The modifier 'u' gets ignored.

The underlying cause is that the build was done in deterministic mode ('D'), a.o. NOT using timestamps, which is completely fine.
But because of this the archiver tool (ar) can never update files in the archive based on timestamps.
"ru" means replace files (flag 'r') only if they are updated (flag suffix 'u') based on timestamps.
This patch removes the flag suffix 'u'.

Change-Id: I57fa2d50c2081ee66d1b71648714e773ecb7cd59
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4419
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
This commit is contained in:
Franck LeCodeur 2021-09-03 12:43:49 +02:00 committed by Jérôme Duval
parent 0ff4d6adaf
commit 4b7b6c63e8
2 changed files with 2 additions and 2 deletions

View File

@ -316,7 +316,7 @@ if $(NT) {
#
AR ?= ar ;
ARFLAGS ?= ru ;
ARFLAGS ?= r ;
AS ?= as ;
ASFLAGS ?= ;
AWK ?= awk ;

View File

@ -152,7 +152,7 @@ const char *jambase[] = {
"YACCFILES ?= y.tab ;\n",
"YACCFLAGS ?= -d ;\n",
"}\n",
"AR ?= ar ru ;\n",
"AR ?= ar r ;\n",
"AS ?= as ;\n",
"ASFLAGS ?= ;\n",
"AWK ?= awk ;\n",