From: Andreas Hansson Date: Mon, 7 Jan 2013 18:05:35 +0000 (-0500) Subject: scons: Fix libelf linking errors when using clang/llvm X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4731979ab092e6324e563d5738387e6ce21c3812;p=gem5.git scons: Fix libelf linking errors when using clang/llvm This patch fixes a linking error that occurs when using clang/llvm in combination with older versions of glibc. The fix involves adding -std=gnu89 to the command line when compiling libelf as clang defaults to c99, causing issues with the symbols in sysmacros.h being defined multiple times. --- diff --git a/ext/libelf/SConscript b/ext/libelf/SConscript index 56983d12f..ac91a3025 100644 --- a/ext/libelf/SConscript +++ b/ext/libelf/SConscript @@ -100,6 +100,11 @@ if m4env['GCC']: '-Wno-implicit-function-declaration']) if m4env['CLANG']: m4env.Append(CCFLAGS=['-Wno-initializer-overrides', '-Wno-pointer-sign']) + # clang defaults to c99 (while gcc defaults to gnu89) and there is a + # difference in the handling of inlining functions which causes + # linking problems with multiple definitions of the symbols in + # sysmacros.h for older versions of glibc + m4env.Append(CCFLAGS=['-std=gnu89']) m4env.Append(CCFLAGS=['-Wno-implicit']) del m4env['CPPPATH']