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

Bug#231538: A possible solution

At Fri, 13 Feb 2004 06:35:47 -0200,
Cesar Eduardo Barros wrote:
> A simple way to avoid problems when dist-upgrading would be to check in
> the preinst for a working bswap.
> A small precompiled static binary could
> be added to the preinst (it doesn't even have to use a C library, see
> http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html) and run
> to check if using the emulated opcodes won't die with SIGILL or SIGSEGV.

I think it's easier just use "uname -m".  I don't know bswap is 486
mandatory instruction or not, so it may be wrong, though.

I think Cesar's suggestion is good idea.  Checking processor class in
preinst and if it does not have "bswap" (so i386 class processor), we
stop to install and warn with libc6.preinst:

    if [ "$realarch" = i386 ]
	kernel_ver=`uname -r`
	if dpkg --compare-versions "$kernel_ver" lt 2.4.24
	    echo WARNING: This machine has i386 class processor.
	    echo Debian sarge and later you need to use at least a 2.4.24 
	    echo or 2.6.0 kernel on i386.  Please upgrade your kernel 
	    echo before installing glibc.
	    echo The reason is that "bswap" instruction is not supported
	    echo on i386 class processors, and newer kernel can emulate
	    echo such lacking instructions.
	    exit 1

Well newer initrd-tools module-init-tools should be in woody 
in order to upgrade to sarge smoothly.

-- gotom

Reply to: