diff --git a/.gitignore b/.gitignore
index 455d57f..4c20aff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,7 +39,6 @@
 .gdb_history
 .gdbinit
 .landmines
-.linux-sysroot/
 .metadata
 .project
 .pydevproject
diff --git a/build/gen.py b/build/gen.py
index aa99775..fde6ced 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -11,11 +11,9 @@
 import os
 import platform
 import re
-import shutil
 import subprocess
 import sys
 import tempfile
-import urllib2
 
 SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
 REPO_ROOT = os.path.dirname(SCRIPT_DIR)
@@ -143,50 +141,6 @@
       f.write(contents)
 
 
-def UpdateLinuxSysroot():
-  # Sysroot revision from:
-  # https://cs.chromium.org/chromium/src/build/linux/sysroot_scripts/sysroots.json
-  server = 'https://commondatastorage.googleapis.com'
-  path = 'chrome-linux-sysroot/toolchain'
-  revision = '1015a998c2adf188813cca60b558b0ea1a0b6ced'
-  filename = 'debian_sid_amd64_sysroot.tar.xz'
-
-  url = '%s/%s/%s/%s' % (server, path, revision, filename)
-
-  sysroot = os.path.join(SCRIPT_DIR, os.pardir, '.linux-sysroot')
-
-  stamp = os.path.join(sysroot, '.stamp')
-  if os.path.exists(stamp):
-    with open(stamp) as s:
-      if s.read() == url:
-        return sysroot
-
-  print 'Installing Debian root image from %s' % url
-
-  if os.path.isdir(sysroot):
-    shutil.rmtree(sysroot)
-  os.mkdir(sysroot)
-  tarball = os.path.join(sysroot, filename)
-  print 'Downloading %s' % url
-
-  for _ in range(3):
-    response = urllib2.urlopen(url)
-    with open(tarball, 'wb') as f:
-      f.write(response.read())
-    break
-  else:
-    raise Exception('Failed to download %s' % url)
-
-  subprocess.check_call(['tar', 'xf', tarball, '-C', sysroot])
-
-  os.remove(tarball)
-
-  with open(stamp, 'w') as s:
-    s.write(url)
-
-  return sysroot
-
-
 def WriteGenericNinja(path, static_libraries, executables,
                       cc, cxx, ar, ld, platform, host, options,
                       cflags=[], cflags_cc=[], ldflags=[], libflags=[],
