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

Re: Creating a usable pure64 environment



On Fri, 2004-04-23 at 11:42 +0200, Lionel Elie Mamane wrote:
> On Fri, Apr 23, 2004 at 08:54:38PM +1200, Andrew McMillan wrote:
> 
> > I'm trying to get enough set up so I can build further Debian packages
> > of things, but I need:
>  
> > linux-kernel-headers
> 
> > to get libc6-dev and various others installed.  I figured that this
> > might not be architecture independent,
> 
> It is architecture-dependent (the /usr/include/asm/ part).

Yeah, I wondered if that was the case.  Of course, if I could get
perl-modules I could install make-kpkg and then I could build a kernel
package, and presumably linux-kernel-headers :-)


> > so I pulled apart an i386 version, decremented the version number
> > and changed it to be Architecture: all, and rebuilt it.
> 
> What I did is cross-compile it, if I remember well.

Hmmmm... This seems likely to be arcane and something I probably don't
have the leisure to understand.  I have followed the howto instructions
sufficiently to set up a woody chroot and build a 64-bit kernel (but not
a kernel package, unfortunately), and I have the machine booted from
that.  Now I have got a chrooted pure64 environment, and a bunch of
stuff installed there.

To be honest, what I have now is probably marginally sufficient for what
I want to use the machine for (we are evaluating the Opteron platform as
_hopefully_ being suitable for PostgreSQL database servers).

For completeness though, I would like to know I can build kernel
packages, since we try and install as much software as possible with
Debian packages (I even have a system for building packages for each of
our system administrators, and a meta-package to select them! :-)  Not
having perl-modules seems likely to be a pain later too, since we do a
lot of perl stuff.


> 
> > pure64-dewey:/usr/src/debs/perl-5.8.3/t# ./perl base/num.t
> > 1..50
> > ok 1
> > ok 2
> > ok 3
> > not ok 4 # 2.52961610670718e-321
> 
> Yes, my problem exactly. (See my earlier post)
> 
> > I mean, 10^-321 is pretty darned close to zero...
> 
> Except that if you look at test 4, it is supposed to output -1, not
> zero.
> 
> > Should I just hack the script to make it pass,
> 
> That's what I did, I just built with the tests disabled. (There's an
> option you can put in DEB_BUILD_OPTIONS for that)

That seems incredibly dodgy, if a test that basic is failing!


> Kurt Roeckx says he as successfully built perl in a pure64
> environment. See
> http://lists.debian.org/debian-amd64/2004/debian-amd64-200404/msg00132.html .

Ah!  Thank you.  I thought I had read all of the recent list posts, but
it seems I missed that one.  I have now downloaded perl-* and
linux-kernel-headers from there, and that has got me further moved
along.

Building a kernel package now, I see:

...
  CC      arch/x86_64/ia32/tls32.o
  CC      arch/x86_64/ia32/ia32_binfmt.o
In file included from arch/x86_64/ia32/ia32_binfmt.c:306:
fs/binfmt_elf.c: In function `load_elf_interp':
fs/binfmt_elf.c:369: warning: comparison is always false due to limited
range of data type
In file included from arch/x86_64/ia32/ia32_binfmt.c:306:
fs/binfmt_elf.c: In function `load_elf32_binary':
fs/binfmt_elf.c:781: warning: comparison is always false due to limited
range of data type
  CC      arch/x86_64/ia32/fpu32.o
  CC      arch/x86_64/ia32/ptrace32.o
  AS      arch/x86_64/ia32/vsyscall-sysenter.o
cc1: sorry, unimplemented: 32-bit mode not compiled in
make[2]: *** [arch/x86_64/ia32/vsyscall-sysenter.o] Error 1
make[1]: *** [arch/x86_64/ia32] Error 2
make[1]: Leaving directory `/usr/src/kernel/linux-2.6.5-mm5'
make: *** [stamp-build] Error 2

So I have to disable 32-bit support entirely, and then I can _nearly_
build it...:
  AS      arch/x86_64/boot/setup.o
  AS      arch/x86_64/boot/compressed/head.o
cc1: sorry, unimplemented: 32-bit mode not compiled in
make[3]: *** [arch/x86_64/boot/compressed/head.o] Error 1
make[2]: *** [arch/x86_64/boot/compressed/vmlinux] Error 2
make[1]: *** [bzImage] Error 2
make[1]: Leaving directory `/usr/src/kernel/linux-2.6.5-mm5'
make: *** [stamp-build] Error 2


Presumably I should not do this in a pure64 environment, and I need to
use a biarch one to build a kernel that supports both 32- and 64- bit ?
If I boot "pure64" will I be able to run a 32-bit chroot?  I guess I
would need a biarch kernel for that, at least.

Also, does anyone know if database files from a 32-bit installation of
PostgreSQL will be compatible with a 64-bit one?  I can suck it and see,
but it would be nice to know if someone else has tried that, or can
confirm/disconfirm more strongly.

Thanks,
					Andrew McMillan

-------------------------------------------------------------------------
Andrew @ Catalyst .Net .NZ  Ltd,  PO Box 11-053,  Manners St,  Wellington
WEB: http://catalyst.net.nz/             PHYS: Level 2, 150-154 Willis St
DDI: +64(4)916-7201       MOB: +64(21)635-694      OFFICE: +64(4)499-2267
      Make things as simple as possible, but no simpler - Einstein
-------------------------------------------------------------------------



Reply to: