Upstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=1663651
Steps to reproduce:
- Full disk encryption,
- Luks key is encrypted with gpg
- luks key is embedded in initramfs
- cmdline is: rd.luks.key=/etc/luks/key.gpg:/
- add_dracutmodules+=" dash "
- omit_dracutmodues+=" bash "
- build dracut
Expectation:
- the system should boot with new initramfs
Actual:
- The system failed to pick the key in initramfs
- replace dash by bash and system can pick up the correct key
Root Cause:
There's some bashism inside runtime script,
which uses == instead of = to compare.
While we're at it, also fix template xlint
The lib64 subst was copy pasted from the first one, but only
partially modified. And libpthread.so is a real shared library,
or a symlink to one, so it should not be modified.
Fortunately, according to my builds, nothing in libpthread.so was
ever matched, so there was no harm done. And the existing lib64
match already did the trick for that particular case, but fix
it anyway, for consistency.
This does not result in any difference in the binary build, but
it does fix the correctness.
--enable-vtable-verify causes ICEs on ppc64, so disable that,
also add arch specific bits everywhere else
the new patch is a backport from current gcc9/8.x tree, fixing
errors about "__float128 is not supported on this target" when
c++ math library on ppc64 and possibly other platforms (manifests
for example when building the bullet physics library)
we also need a patch for ppc64 musl, otherwise it will fail in
decimal float stuff, that one is taken from alpine linux
also serial-configure is broken for some cross targets, so
disable it
[ci skip]