Message ID | 1454942318-2782493-1-git-send-email-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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__. Michal
diff --git a/include/linux/compiler-clang.h b/include/linux/compiler-clang.h index d1e49d52b640..de179993e039 100644 --- a/include/linux/compiler-clang.h +++ b/include/linux/compiler-clang.h @@ -10,3 +10,8 @@ #undef uninitialized_var #define uninitialized_var(x) x = *(&(x)) #endif + +/* same as gcc, this was present in clang-2.6 so we can assume it works + * with any version that can compile the kernel + */ +#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
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"); This adds a copy of the version we use for gcc-4.3 and higher, as the same one works with all versions of clang that I could find in svn (2.6 and higher). Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- include/linux/compiler-clang.h | 5 +++++ 1 file changed, 5 insertions(+)