Package: dpkg Version: 1.10.9 Severity: wishlist this patch makes cross compilation with dpkg easier. automake build environments should work with them without modifications.
bastian
--
I've already got a female to worry about. Her name is the Enterprise.
-- Kirk, "The Corbomite Maneuver", stardate 1514.0
Index: Makefile.in
===================================================================
RCS file: /home/bastian/debian/cvs/dpkg/Makefile.in,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Makefile.in 14 Jul 2002 20:15:06 -0000 1.1.1.1
+++ Makefile.in 23 Dec 2002 17:55:49 -0000 1.2
@@ -19,6 +19,8 @@
$(mkinstalldirs) $(DESTDIR)$(dpkgsharedir)/origins
$(INSTALL_DATA) $(srcdir)/origin $(DESTDIR)$(dpkgconfdir)/origins/debian
$(INSTALL_DATA) $(srcdir)/archtable $(DESTDIR)$(dpkgsharedir)/archtable
+ $(mkinstalldirs) $(DESTDIR)$(dpkgconfdir)/cross
+ $(INSTALL_DATA) $(srcdir)/cross/* $(DESTDIR)$(dpkgconfdir)/cross/
clean: clean-recursive
rm -f $(GENFILES)
Index: cross/config
===================================================================
RCS file: cross/config
diff -N cross/config
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ cross/config 23 Dec 2002 18:26:08 -0000 1.2
@@ -0,0 +1,11 @@
+if [ -f `dirname $ac_site_file`/cpu.$DEB_HOST_GNU_CPU ]; then
+ . `dirname $ac_site_file`/cpu.$DEB_HOST_GNU_CPU
+else
+ echo "can't find cpu config `dirname
$ac_site_file`/cpu.$DEB_HOST_GNU_CPU"
+fi
+if [ -f `dirname $ac_site_file`/system.$DEB_HOST_GNU_SYSTEM ]; then
+ . `dirname $ac_site_file`/system.$DEB_HOST_GNU_SYSTEM
+else
+ echo "can't find system config `dirname
$ac_site_file`/cpu.$DEB_HOST_GNU_CPU"
+fi
+
Index: cross/cpu.i386
===================================================================
RCS file: cross/cpu.i386
diff -N cross/cpu.i386
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ cross/cpu.i386 23 Dec 2002 18:45:44 -0000 1.2
@@ -0,0 +1,18 @@
+#
+# i386 specific configure variables
+#
+ac_cv_c_bigendian=no
+ac_cv_c_char_unsigned=no
+ac_cv_sizeof_long_long=8
+ac_cv_sizeof_unsigned_long_long=8
+ac_cv_sizeof_long=4
+ac_cv_sizeof_unsigned_long=4
+ac_cv_sizeof_int=4
+ac_cv_sizeof_unsigned_int=4
+ac_cv_sizeof_short=2
+ac_cv_sizeof_unsigned_short=2
+ac_cv_sizeof_short=2
+ac_cv_sizeof_unsigned_short=2
+ac_cv_sizeof_float=4
+ac_cv_sizeof_double=8
+ac_cv_sizeof_long_double=12
Index: cross/cpu.m68k
===================================================================
RCS file: cross/cpu.m68k
diff -N cross/cpu.m68k
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ cross/cpu.m68k 23 Dec 2002 18:45:44 -0000 1.2
@@ -0,0 +1,18 @@
+#
+# m68k specific configure variables
+#
+ac_cv_c_bigendian=yes
+ac_cv_c_char_unsigned=no
+ac_cv_sizeof_long_long=8
+ac_cv_sizeof_unsigned_long_long=8
+ac_cv_sizeof_long=4
+ac_cv_sizeof_unsigned_long=4
+ac_cv_sizeof_int=4
+ac_cv_sizeof_unsigned_int=4
+ac_cv_sizeof_short=2
+ac_cv_sizeof_unsigned_short=2
+ac_cv_sizeof_short=2
+ac_cv_sizeof_unsigned_short=2
+ac_cv_sizeof_float=4
+ac_cv_sizeof_double=8
+ac_cv_sizeof_long_double=12
Index: cross/cpu.mips
===================================================================
RCS file: cross/cpu.mips
diff -N cross/cpu.mips
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ cross/cpu.mips 23 Dec 2002 18:45:44 -0000 1.2
@@ -0,0 +1,11 @@
+#
+# mips bigendian specific configure variables
+#
+ac_cv_c_bigendian=yes
+ac_cv_c_char_unsigned=no
+ac_cv_sizeof_long=4
+ac_cv_sizeof_int=4
+ac_cv_sizeof_char_p=4
+ac_cv_sizeof_long_long=8
+ac_cv_sizeof_unsigned_long=4
+ac_cv_sizeof_unsigned_int=4
Index: cross/cpu.powerpc
===================================================================
RCS file: cross/cpu.powerpc
diff -N cross/cpu.powerpc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ cross/cpu.powerpc 23 Dec 2002 18:26:16 -0000 1.1
@@ -0,0 +1,18 @@
+#
+# powerpc specific configure variables
+#
+ac_cv_c_bigendian=yes
+ac_cv_c_char_unsigned=no
+ac_cv_sizeof_long_long=8
+ac_cv_sizeof_unsigned_long_long=8
+ac_cv_sizeof_long=4
+ac_cv_sizeof_unsigned_long=4
+ac_cv_sizeof_int=4
+ac_cv_sizeof_unsigned_int=4
+ac_cv_sizeof_short=2
+ac_cv_sizeof_unsigned_short=2
+ac_cv_sizeof_short=2
+ac_cv_sizeof_unsigned_short=2
+ac_cv_sizeof_float=4
+ac_cv_sizeof_double=8
+ac_cv_sizeof_long_double=8
Index: cross/system.gnu
===================================================================
RCS file: cross/system.gnu
diff -N cross/system.gnu
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ cross/system.gnu 23 Dec 2002 18:45:44 -0000 1.2
@@ -0,0 +1,9 @@
+#
+# gnu (hurd) specific configure variables
+#
+ac_cv_header_stdc=yes
+ac_cv_func_closedir_void=no
+kb_cv_func_putenv_malloc=no
+ac_cv_func_vfork=yes
+ac_cv_func_setvbuf_reversed=no
+
Index: cross/system.linux
===================================================================
RCS file: cross/system.linux
diff -N cross/system.linux
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ cross/system.linux 23 Dec 2002 18:45:44 -0000 1.2
@@ -0,0 +1,12 @@
+#
+# linux specific configure variables
+#
+ac_cv_header_stdc=yes
+ac_cv_func_closedir_void=no
+ac_cv_func_vfork=yes
+ac_cv_func_setvbuf_reversed=no
+ac_cv_func_getpgrp_void=yes
+ac_cv_sys_restartable_syscalls=yes
+ac_cv_func_fnmatch_works=yes
+ac_cv_func_getpagesize=yes
+
Index: debian/changelog
===================================================================
RCS file: /home/bastian/debian/cvs/dpkg/debian/changelog,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- debian/changelog 15 Sep 2002 18:22:38 -0000 1.1.1.1
+++ debian/changelog 23 Dec 2002 17:55:49 -0000 1.2
@@ -1,3 +1,9 @@
+dpkg (1.10.9.0.cross) unstable; urgency=low
+
+ * partialy merge dpkg-cross changes.
+
+ -- Bastian Blank <[EMAIL PROTECTED]> Mon, 23 Dec 2002 18:53:58 +0100
+
dpkg (1.10.9) unstable; urgency=low
* Fix dereference in main/help.c:cu_closefd(), which was the cause of
Index: debian/dpkg-dev.conffiles
===================================================================
RCS file: /home/bastian/debian/cvs/dpkg/debian/dpkg-dev.conffiles,v
retrieving revision 1.1.1.1
retrieving revision 1.3
diff -u -r1.1.1.1 -r1.3
--- debian/dpkg-dev.conffiles 20 Nov 2000 22:03:32 -0000 1.1.1.1
+++ debian/dpkg-dev.conffiles 23 Dec 2002 18:47:28 -0000 1.3
@@ -1,2 +1,9 @@
+/etc/dpkg/cross/config
+/etc/dpkg/cross/cpu.i386
+/etc/dpkg/cross/cpu.m68k
+/etc/dpkg/cross/cpu.mips
+/etc/dpkg/cross/cpu.powerpc
+/etc/dpkg/cross/system.gnu
+/etc/dpkg/cross/system.linux
/etc/dpkg/shlibs.default
/etc/dpkg/shlibs.override
Index: debian/rules
===================================================================
RCS file: /home/bastian/debian/cvs/dpkg/debian/rules,v
retrieving revision 1.1.1.1
retrieving revision 1.4
diff -u -r1.1.1.1 -r1.4
--- debian/rules 29 Aug 2002 20:12:24 -0000 1.1.1.1
+++ debian/rules 23 Dec 2002 18:02:42 -0000 1.4
@@ -100,6 +100,7 @@
install -d -m 755 -o root -g root $(TMP_DPKG)/sbin
install -d -m 755 -o root -g root $(TMP_DPKG)/var/lib/dpkg
-test -d $(INSTALL_TMP)/etc && cp -a $(INSTALL_TMP)/etc $(TMP_DPKG)/
+ rm -r $(TMP_DPKG)/etc/dpkg/cross/
set -e ; for i in info alternatives parts updates ; do \
cp -a $(INSTALL_TMP)/var/lib/dpkg/$$i $(TMP_DPKG)/var/lib/dpkg/
; \
done
@@ -184,6 +185,8 @@
$(TMP_DPKG_DEV)/etc/dpkg/
install -p -m 644 -o root -g root debian/shlibs.override \
$(TMP_DPKG_DEV)/etc/dpkg/
+ install -d -m 755 -o root -g root $(TMP_DPKG_DEV)/etc/dpkg/cross
+ mv $(INSTALL_TMP)/etc/dpkg/cross/* $(TMP_DPKG_DEV)/etc/dpkg/cross/
install -d -m 755 -o root -g root $(TMP_DPKG_DEV)/usr/lib/dpkg
install -d -m 755 -o root -g root $(TMP_DPKG_DEV)/usr/share
install -d -m 755 -o root -g root $(TMP_DPKG_DEV)/usr/bin
Index: scripts/dpkg-architecture.pl
===================================================================
RCS file: /home/bastian/debian/cvs/dpkg/scripts/dpkg-architecture.pl,v
retrieving revision 1.1.1.1
retrieving revision 1.6
diff -u -r1.1.1.1 -r1.6
--- scripts/dpkg-architecture.pl 15 Sep 2002 18:26:00 -0000 1.1.1.1
+++ scripts/dpkg-architecture.pl 23 Dec 2002 18:26:08 -0000 1.6
@@ -40,37 +40,43 @@
# 1.0.7 -q should not imply -f, because this prevents setting
# make variables with non-standard names correctly.
-$version="1.0.0";
+use strict;
+use warnings;
+
+my $version="1.0.0";
$0 = `basename $0`; chomp $0;
-$dpkglibdir="/usr/lib/dpkg";
+my $dpkglibdir="/usr/lib/dpkg";
push(@INC,$dpkglibdir);
require 'controllib.pl';
-%archtable=('i386', 'i386-linux',
- 'sparc', 'sparc-linux',
- 'sparc64', 'sparc64-linux',
- 'alpha', 'alpha-linux',
- 'm68k', 'm68k-linux',
- 'arm', 'arm-linux',
- 'powerpc', 'powerpc-linux',
- 'mips', 'mips-linux',
- 'mipsel', 'mipsel-linux',
- 'sh3', 'sh3-linux',
- 'sh4', 'sh4-linux',
- 'sh3eb', 'sh3eb-linux',
- 'sh4eb', 'sh4eb-linux',
- 'hppa', 'hppa-linux',
- 'hurd-i386', 'i386-gnu',
- 's390', 's390-linux',
- 's390x', 's390x-linux',
- 'ia64', 'ia64-linux',
- 'openbsd-i386', 'i386-openbsd',
- 'freebsd-i386', 'i386-freebsd',
- 'darwin-powerpc', 'powerpc-darwin',
- 'darwin-i386', 'i386-darwin');
+my %archtable=(
+ 'i386' => [ 'i386-linux', 'elf32-i386' ],
+ 'sparc'=> [ 'sparc-linux', 'unknown' ],
+ 'sparc64' => [ 'sparc64-linux', 'unknown' ],
+ 'alpha' => [ 'alpha-linux', 'unknown' ],
+ 'm68k' => [ 'm68k-linux', 'unknown' ],
+ 'arm' => [ 'arm-linux', 'unknown' ],
+ 'powerpc' => [ 'powerpc-linux', 'elf32-powerpc' ],
+ 'mips' => [ 'mips-linux', 'unknown' ],
+ 'mipsel' => [ 'mipsel-linux', 'unknown' ],
+ 'sh3' => [ 'sh3-linux', 'unknown' ],
+ 'sh4' => [ 'sh4-linux', 'unknown' ],
+ 'sh3eb' => [ 'sh3eb-linux', 'unknown' ],
+ 'sh4eb' => [ 'sh4eb-linux', 'unknown' ],
+ 'hppa' => [ 'hppa-linux', 'unknown' ],
+ 'hurd-i386' => [ 'i386-gnu', 'unknown' ],
+ 's390' => [ 's390-linux', 'unknown' ],
+ 's390x' => [ 's390x-linux', 'unknown' ],
+ 'ia64' => [ 'ia64-linux', 'unknown' ],
+ 'openbsd-i386' => [ 'i386-openbsd', 'unknown' ],
+ 'freebsd-i386' => [ 'i386-freebsd', 'unknown' ],
+ 'darwin-powerpc' => [ 'powerpc-darwin', 'unknown' ],
+ 'darwin-i386' => [ 'i386-darwin', 'unknown' ],
+);
sub usageversion {
+ $_{$archtable{$_}->[0]} = 1 foreach keys %archtable;
print STDERR
"Debian $0 $version. Copyright (C) 1999,2000,2001 Marcus Brinkmann.
This is free software; see the GNU General Public Licence version 2
@@ -89,13 +95,13 @@
-u print command to unset environment variables
-c <command> set environment and run the command in it.
-Known Debian Architectures are ".join(", ",keys %archtable)."
-Known GNU System Types are ".join(", ",map ($archtable{$_},keys %archtable))."
+Known Debian Architectures are ".join(", ",sort keys %archtable)."
+Known GNU System Types are ".join(", ",sort keys %_)."
";
}
sub rewrite_gnu_cpu {
- local ($_) = @_;
+ $_ = shift;
s/(?:i386|i486|i586|i686|pentium)(.*linux)/i386$1/;
s/ppc/powerpc/;
@@ -103,73 +109,52 @@
}
sub gnu_to_debian {
- local ($gnu) = @_;
- local (@list);
- local ($a);
+ my $gnu = shift;
+ my @list;
$gnu = &rewrite_gnu_cpu($gnu);
- foreach $a (keys %archtable) {
- push @list, $a if $archtable{$a} eq $gnu;
+ foreach (keys %archtable) {
+ push @list, $_ if $archtable{$_}->[0] eq $gnu;
}
return @list;
}
-# Set default values:
-
-$deb_build_arch = `dpkg --print-installation-architecture`;
-if ($?>>8) {
- &syserr("dpkg --print-installation-architecture filed");
-}
-chomp $deb_build_arch;
-$deb_build_gnu_type = $archtable{$deb_build_arch};
-$deb_build_gnu_cpu = $deb_build_gnu_type;
-$deb_build_gnu_system = $deb_build_gnu_type;
-$deb_build_gnu_cpu =~ s/-.*$//;
-$deb_build_gnu_system =~ s/^.*-//;
-
-# Default host: Current gcc.
-$gcc = `\${CC:-gcc} --print-libgcc-file-name`;
-if ($?>>8) {
- &warn("Couldn't determine gcc system type, falling back to default (native
compilation)");
- $gcc = '';
-} else {
- $gcc =~ s!^.*gcc-lib/([^/]*)/(?:egcs-)?\d+(?:[.\da-z]*)/libgcc.*$!$1!s;
- if (defined $1 and $1 ne '') {
- $gcc = $1;
- } else {
- &warn("Couldn't determine gcc system type, falling back to default
(native compilation)");
- $gcc = '';
- }
-}
-
-if ($gcc ne '') {
- @list = &gnu_to_debian($gcc);
- if ($#list == -1) {
- &warn ("Unknown gcc system type $gcc, falling back to default (native
compilation)"),
- } elsif ($#list > 0) {
- &warn ("Ambiguous gcc system type $gcc, you must specify Debian
architecture, too (one of ".join(", ",@list).")");
- } else {
- $gcc=$archtable{$list[0]};
- $deb_host_arch = $list[0];
- $deb_host_gnu_type = $gcc;
- ($deb_host_gnu_system = $gcc) =~ s/^.*-//;
- ($deb_host_gnu_cpu = $gcc ) =~ s/-.*$//;
- }
-}
-if (!defined($deb_host_arch)) {
- # Default host: Native compilation.
- $deb_host_arch = $deb_build_arch;
- $deb_host_gnu_cpu = $deb_build_gnu_cpu;
- $deb_host_gnu_system = $deb_build_gnu_system;
- $deb_host_gnu_type = $deb_build_gnu_type;
-}
-
+my %env;
+my @list;
-$req_host_arch = '';
-$req_host_gnu_type = '';
-$action='l';
-$force=0;
+my @ordered_d = qw(
+ DEB_BUILD_ARCH
+ DEB_BUILD_GNU_CPU
+ DEB_BUILD_GNU_SYSTEM
+ DEB_BUILD_GNU_TYPE
+ DEB_BUILD_ELF_TYPE
+ DEB_HOST_ARCH
+ DEB_HOST_GNU_CPU
+ DEB_HOST_GNU_SYSTEM
+ DEB_HOST_GNU_TYPE
+ DEB_HOST_ELF_TYPE
+);
+
+my @ordered_r = qw(
+ CC
+ CXX
+ AS
+ AR
+ LD
+ RANLIB
+ STRIP
+ CONFIG_SITE
+ MAKEFLAGS
+ PKG_CONFIG_PATH
+);
+
+my $req_host_arch = '';
+my $req_host_gnu_type = '';
+my $req_variable_to_print;
+my $action = 'l';
+my $force = 0;
+my $type = 'd';
while (@ARGV) {
$_=shift(@ARGV);
@@ -188,14 +173,74 @@
} elsif (m/^-c$/) {
$action = 'c';
last;
+ } elsif (m/^-r$/) {
+ $type = 'r';
} else {
usageerr("unknown option \`$_'");
}
}
+# Set default values:
+
+$env{'DEB_BUILD_ARCH'} = `dpkg --print-installation-architecture`;
+if ($?>>8) {
+ &syserr("dpkg --print-installation-architecture filed");
+}
+chomp $env{'DEB_BUILD_ARCH'};
+$env{'DEB_BUILD_GNU_TYPE'} = $env{'DEB_BUILD_GNU_CPU'} =
$env{'DEB_BUILD_GNU_SYSTEM'} = $archtable{$env{'DEB_BUILD_ARCH'}}->[0];
+$env{'DEB_BUILD_GNU_CPU'} =~ s/-.*$//;
+$env{'DEB_BUILD_GNU_SYSTEM'} =~ s/^.*-//;
+$env{'DEB_BUILD_ELF_TYPE'} = $archtable{$env{'DEB_BUILD_ARCH'}}->[1];
+
+$env{CC} = "gcc";
+$env{CXX} = "g++";
+$env{AR} = "ar";
+$env{AS} = "as";
+$env{LD} = "ld";
+$env{RANLIB} = "ranlib";
+$env{STRIP} = "strip";
+
+# Default host: Current gcc.
+my $gcc = '';
+if (!$req_host_arch) {
+ $gcc = `\${CC:-gcc} --print-libgcc-file-name`;
+ if ($?>>8) {
+ &warn("Couldn't determine gcc system type, falling back to default
(native compilation)");
+ $gcc = '';
+ } else {
+ $gcc =~ s#^.*gcc-lib/([^/]*)/(?:egcs-)?\d+(?:[.\da-z]*)/libgcc.*$#$1#s;
+ if (defined $1 and $1 ne '') {
+ $gcc = $1;
+ } else {
+ &warn("Couldn't determine gcc system type, falling back to default
(native compilation)");
+ $gcc = '';
+ }
+ }
+}
+
+if ($gcc ne '') {
+ @list = &gnu_to_debian($gcc);
+ if ($#list == -1) {
+ &warn ("Unknown gcc system type $gcc, falling back to default (native
compilation)"),
+ } elsif ($#list > 0) {
+ &warn ("Ambiguous gcc system type $gcc, you must specify Debian
architecture, too (one of ".join(", ",@list).")");
+ } else {
+ $gcc=$archtable{$list[0]}->[0];
+ $env{'DEB_HOST_ARCH'} = $list[0];
+ $env{'DEB_HOST_GNU_TYPE'} = $gcc;
+ ($env{'DEB_HOST_GNU_SYSTEM'} = $gcc) =~ s/^.*-//;
+ ($env{'DEB_HOST_GNU_CPU'} = $gcc ) =~ s/-.*$//;
+ $env{'DEB_HOST_ELF_TYPE'} = $archtable{$list[0]}->[1];
+ }
+}
+if (!defined($env{'DEB_HOST_ARCH'})) {
+ # Default host: Native compilation.
+ $env{'DEB_HOST_'.$_} = $env{'DEB_BUILD_'.$_} foreach qw(ARCH GNU_CPU
GNU_SYSTEM GNU_TYPE ELF_TYPE);
+}
+
if ($req_host_arch ne '' && $req_host_gnu_type eq '') {
die ("unknown Debian architecture $req_host_arch, you must specify GNU
system type, too") if !exists $archtable{$req_host_arch};
- $req_host_gnu_type = $archtable{$req_host_arch}
+ $req_host_gnu_type = $archtable{$req_host_arch}->[0]
}
if ($req_host_gnu_type ne '' && $req_host_arch eq '') {
@@ -205,56 +250,73 @@
$req_host_arch = $list[0];
}
-if (exists $archtable{$req_host_arch}) {
- &warn("Default GNU system type $archtable{$req_host_arch} for Debian arch
$req_host_arch does not match specified GNU system type $req_host_gnu_type\n")
if $archtable{$req_host_arch} ne $req_host_gnu_type;
+if (exists $archtable{$req_host_arch}->[0]) {
+ &warn("Default GNU system type ".$archtable{$req_host_arch}->[0]." for
Debian arch $req_host_arch does not match specified GNU system type
$req_host_gnu_type\n") if $archtable{$req_host_arch}->[0] ne $req_host_gnu_type;
}
die "couldn't parse GNU system type $req_host_gnu_type, must be arch-os or
arch-vendor-os" if $req_host_gnu_type !~ m/^([\w\d]+(-[\w\d]+){1,2})?$/;
-$deb_host_arch = $req_host_arch if $req_host_arch ne '';
+$env{'DEB_HOST_ARCH'} = $req_host_arch if $req_host_arch ne '';
if ($req_host_gnu_type ne '') {
- $deb_host_gnu_cpu = $deb_host_gnu_system = $deb_host_gnu_type =
$req_host_gnu_type;
- $deb_host_gnu_cpu =~ s/-.*$//;
- $deb_host_gnu_system =~ s/^.*-//;
+ $env{'DEB_HOST_GNU_CPU'} = $env{'DEB_HOST_GNU_SYSTEM'} =
$env{'DEB_HOST_GNU_TYPE'} = $req_host_gnu_type;
+ $env{'DEB_HOST_GNU_CPU'} =~ s/-.*$//;
+ $env{'DEB_HOST_GNU_SYSTEM'} =~ s/^.*-//;
+ @list = &gnu_to_debian ($req_host_gnu_type);
+ $env{'DEB_HOST_ELF_TYPE'} = $archtable{$list[0]}->[1];
}
-#$gcc = `\${CC:-gcc} --print-libgcc-file-name`;
-#$gcc =~ s!^.*gcc-lib/(.*)/\d+(?:.\d+)*/libgcc.*$!$1!s;
-&warn("Specified GNU system type $deb_host_gnu_type does not match gcc system
type $gcc.") if ($gcc ne '') && ($gcc ne $deb_host_gnu_type);
+&warn("Specified GNU system type $env{'DEB_HOST_GNU_TYPE'} does not match gcc
system type $gcc.") if ($gcc ne '') && ($gcc ne $env{'DEB_HOST_GNU_TYPE'});
+
+if ($env{'DEB_HOST_ARCH'} ne $env{'DEB_BUILD_ARCH'}) {
+ foreach (qw(CC CXX)) {
+ $env{$_} = $env{'DEB_HOST_GNU_TYPE'} . "-" . $env{$_};
+ }
+
+ $env{PKG_CONFIG_PATH} = "/usr/" . $env{'DEB_HOST_GNU_TYPE'} .
"/lib/pkgconfig/";
+}
+else {
+ $env{PKG_CONFIG_PATH} = "/usr/lib/pkgconfig/";
+}
+if ($env{'DEB_HOST_GNU_CPU'} ne $env{'DEB_BUILD_GNU_CPU'}) {
+ foreach (qw(AR AS LD RANLIB STRIP)) {
+ $env{$_} = $env{'DEB_HOST_GNU_TYPE'} . "-" . $env{$_};
+ }
+}
+
+$env{CONFIG_SITE} = "/etc/dpkg/cross/config";
+
+my $makeflags = "w -- ";
+if (!$force and exists $ENV{'MAKEFLAGS'}) {
+ $makeflags = $ENV{'MAKEFLAGS'};
+ $makeflags .= " -- " if $makeflags !~ / -- /;
+}
+foreach (qw(CC CXX AR AS LD RANLIB STRIP)) {
+ $makeflags .= " $_=$env{$_}";
+}
+$env{'MAKEFLAGS'} = "\"$makeflags\"";
+
+my @ordered;
+
+if ($type eq 'd') {
+ @ordered = @ordered_d;
+}
+elsif ($type eq 'r') {
+ @ordered = @ordered_r;
+}
-%env = ();
if (!$force) {
- $deb_build_arch = $ENV{DEB_BUILD_ARCH} if (exists $ENV{DEB_BUILD_ARCH});
- $deb_build_gnu_cpu = $ENV{DEB_BUILD_GNU_CPU} if (exists
$ENV{DEB_BUILD_GNU_CPU});
- $deb_build_gnu_system = $ENV{DEB_BUILD_GNU_SYSTEM} if (exists
$ENV{DEB_BUILD_GNU_SYSTEM});
- $deb_build_gnu_type = $ENV{DEB_BUILD_GNU_TYPE} if (exists
$ENV{DEB_BUILD_GNU_TYPE});
- $deb_host_arch = $ENV{DEB_HOST_ARCH} if (exists $ENV{DEB_HOST_ARCH});
- $deb_host_gnu_cpu = $ENV{DEB_HOST_GNU_CPU} if (exists
$ENV{DEB_HOST_GNU_CPU});
- $deb_host_gnu_system = $ENV{DEB_HOST_GNU_SYSTEM} if (exists
$ENV{DEB_HOST_GNU_SYSTEM});
- $deb_host_gnu_type = $ENV{DEB_HOST_GNU_TYPE} if (exists
$ENV{DEB_HOST_GNU_TYPE});
-}
-
[EMAIL PROTECTED] = qw(DEB_BUILD_ARCH DEB_BUILD_GNU_CPU
- DEB_BUILD_GNU_SYSTEM DEB_BUILD_GNU_TYPE
- DEB_HOST_ARCH DEB_HOST_GNU_CPU
- DEB_HOST_GNU_SYSTEM DEB_HOST_GNU_TYPE);
-
-$env{'DEB_BUILD_ARCH'}=$deb_build_arch;
-$env{'DEB_BUILD_GNU_CPU'}=$deb_build_gnu_cpu;
-$env{'DEB_BUILD_GNU_SYSTEM'}=$deb_build_gnu_system;
-$env{'DEB_BUILD_GNU_TYPE'}=$deb_build_gnu_type;
-$env{'DEB_HOST_ARCH'}=$deb_host_arch;
-$env{'DEB_HOST_GNU_CPU'}=$deb_host_gnu_cpu;
-$env{'DEB_HOST_GNU_SYSTEM'}=$deb_host_gnu_system;
-$env{'DEB_HOST_GNU_TYPE'}=$deb_host_gnu_type;
+ foreach (@ordered) {
+ $env{$_} = $ENV{$_} if exists $ENV{$_};
+ }
+}
if ($action eq 'l') {
- foreach $k (@ordered) {
- print "$k=$env{$k}\n";
+ foreach (@ordered) {
+ print "$_=$env{$_}\n";
}
} elsif ($action eq 's') {
- foreach $k (@ordered) {
- print "$k=$env{$k}; ";
+ foreach (@ordered) {
+ print "$_=$env{$_}; ";
}
print "export ".join(" ",@ordered)."\n";
} elsif ($action eq 'u') {
Index: scripts/dpkg-buildpackage.sh
===================================================================
RCS file: /home/bastian/debian/cvs/dpkg/scripts/dpkg-buildpackage.sh,v
retrieving revision 1.1.1.1
retrieving revision 1.3
diff -u -r1.1.1.1 -r1.3
--- scripts/dpkg-buildpackage.sh 25 May 2002 02:57:15 -0000 1.1.1.1
+++ scripts/dpkg-buildpackage.sh 23 Dec 2002 18:51:19 -0000 1.3
@@ -157,6 +157,12 @@
pv="${package}_${sversion}"
pva="${package}_${sversion}_${arch}"
+if [ "$arch" != "source" ]; then
+ if [ "$targetarch" ]; then
+ eval `dpkg-architecture -a${targetarch} -t${targetgnusystem} -s
-r`
+ fi
+fi
+
signfile () {
if test "$signinterface" = "gpg" ; then
(cat "../$1" ; echo "") | \
Index: scripts/dpkg-shlibdeps.pl
===================================================================
RCS file: /home/bastian/debian/cvs/dpkg/scripts/dpkg-shlibdeps.pl,v
retrieving revision 1.1.1.1
retrieving revision 1.5
diff -u -r1.1.1.1 -r1.5
--- scripts/dpkg-shlibdeps.pl 20 Jun 2001 16:30:15 -0000 1.1.1.1
+++ scripts/dpkg-shlibdeps.pl 23 Dec 2002 19:00:51 -0000 1.5
@@ -23,6 +23,13 @@
push(@INC,$dpkglibdir);
require 'controllib.pl';
+$cross = 0;
+
+if (defined $ENV{'DEB_BUILD_ARCH'} and defined $ENV{'DEB_HOST_ARCH'} and
$ENV{'DEB_BUILD_ARCH'} ne $ENV{'DEB_HOST_ARCH'}) {
+ $cross = 1;
+ $cross_arch = $ENV{'DEB_HOST_GNU_TYPE'};
+}
+
sub usageversion {
print STDERR
"Debian dpkg-shlibdeps $version.
@@ -97,14 +104,16 @@
# First we get an ldd output to see what libs + paths we have at out
# disposal.
my %so2path = ();
- defined($c= open(P,"-|")) || syserr("cannot fork for ldd");
- if (!$c) { exec("ldd","--",$exec[$i]); syserr("cannot exec ldd"); }
- while (<P>) {
- if (m,^\s+(\S+)\s+=>\s+(\S+)\s+\(0x.+\)?$,) {
- $so2path{$1} = $2;
+ if (!$cross) {
+ defined($c= open(P,"-|")) || syserr("cannot fork for ldd");
+ if (!$c) { exec("ldd","--",$exec[$i]); syserr("cannot exec ldd"); }
+ while (<P>) {
+ if (m,^\s+(\S+)\s+=>\s+(\S+)\s+\(0x.+\)?$,) {
+ $so2path{$1} = $2;
+ }
}
+ close(P); $? && subprocerr("ldd on \`$exec[$i]'");
}
- close(P); $? && subprocerr("ldd on \`$exec[$i]'");
# Now we get the direct deps of the program. We then check back with
# the ldd output from above to see what our path is.
@@ -116,13 +125,25 @@
if (m,^\s*NEEDED\s+((\S+)\.so\.(\S+))$,) {
push(@libname,$2); push(@libsoname,$3);
push(@libf,$execf[$i]);
- &warn("could not find path for $1") unless
defined($so2path{$1});
- push(@libfiles,$so2path{$1});
+ if ($cross) {
+ &warn("could not find path for $1") unless -f
"/usr/".$cross_arch."/lib/".$1;
+ push(@libfiles,"/usr/".$cross_arch."/lib/".$1);
+ }
+ else {
+ &warn("could not find path for $1") unless
defined($so2path{$1});
+ push(@libfiles,$so2path{$1});
+ }
} elsif (m,^\s*NEEDED\s+((\S+)-(\S+)\.so)$,) {
push(@libname,$2); push(@libsoname,$3);
push(@libf,$execf[$i]);
- &warn("could not find path for $1") unless
defined($so2path{$1});
- push(@libfiles,$so2path{$1});
+ if ($cross) {
+ &warn("could not find path for $1") unless -f
"/usr/".$cross_arch."/lib/".$1;
+ push(@libfiles,"/usr/".$cross_arch."/lib/".$1);
+ }
+ else {
+ &warn("could not find path for $1") unless
defined($so2path{$1});
+ push(@libfiles,$so2path{$1});
+ }
} else {
m,^\s*NEEDED\s+(\S+)$,;
&warn("format of $1 not recognized");
pgpPf2JzxPSAv.pgp
Description: PGP signature

