Updated patch can be found here: http://www.xs4all.nl/~kurzanov/debian/patches/dpkg-1.13.16-all-1.patch. Besides allowing CPU-uclibc architectures it also adds: 1. Specific ARM families armv4,armv5te,strongarm and xscale 2. ARM variations such as VFP and softfloat (old ABI) 3. EABI suffix for linux, linux-uclibc, hurd and hurd-uclibc (last two are rather fictional though;-) Problems to fix still: 1. armel name is really the same as arm-eabi. Could this be solved by an arch alias? 2. maybe this implementation allows too much (e.g., i386-eabi). Could this be solved by prohibiting certain regexps from arch names? The most complex name I checked so far was: $ dpkg-architecture -ahurd-arm-vfp-uclibc-eabi DEB_HOST_ARCH=hurd-arm-vfp-uclibc-eabi DEB_HOST_ARCH_OS=hurd-uclibc-eabi DEB_HOST_ARCH_CPU=arm-vfp DEB_HOST_GNU_CPU=arm-vfp DEB_HOST_GNU_SYSTEM=gnu-uclibceabi DEB_HOST_GNU_TYPE=arm-vfp-gnu-uclibceabi Greetings, Pjotr Kourzanov
--- dpkg-1.13.16/cputable 2006-04-12 13:12:58.000000000 +0200
+++ dpkg-1.13.16-my.0/cputable 2006-04-12 13:10:50.000000000 +0200
@@ -19,6 +19,12 @@
amd64 x86_64 x86_64
armeb armeb arm.*b
arm arm arm.*
+armv4 armv4 armv4.*
+armv5te armv5te armv5te.*
+arm-softfloat arm-softfloat arm.*
+arm-vfp arm-vfp arm.*
+strongarm strongarm strongarm.*
+xscale xscale xscale.*
hppa hppa hppa.*
m32r m32r m32r
m68k m68k m68k
--- dpkg-1.13.16/debian/archtable 2006-04-12 13:13:04.000000000 +0200
+++ dpkg-1.13.16-my.0/debian/archtable 2006-04-12 13:09:35.000000000 +0200
@@ -15,12 +15,25 @@
ia64-linux-gnu ia64
alpha-linux-gnu alpha
arm-linux-gnu arm
+arm-linux-gnueabi arm-eabi
+arm-softfloat-linux-gnu arm-softfloat
+arm-vfp-linux-gnu arm-vfp
+strongarm-linux-gnu strongarm
+xscale-linux-gnu xscale
hppa-linux-gnu hppa
m68k-linux-gnu m68k
mips-linux-gnu mips
mipsel-linux-gnu mipsel
+mipsel-linux-gnueabi mipsel-eabi
powerpc-linux-gnu powerpc
s390-linux-gnu s390
sh-linux-gnu sh
sparc-linux-gnu sparc
i486-gnu hurd-i386
+i486-linux-uclibc i386-uclibc
+arm-linux-uclibc arm-uclibc
+arm-linux-uclibceabi arm-uclibc-eabi
+arm-softfloat-linux-uclibc arm-softfloat-uclibc
+arm-vfp-linux-uclibc arm-vfp-uclibc
+mipsel-linux-uclibc mipsel-uclibc
+mipsel-linux-uclibceabi mipsel-uclibc-eabi
--- dpkg-1.13.16/ostable 2006-04-12 13:13:04.000000000 +0200
+++ dpkg-1.13.16-my.0/ostable 2006-06-12 15:03:13.000000000 +0200
@@ -14,6 +14,9 @@
#
# <Debian name> <GNU name> <config.guess regex>
linux linux-gnu linux[^-]*(-gnu.*)?
+linux-eabi linux-gnueabi linux[^-]*(-gnueabi)?
+linux-uclibc linux-uclibc linux[^-]*(-uclibc.*)?
+linux-uclibc-eabi linux-uclibceabi linux[^-]*(-uclibceabi)?
darwin darwin darwin[^-]*
freebsd freebsd freebsd[^-]*
kfreebsd kfreebsd-gnu kfreebsd[^-]*(-gnu.*)?
@@ -21,3 +24,6 @@
netbsd netbsd netbsd[^-]*
openbsd openbsd openbsd[^-]*
hurd gnu gnu[^-]*
+hurd-eabi gnueabi gnueabi[^-]*
+hurd-uclibc gnu-uclibc gnu[^-]*(-uclibc.*)?
+hurd-uclibc-eabi gnu-uclibceabi gnu[^-]*(-uclibceabi.*)?
--- dpkg-1.13.16/scripts/dpkg-architecture.pl 2006-04-12 13:13:04.000000000 +0200
+++ dpkg-1.13.16-my.0/scripts/dpkg-architecture.pl 2006-06-12 15:02:41.000000000 +0200
@@ -55,11 +55,22 @@
sub split_debian {
local ($_) = @_;
+ return ("linux",$_) if exists ($cputable{$_});
+
+ if (/^([^-]*)-([^-]*)-([^-]*)-(.*)/) {
+ return (join("-",$1,$4), join("-",$2,$3)) if exists($cputable{join("-",$2,$3)});
+ }
+ if (/^([^-]*)-([^-]*)-(.*)/) {
+ return ($1, join("-",$2,$3)) if exists($cputable{join("-",$2,$3)});
+ return (join("-","linux",$3), join("-", $1, $2)) if exists($cputable{join("-",$1,$2)});
+ return (join("-",$1,$3), $2) if exists($cputable{$2});
+ }
if (/^([^-]*)-(.*)/) {
- return ($1, $2);
- } else {
- return ("linux", $_);
+ return ($1, $2) if exists($cputable{$2});
+ return (join("-", "linux", $2), $1) if exists($cputable{$1});
}
+
+ return ("linux", $_);
}
sub debian_to_gnu {
@@ -73,6 +84,9 @@
sub split_gnu {
local ($_) = @_;
+ /^([^-]*)-([^-]*)-(.*)/;
+ return (join("-",$1, $2), $3) if exists($cputable{join("-",$1,$2)});
+
/^([^-]*)-(.*)/;
return ($1, $2);
}
Attachment:
signature.asc
Description: OpenPGP digital signature