Description of problem: If you define BuildArch: noarch on an x86_64 box (and presumably ia64) and then define %configure --target=sparc86x (to satisfy configure), the final rpm check fails as it thinks %_libdir should be /usr/lib64 rather than /usr/lib. This is only apparant on non x86 builds. It looks like it may only happen as well for mono applications. Version-Release number of selected component (if applicable): 4.4.2-24 How reproducible: Always Steps to Reproduce: 1. grab lat (BZ #177580), remove the %define libdir line from the spec and build on x86 and x86_64 Actual results: The build fails on x86_64 while checking the contents of the rpm built as /usr/lib64/lat cannot be found Expected results: The rpm check should be fine Additional info: I've not tested this on anything other than mono applications
Hmmm, if you force install a sparcx86 package on a s390 then none of the executables from the package will function either. The use of arch for building (or installing) has certain conventions/rules. Break the rules all you want.
The target is there to shut %configure up (it complains that noarch-gcc-redhat-linux doesn't exist and dies). As the package being built is a mono one, it never uses gcc, so there isn't really a target. It also doesn't address the problem that noarch should (if I've read it correctly) place everything in /usr/lib, but on 64 bit systems, things are going into /usr/lib64
rpm and autoconf have different conceptions of arch. Feeding rpm's "noarch" to autoconf is like cursing at a Russian in Swahili. There are only conventions setting the value of %{_libdir}. Since you invoked rpmbuild on a x86_64 you have initialized to a x86_64 appropriate value. If you don't like that, then configure rpm differently.