Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 01 Aug 2008 12:57:43 -0400
From:      Chuck Robey <chuckr@telenix.org>
To:        Peter Jeremy <peterjeremy@optushome.com.au>
Cc:        freebsd-amd64@freebsd.org
Subject:   Re: app programming on freebsd amd64
Message-ID:  <48934087.2070407@telenix.org>
In-Reply-To: <20080801084420.GL1359@server.vk2pj.dyndns.org>
References:  <4891F3F3.8090608@telenix.org> <20080731195527.GT1359@server.vk2pj.dyndns.org> <489243B0.80307@telenix.org> <20080801084420.GL1359@server.vk2pj.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Peter Jeremy wrote:
> On 2008-Jul-31 18:58:56 -0400, Chuck Robey <chuckr@telenix.org> wrote:
>> I wasn't trying to force you to go my way, just stop trying to make me go your
>> way.
> 
> I wasn't intending to force you to use my way.
> 
>> Well, I'm doing this with X11, which was written to begin with in a 32 bit
>> atmosphere, and does have several nontrivial 64 bit problems.
> 
> I run 64-bit X.org on several systems and haven't noticed that.  Can you
> give some more details.
> 
>> Oh, you're telling me that if I run one app as 32 bit (compiling it, the whole
>> enchilada, as 32 bit) would only work if I had the OS, kernel and all libs, as
>> 32 bits?
> 
> No.  A 64-bit kernel will happily run 32-bit or 64-bit apps, with the
> exception of 32-bit apps that grovel in kernel memory.
> 
> The problem is that include files wind up getting defines from
> /usr/include/machine and the contents of that directory assume that
> longs and pointers are 64 bits but they are 32 bits with -m32.  Try
> comparing /usr/include/machine on i386 and amd64 boxes to see what I
> mean.  This means that if you #include <sys/stat.h> in -m32, your
> struct stat will be different to the one that the kernel expects.
> 

Hokay, that's clear enough.  I just won't consider the strategy of trying to
make my target a 32 bit target as a flawed strategy.  I spent some enjoyable
hours last night working out the 64 bit problems with my project, I have a fair
chance of working it all out later on today (I hope).  Thanks for the help.

Until I spend more time on it, I don't want to share my fun yet, but I'll come
back if I need to.  Sure appreciate the description.

> (And I forgot about the linking problems that other people pointed
> out, sorry).
> 
> Given the current situation with FreeBSD, I believe the easiest way to
> build a 32-bit app is to install an i386 world under (eg) /i386 and
> chroot into it to build the app.  You can still run it outside the
> chroot area.
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkiTQIcACgkQz62J6PPcoOkgLwCcC75xpDnYh5XhugK35awryP/n
1kAAn0msJdUq6MGuFjBXrPjvz4CDzJOk
=k+VM
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48934087.2070407>