The problem is this block: size='scalable-up-to-32' for file in `cd ../../Adwaita/$size; find . -name "*.png"`; do \ context="`dirname $file`"; \ /bin/mkdir -p /var/tmp/portage/x11-themes/adwaita-icon-theme-3.32.0/image//usr/share/icons/Adwaita/$size/$context; \ /bin/sh /var/tmp/portage/x11-themes/adwaita-icon-theme-3.32.0/work/adwaita-icon-theme-3.32.0/install-sh -c -m 644 ../../Adwaita/$size/$file /var/tmp/portage/x11-themes/adwaita-icon-theme-3.32.0/image//usr/share/icons/Adwaita/$size/$file; \ done; \ for file in `cd ../../Adwaita/scalable-up-to-32; find . -name "*.svg"`; do \ context="`dirname $file`"; \ /bin/mkdir -p /var/tmp/portage/x11-themes/adwaita-icon-theme-3.32.0/image//usr/share/icons/Adwaita/scalable-up-to-32/$context; \ /bin/sh /var/tmp/portage/x11-themes/adwaita-icon-theme-3.32.0/work/adwaita-icon-theme-3.32.0/install-sh -c -m 644 ../../Adwaita/scalable-up-to-32/$file /var/tmp/portage/x11-themes/adwaita-icon-theme-3.32.0/image//usr/share/icons/Adwaita/scalable-up-to-32/$file; \ done This installs files one by one, uses explicit mkdir and install-sh instead of plain "install" with "-D". This forks a gazillion of process, which takes minutes to complete. And it calls dirname for every file.
This would be something to take up with upstream (with patches), I believe :)