diff --git a/Lib/packaging/config.py b/Lib/packaging/config.py
index 9875f68..6bbfdc3 100644
--- a/Lib/packaging/config.py
+++ b/Lib/packaging/config.py
@@ -33,6 +33,9 @@
 
 
 def _rel_path(base, path):
+    # normalizes and returns a lstripped-/-separated path
+    base = base.replace(os.path.sep, '/')
+    path = path.replace(os.path.sep, '/')
     assert path.startswith(base)
     return path[len(base):].lstrip('/')
 
@@ -50,7 +53,8 @@
                     destinations.pop(resource_file, None)
                 else:
                     rel_path = _rel_path(abs_base, abs_path)
-                    destinations[resource_file] = os.path.join(dest, rel_path)
+                    rel_dest = dest.replace(os.path.sep, '/').rstrip('/')
+                    destinations[resource_file] = rel_dest + '/' + rel_path
     return destinations
 
 
diff --git a/Lib/packaging/tests/test_resources.py b/Lib/packaging/tests/test_resources.py
index 68450cd..1e92f2a 100644
--- a/Lib/packaging/tests/test_resources.py
+++ b/Lib/packaging/tests/test_resources.py
@@ -25,7 +25,6 @@
         files = {}
         for path, value in spec.items():
             if value is not None:
-                path = self.os_dependent_path(path)
                 files[path] = value
         return files
 
diff --git a/Lib/packaging/util.py b/Lib/packaging/util.py
index bf31c31..15da9e6 100644
--- a/Lib/packaging/util.py
+++ b/Lib/packaging/util.py
@@ -939,7 +939,7 @@
                         self.options, self.explicit)
 
 RICH_GLOB = re.compile(r'\{([^}]*)\}')
-_CHECK_RECURSIVE_GLOB = re.compile(r'[^/,{]\*\*|\*\*[^/,}]')
+_CHECK_RECURSIVE_GLOB = re.compile(r'[^/\\,{]\*\*|\*\*[^/\\,}]')
 _CHECK_MISMATCH_SET = re.compile(r'^[^{]*\}|\{[^}]*$')
 
 
@@ -973,7 +973,9 @@
             if radical == '':
                 radical = '*'
             else:
+                # we support both
                 radical = radical.lstrip('/')
+                radical = radical.lstrip('\\')
             for path, dir, files in os.walk(prefix):
                 path = os.path.normpath(path)
                 for file in _iglob(os.path.join(path, radical)):
