diff --git a/dev-util/arm_none_eabi_gdb/arm_none_eabi_gdb-7.7.recipe b/dev-util/arm_none_eabi_gdb/arm_none_eabi_gdb-7.7.recipe new file mode 100644 index 000000000..f7ce6a408 --- /dev/null +++ b/dev-util/arm_none_eabi_gdb/arm_none_eabi_gdb-7.7.recipe @@ -0,0 +1,78 @@ +SUMMARY="The GNU debugger for embedded ARM" +DESCRIPTION=" +GDB, the GNU Project debugger, allows you to see what is going on \`inside' \ +another program while it executes -- or what another program was doing at the \ +moment it crashed. + +GDB can do four main kinds of things (plus other things in support of these) \ +to help you catch bugs in the act: + * Start your program, specifying anything that might affect its behavior. + * Make your program stop on specified conditions. + * Examine what has happened, when your program has stopped. + * Change things in your program, so you can experiment with correcting the \ +effects of one bug and go on to learn about another. + +The program being debugged can be written in Ada, C, C++, Objective-C, Pascal \ +(and many other languages). Those programs might be executing on the same \ +machine as GDB (native) or on another machine (remote). GDB can run on most \ +popular UNIX and Microsoft Windows variants. +" + +HOMEPAGE="http://sourceware.org/gdb/" +LICENSE="GNU GPL v3" +COPYRIGHT="Free Software Foundation" + +SRC_URI="http://ftp.gnu.org/gnu/gdb/gdb-7.7.tar.bz2" +CHECKSUM_SHA256="0404d1c6ee6b3ddd811722b5197944758d37b4591c216030effbac204f5a6c23" +SOURCE_DIR="gdb-7.7" +REVISION="1" + +PATCHES="gdb-7.7.patchset" + +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + arm_none_eabi_gdb = $portVersion + cmd:arm_none_eabi_gdb = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libiconv + lib:libintl + lib:libncurses + " + +BUILD_REQUIRES=" + gettext + libiconv_devel + ncurses_devel + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:autoreconf + cmd:awk + cmd:gcc + cmd:ld + cmd:make + " + +BUILD() +{ + cd gdb && autoreconf; cd .. + runConfigure ./configure --target=arm-none-eabi + make $jobArgs +} + +INSTALL() +{ + make install + mkdir -p /packaging/gdb/develop/lib + for i in libbfd.a libbfd.la libopcodes.a libopcodes.la; do + mv /packaging/gdb/lib/$i /packaging/gdb/develop/lib/$i + done +} diff --git a/dev-util/arm_none_eabi_gdb/patches/gdb-7.7.patchset b/dev-util/arm_none_eabi_gdb/patches/gdb-7.7.patchset new file mode 100644 index 000000000..5f67a67d9 --- /dev/null +++ b/dev-util/arm_none_eabi_gdb/patches/gdb-7.7.patchset @@ -0,0 +1,222 @@ +From d1451ae108bc3bef182ca16e5b1a625483346cfe Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 26 Mar 2014 02:26:37 +0100 +Subject: [PATCH 1/5] Add Haiku to config.bfd + +Merged the config.bfd from gdb-7.7 with the config.bfd from our +buildtools. +--- + bfd/config.bfd | 24 ++++++++++++++++++++++-- + 1 file changed, 22 insertions(+), 2 deletions(-) + +diff --git a/bfd/config.bfd b/bfd/config.bfd +index 4edcc6a..91a72db 100644 +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -334,7 +334,7 @@ case "${targ}" in + ;; + arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \ + arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \ +- arm*-*-eabi* ) ++ arm*-*-eabi* | arm*-*-haiku*) + targ_defvec=bfd_elf32_littlearm_vec + targ_selvecs=bfd_elf32_bigarm_vec + ;; +@@ -668,6 +668,11 @@ case "${targ}" in + targ_selvecs="bfd_elf32_i386_vec bfd_elf32_x86_64_vec i386linux_vec i386pei_vec x86_64pei_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec" + want64=true + ;; ++ x86_64-*-haiku*) ++ targ_defvec=bfd_elf64_x86_64_vec ++ targ_selvecs="bfd_elf32_i386_vec" ++ want64=true ++ ;; + x86_64-*-nacl*) + targ_defvec=bfd_elf32_x86_64_nacl_vec + targ_selvecs="bfd_elf32_i386_nacl_vec bfd_elf64_x86_64_nacl_vec bfd_elf32_bigarm_nacl_vec bfd_elf32_littlearm_nacl_vec" +@@ -716,6 +721,9 @@ case "${targ}" in + targ_defvec=bfd_elf32_i386_vec + targ_selvecs="i386pe_vec i386pei_vec" + ;; ++ i[3-7]86-*-haiku*) ++ targ_defvec=bfd_elf32_i386_vec ++ ;; + i[3-7]86-*-interix*) + targ_defvec=i386pei_vec + targ_selvecs="i386pe_vec" +@@ -907,7 +915,10 @@ case "${targ}" in + targ_selvecs=ieee_vec + targ_underscore=yes + ;; +- ++ m68*-*-haiku*) ++ targ_defvec=bfd_elf32_m68k_vec ++ targ_selvecs="m68kcoff_vec ieee_vec" ++ ;; + m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*) + targ_defvec=bfd_elf32_m88k_vec + targ_selvecs=m88kbcs_vec +@@ -963,6 +974,10 @@ case "${targ}" in + targ_defvec=bfd_elf32_tradlittlemips_vec + targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_little_vec ecoff_big_vec" + ;; ++ mips*el-*-haiku*) ++ targ_defvec=bfd_elf32_littlemips_vec ++ targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec" ++ ;; + mips*-*-netbsd*) + targ_defvec=bfd_elf32_tradbigmips_vec + targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" +@@ -1276,6 +1291,11 @@ case "${targ}" in + targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" + targ_archs="$targ_archs bfd_i386_arch" + ;; ++ powerpc-*-haiku*) ++ targ_defvec=bfd_elf32_powerpc_vec ++ targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec pef_vec pef_xlib_vec pmac_xcoff_vec ppcboot_vec" ++ targ_cflags=-D__HAIKU_TARGET__ ++ ;; + powerpc-*-macos*) + targ_defvec=pmac_xcoff_vec + ;; +-- +Jonathan + + +From 95c56e69655292af02df81204a6957af8589f91e Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 26 Mar 2014 02:36:02 +0100 +Subject: [PATCH 2/5] Add Haiku to gdb/configure.tgt + +--- + gdb/configure.tgt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/gdb/configure.tgt b/gdb/configure.tgt +index 47e98d9..e7843f6 100644 +--- a/gdb/configure.tgt ++++ b/gdb/configure.tgt +@@ -687,6 +687,10 @@ x86_64-*-openbsd*) + i387-tdep.o i386bsd-tdep.o i386obsd-tdep.o \ + bsd-uthread.o solib-svr4.o" + ;; ++x86_64-*-haiku*) ++ # Target: Haiku/x86_64 ++ gdb_target_obs="amd64-tdep.o i386-tdep.o i387-tdep.o solib-svr4.o" ++ ;; + xtensa*-*-linux*) gdb_target=linux + # Target: GNU/Linux Xtensa + gdb_target_obs="xtensa-tdep.o xtensa-config.o xtensa-linux-tdep.o \ +-- +Jonathan + + +From 809b3250039450b348f16aee7430d4c98b8ca2ec Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 26 Mar 2014 02:54:53 +0100 +Subject: [PATCH 3/5] Add gdb/config/i386/haiku64.mh + +--- + gdb/config/i386/haiku64.mh | 2 ++ + gdb/configure.host | 1 + + 2 files changed, 3 insertions(+) + create mode 100644 gdb/config/i386/haiku64.mh + +diff --git a/gdb/config/i386/haiku64.mh b/gdb/config/i386/haiku64.mh +new file mode 100644 +index 0000000..aa99883 +--- /dev/null ++++ b/gdb/config/i386/haiku64.mh +@@ -0,0 +1,2 @@ ++# Host: Haiku/x86_64 ++NATDEPFILES= fork-child.o amd64-nat.o +diff --git a/gdb/configure.host b/gdb/configure.host +index 634213f..e91e8bd 100644 +--- a/gdb/configure.host ++++ b/gdb/configure.host +@@ -183,6 +183,7 @@ x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu) + x86_64-*-netbsd* | x86_64-*-knetbsd*-gnu) + gdb_host=nbsd64 ;; + x86_64-*-openbsd*) gdb_host=obsd64 ;; ++x86_64-*-haiku*) gdb_host=haiku64 ;; + x86_64-*-mingw*) gdb_host=mingw64 + gdb_host_obs=mingw-hdep.o + ;; +-- +Jonathan + + +From 4ed8b2a84a58416de1baf6d2222b377e1462a3d5 Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 26 Mar 2014 03:11:41 +0100 +Subject: [PATCH 4/5] Look for socketpair and gethostbyname in -lnetwork + +--- + gdb/configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gdb/configure.ac b/gdb/configure.ac +index 55f37d2..6fd12a7 100644 +--- a/gdb/configure.ac ++++ b/gdb/configure.ac +@@ -510,10 +510,10 @@ AC_CHECK_FUNC(wctype, [], + [AC_CHECK_LIB(w, wctype)]) + + # Some systems (e.g. Solaris) have `gethostbyname' in libnsl. +-AC_SEARCH_LIBS(gethostbyname, nsl) ++AC_SEARCH_LIBS(gethostbyname, [nsl network]) + + # Some systems (e.g. Solaris) have `socketpair' in libsocket. +-AC_SEARCH_LIBS(socketpair, socket) ++AC_SEARCH_LIBS(socketpair, [socket network]) + + # Link in zlib if we can. This allows us to read compressed debug sections. + AM_ZLIB +-- +Jonathan + + +From ede4bf96bdfa2e6f4f36d7e0056adc5cdec70058 Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 26 Mar 2014 03:17:18 +0100 +Subject: [PATCH 5/5] Remove autoconf version check + +--- + config/override.m4 | 21 --------------------- + 1 file changed, 21 deletions(-) + +diff --git a/config/override.m4 b/config/override.m4 +index 52bd1c3..3af7e21 100644 +--- a/config/override.m4 ++++ b/config/override.m4 +@@ -27,27 +27,6 @@ AC_DEFUN([AC_PREREQ], [frob]) + m4_copy_force([_AC_PREREQ], [AC_PREREQ]) + + +-dnl Ensure exactly this Autoconf version is used +-m4_ifndef([_GCC_AUTOCONF_VERSION], +- [m4_define([_GCC_AUTOCONF_VERSION], [2.64])]) +- +-dnl Test for the exact version when AC_INIT is expanded. +-dnl This allows to update the tree in steps (for testing) +-dnl by putting +-dnl m4_define([_GCC_AUTOCONF_VERSION], [X.Y]) +-dnl in configure.ac before AC_INIT, +-dnl without rewriting this file. +-dnl Or for updating the whole tree at once with the definition above. +-AC_DEFUN([_GCC_AUTOCONF_VERSION_CHECK], +-[m4_if(m4_defn([_GCC_AUTOCONF_VERSION]), +- m4_defn([m4_PACKAGE_VERSION]), [], +- [m4_fatal([Please use exactly Autoconf ]_GCC_AUTOCONF_VERSION[ instead of ]m4_defn([m4_PACKAGE_VERSION])[.])]) +-]) +-m4_define([AC_INIT], m4_defn([AC_INIT])[ +-_GCC_AUTOCONF_VERSION_CHECK +-]) +- +- + dnl Ensure we do not use a buggy M4. + m4_if(m4_index([..wi.d.], [.d.]), [-1], + [m4_fatal(m4_do([m4 with buggy strstr detected. Please install +-- +Jonathan +