gdb, gdb-cross, gdb-cross-sdk 6.8 : Pull in a patch from Ubuntu for gcc-4.3
authorTom Rini <trini@embeddedalley.com>
Fri, 5 Dec 2008 00:45:25 +0000 (00:45 +0000)
committerTom Rini <trini@embeddedalley.com>
Fri, 5 Dec 2008 00:45:25 +0000 (00:45 +0000)
gcc-4.3 introduces new warnings for certain risky-in-some-situations
behaviors.  Previously we had just sed'd out -Werror from gcc-cross-sdk.
Now pull in a patch from Ubuntu to fix all these warnings and apply to all
gdb 6.8 variants.  Bump PR.

packages/gdb/gdb-6.8/gcc-4.3-build-error.patch [new file with mode: 0644]
packages/gdb/gdb-cross-sdk_6.8.bb
packages/gdb/gdb-cross_6.8.bb
packages/gdb/gdb_6.8.bb

diff --git a/packages/gdb/gdb-6.8/gcc-4.3-build-error.patch b/packages/gdb/gdb-6.8/gcc-4.3-build-error.patch
new file mode 100644 (file)
index 0000000..36e501a
--- /dev/null
@@ -0,0 +1,129 @@
+http://patches.ubuntu.com/g/gdb/extracted/gcc-4.3-build-error.patch
+
+--- gdb/cli/cli-cmds.c~        2008-06-24 16:07:25.000000000 +0200
++++ gdb/cli/cli-cmds.c 2008-06-24 16:22:31.000000000 +0200
+@@ -323,7 +323,8 @@
+ {
+   if (args)
+     error (_("The \"pwd\" command does not take an argument: %s"), args);
+-  getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
++  if (!getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)))
++    error (_("Unable to determine current directory"));
+   if (strcmp (gdb_dirbuf, current_directory) != 0)
+     printf_unfiltered (_("Working directory %s\n (canonically %s).\n"),
+--- gdb/linux-nat.c~   2008-01-29 23:47:20.000000000 +0100
++++ gdb/linux-nat.c    2008-06-24 16:18:57.000000000 +0200
+@@ -2876,7 +2876,8 @@
+       sprintf (fname1, "/proc/%lld/cmdline", pid);
+       if ((procfile = fopen (fname1, "r")) != NULL)
+       {
+-        fgets (buffer, sizeof (buffer), procfile);
++        if (!fgets (buffer, sizeof (buffer), procfile))
++          error(_("Unable to read '%s'"), fname1);
+         printf_filtered ("cmdline = '%s'\n", buffer);
+         fclose (procfile);
+       }
+--- gdb/inflow.c~      2008-01-01 23:53:11.000000000 +0100
++++ gdb/inflow.c       2008-06-24 16:32:10.000000000 +0200
+@@ -512,7 +512,7 @@
+ void
+ new_tty (void)
+ {
+-  int tty;
++  int tty, rv;
+   if (inferior_thisrun_terminal == 0)
+     return;
+@@ -545,17 +545,17 @@
+   if (tty != 0)
+     {
+       close (0);
+-      dup (tty);
++      rv = dup (tty);
+     }
+   if (tty != 1)
+     {
+       close (1);
+-      dup (tty);
++      rv = dup (tty);
+     }
+   if (tty != 2)
+     {
+       close (2);
+-      dup (tty);
++      rv = dup (tty);
+     }
+   if (tty > 2)
+     close (tty);
+--- gdb/mi/mi-cmd-env.c~       2008-01-01 23:53:14.000000000 +0100
++++ gdb/mi/mi-cmd-env.c        2008-06-24 16:23:25.000000000 +0200
+@@ -78,7 +78,8 @@
+      
+   /* Otherwise the mi level is 2 or higher.  */
+-  getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
++  if (!getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)))
++    error (_("Unable to determine current directory"));
+   ui_out_field_string (uiout, "cwd", gdb_dirbuf);
+   return MI_CMD_DONE;
+--- gdb/utils.c~       2008-01-01 23:53:13.000000000 +0100
++++ gdb/utils.c        2008-06-24 16:29:13.000000000 +0200
+@@ -688,6 +688,7 @@
+   static int dejavu;
+   int quit_p;
+   int dump_core_p;
++  int rv;
+   char *reason;
+   /* Don't allow infinite error/warning recursion.  */
+@@ -704,7 +705,7 @@
+       abort ();       /* NOTE: GDB has only three calls to abort().  */
+       default:
+       dejavu = 3;
+-      write (STDERR_FILENO, msg, sizeof (msg));
++      rv = write (STDERR_FILENO, msg, sizeof (msg));
+       exit (1);
+       }
+   }
+--- gdb/top.c~ 2008-01-01 23:53:13.000000000 +0100
++++ gdb/top.c  2008-06-24 16:26:51.000000000 +0200
+@@ -1628,7 +1628,8 @@
+   /* Run the init function of each source file */
+-  getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
++  if (!getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)))
++    error (_("Unable to determine current directory"));
+   current_directory = gdb_dirbuf;
+ #ifdef __MSDOS__
+--- gdb/ui-file.c~     2008-01-01 23:53:13.000000000 +0100
++++ gdb/ui-file.c      2008-06-24 16:30:16.000000000 +0200
+@@ -477,11 +477,12 @@
+ static void
+ stdio_file_write (struct ui_file *file, const char *buf, long length_buf)
+ {
++  int rv;
+   struct stdio_file *stdio = ui_file_data (file);
+   if (stdio->magic != &stdio_file_magic)
+     internal_error (__FILE__, __LINE__,
+                   _("stdio_file_write: bad magic number"));
+-  fwrite (buf, length_buf, 1, stdio->file);
++  rv = fwrite (buf, length_buf, 1, stdio->file);
+ }
+ static void
+--- gdb/main.c~        2008-06-24 16:07:25.000000000 +0200
++++ gdb/main.c 2008-06-24 16:25:05.000000000 +0200
+@@ -188,7 +188,8 @@
+   line[0] = '\0';             /* Terminate saved (now empty) cmd line */
+   instream = stdin;
+-  getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
++  if (!getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)))
++    error (_("Unable to determine current directory"));
+   current_directory = gdb_dirbuf;
+   gdb_stdout = stdio_fileopen (stdout);
index be5c480..6aed03d 100644 (file)
@@ -1,22 +1,12 @@
 require gdb-cross.inc
 
+SRC_URI += "file://gcc-4.3-build-error.patch;patch=1;pnum=0"
+
 DEPENDS = "ncurses-sdk"
 
 inherit sdk
 
-PR = "r1"
-
-do_configure_prepend() {
-       for i in $(find ${S} -name "warning*m4") ; do 
-               sed -i -e s:-Werror::g $i 
-       done
-    for i in $(find ${S} -name "configure.ac") ; do
-               sed -i -e s:-Werror::g $i
-       done
-       for i in $(find ${S} -name "configure") ; do
-               sed -i -e s:-Werror::g $i
-       done
-}
+PR = "r2"
 
 do_stage() {
        :
index f63f144..664ab5e 100644 (file)
@@ -1,4 +1,7 @@
 require gdb-cross.inc
+
+SRC_URI += "file://gcc-4.3-build-error.patch;patch=1;pnum=0"
+
 inherit cross
 
-PR = "r2"
+PR = "r3"
index be40f3f..a969651 100644 (file)
@@ -1,3 +1,5 @@
 require gdb.inc
 
-PR = "r2"
+SRC_URI += "file://gcc-4.3-build-error.patch;patch=1;pnum=0"
+
+PR = "r3"