[CentOS] 32-bit compat-gcc on 64-bit CentOS?

Wed Mar 30 16:47:54 UTC 2011
Alan M. Evans <ame1 at extratech.com>

On Tue, 2011-03-29 at 17:43 -0500, Jeff wrote:
> On Tue, Mar 29, 2011 at 5:35 PM, Alan M. Evans <ame1 at extratech.com> wrote:
> > Ugh.
> >
> > One of our internal servers crashed so bad I just went out and bought a
> > new machine to replace it.
> >
> > The old server was Pentium-4 based and running CentOS-5. When I
> > installed CentOS on the new machine, I used the 64-bit version, partly
> > because that habit is almost automatic nowadays, and partly because the
> > new machine has 6GB of RAM, so 32-bit seemed not very appropriate.
> >
> > Anyway, I've managed to configure every one of the old server's many
> > functions to match on the new server but one: I need the 32-bit version
> > of compat-gcc-34. (Or at least I need to be able to compile 32-bit
> > binaries with the already available version.) I can't seem to do this;
> > am I just missing something?
> >
> > In retrospect, installing the 64-bit OS may have been foolish. But it's
> > too late now. I've spent several days installing/loading/configuring
> > this system to the point it's at now. It would be a pity to have to
> > start over completely just to enable this one (very critical) function.
> >

> You do not provide a lot of detail on what the actual problem is

That would be because I don't really know what's relevant. Have you ever
felt so ignorant about something that you can't even formulate an
intelligent question? That's me, right now.

> , but
> have  you tried the -m32 flag with gcc. that will tell it to create
> 32-bit code. You will also need to pass that option to the linker and
> be sure any dependent libraries have the 32 bit versions installed.

I've tried the -m32 flag, along with "CC=gcc34" to actually cause it to
use the compat compiler instead of the new one. The build process
produces a lot of warnings that may or may not have been there before,
then bails out with:

make: *** No rule to make target `/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h', needed by `hostcom.o'.  Stop.

On the old server, which I have limited access to, that file is owned by
the compat-gcc-34 package. And the 64-bit version of this package is
installed on the new server, so the directory is x86_64-redhat-linux
instead of i386-redhat-linux.

-Alan