Merge fixes for #10526, #10359, #11254, #9100 and the bug without number
diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py
index 08b40a1..8058d0e 100644
--- a/Lib/test/test_sysconfig.py
+++ b/Lib/test/test_sysconfig.py
@@ -3,9 +3,9 @@
 import os
 import subprocess
 import shutil
-from copy import copy, deepcopy
+from copy import copy
 
-from test.support import (run_unittest, TESTFN, unlink, get_attribute,
+from test.support import (run_unittest, TESTFN, unlink,
                           captured_stdout, skip_unless_symlink)
 
 import sysconfig
@@ -256,8 +256,15 @@
         # is similar to the global posix_prefix one
         base = get_config_var('base')
         user = get_config_var('userbase')
+        # the global scheme mirrors the distinction between prefix and
+        # exec-prefix but not the user scheme, so we have to adapt the paths
+        # before comparing (issue #9100)
+        adapt = sys.prefix != sys.exec_prefix
         for name in ('stdlib', 'platstdlib', 'purelib', 'platlib'):
             global_path = get_path(name, 'posix_prefix')
+            if adapt:
+                global_path = global_path.replace(sys.exec_prefix, sys.prefix)
+                base = base.replace(sys.exec_prefix, sys.prefix)
             user_path = get_path(name, 'posix_user')
             self.assertEqual(user_path, global_path.replace(base, user, 1))