Package: gdb
Version: 6.4.90.dfsg-1
Serverity: wishlist
Tags: patch

Could you please apply the following patch?
This patch is enable to build cross-gdb.

Regards,

Kazuhiro Inaoka
diff -upr gdb-6.4.90.dfsg.org/debian/control.in 
gdb-6.4.90.dfsg/debian/control.in
--- gdb-6.4.90.dfsg.org/debian/control.in       2006-06-16 19:19:15.000000000 
+0900
+++ gdb-6.4.90.dfsg/debian/control.in   2006-06-16 19:29:17.000000000 +0900
@@ -5,7 +5,7 @@ Priority: standard
 Standards-Version: 3.5.3
 Build-Depends: autoconf, libtool, texinfo (>= 4.7-2.2), tetex-bin, 
libncurses5-dev, libreadline5-dev, bison, gettext, debhelper (>= 4.9.0), 
dejagnu, gcj [!kfreebsd-amd64 !kfreebsd-i386 !hurd-i386], gobjc, mig [EMAIL 
PROTECTED]@], cdbs (>= 0.4.17), quilt (>= 0.30-1), libkvm-dev [EMAIL 
PROTECTED]@], type-handling (>= 0.2.1), libunwind7-dev [ia64], flex | flex-old
 
-Package: gdb
+Package: [EMAIL PROTECTED]@
 Architecture: any
 Section: devel
 Depends: ${shlibs:Depends}
diff -upr gdb-6.4.90.dfsg.org/debian/rules gdb-6.4.90.dfsg/debian/rules
--- gdb-6.4.90.dfsg.org/debian/rules    2006-06-16 19:19:15.000000000 +0900
+++ gdb-6.4.90.dfsg/debian/rules        2006-06-16 19:30:59.369736488 +0900
@@ -26,6 +26,53 @@ DEB_HOST_GNU_SYSTEM := $(shell dpkg-arch
 DEB_HOST_GNU_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
 DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 
+# allow debian/target to be used instead of GDB_TARGET - this was requested
+# by toolchain-source maintainer
+ifndef GDB_TARGET
+DEBIAN_TARGET_FILE := $(strip $(shell cat debian/target 2>/dev/null))
+ifneq ($(DEBIAN_TARGET_FILE),)
+GDB_TARGET := $(DEBIAN_TARGET_FILE)
+endif
+endif
+
+DEB_TARGET_ARCH                := $(shell dpkg-architecture -f \
+                       -a$(GDB_TARGET) -qDEB_HOST_ARCH 2>/dev/null)
+DEB_TARGET_GNU_CPU     := $(shell dpkg-architecture -f \
+                       -a$(DEB_TARGET_ARCH) -qDEB_HOST_GNU_CPU 2>/dev/null)
+DEB_TARGET_GNU_SYSTEM  := $(shell dpkg-architecture -f \
+                       -a$(DEB_TARGET_ARCH) -qDEB_HOST_GNU_SYSTEM 2>/dev/null)
+DEB_TARGET_GNU_TYPE    := $(shell dpkg-architecture -f \
+                       -a$(DEB_TARGET_ARCH) -qDEB_HOST_GNU_TYPE 2>/dev/null)
+# ---------------------------------------------------------------------------
+# which binary packages are built?
+
+# cross compiler support. If GDB_TARGET is set, then it's the architecture
+# we build for.
+
+ifeq ($(DEB_TARGET_ARCH),)
+$(error GDB_TARGET value "$(GDB_TARGET)" is not a valid Debian architecture)
+endif
+
+ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_TARGET_GNU_TYPE))
+  DEB_CROSS = yes
+  # TP: Target Prefix. Used primarily as a prefix for cross tool
+  #     names (e.g. powerpc-linux-gcc).
+  # TS: Target Suffix. Used primarily at the end of cross compiler
+  #     package names (e.g. gcc-powerpc).
+  # LS: Library Suffix. Used primarily at the end of cross compiler
+  #     library package names (e.g. libgcc-powerpc-cross).
+  DEB_TARGET_ALIAS ?= $(DEB_TARGET_GNU_TYPE)
+  TP = $(DEB_TARGET_GNU_TYPE)-
+  TS = -$(DEB_TARGET_ALIAS)
+  LS = -$(DEB_TARGET_ARCH)-cross
+endif
+
+ifeq ($(DEB_CROSS),yes)
+  TARGET_ALIAS := $(DEB_TARGET_ALIAS)
+else
+  TARGET_ALIAS := $(DEB_TARGET_GNU_TYPE)
+endif
+
 run_tests := yes
 run_thread_tests := yes
 
@@ -37,10 +84,19 @@ ifeq ($(filter $(DEB_HOST_GNU_CPU),alpha
   run_tests := no
 endif
 
+
 ifeq ($(DEB_HOST_GNU_CPU),ia64)
   arch_config_args := --with-libunwind
 endif
 
+ifeq ($(DEB_CROSS),yes)
+  run_tests := no
+
+  arch_config_args += \
+        --program-prefix=$(TARGET_ALIAS)- \
+        --target=$(TARGET_ALIAS)
+endif
+
 INSTALL = $(install)
 export INSTALL
 
@@ -60,7 +116,7 @@ post-patches::
 
 # This should probably be common-post-build-arch, but that runs during
 # install, under fakeroot, in CDBS 0.4.21.
-build/gdb:: check-stamp
+build/gdb$(TS):: check-stamp
        $(MAKE) -C objdir/gdb/doc refcard.dvi refcard.ps
 
 check-stamp:
@@ -95,12 +151,16 @@ clean::
 
        rm -f check-stamp
 
-binary-post-install/gdb ::
-       if [ -x debian/gdb/usr/bin/run ]; then                                  
\
-               mv debian/gdb/usr/bin/run                                       
\
-                 debian/gdb/usr/bin/$(DEB_HOST_GNU_TYPE)-run;                  
\
-               mv debian/gdb/usr/share/man/man1/run.1                          
\
-                 debian/gdb/usr/share/man/man1/$(DEB_HOST_GNU_TYPE)-run.1;     
\
+ifeq ($(DEB_CROSS),yes)
+       touch debian/control.in
+endif
+
+binary-post-install/gdb$(TS) ::
+       if [ -x debian/gdb$(TS)/usr/bin/run ]; then                             
        \
+               mv debian/gdb$(TS)/usr/bin/run                                  
\
+                 debian/gdb$(TS)/usr/bin/$(DEB_HOST_GNU_TYPE)-run;             
        \
+               mv debian/gdb$(TS)/usr/share/man/man1/run.1                     
        \
+                 
debian/gdb$(TS)/usr/share/man/man1/$(DEB_HOST_GNU_TYPE)-run.1;        \
        fi
 ifeq ($(run_tests),yes)
        install -d debian/gdb/usr/share/doc/gdb
@@ -109,28 +169,38 @@ ifeq ($(run_tests),yes)
 endif
 
        $(INSTALL) -m 755 -o root -g root \
-               gdb/gdb_gcore.sh debian/gdb/usr/bin/gcore
+               gdb/gdb_gcore.sh debian/gdb$(TS)/usr/bin/$(TP)gcore
 
-       rm -rf debian/gdb/usr/include \
-               debian/gdb/usr/lib/lib*.* \
-               debian/gdb/usr/share/info/annotate.info* \
-               debian/gdb/usr/share/info/bfd.info* \
-               debian/gdb/usr/share/info/configure.info* \
-               debian/gdb/usr/share/info/mmalloc.info* \
-               debian/gdb/usr/share/info/standards.info* \
-               debian/gdb/usr/share/locale
+       rm -rf debian/gdb$(TS)/usr/include \
+               debian/gdb$(TS)/usr/lib/lib*.* \
+               debian/gdb$(TS)/usr/share/info/annotate.info* \
+               debian/gdb$(TS)/usr/share/info/bfd.info* \
+               debian/gdb$(TS)/usr/share/info/configure.info* \
+               debian/gdb$(TS)/usr/share/info/mmalloc.info* \
+               debian/gdb$(TS)/usr/share/info/standards.info* \
+               debian/gdb$(TS)/usr/share/locale
 
        # Remove the entire info directory; it only contains dummy files,
        # not the real manuals.
        rm -rf debian/gdb/usr/share/info
 
+ifeq ($(DEB_CROSS),yes)
+       mv debian/gdb$(TS)/usr/share/info/gdb.info \
+               debian/gdb$(TS)/usr/share/info/$(TP)gdb.info
+       mv debian/gdb$(TS)/usr/share/info/gdbint.info \
+               debian/gdb$(TS)/usr/share/info/$(TP)gdbint.info
+       mv debian/gdb$(TS)/usr/share/info/stabs.info \
+               debian/gdb$(TS)/usr/share/info/$(TP)stabs.info
+endif
+
 debian/control:: debian/control.in
        cat debian/control.in \
                | sed "s/@kfreebsd@/`type-handling any kfreebsd`/g" \
                | sed "s/@gnu@/`type-handling any gnu`/g" \
+               | sed "s/@TS@/$(TS)/g" \
                > debian/control
 
-DEB_INSTALL_DOCS_gdb = gdb/NEWS gdb/README gdb/doc/refcard.tex \
+DEB_INSTALL_DOCS_gdb$(TS) = gdb/NEWS gdb/README gdb/doc/refcard.tex \
                objdir/gdb/doc/refcard.dvi objdir/gdb/doc/refcard.ps
 
-DEB_INSTALL_CHANGELOGS_gdb = gdb/ChangeLog
+DEB_INSTALL_CHANGELOGS_gdb$(TS) = gdb/ChangeLog

Reply via email to