-%dir %{rustlibdir}/%{rust_triple}
-%{rustlibdir}/%{rust_triple}/analysis
-%dir %{rustlibdir}/%{rust_triple}/lib
-%attr(755,root,root) %{rustlibdir}/%{rust_triple}/lib/*.so
-%{rustlibdir}/%{rust_triple}/lib/*.rlib
-
-# for cross-compiler (e.g. x86_64-hosted x32 rust)
-%if "%{rust_host_triple}" != "%{rust_triple}"
-%dir %{rustlibdir}/%{rust_host_triple}
-%{rustlibdir}/%{rust_host_triple}/analysis
-%dir %{rustlibdir}/%{rust_host_triple}/lib
-%attr(755,root,root) %{rustlibdir}/%{rust_host_triple}/lib/*.so
-%{rustlibdir}/%{rust_host_triple}/lib/*.rlib
-%endif
+
+%files analysis
+%defattr(644,root,root,755)
+%(for rust_target in %rust_targets; do
+echo "%{rustlibdir}/$rust_target/analysis"
+done
+)
+
+%files std
+%defattr(644,root,root,755)
+%(for rust_target in %rust_targets; do
+cat <<EOF
+%dir %{rustlibdir}/$rust_target
+%dir %{rustlibdir}/$rust_target/lib
+%attr(755,root,root) %{rustlibdir}/$rust_target/lib/*.so
+%{rustlibdir}/$rust_target/lib/*.rlib
+EOF
+done
+)