btrfs-progs: fix symlink creation multiple times
authorHongxu Jia <hongxu.jia@windriver.com>
Fri, 19 Feb 2016 02:14:34 +0000 (21:14 -0500)
committerDavid Sterba <dsterba@suse.com>
Fri, 26 Feb 2016 16:27:58 +0000 (17:27 +0100)
The rule to create symlink in Makefile caused parallel issue:
$ make -j 40 DESTDIR=/image install BUILD_VERBOSE=1
...
  1     [LN]     libbtrfs.so.0
  2     [LN]     libbtrfs.so
  3 ln -s -f libbtrfs.so.0.1 libbtrfs.so.0
  4 ln -s -f libbtrfs.so.0.1 libbtrfs.so.0
  5 ln -s -f libbtrfs.so.0.1 libbtrfs.so
  6 ln -s -f libbtrfs.so.0.1 libbtrfs.so
...

It failed occasionally:
...
|symlinkat: couldn't stat 'git/libbtrfs.so' even though symlink
creation succeeded (No such file or directory).
|ln: failed to create symbolic link 'libbtrfs.so': No such file or directory
...

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Makefile.in

index 82a3143..9184789 100644 (file)
@@ -236,8 +236,7 @@ $(libs_static): $(libbtrfs_objects)
 
 $(lib_links):
        @echo "    [LN]     $@"
-       $(Q)$(LN_S) -f libbtrfs.so.0.1 libbtrfs.so.0
-       $(Q)$(LN_S) -f libbtrfs.so.0.1 libbtrfs.so
+       $(Q)$(LN_S) -f libbtrfs.so.0.1 $@
 
 # keep intermediate files from the below implicit rules around
 .PRECIOUS: $(addsuffix .o,$(progs))