]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libgo/misc/cgo/life/overlaydir_test.go
libgo: update to Go1.14beta1
[thirdparty/gcc.git] / libgo / misc / cgo / life / overlaydir_test.go
index f381ea62f3b12aa443d83901b4454230b2a690b9..034c836248db40a15d09492013839ecf521cce1f 100644 (file)
@@ -21,12 +21,9 @@ func overlayDir(dstRoot, srcRoot string) error {
                return err
        }
 
-       symBase, err := filepath.Rel(srcRoot, dstRoot)
+       srcRoot, err := filepath.Abs(srcRoot)
        if err != nil {
-               symBase, err = filepath.Abs(srcRoot)
-               if err != nil {
-                       return err
-               }
+               return err
        }
 
        return filepath.Walk(srcRoot, func(srcPath string, info os.FileInfo, err error) error {
@@ -52,11 +49,11 @@ func overlayDir(dstRoot, srcRoot string) error {
                // Always copy directories (don't symlink them).
                // If we add a file in the overlay, we don't want to add it in the original.
                if info.IsDir() {
-                       return os.Mkdir(dstPath, perm)
+                       return os.MkdirAll(dstPath, perm|0200)
                }
 
                // If the OS supports symlinks, use them instead of copying bytes.
-               if err := os.Symlink(filepath.Join(symBase, suffix), dstPath); err == nil {
+               if err := os.Symlink(srcPath, dstPath); err == nil {
                        return nil
                }