All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Marek <mmarek@suse.cz>
To: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: linux-next@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-kbuild@vger.kernel.org
Subject: Re: linux-next: build failure after merge of the kbuild tree
Date: Wed, 20 Apr 2011 15:50:31 +0200	[thread overview]
Message-ID: <20110420135030.GA1901@sepie.suse.cz> (raw)
In-Reply-To: <20110420082514.a9ec4d68.sfr@canb.auug.org.au>

On Wed, Apr 20, 2011 at 08:25:14AM +1000, Stephen Rothwell wrote:
> Hi Michal,
> 
> After merging the kbuild tree, today's linux-next build (s390 allnoconfig)
> failed like this:
> 
> /opt/crosstool/gcc-4.3.2-nolibc/bin/s390x-linux-ar: illegal option -- D
> 
> Caused by commit 09ff9fecc039 ("kbuild: Use the deterministic mode of ar").
> 
> $ /opt/crosstool/gcc-4.3.2-nolibc/bin/s390x-linux-ar --version
> GNU ar (GNU Binutils) 2.19
> 
> I presume that this version of ar is now too old to build the kernel?
> Documentation/Changes only mentions Binutils verion 2.12.

Sorry about that, the following patch should fix it.

Michal


Subject: [PATCH] kbuild: Fix build with binutils <= 2.19

The D option of ar is only available in newer versions.

Signed-off-by: Michal Marek <mmarek@suse.cz>

diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
index 5d145bb..40e082b 100644
--- a/Documentation/kbuild/makefiles.txt
+++ b/Documentation/kbuild/makefiles.txt
@@ -955,6 +955,11 @@ When kbuild executes, the following steps are followed (roughly):
 	used when linking modules. This is often a linker script.
 	From commandline LDFLAGS_MODULE shall be used (see kbuild.txt).
 
+    KBUILD_ARFLAGS   Options for $(AR) when creating archives
+
+	$(KBUILD_ARFLAGS) set by the top level Makefile to "D" (deterministic
+	mode) if this option is supported by $(AR).
+
 --- 6.2 Add prerequisites to archprepare:
 
 	The archprepare: rule is used to list prerequisites that need to be
diff --git a/Makefile b/Makefile
index c3bd316..d7c4231 100644
--- a/Makefile
+++ b/Makefile
@@ -382,6 +382,7 @@ export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_GCOV
 export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
 export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
 export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
+export KBUILD_ARFLAGS
 
 # When compiling out-of-tree modules, put MODVERDIR in the module
 # tree rather than in the kernel tree. The kernel tree might
@@ -612,6 +613,9 @@ KBUILD_CFLAGS	+= $(call cc-option,-fno-strict-overflow)
 # conserve stack if available
 KBUILD_CFLAGS   += $(call cc-option,-fconserve-stack)
 
+# use the deterministic mode of AR if available
+KBUILD_ARFLAGS := $(call ar-option,D)
+
 # check for 'asm goto'
 ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y)
 	KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index ed2773e..fae2d8d 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -141,6 +141,11 @@ cc-ldoption = $(call try-run,\
 ld-option = $(call try-run,\
 	$(CC) /dev/null -c -o "$$TMPO" ; $(LD) $(1) "$$TMPO" -o "$$TMP",$(1),$(2))
 
+# ar-option
+# Usage: KBUILD_ARFLAGS := $(call ar-option,D)
+# Important: no spaces around options
+ar-option = $(call try-run, $(AR) rc$(1) "$$TMP",$(1),$(2))
+
 ######
 
 ###
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 5f87d37..e1244ef 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -345,7 +345,7 @@ quiet_cmd_link_o_target = LD      $@
 cmd_link_o_target = $(if $(strip $(obj-y)),\
 		      $(LD) $(ld_flags) -r -o $@ $(filter $(obj-y), $^) \
 		      $(cmd_secanalysis),\
-		      rm -f $@; $(AR) rcsD $@)
+		      rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) $@)
 
 $(builtin-target): $(obj-y) FORCE
 	$(call if_changed,link_o_target)
@@ -371,7 +371,7 @@ $(modorder-target): $(subdir-ym) FORCE
 #
 ifdef lib-target
 quiet_cmd_link_l_target = AR      $@
-cmd_link_l_target = rm -f $@; $(AR) rcsD $@ $(lib-y)
+cmd_link_l_target = rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) $@ $(lib-y)
 
 $(lib-target): $(lib-y) FORCE
 	$(call if_changed,link_l_target)

  parent reply	other threads:[~2011-04-20 13:50 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-19 22:25 linux-next: build failure after merge of the kbuild tree Stephen Rothwell
2011-04-19 22:30 ` Stephen Rothwell
2011-04-20 13:50 ` Michal Marek [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-03-16 14:18 Mark Brown
2026-03-16 16:02 ` Nicolas Schier
2026-03-16 16:16   ` Yonghong Song
2026-03-16 17:42   ` Mark Brown
2026-03-16 17:56     ` Nicolas Schier
2025-08-18  4:01 Stephen Rothwell
2025-08-18  4:27 ` Nathan Chancellor
2025-07-30  6:12 Stephen Rothwell
2025-08-04  1:25 ` Stephen Rothwell
2025-08-04  7:09   ` Alexey Gladkov
2025-08-04 22:17     ` Stephen Rothwell
2025-08-05  3:33       ` Stephen Rothwell
2025-08-12 21:51         ` Alexey Gladkov
2025-06-03  6:39 Stephen Rothwell
2025-03-23 23:30 Stephen Rothwell
2025-03-24 13:52 ` Jeff Johnson
2025-03-24 17:37   ` Arnd Bergmann
2025-03-24 17:40     ` Jeff Johnson
2025-03-26 23:16 ` Stephen Rothwell
2025-03-27  0:20   ` Jeff Johnson
2025-03-27 10:13     ` Alessandro Carminati
2024-09-11  0:18 Stephen Rothwell
2024-09-11  9:38 ` Masahiro Yamada
2024-09-11 13:20   ` Kris Van Hees
2024-09-12  1:49     ` Masahiro Yamada
2022-10-14  1:42 Stephen Rothwell
2022-10-14 13:31 ` Masahiro Yamada
2022-10-12 22:17 Stephen Rothwell
2022-10-12 22:34 ` Masahiro Yamada
2022-10-12 23:51   ` Stephen Rothwell
2022-09-08 23:00 Stephen Rothwell
2022-09-09  5:10 ` Masahiro Yamada
2022-09-09  5:24   ` Stephen Rothwell
2022-09-09  6:13     ` Stephen Rothwell
2022-09-09  6:48       ` Masahiro Yamada
2022-09-09  7:49         ` Stephen Rothwell
     [not found]           ` <CAK7LNARiW66Hk5JJgRYb-edkb6sgTWPbNr1iETkq-RASCo-YkA@mail.gmail.com>
2022-09-11 23:55             ` Stephen Rothwell
2022-09-12  5:06               ` Masahiro Yamada
2022-09-12  7:43                 ` Stephen Rothwell
2022-09-09  8:26         ` Stephen Rothwell
2022-09-08  0:06 Stephen Rothwell
2022-09-08  4:14 ` Masahiro Yamada
2022-09-07 12:34 Stephen Rothwell
2022-09-07 13:49 ` Masahiro Yamada
2022-05-23 10:59 Stephen Rothwell
2022-05-23 15:59 ` Masahiro Yamada
2021-08-26  9:13 Stephen Rothwell
2021-08-27  0:52 ` Masahiro Yamada
2021-08-27  1:50   ` Stephen Rothwell
2021-08-27  2:49     ` Masahiro Yamada
2021-02-21 21:33 Stephen Rothwell
2021-02-21 23:21 ` Masahiro Yamada
2020-07-07  7:07 Stephen Rothwell
2020-07-13  1:56 ` Stephen Rothwell
2020-07-13  7:52   ` Masahiro Yamada
2020-04-06  2:34 Stephen Rothwell
2020-04-07  4:41 ` Masahiro Yamada
2020-03-10 22:53 Stephen Rothwell
2020-03-11  4:22 ` Masahiro Yamada
2019-07-16  4:31 Stephen Rothwell
2019-07-16  4:59 ` Masahiro Yamada
2019-07-16  6:42   ` Stephen Rothwell
2019-07-05  8:31 Stephen Rothwell
2019-07-06  0:05 ` Michael Kelley
2019-07-06  0:58   ` Masahiro Yamada
2019-05-05 23:46 Stephen Rothwell
2019-05-05 23:35 Stephen Rothwell
2019-05-05 22:40 Stephen Rothwell
2018-08-22 22:35 Stephen Rothwell
2018-08-23  9:03 ` Masahiro Yamada
2018-05-30  1:29 Stephen Rothwell
2018-05-30  1:44 ` Masahiro Yamada
2018-05-15  5:50 Stephen Rothwell
2018-05-16  6:01 ` Masahiro Yamada
2018-05-16  7:26   ` Stephen Rothwell
2018-05-17 13:45     ` Masahiro Yamada
2018-03-28 21:58 Stephen Rothwell
2018-03-29  1:59 ` Masahiro Yamada
2016-09-15  6:08 Stephen Rothwell
2016-09-22 12:52 ` Michal Marek
2016-07-28  2:08 Stephen Rothwell
2016-07-28  2:08 ` Stephen Rothwell
2016-07-28  2:40 ` Michael Ellerman
2016-03-15 23:58 Stephen Rothwell
2016-03-16  7:53 ` Daniel Wagner
2016-03-16  7:53   ` Daniel Wagner
2016-03-16  7:56   ` Michal Marek
2016-03-16 11:29     ` Stephen Rothwell
2016-03-16 11:31       ` Michal Marek
2013-02-24 23:56 Stephen Rothwell
2013-02-25 10:28 ` Michal Marek
2013-02-25 10:58   ` Stephen Rothwell
2013-02-25 11:02     ` Stephen Rothwell
2013-02-25 11:36     ` Michal Marek
2010-03-11  5:15 Stephen Rothwell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110420135030.GA1901@sepie.suse.cz \
    --to=mmarek@suse.cz \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=sfr@canb.auug.org.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.