Two solutions.
The first is to roll back cryptsetup one version back (cryptsetup 2.4.1-1 from cryptsetup 2.4.1-3)
The second is to fix install hook (/usr/lib/initcpio/install/encrypt).
add_binary 'cryptsetup'
map add_udev_rule \
'10-dm.rules' \
'13-dm-disk.rules' \
'95-dm-notify.rules' \
'/usr/lib/initcpio/udev/11-dm-initramfs.rules'
# cryptsetup calls pthread_create(), which dlopen()s libgcc_s.so.1
add_binary '/usr/lib/libgcc_s.so.1'
add_runscript
to
add_binary "cryptsetup"
add_binary "dmsetup"
add_file "/usr/lib/udev/rules.d/10-dm.rules"
add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
# cryptsetup calls pthread_create(), which dlopen()s libgcc_s.so.1
add_binary "/usr/lib/libgcc_s.so.1"
add_runscript
After fixing the hook, create a new initramfs (mkinitcpio -p yourkernel).
Unfortunately, I have no time to create commits, I hope it will be done by someone who has time and the developers will fix the cryptsetup package in their repository.