--- a/src/create.c
+++ b/src/create.c
@@ -1853,6 +1853,7 @@ dump_file0 (struct tar_stat_info *st, ch
 #ifdef HAVE_READLINK
   else if (S_ISLNK (st->stat.st_mode))
     {
+      st->stat.st_mode |= 0777; /* make permissions portable */
       st->link_name = areadlinkat_with_size (parentfd, name, st->stat.st_size);
       if (!st->link_name)
 	{
