Add tools to build Dart with Chromium's sysroot.

This downloads and uses the Debian Wheezy sysroot used by chromium,
when building Dart.  The resulting dart runtime requires libc version
2.14, and building without the sysroot requires libc version 2.16

BUG=https://github.com/dart-lang/sdk/issues/27048
R=sgjesse@google.com

Review URL: https://codereview.chromium.org/2230083005 .
This commit is contained in:
William Hesse 2016-08-10 16:04:03 +02:00
parent 07850a6562
commit ae7b38799c
3 changed files with 61 additions and 0 deletions

View file

@ -0,0 +1,23 @@
#!/usr/bin/env bash
#
# Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
# Downloads the ia32 and x64 Debian wheezy sysroot that chromium uses,
# Only tested and used on Ubuntu trusty linux. Used to keep glibc version low.
# Creates directories called "build" and "tools" in the current directory.
# After running this, source set_ia32_sysroot.sh or set_x64_sysroot.sh, in
# the same working directory, to set the compilation environment variables.
# Sourcing a script means running the script with a '.', so that it runs
# in the current shell, not a subshell, as in:
# . sdk/tools/set_ia32_sysroot.sh
git clone https://chromium.googlesource.com/chromium/src/build
mkdir tools
cd tools
git clone https://chromium.googlesource.com/external/gyp
cd ..
build/linux/sysroot_scripts/install-sysroot.py --arch i386
build/linux/sysroot_scripts/install-sysroot.py --arch amd64

19
tools/set_ia32_sysroot.sh Executable file
View file

@ -0,0 +1,19 @@
#!/usr/bin/env bash
#
# Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
# Sets the compiler environment variables to use a downloaded wheezy sysroot
# when building Dart with architecture ia32.
# Run this in the same working directory that you have run
# sdk/tools/download_chromium_sysroot.sh in.
# Must be sourced, not run in a subshell, to modify the environment.
# Run with the command ". sdk/tools/set_ia32_sysroot.sh"
# Only tested and used on Ubuntu trusty linux. Used to build dart with
# no requirement for glibc greater than version 2.14.
export CXXFLAGS="--sysroot=$PWD/build/linux/debian_wheezy_i386-sysroot -I=/usr/include/c++/4.6 -I=/usr/include/c++/4.6/i486-linux-gnu"
export LDFLAGS=--sysroot=$PWD/build/linux/debian_wheezy_i386-sysroot
export CFLAGS=--sysroot=$PWD/build/linux/debian_wheezy_i386-sysroot

19
tools/set_x64_sysroot.sh Executable file
View file

@ -0,0 +1,19 @@
#!/usr/bin/env bash
#
# Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
# Sets the compiler environment variables to use a downloaded wheezy sysroot
# when building Dart with architecture x64.
# Run this in the same working directory that you have run
# sdk/tools/download_chromium_sysroot.sh in.
# Must be sourced, not run in a subshell, to modify the environment.
# Run with the command ". sdk/tools/set_x64_sysroot.sh"
# Only tested and used on Ubuntu trusty linux. Used to build dart with
# no requirement for glibc greater than version 2.14.
export CXXFLAGS="--sysroot=$PWD/build/linux/debian_wheezy_amd64-sysroot -I=/usr/include/c++/4.6 -I=/usr/include/c++/4.6/x86_64-linux-gnu"
export LDFLAGS=--sysroot=$PWD/build/linux/debian_wheezy_amd64-sysroot
export CFLAGS=--sysroot=$PWD/build/linux/debian_wheezy_amd64-sysroot