Re: generating 32-bit RPM's
Jonathan Berry <[email protected]>
| Newsgroups | gmane.linux.redhat.amd64 |
|---|---|
| Message-ID | <[email protected]> |
On 9/9/05, Joshua Jensen <[email protected]> wrote: > When compiling the kernel on 32bit platforms, you can specify --target > of say i686 which activates %ifarch sections inside of the specfile. Agreed. > However, all that really does is use different "-m" compiler switches > for CPU optimization. So first off, you have to have the %ifarch stuff > defined in your package's specfile (almost no RPMs do), and you would I don't know about the "almost no RPMs do." Almost all RPMs are built for multiple architectures. > have to have a *cross compiler* installed on your x86_64 platform. I > don't know that -m32 does all that you need. But, 32-bit and 64-bit are both x86. It's not like he's trying to compile for SPARC or PowerPC here, which *would* need a cross-compiler. See below. > produce 32bit binaries. I'm not a compiler wizard, but from my > understanding the 64 bit gcc that ships with Red Hat on x86_64 platforms > only targets x86_64 CPUs. > > Joshua Well, from the gcc man page: -m32 -m64 Generate code for a 32-bit or 64-bit environment. The 32-bit envi- ronment sets int, long and pointer to 32 bits and generates code that runs on any i386 system. The 64-bit environment sets int to 32 bits and long and pointer to 64 bits and generates code for AMD's x86-64 architecture. which sounds a lot like -m32 makes gcc compile 32-bit programs. Of course, an experiment is worth a thousand man-page words :), so I'll try this out sometime and see what happens. If you are linking to libraries, you will of course need to also make sure you link to 32-bit libs or else ld (the linker) won't like you too well :). Jonathan -- amd64-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/amd64-list