gdb-7.0: Add new recipes which use gdb 7.0
authorKhem Raj <raj.khem@gmail.com>
Wed, 14 Oct 2009 00:06:00 +0000 (17:06 -0700)
committerKhem Raj <raj.khem@gmail.com>
Wed, 14 Oct 2009 00:11:16 +0000 (17:11 -0700)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
conf/checksums.ini
recipes/gdb/gdb-7.0/gdb-6.8-fix-compile-karmic.patch [new file with mode: 0644]
recipes/gdb/gdb-7.0/gdb-6.8-mingw-3.patch [new file with mode: 0644]
recipes/gdb/gdb-7.0/gdb-6.8-pr9638-ppc-canadian-configh.patch [new file with mode: 0644]
recipes/gdb/gdb-7.0/gdbserver-cflags-last.diff [new file with mode: 0644]
recipes/gdb/gdb-canadian-sdk_7.0.bb [new file with mode: 0644]
recipes/gdb/gdb-cross-sdk_7.0.bb [new file with mode: 0644]
recipes/gdb/gdb-cross_7.0.bb [new file with mode: 0644]
recipes/gdb/gdb_7.0.bb [new file with mode: 0644]
recipes/gdb/gdbserver.inc
recipes/gdb/gdbserver_7.0.bb [new file with mode: 0644]

index 3574540..ef0e7da 100644 (file)
@@ -7818,6 +7818,10 @@ sha256=66e6ff871a7ed71ea433b8341ffebbe48590119e43a42953d392f5ce517c95e4
 md5=925695333524108291dc4012c4c9cbb8
 sha256=a3c5455f30ffb3e6eeafb9e54598b48f9fbf46e3e99f431120360c183ddcc889
 
+[ftp://ftp.gnu.org/gnu/gdb/gdb-7.0.tar.gz]
+md5=67b4144db385620d7b93f7b0c26800f7
+sha256=ccff6cab0e847c486d30b70bdddac4e6646bafcecaa3b63134d6e3d4d5a4b91d
+
 [ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.8.3.tar.gz]
 md5=1d1b1d5c0245b1c00aff92da751e9aa1
 sha256=cc340338a2e28b40058ab9eb5354a21d53f88a1582ea21ba0bb185c37a281dc9
diff --git a/recipes/gdb/gdb-7.0/gdb-6.8-fix-compile-karmic.patch b/recipes/gdb/gdb-7.0/gdb-6.8-fix-compile-karmic.patch
new file mode 100644 (file)
index 0000000..1080b16
--- /dev/null
@@ -0,0 +1,22 @@
+fix this on karmic
+
+cc1: warnings being treated as errors
+/home/ich/build/arm/armv5t/tmp/work/i686-armv5te-sdk-oe-linux-gnueabi/gdb-cross-sdk-6.8-r2/gdb-6.8/gdb/eval.c: In function 'evaluate_subexp_standard':
+/home/ich/build/arm/armv5t/tmp/work/i686-armv5te-sdk-oe-linux-gnueabi/gdb-cross-sdk-6.8-r2/gdb-6.8/gdb/eval.c:1705: error: 'subscript_array' may be used uninitialized in this function
+/home/ich/build/arm/armv5t/tmp/work/i686-armv5te-sdk-oe-linux-gnueabi/gdb-cross-sdk-6.8-r2/gdb-6.8/gdb/eval.c:1644: note: 'subscript_array' was declared here
+
+
+
+Index: gdb-6.8/gdb/eval.c
+===================================================================
+--- gdb-6.8.orig/gdb/eval.c    2009-08-02 03:25:20.000000000 +0200
++++ gdb-6.8/gdb/eval.c 2009-08-02 03:53:39.000000000 +0200
+@@ -1656,6 +1656,8 @@
+       if (nargs != ndimensions)
+         error (_("Wrong number of subscripts"));
++        memset(&subscript_array, 0, sizeof(subscript_array));
++
+       /* Now that we know we have a legal array subscript expression 
+          let us actually find out where this element exists in the array. */
diff --git a/recipes/gdb/gdb-7.0/gdb-6.8-mingw-3.patch b/recipes/gdb/gdb-7.0/gdb-6.8-mingw-3.patch
new file mode 100644 (file)
index 0000000..5bede42
--- /dev/null
@@ -0,0 +1,374 @@
+Index: gdb-7.0/gdb/gdbserver/remote-utils.c
+===================================================================
+--- gdb-7.0.orig/gdb/gdbserver/remote-utils.c  2009-07-06 11:31:20.000000000 -0700
++++ gdb-7.0/gdb/gdbserver/remote-utils.c       2009-10-13 15:16:16.495396950 -0700
+@@ -778,7 +778,12 @@ input_interrupt (int unused)
+       cc = read (remote_desc, &c, 1);
++#ifdef _WIN32_WINNT
++      // its normal in windows for current_inferior to be null.
++      if (cc != 1 || c != '\003' /*|| current_inferior == NULL*/)
++#else
+       if (cc != 1 || c != '\003' || current_inferior == NULL)
++#endif
+       {
+         fprintf (stderr, "input_interrupt, count = %d c = %d ('%c')\n",
+                  cc, c, c);
+Index: gdb-7.0/gdb/gdbserver/server.c
+===================================================================
+--- gdb-7.0.orig/gdb/gdbserver/server.c        2009-06-30 09:35:25.000000000 -0700
++++ gdb-7.0/gdb/gdbserver/server.c     2009-10-13 15:18:08.065401029 -0700
+@@ -31,6 +31,9 @@
+ #if HAVE_MALLOC_H
+ #include <malloc.h>
+ #endif
++#ifdef _WIN32
++#include <windows.h>
++#endif
+ ptid_t cont_thread;
+ ptid_t general_thread;
+@@ -502,6 +505,20 @@ monitor_show_help (void)
+   monitor_output ("    Enable h/w breakpoint/watchpoint debugging messages\n");
+   monitor_output ("  set remote-debug <0|1>\n");
+   monitor_output ("    Enable remote protocol debugging messages\n");
++#ifdef _WIN32
++  monitor_output ("  get processlist\n");
++  monitor_output ("    List remote processes with names and pid\n");
++  monitor_output ("  get processlistmi\n");
++  monitor_output ("    Process list in an MI-like format\n");
++#endif
++  monitor_output ("  set env <name=value>\n");
++  monitor_output ("    Set environment variable in remote environment\n");
++  monitor_output ("  cd <directory>\n");
++  monitor_output ("    Change current working directory\n");
++  monitor_output ("  pwd\n");
++  monitor_output ("    Print current working directory\n");
++  monitor_output ("  shell <command line>\n");
++  monitor_output ("    Execute command on remote target\n");
+   monitor_output ("  exit\n");
+   monitor_output ("    Quit GDBserver\n");
+ }
+@@ -660,6 +677,47 @@ handle_search_memory (char *own_buf, int
+       return;                                 \
+     }
++#ifdef _WIN32
++typedef DWORD (__stdcall *GETPROCESSIMAGEFILENAME)(HANDLE hProcess, LPTSTR lpImageFileName, DWORD nSize);
++typedef BOOL (__stdcall *ENUMPROCESSES)(DWORD* pProcessIds, DWORD cb, DWORD* pBytesReturned);
++
++# define HAS_DEVICE(P) \
++((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
++&& (P)[1] == ':')
++# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
++# define ISSLASH(C) ((C) == '/' || (C) == '\\')
++
++char *
++__basename (char const *name)
++{
++      char const *base = name += FILE_SYSTEM_PREFIX_LEN (name);
++      int all_slashes = 1;
++      char const *p;
++      
++      for (p = name; *p; p++)
++    {
++              if (ISSLASH (*p))
++                      base = p + 1;
++              else
++                      all_slashes = 0;
++    }
++      
++      /* If NAME is all slashes, arrange to return `/'.  */
++      if (*base == '\0' && ISSLASH (*name) && all_slashes)
++              --base;
++      
++      /* Make sure the last byte is not a slash.  */
++      //assert (all_slashes || !ISSLASH (*(p - 1)));
++      
++      return (char *) base;
++}
++#endif
++
++#ifndef _POSIX_PATH_MAX
++#define _POSIX_PATH_MAX 1024
++#define _POSIX_PATH_MAX_WAS_UNDEFINED
++#endif
++
+ /* Handle all of the extended 'q' packets.  */
+ void
+ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
+@@ -1216,6 +1274,158 @@ handle_query (char *own_buf, int packet_
+         debug_threads = 1;
+         monitor_output ("Debug output enabled.\n");
+       }
++#ifdef _WIN32
++  else if (strncmp (mon, "get processlist", 15) == 0)
++  {
++        HINSTANCE lib = LoadLibrary("PSAPI.DLL");
++        GETPROCESSIMAGEFILENAME imageFilename = (GETPROCESSIMAGEFILENAME)GetProcAddress(lib, "GetProcessImageFileNameA");
++        ENUMPROCESSES enumProcesses = (ENUMPROCESSES)GetProcAddress(lib, "EnumProcesses");
++        
++        char* name = (char*)malloc(MAX_PATH);
++        
++        int miMode = (strcmp(mon, "get processlistmi") == 0);
++        
++        DWORD* pids = (DWORD*)malloc(sizeof(DWORD)*1024);
++        memset(pids, 0, sizeof(pids));
++        DWORD size = 0;
++        
++        if (!enumProcesses(pids, 1024 * sizeof(DWORD), &size))
++        {
++                free(pids);
++                free(mon);
++                return;
++        }
++        
++        int cnt = 0;
++        int number = size / sizeof(DWORD);
++        
++        char* miOutput = NULL;
++        
++        if (!miMode) 
++                monitor_output("Remote process list:\n");
++        else
++        {
++                miOutput = (char*)malloc((number * 255) * sizeof(char));
++                strcpy(miOutput, "^done,processlist=[");
++        }
++        
++        for (cnt = 0; cnt < number; cnt++)
++        {
++                HMODULE hProcess = (HMODULE)OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pids[cnt]);
++                strcpy(name, "");
++                printf(name);
++                
++                imageFilename(hProcess, name, MAX_PATH);
++                
++                if (pids[cnt] > 4 && strcmp(name, "") != 0)
++                {
++                        char item[2048] = "";
++                        char tmp[24] = "0";
++                        itoa(pids[cnt], tmp, 10);
++                        strcat(item, tmp);
++                        strcat(item, "=");
++                        strcat(item, __basename(name));
++                        
++                        if (!miMode)
++                        {
++                                strcat(item, "\n");
++                                monitor_output(item);
++                        }
++                        else
++                        {
++                                strcat(miOutput, item);
++                                strcat(miOutput, ",");
++                        }
++                }
++                
++                CloseHandle(hProcess);
++        }
++        
++        if (miMode)
++        {
++                strcat(miOutput, "]\n");
++                monitor_output(miOutput);
++                free(miOutput);
++        }
++        
++        FreeLibrary(lib);
++        
++        free(pids);
++        free(name);     
++  }
++#endif                
++  else if (strncmp (mon, "set env ", 8) == 0)
++  {
++        char* envLine = mon + 8;
++        char* envName = strtok(envLine, "= ");
++        char* envValue = strtok(NULL, "= ");
++        if (envName && envValue)
++        {
++#ifdef _WIN32
++                SetEnvironmentVariable(envName, envValue);
++#else
++                setenv(envName, envValue, 1);
++#endif 
++                monitor_output("Target environment variable set (");
++                monitor_output(envName);
++                monitor_output(" = ");
++                monitor_output(envValue);
++                monitor_output(").\n");
++        }
++        else
++                monitor_output("Incorrect format for environment variable.\n");
++  }
++  else if (strncmp (mon, "cd ", 3) == 0)
++  {
++        char* dir = mon + 3;
++        if (strlen(dir) > 0)
++                chdir(dir);
++  }
++  else if (strcmp(mon, "pwd") == 0)
++  {
++        long size = _POSIX_PATH_MAX;
++        char* current_directory = (char*)malloc(size);          
++        getcwd(current_directory, size);
++        if (strlen(current_directory) > 0)
++        {
++                monitor_output(current_directory);
++                monitor_output("\n");
++        }
++        free(current_directory);
++  }
++  else if (strncmp (mon, "shell ", 6) == 0)
++  {
++        char* arg = mon + 6;
++        
++        if (strlen(arg) == 0)
++        {
++                monitor_output("Inferior shells are not supported.");
++                free(mon);
++                return;
++        }
++        
++        long size = _POSIX_PATH_MAX;
++        char* current_directory = (char*)malloc(size);  
++        getcwd(current_directory, size);
++
++        int rc = system (arg);
++        char msg[255];
++        if (rc == -1)
++        {
++                sprintf(msg, "Cannot execute '%s': %s.\n", arg, strerror(errno));
++                monitor_output(msg);
++        }
++        else if (rc != -1)
++        {
++                sprintf(msg, "'%s' exited with status %d.\n", arg, rc);
++                monitor_output(msg);
++        }
++
++        /* Make sure to return to the directory GDB thinks it is, in case the
++         shell command we just ran changed it.  */
++        chdir(current_directory);
++        free(current_directory);
++  }
+       else if (strcmp (mon, "set debug 0") == 0)
+       {
+         debug_threads = 0;
+@@ -1295,6 +1505,11 @@ handle_query (char *own_buf, int packet_
+   own_buf[0] = 0;
+ }
++#ifdef _POSIX_PATH_MAX_WAS_UNDEFINED
++#undef _POSIX_PATH_MAX
++#undef _POSIX_PATH_MAX_WAS_UNDEFINED
++#endif
++
+ /* Parse vCont packets.  */
+ void
+ handle_v_cont (char *own_buf)
+Index: gdb-7.0/gdb/gdbserver/win32-low.c
+===================================================================
+--- gdb-7.0.orig/gdb/gdbserver/win32-low.c     2009-07-04 11:13:28.000000000 -0700
++++ gdb-7.0/gdb/gdbserver/win32-low.c  2009-10-13 15:16:16.495396950 -0700
+@@ -38,7 +38,7 @@
+ #include <sys/cygwin.h>
+ #endif
+-#define LOG 0
++#define LOG 1
+ #define OUTMSG(X) do { printf X; fflush (stdout); } while (0)
+ #if LOG
+@@ -556,9 +556,9 @@ win32_create_inferior (char *program, ch
+     }
+   OUTMSG2 (("Command line is \"%s\"\n", args));
+-#ifdef CREATE_NEW_PROCESS_GROUP
++//#ifdef CREATE_NEW_PROCESS_GROUP
+   flags |= CREATE_NEW_PROCESS_GROUP;
+-#endif
++//#endif
+   ret = create_process (program, args, flags, &pi);
+   err = GetLastError ();
+@@ -699,8 +699,37 @@ win32_kill (int pid)
+   if (current_process_handle == NULL)
+     return -1;
+-  TerminateProcess (current_process_handle, 0);
+-  for (;;)
++      TerminateProcess (current_process_handle, 0);
++
++      // BKS - fix for terminating apps prior to their exit, lets go of execs.
++      winapi_DebugActiveProcessStop DebugActiveProcessStop = NULL;
++      winapi_DebugSetProcessKillOnExit DebugSetProcessKillOnExit = NULL;
++#ifdef _WIN32_WCE
++      HMODULE dll = GetModuleHandle (_T("COREDLL.DLL"));
++#else
++      HMODULE dll = GetModuleHandle (_T("KERNEL32.DLL"));
++#endif
++      DebugActiveProcessStop = GETPROCADDRESS (dll, DebugActiveProcessStop);
++      DebugSetProcessKillOnExit = GETPROCADDRESS (dll, DebugSetProcessKillOnExit);
++
++      if (DebugSetProcessKillOnExit != NULL
++              && DebugActiveProcessStop != NULL)
++      {
++              {
++                      struct thread_resume resume;
++                      resume.thread = -1;
++                      resume.step = 0;
++                      resume.sig = 0;
++                      resume.leave_stopped = 0;
++                      win32_resume (&resume);
++              }
++
++              DebugActiveProcessStop (current_process_id);
++              DebugSetProcessKillOnExit (FALSE);
++      }
++      // end BKS
++
++   for (;;)
+     {
+       if (!child_continue (DBG_CONTINUE, -1))
+       break;
+@@ -1207,6 +1236,7 @@ handle_exception (struct target_waitstat
+   ourstatus->kind = TARGET_WAITKIND_STOPPED;
++      //printf("handle exception....................%X\n", (unsigned int)code);
+   switch (code)
+     {
+     case EXCEPTION_ACCESS_VIOLATION:
+@@ -1217,7 +1247,13 @@ handle_exception (struct target_waitstat
+       OUTMSG2 (("STATUS_STACK_OVERFLOW"));
+       ourstatus->value.sig = TARGET_SIGNAL_SEGV;
+       break;
+-    case STATUS_FLOAT_DENORMAL_OPERAND:
++      // BKS
++      case STATUS_INVALID_HANDLE:
++      OUTMSG2 (("STATUS_INVALID_HANDLE"));
++        ourstatus->value.sig = TARGET_SIGNAL_TRAP;
++        break;
++      // BKS
++      case STATUS_FLOAT_DENORMAL_OPERAND:
+       OUTMSG2 (("STATUS_FLOAT_DENORMAL_OPERAND"));
+       ourstatus->value.sig = TARGET_SIGNAL_FPE;
+       break;
+Index: gdb-7.0/gdb/windows-nat.c
+===================================================================
+--- gdb-7.0.orig/gdb/windows-nat.c     2009-09-30 00:40:10.000000000 -0700
++++ gdb-7.0/gdb/windows-nat.c  2009-10-13 15:16:16.505397243 -0700
+@@ -1035,6 +1035,10 @@ handle_exception (struct target_waitstat
+       DEBUG_EXCEPTION_SIMPLE ("STATUS_STACK_OVERFLOW");
+       ourstatus->value.sig = TARGET_SIGNAL_SEGV;
+       break;
++      case STATUS_INVALID_HANDLE:
++        DEBUG_EXCEPTION_SIMPLE ("STATUS_INVALID_HANDLE");
++        ourstatus->value.sig = TARGET_SIGNAL_TRAP;
++        break;
+     case STATUS_FLOAT_DENORMAL_OPERAND:
+       DEBUG_EXCEPTION_SIMPLE ("STATUS_FLOAT_DENORMAL_OPERAND");
+       ourstatus->value.sig = TARGET_SIGNAL_FPE;
diff --git a/recipes/gdb/gdb-7.0/gdb-6.8-pr9638-ppc-canadian-configh.patch b/recipes/gdb/gdb-7.0/gdb-6.8-pr9638-ppc-canadian-configh.patch
new file mode 100644 (file)
index 0000000..83e85ba
--- /dev/null
@@ -0,0 +1,179 @@
+diff -urN gdb-6.8-pl1/sim/ppc/Makefile.in gdb-6.8-pl2/sim/ppc/Makefile.in
+--- gdb-6.8-pl1/sim/ppc/Makefile.in    2006-05-31 17:14:45.000000000 +0200
++++ gdb-6.8-pl2/sim/ppc/Makefile.in    2008-09-30 15:56:33.000000000 +0200
+@@ -61,7 +61,7 @@
+ AR = @AR@
+ AR_FLAGS = rc
+ CC = @CC@
+-CFLAGS = @CFLAGS@
++CFLAGS = @CFLAGS@ -DHAVE_CONFIG_H
+ CC_FOR_BUILD = @CC_FOR_BUILD@
+ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
+ BISON = bison
+@@ -115,8 +115,8 @@
+   $(DEVZERO_CFLAGS)
+ SIM_FPU_CFLAGS = @sim_fpu_cflags@
+-STD_CFLAGS    = $(CFLAGS) $(INLINE_CFLAGS) $(CONFIG_CFLAGS) $(WARNING_CFLAGS) $(SIM_CFLAGS) $(HDEFINES) $(TDEFINES) $(INCLUDES) $(INTL_CFLAGS) $(SIM_FPU_CFLAGS)
+-NOWARN_CFLAGS = $(CFLAGS) $(INLINE_CFLAGS) $(CONFIG_CFLAGS) $(SIM_CFLAGS) $(HDEFINES) $(TDEFINES) $(INCLUDES)  $(SIM_FPU_CFLAGS)
++STD_CFLAGS    = $(CFLAGS) -DHAVE_CONFIG_H $(INLINE_CFLAGS) $(CONFIG_CFLAGS) $(WARNING_CFLAGS) $(SIM_CFLAGS) $(HDEFINES) $(TDEFINES) $(INCLUDES) $(INTL_CFLAGS) $(SIM_FPU_CFLAGS)
++NOWARN_CFLAGS = $(CFLAGS) -DHAVE_CONFIG_H $(INLINE_CFLAGS) $(CONFIG_CFLAGS) $(SIM_CFLAGS) $(HDEFINES) $(TDEFINES) $(INCLUDES)  $(SIM_FPU_CFLAGS)
+ BUILD_CFLAGS  = $(CFLAGS_FOR_BUILD) $(INCLUDES) $(WARNING_CFLAGS)
+ BUILD_LDFLAGS =
+diff -urN gdb-6.8-orig/sim/ppc/basics.h gdb-6.8-pl1/sim/ppc/basics.h
+--- gdb-6.8-orig/sim/ppc/basics.h      1999-04-16 03:35:08.000000000 +0200
++++ gdb-6.8-pl1/sim/ppc/basics.h       2008-09-30 15:12:32.000000000 +0200
+@@ -86,7 +86,9 @@
+ /* Basic configuration */
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include "ppc-config.h"
+ #include "inline.h"
+diff -urN gdb-6.8-orig/sim/ppc/debug.c gdb-6.8-pl1/sim/ppc/debug.c
+--- gdb-6.8-orig/sim/ppc/debug.c       1999-04-16 03:35:08.000000000 +0200
++++ gdb-6.8-pl1/sim/ppc/debug.c        2008-09-30 15:12:27.000000000 +0200
+@@ -22,7 +22,9 @@
+ #ifndef _DEBUG_C_
+ #define _DEBUG_C_
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include "basics.h"
+ #ifdef HAVE_STDLIB_H
+diff -urN gdb-6.8-orig/sim/ppc/dgen.c gdb-6.8-pl1/sim/ppc/dgen.c
+--- gdb-6.8-orig/sim/ppc/dgen.c        1999-04-16 03:35:08.000000000 +0200
++++ gdb-6.8-pl1/sim/ppc/dgen.c 2008-09-30 15:12:22.000000000 +0200
+@@ -27,7 +27,9 @@
+ #include <ctype.h>
+ #include <stdarg.h>
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include "misc.h"
+ #include "lf.h"
+ #include "table.h"
+diff -urN gdb-6.8-orig/sim/ppc/filter.c gdb-6.8-pl1/sim/ppc/filter.c
+--- gdb-6.8-orig/sim/ppc/filter.c      1999-04-16 03:35:09.000000000 +0200
++++ gdb-6.8-pl1/sim/ppc/filter.c       2008-09-30 15:12:15.000000000 +0200
+@@ -21,7 +21,9 @@
+ #include <stdio.h>
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #ifdef HAVE_STRING_H
+ #include <string.h>
+diff -urN gdb-6.8-orig/sim/ppc/filter_filename.c gdb-6.8-pl1/sim/ppc/filter_filename.c
+--- gdb-6.8-orig/sim/ppc/filter_filename.c     1999-04-16 03:35:08.000000000 +0200
++++ gdb-6.8-pl1/sim/ppc/filter_filename.c      2008-09-30 15:12:11.000000000 +0200
+@@ -18,7 +18,9 @@
+  
+     */
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include "ppc-config.h"
+ #include "filter_filename.h"
+diff -urN gdb-6.8-orig/sim/ppc/igen.c gdb-6.8-pl1/sim/ppc/igen.c
+--- gdb-6.8-orig/sim/ppc/igen.c        2003-06-20 05:59:33.000000000 +0200
++++ gdb-6.8-pl1/sim/ppc/igen.c 2008-09-30 15:12:06.000000000 +0200
+@@ -25,7 +25,9 @@
+ #include "misc.h"
+ #include "lf.h"
+ #include "table.h"
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include "filter.h"
+diff -urN gdb-6.8-orig/sim/ppc/inline.c gdb-6.8-pl1/sim/ppc/inline.c
+--- gdb-6.8-orig/sim/ppc/inline.c      1999-04-16 03:35:10.000000000 +0200
++++ gdb-6.8-pl1/sim/ppc/inline.c       2008-09-30 15:11:58.000000000 +0200
+@@ -22,7 +22,9 @@
+ #ifndef _INLINE_C_
+ #define _INLINE_C_
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include "ppc-config.h"
+ #include "inline.h"
+diff -urN gdb-6.8-orig/sim/ppc/lf.c gdb-6.8-pl1/sim/ppc/lf.c
+--- gdb-6.8-orig/sim/ppc/lf.c  2002-05-30 17:07:06.000000000 +0200
++++ gdb-6.8-pl1/sim/ppc/lf.c   2008-09-30 15:33:35.000000000 +0200
+@@ -23,7 +23,9 @@
+ #include <stdarg.h>
+ #include <ctype.h>
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include "misc.h"
+ #include "lf.h"
+diff -urN gdb-6.8-orig/sim/ppc/misc.c gdb-6.8-pl1/sim/ppc/misc.c
+--- gdb-6.8-orig/sim/ppc/misc.c        1999-04-16 03:35:11.000000000 +0200
++++ gdb-6.8-pl1/sim/ppc/misc.c 2008-09-30 15:11:54.000000000 +0200
+@@ -23,7 +23,9 @@
+ #include <stdarg.h>
+ #include <ctype.h>
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include "misc.h"
+ #ifdef HAVE_STDLIB_H
+diff -urN gdb-6.8-orig/sim/ppc/misc.h gdb-6.8-pl1/sim/ppc/misc.h
+--- gdb-6.8-orig/sim/ppc/misc.h        2002-01-12 11:21:12.000000000 +0100
++++ gdb-6.8-pl1/sim/ppc/misc.h 2008-09-30 15:11:49.000000000 +0200
+@@ -21,7 +21,9 @@
+ /* Frustrating header junk */
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include <stdio.h>
+ #include <ctype.h>
+diff -urN gdb-6.8-orig/sim/ppc/sim-endian.c gdb-6.8-pl1/sim/ppc/sim-endian.c
+--- gdb-6.8-orig/sim/ppc/sim-endian.c  1999-04-16 03:35:11.000000000 +0200
++++ gdb-6.8-pl1/sim/ppc/sim-endian.c   2008-09-30 15:11:44.000000000 +0200
+@@ -22,7 +22,9 @@
+ #ifndef _SIM_ENDIAN_C_
+ #define _SIM_ENDIAN_C_
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include "basics.h"
+diff -urN gdb-6.8-orig/sim/ppc/table.c gdb-6.8-pl1/sim/ppc/table.c
+--- gdb-6.8-orig/sim/ppc/table.c       2002-01-12 11:21:12.000000000 +0100
++++ gdb-6.8-pl1/sim/ppc/table.c        2008-09-30 15:11:38.000000000 +0200
+@@ -25,7 +25,9 @@
+ #include <fcntl.h>
+ #include <ctype.h>
++#ifdef HAVE_CONFIG_H
+ #include "config.h"
++#endif
+ #include "misc.h"
+ #include "lf.h"
+ #include "table.h"
diff --git a/recipes/gdb/gdb-7.0/gdbserver-cflags-last.diff b/recipes/gdb/gdb-7.0/gdbserver-cflags-last.diff
new file mode 100644 (file)
index 0000000..57e78f6
--- /dev/null
@@ -0,0 +1,15 @@
+Index: gdb/gdbserver/Makefile.in
+===================================================================
+--- gdb/gdbserver/Makefile.in.orig     2009-07-31 08:23:20.000000000 -0700
++++ gdb/gdbserver/Makefile.in  2009-10-13 14:47:21.365401025 -0700
+@@ -89,8 +89,8 @@ WARN_CFLAGS = -Wall
+ CFLAGS = @CFLAGS@
+ # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
+-INTERNAL_CFLAGS =  $(WARN_CFLAGS) ${CFLAGS} ${GLOBAL_CFLAGS} \
+-      ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS}
++INTERNAL_CFLAGS =  $(WARN_CFLAGS) ${GLOBAL_CFLAGS} \
++      ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CFLAGS}
+ # LDFLAGS is specifically reserved for setting from the command line
+ # when running make.
diff --git a/recipes/gdb/gdb-canadian-sdk_7.0.bb b/recipes/gdb/gdb-canadian-sdk_7.0.bb
new file mode 100644 (file)
index 0000000..3b6eb2b
--- /dev/null
@@ -0,0 +1,11 @@
+require gdb-canadian-cross.inc
+LICENSE = "GPLv3"
+
+SRC_URI += "\
+           file://gdb-6.8-mingw-3.patch;patch=1 \
+           file://gdb-6.8-pr9638-ppc-canadian-configh.patch;patch=1 \
+           file://gdb-6.8-fix-compile-karmic.patch;patch=1 \
+           "
+do_stage() {
+       :
+}
diff --git a/recipes/gdb/gdb-cross-sdk_7.0.bb b/recipes/gdb/gdb-cross-sdk_7.0.bb
new file mode 100644 (file)
index 0000000..10e4b14
--- /dev/null
@@ -0,0 +1,13 @@
+require gdb-cross.inc
+LICENSE = "GPLv3"
+
+SRC_URI += "\
+            file://gdb-6.8-fix-compile-karmic.patch;patch=1"
+
+DEPENDS = "ncurses-sdk"
+
+inherit sdk
+
+do_stage() {
+       :
+}
diff --git a/recipes/gdb/gdb-cross_7.0.bb b/recipes/gdb/gdb-cross_7.0.bb
new file mode 100644 (file)
index 0000000..6883b7c
--- /dev/null
@@ -0,0 +1,7 @@
+require gdb-cross.inc
+LICENSE = "GPLv3"
+
+SRC_URI += " \
+            file://gdb-6.8-fix-compile-karmic.patch;patch=1"
+
+inherit cross
diff --git a/recipes/gdb/gdb_7.0.bb b/recipes/gdb/gdb_7.0.bb
new file mode 100644 (file)
index 0000000..9a46844
--- /dev/null
@@ -0,0 +1,5 @@
+require gdb.inc
+LICENSE = "GPLv3"
+
+SRC_URI += "\
+            file://gdb-6.8-fix-compile-karmic.patch;patch=1"
index e02f276..b98058f 100644 (file)
@@ -11,6 +11,8 @@ RRECOMMENDS_gdb_append_linux-gnueabi = " glibc-thread-db "
 
 inherit gettext
 
+FILESPATHPKG =. "gdb-${PV}:"
+
 SRC_URI += "file://kill_arm_map_symbols.patch;patch=1 \
             file://gdbserver-cflags-last.diff;patch=1;pnum=0"
 #FIXME    file://uclibc.patch;patch=1 \
diff --git a/recipes/gdb/gdbserver_7.0.bb b/recipes/gdb/gdbserver_7.0.bb
new file mode 100644 (file)
index 0000000..96de5e9
--- /dev/null
@@ -0,0 +1,5 @@
+require gdbserver.inc
+
+LICENSE = "GPLv3"
+
+PR = "${INC_PR}.0"