tmp = dir_name + strlen(buildid_dir) - 5;
        memcpy(tmp, "../..", 5);
 
-       if (symlink(tmp, linkname) == 0)
+       if (symlink(tmp, linkname) == 0) {
                err = 0;
+       } else if (errno == EEXIST) {
+               char path[PATH_MAX];
+               ssize_t len;
+
+               len = readlink(linkname, path, sizeof(path) - 1);
+               if (len <= 0) {
+                       pr_err("Cant read link: %s\n", linkname);
+                       goto out_free;
+               }
+               path[len] = '\0';
+
+               if (strcmp(tmp, path)) {
+                       pr_debug("build <%s> already linked to %s\n",
+                                sbuild_id, linkname);
+               }
+               err = 0;
+       }
 
        /* Update SDT cache : error is just warned */
        if (realname &&