--- a/src/extract.c +++ b/src/extract.c @@ -879,7 +879,7 @@ /* If O_NOFOLLOW is needed but does not work, check for a symlink separately. There's a race condition, but that cannot be avoided on hosts lacking O_NOFOLLOW. */ - if (! O_NOFOLLOW && overwriting_old_files && ! dereference_option) + if ((! O_NOFOLLOW || ! HAVE_WORKING_O_NOFOLLOW) && overwriting_old_files && ! dereference_option) { struct stat st; if (fstatat (chdir_fd, file_name, &st, AT_SYMLINK_NOFOLLOW) == 0