* Provides for libraries are not populated if %install does not set executable bit on ELF file. One such notable example is libgcc_s installed with mode 644 by `make install`: rpm5: $ rpm -q --provides libgcc | grep libgcc_s libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libgcc_s.so.1(GCC_3.3) libgcc_s.so.1(GCC_3.3.1) libgcc_s.so.1(GCC_3.4) libgcc_s.so.1(GCC_3.4.2) libgcc_s.so.1(GCC_4.0.0) libgcc_s.so.1(GCC_4.2.0) libgcc_s.so.1(GCC_4.3.0) libgcc_s.so.1(GCC_4.4.0) libgcc_s.so.1(GCC_4.5.0) libgcc_s.so.1(GCC_4.7.0) libgcc_s.so.1(GCC_4.8.0) libgcc_s.so.1(GCC_7.0.0) libgcc_s.so.1(GLIBC_2.0) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3)(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libgcc_s.so.1(GCC_3.4)(64bit) libgcc_s.so.1(GCC_3.4.2)(64bit) libgcc_s.so.1(GCC_3.4.4)(64bit) libgcc_s.so.1(GCC_4.0.0)(64bit) libgcc_s.so.1(GCC_4.2.0)(64bit) libgcc_s.so.1(GCC_4.3.0)(64bit) libgcc_s.so.1(GCC_4.7.0)(64bit) libgcc_s.so.1(GCC_4.8.0)(64bit) libgcc_s.so.1(GCC_7.0.0)(64bit) rpm4: $ rpm -q --provides -p libgcc-10.2.0-1.x86_64.rpm | grep libgcc_s (empty) Aa a workaround we could remove "exeonly" from %__elf_flags in /usr/lib/rpm/fileattrs/elf.attr but ideally RPM should not look at actual file mode on disk but rather on mode configured in %files. --- rpm-4.16.0/fileattrs/elf.attr~ 2020-05-28 12:04:25.000000000 +0200 +++ rpm-4.16.0/fileattrs/elf.attr 2020-11-21 19:35:52.405659895 +0100 @@ -1,4 +1,4 @@ %__elf_provides %{_rpmconfigdir}/elfdeps --provides %{?__filter_GLIBC_PRIVATE:--filter-private} %__elf_requires %{_rpmconfigdir}/elfdeps --requires %{?__filter_GLIBC_PRIVATE:--filter-private} %__elf_magic ^(setuid,? )?(setgid,? )?(sticky )?ELF (32|64)-bit.*$ -%__elf_flags exeonly +#__elf_flags exeonly