diff --git a/scripts/sysroot-relativelinks.py b/scripts/sysroot-relativelinks.py
new file mode 100755
index 0000000..ac26367
--- /dev/null
+++ b/scripts/sysroot-relativelinks.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+import sys
+import os
+
+# Take a sysroot directory and turn all the abolute symlinks and turn them into
+# relative ones such that the sysroot is usable within another system.
+
+if len(sys.argv) != 2:
+    print("Usage is " + sys.argv[0] + "<directory>")
+    sys.exit(1)
+
+topdir = sys.argv[1]
+topdir = os.path.abspath(topdir)
+
+def handlelink(filep, subdir):
+    link = os.readlink(filep)
+    if link[0] != "/":
+        return
+    if link.startswith(topdir):
+        return
+    #print("Replacing %s with %s for %s" % (link, topdir+link, filep))
+    print("Replacing %s with %s for %s" % (link, os.path.relpath(topdir+link, subdir), filep))
+    os.unlink(filep)
+    os.symlink(os.path.relpath(topdir+link, subdir), filep)
+
+for subdir, dirs, files in os.walk(topdir):
+    for f in files:
+        filep = os.path.join(subdir, f)
+        if os.path.islink(filep):
+            #print("Considering %s" % filep)
+            handlelink(filep, subdir)
