diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
index 95373fd60a..ac890fc98e 100644
--- a/meta/classes-global/sstate.bbclass
+++ b/meta/classes-global/sstate.bbclass
@@ -848,7 +848,7 @@ sstate_create_package () {
         mkdir --mode=0775 -p `dirname ${SSTATE_PKG}`
         TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`

-       OPT="-cS"
+       OPT="--format=posix ${@bb.utils.contains('DISTRO_FEATURES', 'acl', '--acls', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', '--xattrs', '', d)} --numeric-owner -cS"
         ZSTD="zstd -${SSTATE_ZSTD_CLEVEL} -T${ZSTD_THREADS}"
         # Use pzstd if available
         if [ -x "$(command -v pzstd)" ]; then
@@ -914,7 +914,7 @@ sstate_unpack_package () {
                 ZSTD="pzstd -p ${ZSTD_THREADS}"
         fi

-       tar -I "$ZSTD" -xvpf ${SSTATE_PKG}
+       tar -I "$ZSTD" --format=posix ${@bb.utils.contains('DISTRO_FEATURES', 'acl', '--acls', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', '--xattrs', '', d)} -xvpf ${SSTATE_PKG}
         # update .siginfo atime on local/NFS mirror if it is a symbolic link
         [ ! -h ${SSTATE_PKG}.siginfo ] || [ ! -e ${SSTATE_PKG}.siginfo ] || touch -a ${SSTATE_PKG}.siginfo 2>/dev/null || true
         # update each symbolic link instead of any referenced file
