[fbsd_questions] i386 vs amd64, on intel_64

spellberg_robert emailrob at emailrob.com
Tue Oct 5 00:37:51 UTC 2010


well, i looked at questions back to the beginning of august.

on aug_09 i found a thread that suggests the following questions.



for a given release of freebsd,

   q:    is it that the version labeled "i386" contains only 32_bit headers and source,
           which creates the 32_bit version of freebsd, as well as 32_bit versions of what i write,
           which will run as 32_bit code on either i_386, intel_64 or amd_64 ?

   q:    is it that the version labeled "amd64" contains only 64_bit headers and source,
           which creates the 64_bit version of freebsd, as well as 64_bit versions of what i write,
           which will run as 64_bit code on the intel_64 and the amd_64, but, not the i_386 ?

   q:    if a "i386" version is installed on an intel_64 platform,
           then the pointers are 32_bits_wide, no matter what ?

   q:    if i want to produce both 32_bit and 64_bit versions of my "killer_app",
           then i need two machines,
             one       a 32_bit or          a 64_bit running "i386",
             the other             --only-- a 64_bit running "amd64" ?



   q:    given that i have intel_64 hardware,
           do i need to start acquiring the "amd64" versions of the releases,
           rather_than / in_addition_to the "i386" versions ?



   q:    given that --i-- am committed to 64_bit hardware,
           perhaps, i should give up on the "i386" versions of the releases and
           require my users to spend us$_300 on 64_bit hardware
           [ it would save a large number of conditional_compilation directives;
               nudge_nudge, wink_wink, say no more
           ] ?



again, i thank you for your assistance.

rob







Dan Nelson wrote:
> In the last episode (Oct 04), David Brodbeck said:
> 
>>On a 64-bit system, if you build a binary with the -m32 flag, it
>>should run on both i386 and x86-64 systems.  A binary built with -m64
>>will only run on x86-64.  Does that help?
> 
> 
> Actually, -m32 on amd64 won't generate usable binaries, since
> /usr/include/machine/* are all amd64 headers and you end up with things like
> struct FILE with wrong-size elements.  There was a thread a few weeks ago
> discussing this.  If you need to generate 32-bit executables, you'll need to
> do it inside an all-32-bit chroot or a virtual machine.
> 




More information about the freebsd-questions mailing list