diff --git a/linux-x64/clang/python3/bin/2to3 b/linux-x64/clang/python3/bin/2to3
new file mode 120000
index 0000000..7ca709a
--- /dev/null
+++ b/linux-x64/clang/python3/bin/2to3
@@ -0,0 +1 @@
+2to3-3.9
\ No newline at end of file
diff --git a/linux-x64/clang/python3/bin/2to3-3.9 b/linux-x64/clang/python3/bin/2to3-3.9
new file mode 100755
index 0000000..e583c9b
--- /dev/null
+++ b/linux-x64/clang/python3/bin/2to3-3.9
@@ -0,0 +1,5 @@
+#!/tmpfs/src/out/install/bin/python3.9
+import sys
+from lib2to3.main import main
+
+sys.exit(main("lib2to3.fixes"))
diff --git a/linux-x64/clang/python3/bin/easy_install-3.9 b/linux-x64/clang/python3/bin/easy_install-3.9
new file mode 100755
index 0000000..edd9a89
--- /dev/null
+++ b/linux-x64/clang/python3/bin/easy_install-3.9
@@ -0,0 +1,8 @@
+#!/tmpfs/src/out/install/bin/python3.9
+# -*- coding: utf-8 -*-
+import re
+import sys
+from setuptools.command.easy_install import main
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())
diff --git a/linux-x64/clang/python3/bin/idle3 b/linux-x64/clang/python3/bin/idle3
new file mode 120000
index 0000000..be045f2
--- /dev/null
+++ b/linux-x64/clang/python3/bin/idle3
@@ -0,0 +1 @@
+idle3.9
\ No newline at end of file
diff --git a/linux-x64/clang/python3/bin/idle3.9 b/linux-x64/clang/python3/bin/idle3.9
new file mode 100755
index 0000000..a4b51ba
--- /dev/null
+++ b/linux-x64/clang/python3/bin/idle3.9
@@ -0,0 +1,5 @@
+#!/tmpfs/src/out/install/bin/python3.9
+
+from idlelib.pyshell import main
+if __name__ == '__main__':
+    main()
diff --git a/linux-x64/clang/python3/bin/pip3 b/linux-x64/clang/python3/bin/pip3
new file mode 100755
index 0000000..42a6ceb
--- /dev/null
+++ b/linux-x64/clang/python3/bin/pip3
@@ -0,0 +1,8 @@
+#!/tmpfs/src/out/install/bin/python3.9
+# -*- coding: utf-8 -*-
+import re
+import sys
+from pip._internal.cli.main import main
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())
diff --git a/linux-x64/clang/python3/bin/pip3.9 b/linux-x64/clang/python3/bin/pip3.9
new file mode 100755
index 0000000..42a6ceb
--- /dev/null
+++ b/linux-x64/clang/python3/bin/pip3.9
@@ -0,0 +1,8 @@
+#!/tmpfs/src/out/install/bin/python3.9
+# -*- coding: utf-8 -*-
+import re
+import sys
+from pip._internal.cli.main import main
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())
diff --git a/linux-x64/clang/python3/bin/pydoc3 b/linux-x64/clang/python3/bin/pydoc3
new file mode 120000
index 0000000..b486ba7
--- /dev/null
+++ b/linux-x64/clang/python3/bin/pydoc3
@@ -0,0 +1 @@
+pydoc3.9
\ No newline at end of file
diff --git a/linux-x64/clang/python3/bin/pydoc3.9 b/linux-x64/clang/python3/bin/pydoc3.9
new file mode 100755
index 0000000..6e85948
--- /dev/null
+++ b/linux-x64/clang/python3/bin/pydoc3.9
@@ -0,0 +1,5 @@
+#!/tmpfs/src/out/install/bin/python3.9
+
+import pydoc
+if __name__ == '__main__':
+    pydoc.cli()
diff --git a/linux-x64/clang/python3/bin/python3 b/linux-x64/clang/python3/bin/python3
new file mode 120000
index 0000000..e616d26
--- /dev/null
+++ b/linux-x64/clang/python3/bin/python3
@@ -0,0 +1 @@
+python3.9
\ No newline at end of file
diff --git a/linux-x64/clang/python3/bin/python3-config b/linux-x64/clang/python3/bin/python3-config
new file mode 120000
index 0000000..768a9ac
--- /dev/null
+++ b/linux-x64/clang/python3/bin/python3-config
@@ -0,0 +1 @@
+python3.9-config
\ No newline at end of file
diff --git a/linux-x64/clang/python3/bin/python3.9 b/linux-x64/clang/python3/bin/python3.9
new file mode 100755
index 0000000..dc414ed
--- /dev/null
+++ b/linux-x64/clang/python3/bin/python3.9
Binary files differ
diff --git a/linux-x64/clang/python3/bin/python3.9-config b/linux-x64/clang/python3/bin/python3.9-config
new file mode 100755
index 0000000..bc1fcd9
--- /dev/null
+++ b/linux-x64/clang/python3/bin/python3.9-config
@@ -0,0 +1,116 @@
+#!/bin/sh
+
+# Keep this script in sync with python-config.in
+
+exit_with_usage ()
+{
+    echo "Usage: $0 --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir|--embed"
+    exit $1
+}
+
+if [ "$1" = "" ] ; then
+    exit_with_usage 1
+fi
+
+# Returns the actual prefix where this script was installed to.
+installed_prefix ()
+{
+    RESULT=$(dirname $(cd $(dirname "$1") && pwd -P))
+    if which readlink >/dev/null 2>&1 ; then
+        if readlink -f "$RESULT" >/dev/null 2>&1; then
+          RESULT=$(readlink -f "$RESULT")
+        fi
+    fi
+    echo $RESULT
+}
+
+prefix_real=$(installed_prefix "$0")
+
+# Use sed to fix paths from their built-to locations to their installed-to
+# locations. Keep prefix & exec_prefix using their original values in case
+# they are referenced in other configure variables, to prevent double
+# substitution, issue #22140.
+prefix="/tmpfs/src/out/install"
+exec_prefix="${prefix}"
+exec_prefix_real=${prefix_real}
+includedir=$(echo "${prefix}/include" | sed "s#$prefix#$prefix_real#")
+libdir=$(echo "${exec_prefix}/lib" | sed "s#$prefix#$prefix_real#")
+CFLAGS=$(echo "-Wno-unused-command-line-argument" | sed "s#$prefix#$prefix_real#")
+VERSION="3.9"
+LIBM="-lm"
+LIBC=""
+SYSLIBS="$LIBM $LIBC"
+ABIFLAGS=""
+LIBS=" -lcrypt -lpthread -ldl  -lutil -lm $SYSLIBS"
+LIBS_EMBED="-lpython${VERSION}${ABIFLAGS} -lcrypt -lpthread -ldl  -lutil -lm $SYSLIBS"
+BASECFLAGS=" -Wno-unused-result -Wsign-compare"
+LDLIBRARY="libpython${LDVERSION}.so"
+OPT="-DNDEBUG -g -fwrapv -O3 -Wall"
+PY_ENABLE_SHARED="1"
+LDVERSION="${VERSION}${ABIFLAGS}"
+LIBDEST=${prefix_real}/lib/python${VERSION}
+LIBPL=$(echo "${prefix}/lib/python3.9/config-${VERSION}${ABIFLAGS}-x86_64-linux-gnu" | sed "s#$prefix#$prefix_real#")
+SO=".cpython-39-x86_64-linux-gnu.so"
+PYTHONFRAMEWORK=""
+INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}"
+PLATINCDIR="-I$includedir/python${VERSION}${ABIFLAGS}"
+PY_EMBED=0
+
+# Scan for --help or unknown argument.
+for ARG in $*
+do
+    case $ARG in
+        --help)
+            exit_with_usage 0
+        ;;
+        --embed)
+            PY_EMBED=1
+        ;;
+        --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--abiflags|--configdir)
+        ;;
+        *)
+            exit_with_usage 1
+        ;;
+    esac
+done
+
+if [ $PY_EMBED = 1 ] ; then
+    LIBS="$LIBS_EMBED"
+fi
+
+for ARG in "$@"
+do
+    case "$ARG" in
+        --prefix)
+            echo "$prefix_real"
+        ;;
+        --exec-prefix)
+            echo "$exec_prefix_real"
+        ;;
+        --includes)
+            echo "$INCDIR $PLATINCDIR"
+        ;;
+        --cflags)
+            echo "$INCDIR $PLATINCDIR $BASECFLAGS $CFLAGS $OPT"
+        ;;
+        --libs)
+            echo "$LIBS"
+        ;;
+        --ldflags)
+            LIBPLUSED=
+            if [ "$PY_ENABLE_SHARED" = "0" ] ; then
+                LIBPLUSED="-L$LIBPL"
+            fi
+            echo "$LIBPLUSED -L$libdir $LIBS"
+        ;;
+        --extension-suffix)
+            echo "$SO"
+        ;;
+        --abiflags)
+            echo "$ABIFLAGS"
+        ;;
+        --configdir)
+            echo "$LIBPL"
+        ;;
+esac
+done
