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.
This commit is contained in:
Andreas Hansson 2013-01-07 13:05:35 -05:00
parent b7827a5aaa
commit 4731979ab0

View file

@ -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']