Hi All:
I have installed a 32 bit RH6.2 guest OS on ESXi 5
But when I try to build 32 bit applications, it seems the CPU is 64 bits
Is it something i'm not doing right?
Much Thanks
Morgan Yang
The virtual machine behaves just like a physical machine in this regard. Installing a 32-bit OS does not make your CPU a 32-bit CPU.
If you want to disable 64-bit operation, add the following advanced configuration option:
monitor_control.disable_longmode = TRUE
Welcome to the Community,
there's nothing wrong with this. If the host has a 64-bit CPU, this will be presented to the guest too.
André
The virtual machine behaves just like a physical machine in this regard. Installing a 32-bit OS does not make your CPU a 32-bit CPU.
If you want to disable 64-bit operation, add the following advanced configuration option:
monitor_control.disable_longmode = TRUE
What's the output of "uname -a" in your VM?
Hi jmattson:
Sorry but I'm relatively new to VMware ESXi (from a virtual box user). What can I find this "monitor_control" feature? Is this on the individual VM (guest OS) side? Or is this accessible from the vSphere client GUI?
Right click VM, choose edit settings. Then Options tab. Then general. Then Configuration parameters. Then Add-Row.
Thanks. I added this feature, but will this actually allow me to compile i386 specific code? I'm still seeing the same error
OK, you've installed a 32-bit operating system. You didn't show the gcc command used to create the .o file, you've only shown the final link command. Please show the gcc command that is actually compiling the .o file.
(BTW: They don't need to be screenshots... simply copy-n-paste of the text is fine....)
Message was edited by: AKostur
Hi Akostur:
Sorry I didn't have guest tools installed so i couldn't copy paste. However, I re-ran the configure scripts and the "make' files are working! This is great, thank you very much for all the help!
It would appear that at some point your .o file was generated on or from a 64-bit compiler (perhaps this was copied from or is running from a shared directory with a different 64-bit machine). When the linker attempted to link the 64-bit .o on your 32-bit machine, it correctly determined that it wasn't 32-bit object code and thus failed to link.