[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Builds disturbed by the usage of a 64bit kernel.



On 5/20/07, Sven Luther <luther@debian.org> wrote:
On Sat, May 19, 2007 at 04:46:04PM +0900, Charles Plessy wrote:

> Out of the 140 packages using ./configure, 30 used ppc64, but only one
> faild to build for this reason.

These .configure thingies, are they using the gnu autoconf stuff, and if
so which version. Or some hand-made ./configure script ?

I guess those packages will also probably break if building
cross-compiled, so they are also buggy.

They certainly break under the given conditions:

1. you actually ARE cross compiling
2. you didn't tell the package that (via make arguments, etc.)

That's the messed up situation you're in. Don't do that.
Many more packages may build incorrectly, probably
spewing a few warnings about data type sizes.

If you can't find a normal 32-bit PowerPC box, I suggest
using Qemu or PearPC on a fast x86 or x86-64 box.
That way you wouldn't be cross-compiling.

In the long term, it would be great to cross-compile all
packages on the "wrong" architecture. This would flush
out a lot of bugs and make porting Debian much easier.
(so i386 on ppc64, x86-64 on s390, arm on ia64, etc.)
For a popular arch, build both native and not so that you
can check that the results are bit-for-bit identical.

You can't just start doing this though. When you are
cross-compiling (as you are for ppc32), you need to
adjust each package to supply the required command
line options and environment variables to the build
system supplied by the upstream developer. In some
of the more crufty cases you may need patches.
It's package-specific. For example: you might need
to choose between /lib or /lib64, you might need to
specify endianness, you might need to specify gcc
flags like -m32 or -m64, etc. When I design a build
system I want this stuff passed on the make command
line, but other people use environment variables or
configure scripts.



Reply to: