Index: toolchain_build/toolchain_build_pnacl.py |
diff --git a/toolchain_build/toolchain_build_pnacl.py b/toolchain_build/toolchain_build_pnacl.py |
index d14e6a9844a5d5859760ec618bbc66a366e6cbd4..6a0eb21f667250daa059345858110bb6d1ad315e 100755 |
--- a/toolchain_build/toolchain_build_pnacl.py |
+++ b/toolchain_build/toolchain_build_pnacl.py |
@@ -493,11 +493,13 @@ def HostTools(host, options): |
else: |
return file |
- werror = [] |
+ # TODO(jfb): gold's build currently generates the following error on Windows: |
+ # too many arguments for format. |
+ binutils_do_werror = not TripleIsWindows(host) |
extra_gold_deps = [] |
if host == 'le32-nacl': |
# TODO(bradnelson): Fix warnings so this can go away. |
- werror = ['--enable-werror=no'] |
+ binutils_do_werror = False |
extra_gold_deps = [H('llvm')] |
# Binutils still has some warnings when building with clang |
@@ -525,15 +527,17 @@ def HostTools(host, options): |
ConfigureHostArchFlags( |
host, warning_flags, options, |
options.binutils_pnacl_extra_configure) + |
- ['--target=arm-nacl', |
- '--program-prefix=le32-nacl-', |
- '--enable-targets=arm-nacl,i686-nacl,x86_64-nacl,' + |
- 'mipsel-nacl', |
- '--enable-shared=no', |
+ [ |
'--enable-gold=default', |
'--enable-plugins', |
- '--without-gas', |
- '--with-sysroot=/le32-nacl'] + werror), |
+ '--enable-shared=no', |
+ '--enable-targets=arm-nacl,i686-nacl,x86_64-nacl,mipsel-nacl', |
+ '--enable-werror=' + ('yes' if binutils_do_werror else 'no'), |
+ '--program-prefix=le32-nacl-', |
+ '--target=arm-nacl', |
+ '--with-sysroot=/le32-nacl', |
+ '--without-gas' |
+ ]), |
command.Command(MakeCommand(host)), |
command.Command(MAKE_DESTDIR_CMD + ['install-strip'])] + |
[command.RemoveDirectory(os.path.join('%(output)s', dir)) |
@@ -574,6 +578,10 @@ def HostTools(host, options): |
}, |
} |
+ # TODO(jfb) Windows currently uses MinGW's GCC 4.8.1 which generates warnings |
+ # on upstream LLVM code. Turn on -Werror once these are fixed. |
+ llvm_do_werror = not TripleIsWindows(host) |
+ |
llvm_cmake = { |
H('llvm'): { |
'dependencies': ['clang_src', 'llvm_src', 'binutils_pnacl_src'], |
@@ -582,18 +590,20 @@ def HostTools(host, options): |
command.SkipForIncrementalCommand([ |
'cmake', '-G', 'Ninja'] + |
CmakeHostArchFlags(host, options) + |
- ['-DCMAKE_BUILD_TYPE=RelWithDebInfo', |
+ [ |
+ '-DBUILD_SHARED_LIBS=ON', |
+ '-DCMAKE_BUILD_TYPE=RelWithDebInfo', |
'-DCMAKE_INSTALL_PREFIX=%(output)s', |
'-DCMAKE_INSTALL_RPATH=$ORIGIN/../lib', |
- '-DLLVM_ENABLE_LIBCXX=OFF', |
- '-DBUILD_SHARED_LIBS=ON', |
- '-DLLVM_TARGETS_TO_BUILD=X86;ARM;Mips', |
- '-DLLVM_ENABLE_ASSERTIONS=ON', |
- '-DLLVM_ENABLE_ZLIB=OFF', |
- '-DLLVM_BUILD_TESTS=ON', |
'-DLLVM_APPEND_VC_REV=ON', |
'-DLLVM_BINUTILS_INCDIR=%(abs_binutils_pnacl_src)s/include', |
+ '-DLLVM_BUILD_TESTS=ON', |
+ '-DLLVM_ENABLE_ASSERTIONS=ON', |
+ '-DLLVM_ENABLE_LIBCXX=OFF', |
+ '-LLVM_ENABLE_WERROR=' + ('ON' if llvm_do_werror else 'OFF'), |
+ '-DLLVM_ENABLE_ZLIB=OFF', |
'-DLLVM_EXTERNAL_CLANG_SOURCE_DIR=%(clang_src)s', |
+ '-DLLVM_TARGETS_TO_BUILD=X86;ARM;Mips', |
'%(llvm_src)s']), |
command.Command(['ninja', '-v']), |
command.Command(['ninja', 'install']), |
@@ -620,16 +630,19 @@ def HostTools(host, options): |
'%(llvm_src)s/configure'] + |
ConfigureHostArchFlags(host, [], options) + |
LLVMConfigureAssertionsFlags(options) + |
- ['--prefix=/', |
- '--disable-zlib', |
- '--disable-terminfo', |
- '--disable-jit', |
+ [ |
'--disable-bindings', # ocaml is currently the only binding. |
- '--with-binutils-include=%(abs_binutils_pnacl_src)s/include', |
+ '--disable-jit', |
+ '--disable-terminfo', |
+ '--disable-zlib', |
+ '--enable-optimized', |
'--enable-targets=x86,arm,mips', |
+ '--enable-werror=' + ('yes' if llvm_do_werror else 'no'), |
+ '--prefix=/', |
'--program-prefix=', |
- '--enable-optimized', |
- '--with-clang-srcdir=%(abs_clang_src)s'] + shared)] + |
+ '--with-binutils-include=%(abs_binutils_pnacl_src)s/include', |
+ '--with-clang-srcdir=%(abs_clang_src)s' |
+ ] + shared)] + |
CopyHostLibcxxForLLVMBuild( |
host, |
os.path.join('Release+Asserts', 'lib'), |