From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756304AbcBIOzI (ORCPT ); Tue, 9 Feb 2016 09:55:08 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:60581 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751861AbcBIOzF (ORCPT ); Tue, 9 Feb 2016 09:55:05 -0500 From: Arnd Bergmann To: Michal Marek Cc: Michal Marek , linux-arm-kernel@lists.infradead.org, Mark Charlebois , Behan Webster , linux-kernel@vger.kernel.org Subject: Re: [PATCH] Kbuild: provide a __UNIQUE_ID for clang Date: Tue, 09 Feb 2016 15:54:26 +0100 Message-ID: <2393216.K0HRYm6hPv@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <20160208181326.GA3784@pobox.suse.cz> References: <1454942318-2782493-1-git-send-email-arnd@arndb.de> <20160208181326.GA3784@pobox.suse.cz> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:kRbqqJEFWFGpX6lYmgqvPSzSxyjbxlKv+VkyZQ0+bdp6xemZlpR Z/CHIdzAEF/4C+JhSyemCn7hzyhvIxtvSaCFtzp+5YLXMGCMZxFy0ub8skfoAnZxOM5gh7S hvY5j/M6Ae01i7HvaxitmifkjuRo0HCHrmv+vC2vO1JEDTIdIJmDZVY4UcRlzsxYj16nJVr hg5qU6GA9Y8ZRtzpWfulQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:+3AsRdiS+f0=:QlqlPJ0hX2S644l/SR44pq bqaIJICHF4ZqZOjvNfEM1kdtMnmBvRsQwjZNYmjwxiduZf1s9Dflqurf8EzFEMqs/D3txY2PP Rzb0fdb3iUfspsfa/PxRBDPsoFQvNs6sGU+cInWH8sqeItdxttRssWglHKbu7Iaqn2MOx5ENH dzatuG9Y3ZBo8wu26xLbE7kY9wRGPyRKhUF8XYtS65I6VGa6991eTGlVaMc4gYDkWWITfK97s kuUA0phLz3zWkRCL2SR94mLBU5+Cb9jawi4oZ5owfCGlqFXZXyGnxuZGvMMsyJ4rdf36qQMmE s9zoh388+hFf2486ErTEOkaRxDMAy6RFaq1vQXEPRWkh2m2eRTvjLZLkjPt9nipGoMLSU2Rs3 y2375nDPQeQfyEpAKx5wY3D9DVeppJfDIx+pBNqAFjU4LOroPE8SA8xx/KwwoR6Wy/0DuRchy Qdu0YW9XFTjd/rmu3JESWikNwLfCUHewptfabmukw3mZ9fnF+oShwYdcfd1+I0TI4RZEyOABy iiyaKaSHW38lexn1BU8ELQfamGHvgWSUmAIop+vzgSl6pwFBOTq8GcG8/bAbJJEwzbVZXxqJu vULzW5ckug1im9rXtomK9xkUl0clZWioDz2xJiDBsa2eRk7yAqaVP6ghP1gwA+fkTRMey0Ugu k9dIe8PrOAD4zllThAgwwEjjrY+zPSyBGkW/EX9fa25Yt1qN6Gv2p6t5tbh00RJnEMzprUtqG QLfU/x/MFTgn6P3w Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Monday 08 February 2016 19:13:26 Michal Marek wrote: > On Mon, Feb 08, 2016 at 03:38:32PM +0100, Arnd Bergmann wrote: > > The default __UNIQUE_ID macro in compiler.h fails to work for some drivers: > > > > drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:615:1: error: redefinition of > > '__UNIQUE_ID_firmware615' > > BRCMF_FW_NVRAM_DEF(4354, "brcmfmac4354-sdio.bin", "brcmfmac4354-sdio.txt"); > > I applied the patch to kbuild.git#kbuild, but can you tell me with which > commit and config you get such failure. I only see a single > MODULE_FIRMWARE() call in the expansion of BRCMF_FW_NVRAM_DEF(), which > should work with line numbers as well. And I can't reproduce it with > today's linux-next. If there is some issue with code not yet in > linux-next, it needs to be worked around, because older GCCs did not > have __COUNTER__. I wrote this patch in early January before Arend van Spriel changed the code with the patch below. I wasn't aware of his change, but that explains why you don't see the problem any more. Arnd commit 23195ec00503c6c29daea5b6c780787c0b5f1bf3 Author: Arend van Spriel Date: Sat Jan 16 16:39:13 2016 +0100 brcmfmac: fix BRCMF_FW_NVRAM_DEF macro for older gcc compilers With gcc < 4.3 __UNIQUE_ID does not create unique ids with the macro BRCMF_FW_NVRAM_DEF. Fix this by removing the MODULE_FIRMWARE instance for the nvram file. This file is not in linux-firmware repo so it may not be needed anyway. Otherwise consider this as a temporary fix. Reported-by: Geert Uytterhoeven Signed-off-by: Arend van Spriel Acked-by: Kalle Valo Tested-by: Geert Uytterhoeven Signed-off-by: David S. Miller diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h index ef06f57a7a0e..d3c9f0d52ae3 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h @@ -47,8 +47,7 @@ static const char BRCM_ ## fw_nvram_name ## _FIRMWARE_NAME[] = \ BRCMF_FW_DEFAULT_PATH fw; \ static const char BRCM_ ## fw_nvram_name ## _NVRAM_NAME[] = \ BRCMF_FW_DEFAULT_PATH nvram; \ -MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH fw); \ -MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH nvram) +MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH fw); #define BRCMF_FW_DEF(fw_name, fw) \ static const char BRCM_ ## fw_name ## _FIRMWARE_NAME[] = \