From owner-freebsd-questions@FreeBSD.ORG Tue Oct 5 00:37:51 2010 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3147E1065693 for ; Tue, 5 Oct 2010 00:37:51 +0000 (UTC) (envelope-from emailrob@emailrob.com) Received: from mx02.dls.net (mx02.dls.net [216.145.245.198]) by mx1.freebsd.org (Postfix) with ESMTP id F319A8FC17 for ; Tue, 5 Oct 2010 00:37:50 +0000 (UTC) Received: from [216.145.235.31] (helo=emailrob.com) by mx02.dls.net with esmtp (Exim 4.69) (envelope-from ) id 1P2vXP-0006v4-E7; Mon, 04 Oct 2010 19:37:49 -0500 Message-ID: <4CAA654B.7040409@emailrob.com> Date: Tue, 05 Oct 2010 00:37:47 +0100 From: spellberg_robert User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dan Nelson , fbsd_questions References: <4CAA3030.3090001@emailrob.com> <4CAA3CFE.1060609@emailrob.com> <20101004225757.GK40148@dan.emsphone.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: Re: [fbsd_questions] i386 vs amd64, on intel_64 X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Oct 2010 00:37:51 -0000 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. >