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