Building a 32bit RPM on 64bit Linux: Wrong dependencies auto-generated

Greg_Swift at Greg_Swift at
Tue Sep 14 22:53:47 UTC 2010

rpm-list-bounces at wrote on 07/29/2010 04:57:26 AM:
> This is the problem: I made a SPEC file for building an application in
> 32bit mode on a 64bit Linux. I got around all the stuff regarding
> compiler flags, 32bit libraries and so on.
> The RPM generated ends up in the i586 folder and it has i586 in its
> name. When I unpack it using rpm2cpio it has a 32bit application inside.
> When I ldd the application, it says it links to the 32bit libraries.
> Everything as it should be. But when I try to install this rpm on a
> 32bit Linux, I get unsatisfied depenedencies to lib64's like libgcc64
> and so on. When I try to install with --nodeps and --force it says "this
> RPM is for x86_64" architecture.
> Again, when I unpack it manually, it has 32bit software linking to 32bit
> libs inside.
> I didn't specify any dependencies in the spec manually, because I rely
> on dependency auto-generation by ldd (ldd correctly points to the 32bit
> libraries, as mentioned).

You need to tell the system you are building a 32bit target.

I believe when you are doing the rpmbuild you need to go '--target i586'.
I saw something earlier today that hinted you might need to prefix the
whole command with 'setarch i586'


setarch i586 rpmbuila -ba --target=i586 package.spec

I've not tried it this way (althought its much better than the way I've
done it), so let me know how it goes.


More information about the Rpm-list mailing list