From 4731979ab092e6324e563d5738387e6ce21c3812 Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Mon, 7 Jan 2013 13:05:35 -0500 Subject: [PATCH] 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. --- ext/libelf/SConscript | 5 +++++ 1 file changed, 5 insertions(+) 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']