change log for rtems (2010-08-26)

rtems-vc at rtems.org rtems-vc at rtems.org
Fri Aug 27 04:44:22 UTC 2010


 *ccj*:
2010-08-26      Chris Johns <chrisj at rtems.org>

        * Makefile.am: Add bspinit.c from the shared BSP files.

M  1.155  c/src/lib/libbsp/sparc/erc32/ChangeLog
M   1.52  c/src/lib/libbsp/sparc/erc32/Makefile.am
M   1.74  c/src/lib/libbsp/sparc/leon2/ChangeLog
M   1.25  c/src/lib/libbsp/sparc/leon2/Makefile.am
M   1.98  c/src/lib/libbsp/sparc/leon3/ChangeLog
M   1.29  c/src/lib/libbsp/sparc/leon3/Makefile.am

diff -u rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.154 rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.155
--- rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.154	Tue Jun 29 13:53:16 2010
+++ rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog	Thu Aug 26 01:06:36 2010
@@ -1,3 +1,7 @@
+2010-08-26	Chris Johns <chrisj at rtems.org>
+
+	* Makefile.am: Add bspinit.c from the shared BSP files.
+
 2010-06-29	Joel Sherrill <joel.sherrill at oarcorp.com>
 
 	* configure.ac: Remove AC_CHECK_SIZEOF([void *]).

diff -u rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am:1.51 rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am:1.52
--- rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am:1.51	Tue May 11 02:40:39 2010
+++ rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am	Thu Aug 26 01:06:36 2010
@@ -37,7 +37,7 @@
 libbsp_a_SOURCES += ../../shared/bspclean.c ../../shared/bsplibc.c \
     ../../shared/bsppredriverhook.c ../../sparc/shared/bspgetworkarea.c \
     ../../sparc/shared/bsppretaskinghook.c ../../shared/bsppost.c \
-    ../../shared/bspstart.c ../../shared/bootcard.c \
+    ../../shared/bspstart.c ../../shared/bootcard.c ../../shared/bspinit.c \
     ../../shared/sbrk.c startup/setvec.c startup/spurious.c \
     startup/erc32mec.c startup/boardinit.S startup/bspidle.c
 # gnatsupp

diff -u rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.73 rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.74
--- rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.73	Tue Jun 29 13:53:18 2010
+++ rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog	Thu Aug 26 01:06:54 2010
@@ -1,3 +1,7 @@
+2010-08-26	Chris Johns <chrisj at rtems.org>
+
+	* Makefile.am: Add bspinit.c from the shared BSP files.
+
 2010-06-29	Joel Sherrill <joel.sherrill at oarcorp.com>
 
 	* configure.ac: Remove AC_CHECK_SIZEOF([void *]).

diff -u rtems/c/src/lib/libbsp/sparc/leon2/Makefile.am:1.24 rtems/c/src/lib/libbsp/sparc/leon2/Makefile.am:1.25
--- rtems/c/src/lib/libbsp/sparc/leon2/Makefile.am:1.24	Tue May 11 02:41:00 2010
+++ rtems/c/src/lib/libbsp/sparc/leon2/Makefile.am	Thu Aug 26 01:06:55 2010
@@ -58,7 +58,8 @@
     ../../shared/bsppost.c ../../shared/bsppredriverhook.c \
     startup/bspstart.c ../../sparc/shared/bsppretaskinghook.c \
     ../../sparc/shared/bspgetworkarea.c ../../shared/bootcard.c \
-    ../../shared/sbrk.c startup/setvec.c startup/spurious.c startup/bspidle.c
+    ../../shared/sbrk.c startup/setvec.c startup/spurious.c startup/bspidle.c \
+    ../../shared/bspinit.c
 # gnatsupp
 libbsp_a_SOURCES += gnatsupp/gnatsupp.c ../../sparc/shared/gnatcommon.c
 # console

diff -u rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.97 rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.98
--- rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.97	Tue Jun 29 13:53:19 2010
+++ rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog	Thu Aug 26 01:07:09 2010
@@ -1,3 +1,7 @@
+2010-08-26	Chris Johns <chrisj at rtems.org>
+
+	* Makefile.am: Add bspinit.c from the shared BSP files.
+
 2010-06-29	Joel Sherrill <joel.sherrill at oarcorp.com>
 
 	* configure.ac: Remove AC_CHECK_SIZEOF([void *]).

diff -u rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am:1.28 rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am:1.29
--- rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am:1.28	Mon May 24 10:05:19 2010
+++ rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am	Thu Aug 26 01:07:10 2010
@@ -41,7 +41,8 @@
     ../../shared/bsppost.c ../../shared/bootcard.c startup/bspstart.c \
     ../../sparc/shared/bsppretaskinghook.c ../../shared/bsppredriverhook.c \
     ../../sparc/shared/bspgetworkarea.c ../../shared/sbrk.c startup/setvec.c \
-    startup/spurious.c startup/bspidle.S
+    startup/spurious.c startup/bspidle.S \
+    ../../shared/bspinit.c
 # gnatsupp
 libbsp_a_SOURCES += gnatsupp/gnatsupp.c ../../sparc/shared/gnatcommon.c
 # amba


 *ccj*:
2010-08-26      Chris Johns <chrisj at rtems.org>

        * libfs/src/defaults/default_evaluate_link.c: Remove assignment.

        * libfs/src/rfs/rtems-rfs-file.c: Check then load the inode is not
        present on the close.

        * libfs/src/rfs/rtems-rfs-format.c: Initialise the buffer chain.

M 1.2605  cpukit/ChangeLog
M    1.6  cpukit/libfs/src/rfs/rtems-rfs-file.c
M    1.7  cpukit/libfs/src/rfs/rtems-rfs-format.c

diff -u rtems/cpukit/ChangeLog:1.2604 rtems/cpukit/ChangeLog:1.2605
--- rtems/cpukit/ChangeLog:1.2604	Wed Aug 25 17:25:17 2010
+++ rtems/cpukit/ChangeLog	Thu Aug 26 01:31:14 2010
@@ -1,3 +1,12 @@
+2010-08-26	Chris Johns <chrisj at rtems.org>
+
+	* libfs/src/defaults/default_evaluate_link.c: Remove assignment.
+
+	* libfs/src/rfs/rtems-rfs-file.c: Check then load the inode is not
+	present on the close.
+	
+	* libfs/src/rfs/rtems-rfs-format.c: Initialise the buffer chain.
+	
 2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
 
 	Coverity Id 93/NO_EFFECT

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.5 rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.6
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.5	Wed Jun 16 12:44:37 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c	Thu Aug 26 01:31:15 2010
@@ -158,18 +158,24 @@
 
   if (handle->shared->references == 0)
   {
-    /*
-     * @todo This could be clever and only update if different.
-     */
-    rtems_rfs_inode_set_atime (&handle->shared->inode,
-                               handle->shared->atime);
-    rtems_rfs_inode_set_mtime (&handle->shared->inode,
-                               handle->shared->mtime);
-    rtems_rfs_inode_set_ctime (&handle->shared->inode,
-                               handle->shared->ctime);
-    handle->shared->map.size.count = handle->shared->size.count;
-    handle->shared->map.size.offset = handle->shared->size.offset;
+    if (!rtems_rfs_inode_is_loaded (&handle->shared->inode))
+      rrc = rtems_rfs_inode_load (fs, &handle->shared->inode);
 
+    if (rrc == 0)
+    {
+      /*
+       * @todo This could be clever and only update if different.
+       */
+      rtems_rfs_inode_set_atime (&handle->shared->inode,
+                                 handle->shared->atime);
+      rtems_rfs_inode_set_mtime (&handle->shared->inode,
+                                 handle->shared->mtime);
+      rtems_rfs_inode_set_ctime (&handle->shared->inode,
+                                 handle->shared->ctime);
+      handle->shared->map.size.count = handle->shared->size.count;
+      handle->shared->map.size.offset = handle->shared->size.offset;
+    }
+    
     rc = rtems_rfs_block_map_close (fs, &handle->shared->map);
     if (rc > 0)
     {

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c:1.6 rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c:1.7
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c:1.6	Wed Jun 16 22:46:53 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c	Thu Aug 26 01:31:15 2010
@@ -538,6 +538,7 @@
   
   memset (&fs, 0, sizeof (rtems_rfs_file_system));
 
+  rtems_chain_initialize_empty (&fs.buffers);
   rtems_chain_initialize_empty (&fs.release);
   rtems_chain_initialize_empty (&fs.release_modified);
   rtems_chain_initialize_empty (&fs.file_shares);


 *ccj* (on branch rtems-4-10-branch):
2010-08-26      Chris Johns <chrisj at rtems.org>

        * libfs/src/rfs/rtems-rfs-file.c: Check then load the inode if not
        present on the close.

        * libfs/src/rfs/rtems-rfs-format.c: Initialise the buffer chain.

M 1.2346.2.63  cpukit/ChangeLog
M 1.4.2.2  cpukit/libfs/src/rfs/rtems-rfs-file.c
M 1.5.2.2  cpukit/libfs/src/rfs/rtems-rfs-format.c

diff -u rtems/cpukit/ChangeLog:1.2346.2.62 rtems/cpukit/ChangeLog:1.2346.2.63
--- rtems/cpukit/ChangeLog:1.2346.2.62	Wed Aug 11 07:17:36 2010
+++ rtems/cpukit/ChangeLog	Thu Aug 26 01:35:20 2010
@@ -1,3 +1,10 @@
+2010-08-26      Chris Johns <chrisj at rtems.org>
+
+        * libfs/src/rfs/rtems-rfs-file.c: Check then load the inode is not
+        present on the close.
+
+        * libfs/src/rfs/rtems-rfs-format.c: Initialise the buffer chain.
+
 2010-08-11	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* sapi/include/confdefs.h: Include <rtems.h> to resolve all

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.4.2.1 rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.4.2.2
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.4.2.1	Wed Jun 16 12:43:57 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c	Thu Aug 26 01:35:22 2010
@@ -158,18 +158,24 @@
 
   if (handle->shared->references == 0)
   {
-    /*
-     * @todo This could be clever and only update if different.
-     */
-    rtems_rfs_inode_set_atime (&handle->shared->inode,
-                               handle->shared->atime);
-    rtems_rfs_inode_set_mtime (&handle->shared->inode,
-                               handle->shared->mtime);
-    rtems_rfs_inode_set_ctime (&handle->shared->inode,
-                               handle->shared->ctime);
-    handle->shared->map.size.count = handle->shared->size.count;
-    handle->shared->map.size.offset = handle->shared->size.offset;
+    if (!rtems_rfs_inode_is_loaded (&handle->shared->inode))
+      rrc = rtems_rfs_inode_load (fs, &handle->shared->inode);
 
+    if (rrc == 0)
+    {
+      /*
+       * @todo This could be clever and only update if different.
+       */
+      rtems_rfs_inode_set_atime (&handle->shared->inode,
+                                 handle->shared->atime);
+      rtems_rfs_inode_set_mtime (&handle->shared->inode,
+                                 handle->shared->mtime);
+      rtems_rfs_inode_set_ctime (&handle->shared->inode,
+                                 handle->shared->ctime);
+      handle->shared->map.size.count = handle->shared->size.count;
+      handle->shared->map.size.offset = handle->shared->size.offset;
+    }
+    
     rc = rtems_rfs_block_map_close (fs, &handle->shared->map);
     if (rc > 0)
     {

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c:1.5.2.1 rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c:1.5.2.2
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c:1.5.2.1	Wed Jun 16 22:47:00 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c	Thu Aug 26 01:35:22 2010
@@ -538,6 +538,7 @@
   
   memset (&fs, 0, sizeof (rtems_rfs_file_system));
 
+  rtems_chain_initialize_empty (&fs.buffers);
   rtems_chain_initialize_empty (&fs.release);
   rtems_chain_initialize_empty (&fs.release_modified);
   rtems_chain_initialize_empty (&fs.file_shares);


 *ccj*:
2010-08-27      Chris Johns <chrisj at rtems.org>

        * console/console.c: Add baudrate support to the --console command
        line option. You can now do '--console=com1,115200'.

M  1.261  c/src/lib/libbsp/i386/pc386/ChangeLog
M   1.49  c/src/lib/libbsp/i386/pc386/console/console.c

diff -u rtems/c/src/lib/libbsp/i386/pc386/ChangeLog:1.260 rtems/c/src/lib/libbsp/i386/pc386/ChangeLog:1.261
--- rtems/c/src/lib/libbsp/i386/pc386/ChangeLog:1.260	Fri Jul 23 07:24:05 2010
+++ rtems/c/src/lib/libbsp/i386/pc386/ChangeLog	Thu Aug 26 23:38:37 2010
@@ -1,3 +1,8 @@
+2010-08-27	Chris Johns <chrisj at rtems.org>
+
+	* console/console.c: Add baudrate support to the --console command
+	line option. You can now do '--console=com1,115200'.
+
 2010-07-23	Vinu Rajashekhar <vinutheraj at gmail.com>
 
 	* start/start.S: Replace the call to _return_to_monitor by

diff -u rtems/c/src/lib/libbsp/i386/pc386/console/console.c:1.48 rtems/c/src/lib/libbsp/i386/pc386/console/console.c:1.49
--- rtems/c/src/lib/libbsp/i386/pc386/console/console.c:1.48	Mon Apr 12 11:32:54 2010
+++ rtems/c/src/lib/libbsp/i386/pc386/console/console.c	Thu Aug 26 23:38:37 2010
@@ -68,7 +68,7 @@
 int BSPPrintkPort  = BSP_CONSOLE_PORT_CONSOLE;
 #endif
 
-int BSPBaseBaud    = 115200;
+int BSPBaseBaud    = 9600;
 
 extern BSP_polling_getchar_function_type BSP_poll_char;
 extern int getch( void );
@@ -151,32 +151,52 @@
 void
 BSP_console_select(void)
 {
-  const char* mode;
+  const char* opt;
 
   /*
-   * Check the command line for the type of mode
-   * the console is.
+   * Check the command line for the type of mode the console is.
    */
-  mode = bsp_cmdline_arg ("--console=");
+  opt = bsp_cmdline_arg ("--console=");
 
-  if (mode)
+  if (opt)
   {
-    mode += sizeof ("--console=") - 1;
-    if (strncmp (mode, "console", sizeof ("console") - 1) == 0)
+    const char* comma;
+    
+    opt += sizeof ("--console=") - 1;
+    if (strncmp (opt, "console", sizeof ("console") - 1) == 0)
     {
       BSPConsolePort = BSP_CONSOLE_PORT_CONSOLE;
       BSPPrintkPort  = BSP_CONSOLE_PORT_CONSOLE;
     }
-    else if (strncmp (mode, "com1", sizeof ("com1") - 1) == 0)
+    else if (strncmp (opt, "com1", sizeof ("com1") - 1) == 0)
     {
       BSPConsolePort = BSP_UART_COM1;
       BSPPrintkPort  = BSP_UART_COM1;
     }
-    else if (strncmp (mode, "com2", sizeof ("com2") - 1) == 0)
+    else if (strncmp (opt, "com2", sizeof ("com2") - 1) == 0)
     {
       BSPConsolePort = BSP_UART_COM2;
       BSPPrintkPort  = BSP_UART_COM2;
     }
+
+    comma = strchr (opt, ',');
+
+    if (comma)
+    {
+      comma += 1;
+      if (strncmp (opt, "115200", sizeof ("115200") - 1) == 0)
+        BSPBaseBaud = 115200;
+      else if (strncmp (opt, "57600", sizeof ("57600") - 1) == 0)
+        BSPBaseBaud = 57600;
+      else if (strncmp (opt, "38400", sizeof ("38400") - 1) == 0)
+        BSPBaseBaud = 38400;
+      else if (strncmp (opt, "19200", sizeof ("19200") - 1) == 0)
+        BSPBaseBaud = 19200;
+      else if (strncmp (opt, "9600", sizeof ("9600") - 1) == 0)
+        BSPBaseBaud = 9600;
+      else if (strncmp (opt, "4800", sizeof ("4800") - 1) == 0)
+        BSPBaseBaud = 9600;
+    }
   }
 
   if ( BSP_runtime_console_select )
@@ -267,8 +287,8 @@
       /*
        * Do device-specific initialization
        */
-      /* 9600-8-N-1 */
-      BSP_uart_init(BSPConsolePort, 9600, CHR_8_BITS, 0, 0, 0);
+      /* BSPBaseBaud-8-N-1 */
+      BSP_uart_init(BSPConsolePort, BSPBaseBaud, CHR_8_BITS, 0, 0, 0);
 
       /* Set interrupt handler */
       if(BSPConsolePort == BSP_UART_COM1)
@@ -301,11 +321,11 @@
 
       if(BSPConsolePort == BSP_UART_COM1)
 	{
-	  printk("Initialized console on port COM1 9600-8-N-1\n\n");
+	  printk("Initialized console on port COM1 %d-8-N-1\n\n", BSPBaseBaud);
 	}
       else
 	{
-	  printk("Initialized console on port COM2 9600-8-N-1\n\n");
+	  printk("Initialized console on port COM2 %d-8-N-1\n\n", BSPBaseBaud);
 	}
   }
 
@@ -489,7 +509,7 @@
 
   baud = rtems_termios_baud_to_number(t->c_cflag & CBAUD);
   if ( baud > 115200 )
-    rtems_fatal_error_occurred (RTEMS_INTERNAL_ERROR);
+    return RTEMS_INVALID_NUMBER;
 
   if (t->c_cflag & PARENB) {
     /* Parity is enabled */


 *sh*:
2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>

	CID 113/SECURE_CODING
	* libblock/src/media-path.c: Avoid strcpy().  Style.  Use assert() to
	avoid dead code.

M 1.2592  cpukit/ChangeLog
M    1.2  cpukit/libblock/src/media-path.c

diff -u rtems/cpukit/ChangeLog:1.2591 rtems/cpukit/ChangeLog:1.2592
--- rtems/cpukit/ChangeLog:1.2591	Tue Aug 24 09:29:54 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 03:26:21 2010
@@ -1,3 +1,9 @@
+2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	CID 113/SECURE_CODING
+	* libblock/src/media-path.c: Avoid strcpy().  Style.  Use assert() to
+	avoid dead code.
+
 2010-08-24	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	PR 1673/cpukit

diff -u rtems/cpukit/libblock/src/media-path.c:1.1 rtems/cpukit/libblock/src/media-path.c:1.2
--- rtems/cpukit/libblock/src/media-path.c:1.1	Fri Aug 13 07:40:16 2010
+++ rtems/cpukit/libblock/src/media-path.c	Wed Aug 25 03:26:21 2010
@@ -24,22 +24,22 @@
 #include <stdlib.h>
 #include <string.h>
 #include <inttypes.h>
+#include <assert.h>
 
 #include <rtems/media.h>
 
-char *rtems_media_create_path(const char *prefix, const char *name, rtems_device_major_number major)
+char *rtems_media_create_path(
+  const char *prefix,
+  const char *name,
+  rtems_device_major_number major
+)
 {
-  size_t const len = strlen(prefix) + 1 + strlen(name) + 1 + 10 + 1;
-  char *const s = malloc(len);
+  size_t const size = strlen(prefix) + 1 + strlen(name) + 1 + 10 + 1;
+  char *const s = malloc(size);
 
   if (s != NULL) {
-    int rv = snprintf(s, len, "%s/%s-%" PRIu32, prefix, name, major);
-
-    if (rv >= (int) len) {
-      free(s);
-
-      return NULL;
-    }
+    int rv = snprintf(s, size, "%s/%s-%" PRIu32, prefix, name, major);
+    assert(rv < (int) size);
   }
 
   return s;
@@ -50,32 +50,30 @@
   const char *const name_try = strrchr(path, '/');
   const char *const name = (name_try == NULL) ? path : name_try + 1;
   size_t const new_prefix_len = strlen(new_prefix);
-  size_t const name_len = strlen(name);
-  size_t const len = new_prefix_len + 1 + name_len + 1;
-  char *const s =  malloc(len);
+  size_t const name_size = strlen(name) + 1;
+  size_t const size = new_prefix_len + 1 + name_size;
+  char *const s = malloc(size);
 
   if (s != NULL) {
-    strcpy(s, new_prefix);
-    strcpy(s + new_prefix_len, "/");
-    strcpy(s + new_prefix_len + 1, name);
+    memcpy(s, new_prefix, new_prefix_len);
+    s [new_prefix_len] = '/';
+    memcpy(s + new_prefix_len + 1, name, name_size);
   }
 
   return s;
 }
 
-char *rtems_media_append_minor(const char *path, rtems_device_minor_number minor)
+char *rtems_media_append_minor(
+  const char *path,
+  rtems_device_minor_number minor
+)
 {
-  size_t const len = strlen(path) + 1 + 10 + 1;
-  char *const s = malloc(len);
+  size_t const size = strlen(path) + 1 + 10 + 1;
+  char *const s = malloc(size);
 
   if (s != NULL) {
-    int rv = snprintf(s, len, "%s-%" PRIu32, path, minor);
-
-    if (rv >= (int) len) {
-      free(s);
-
-      return NULL;
-    }
+    int rv = snprintf(s, size, "%s-%" PRIu32, path, minor);
+    assert(rv < (int) size);
   }
 
   return s;


 *sh*:
2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>

	CID 114/SECURE_CODING
	* libblock/src/media.c: Avoid strcpy().

M 1.2593  cpukit/ChangeLog
M    1.3  cpukit/libblock/src/media.c

diff -u rtems/cpukit/ChangeLog:1.2592 rtems/cpukit/ChangeLog:1.2593
--- rtems/cpukit/ChangeLog:1.2592	Wed Aug 25 03:26:21 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 03:31:42 2010
@@ -1,5 +1,10 @@
 2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	CID 114/SECURE_CODING
+	* libblock/src/media.c: Avoid strcpy().
+
+2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	CID 113/SECURE_CODING
 	* libblock/src/media-path.c: Avoid strcpy().  Style.  Use assert() to
 	avoid dead code.

diff -u rtems/cpukit/libblock/src/media.c:1.2 rtems/cpukit/libblock/src/media.c:1.3
--- rtems/cpukit/libblock/src/media.c:1.2	Fri Aug 13 07:50:56 2010
+++ rtems/cpukit/libblock/src/media.c	Wed Aug 25 03:31:43 2010
@@ -244,7 +244,7 @@
 
     item->parent = parent;
     item->disk_path = (char *) item + sizeof(*item);
-    strcpy(item->disk_path, disk_path);
+    memcpy(item->disk_path, disk_path, disk_path_size);
     rtems_chain_append(&media_item_chain, &item->node);
   }
 }


 *sh*:
2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* libblock/include/rtems/media.h, libblock/src/media-server.c: Use
	chains instead of a message queue.

M 1.2594  cpukit/ChangeLog
M    1.2  cpukit/libblock/include/rtems/media.h
M    1.2  cpukit/libblock/src/media-server.c

diff -u rtems/cpukit/ChangeLog:1.2593 rtems/cpukit/ChangeLog:1.2594
--- rtems/cpukit/ChangeLog:1.2593	Wed Aug 25 03:31:42 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 03:44:13 2010
@@ -1,5 +1,10 @@
 2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* libblock/include/rtems/media.h, libblock/src/media-server.c: Use
+	chains instead of a message queue.
+
+2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	CID 114/SECURE_CODING
 	* libblock/src/media.c: Avoid strcpy().
 

diff -u rtems/cpukit/libblock/include/rtems/media.h:1.1 rtems/cpukit/libblock/include/rtems/media.h:1.2
--- rtems/cpukit/libblock/include/rtems/media.h:1.1	Fri Aug 13 07:40:16 2010
+++ rtems/cpukit/libblock/include/rtems/media.h	Wed Aug 25 03:44:14 2010
@@ -387,9 +387,6 @@
  * It creates a server task with the @a priority, @a stack_size, @a modes, and
  * @a attributes parameters.
  *
- * A message queue will be used for communication with the server task which
- * may buffer up to @a message_count messages.
- *
  * Calling this function more than once will have no effects.  There is no
  * protection against concurrent access.
  *
@@ -400,8 +397,7 @@
   rtems_task_priority priority,
   size_t stack_size,
   rtems_mode modes,
-  rtems_attribute attributes,
-  uint32_t message_count
+  rtems_attribute attributes
 );
 
 /**
@@ -410,8 +406,8 @@
  * @see See rtems_media_post_event().
  *
  * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_UNSATISFIED Message queue is full.
- * @retval RTEMS_NO_MEMORY Not enough memory for the message.
+ * @retval RTEMS_NO_MEMORY Not enough resources to notify the media server.
+ * @retval RTEMS_NOT_CONFIGURED Media server is not initialized.
  */
 rtems_status_code rtems_media_server_post_event(
   rtems_media_event event,

diff -u rtems/cpukit/libblock/src/media-server.c:1.1 rtems/cpukit/libblock/src/media-server.c:1.2
--- rtems/cpukit/libblock/src/media-server.c:1.1	Fri Aug 13 07:40:16 2010
+++ rtems/cpukit/libblock/src/media-server.c	Wed Aug 25 03:44:14 2010
@@ -21,91 +21,83 @@
  */
 
 #include <string.h>
-#include <stdio.h>
 #include <stdlib.h>
+#include <assert.h>
 
 #include <rtems.h>
 #include <rtems/chain.h>
-
 #include <rtems/media.h>
 
+#define EVENT RTEMS_EVENT_13
+
 typedef struct {
+  rtems_chain_node node;
   rtems_media_event event;
-  char *src;
+  const char *src;
   rtems_media_worker worker;
-  void *arg;
-} media_server_event;
+  void *worker_arg;
+} message;
+
+static RTEMS_CHAIN_DEFINE_EMPTY(message_chain);
 
-static rtems_id message_queue_id = RTEMS_ID_NONE;
+static rtems_id server_id = RTEMS_ID_NONE;
 
-static void rtems_media_server(rtems_task_argument arg __attribute__((unused)))
+static void media_server(rtems_task_argument arg __attribute__((unused)))
 {
   rtems_status_code sc = RTEMS_SUCCESSFUL;
 
   while (true) {
-    media_server_event msg;
-    size_t msg_size = sizeof(msg);
+    message *msg = NULL;
 
-    sc = rtems_message_queue_receive(
-      message_queue_id,
-      &msg,
-      &msg_size,
-      RTEMS_WAIT,
-      RTEMS_NO_TIMEOUT
+    sc = rtems_chain_get_with_wait(
+      &message_chain,
+      EVENT,
+      RTEMS_NO_TIMEOUT,
+      (rtems_chain_node **) &msg
     );
-    if (sc != RTEMS_SUCCESSFUL) {
-      break;
-    }
+    assert(sc == RTEMS_SUCCESSFUL);
+    assert(msg != NULL);
 
-    rtems_media_post_event(msg.event, msg.src, NULL, msg.worker, msg.arg);
+    rtems_media_post_event(
+      msg->event,
+      msg->src,
+      NULL,
+      msg->worker,
+      msg->worker_arg
+    );
 
-    free(msg.src);
+    free(msg);
   }
-
-  rtems_task_delete(RTEMS_SELF);
 }
 
 rtems_status_code rtems_media_server_initialize(
   rtems_task_priority priority,
   size_t stack_size,
   rtems_mode modes,
-  rtems_attribute attributes,
-  uint32_t message_count
+  rtems_attribute attributes
 )
 {
   rtems_status_code sc = RTEMS_SUCCESSFUL;
-  rtems_id task_id = RTEMS_ID_NONE;
 
-  if (message_queue_id == RTEMS_ID_NONE) {
+  if (server_id == RTEMS_ID_NONE) {
     sc = rtems_media_initialize();
     if (sc != RTEMS_SUCCESSFUL) {
       goto error;
     }
 
-    sc = rtems_message_queue_create(
-      rtems_build_name('M', 'D', 'I', 'A'),
-      message_count,
-      sizeof(media_server_event),
-      RTEMS_DEFAULT_ATTRIBUTES,
-      &message_queue_id
-    );
-    if (sc != RTEMS_SUCCESSFUL) {
-      goto error;
-    }
-
     sc = rtems_task_create(
       rtems_build_name('M', 'D', 'I', 'A'),
       priority,
       stack_size,
       modes,
       attributes,
-      &task_id
+      &server_id
     );
     if (sc != RTEMS_SUCCESSFUL) {
       goto error;
     }
 
-    sc = rtems_task_start(task_id, rtems_media_server, 0);
+    sc = rtems_task_start(server_id, media_server, 0);
     if (sc != RTEMS_SUCCESSFUL) {
       goto error;
     }
@@ -115,12 +107,10 @@
 
 error:
 
-  if (task_id != RTEMS_ID_NONE) {
-    rtems_task_delete(task_id);
+  if (server_id != RTEMS_ID_NONE) {
+    rtems_task_delete(server_id);
   }
 
-  rtems_message_queue_delete(message_queue_id);
-
   return RTEMS_NO_MEMORY;
 }
 
@@ -128,31 +118,35 @@
   rtems_media_event event,
   const char *src,
   rtems_media_worker worker,
-  void *arg
+  void *worker_arg
 )
 {
   rtems_status_code sc = RTEMS_SUCCESSFUL;
-  media_server_event msg = {
-    .event = event,
-    .src = strdup(src),
-    .worker = worker,
-    .arg = arg
-  };
+  size_t src_size = strlen(src) + 1;
+  message *msg = malloc(sizeof(*msg) + src_size);
 
-  if (msg.src == NULL) {
-    return RTEMS_NO_MEMORY;
-  }
+  if (msg != NULL) {
+    char *s = (char *) msg + sizeof(*msg);
 
-  sc = rtems_message_queue_send(
-    message_queue_id,
-    &msg,
-    sizeof(msg)
-  );
-  if (sc != RTEMS_SUCCESSFUL) {
-    free(msg.src);
+    memcpy(s, src, src_size);
 
-    return RTEMS_UNSATISFIED;
+    msg->event = event;
+    msg->src = s;
+    msg->worker = worker;
+    msg->worker_arg = worker_arg;
+
+    sc = rtems_chain_append_with_notification(
+      &message_chain,
+      &msg->node,
+      server_id,
+      EVENT
+    );
+    if (sc != RTEMS_SUCCESSFUL) {
+      sc = RTEMS_NOT_CONFIGURED;
+    }
+  } else {
+    sc = RTEMS_NO_MEMORY;
   }
 
-  return RTEMS_SUCCESSFUL;
+  return sc;
 }


 *sh*:
2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* libfs/src/imfs/imfs_fcntl.c: Removed file.
	* libfs/Makefile.am: Reflect change from above.
	* libfs/src/defaults/default_fcntl.c: Return 0 instead of -1 and errno.
	* libfs/src/imfs/imfs.h, libfs/src/imfs/imfs_fifo.c,
	libfs/src/imfs/imfs_handlers_directory.c,
	libfs/src/imfs/imfs_handlers_memfile.c, libfs/src/nfsclient/src/nfs.c,
	libfs/src/rfs/rtems-rfs-rtems-dir.c,
	libfs/src/rfs/rtems-rfs-rtems-file.c, libfs/src/rfs/rtems-rfs-rtems.c,
	libfs/src/rfs/rtems-rfs-rtems.h: Use default file system handlers.

M 1.2595  cpukit/ChangeLog
M   1.47  cpukit/libfs/Makefile.am
M    1.3  cpukit/libfs/src/defaults/default_fcntl.c
M   1.49  cpukit/libfs/src/imfs/imfs.h
R    1.5  cpukit/libfs/src/imfs/imfs_fcntl.c
M    1.8  cpukit/libfs/src/imfs/imfs_fifo.c
M   1.11  cpukit/libfs/src/imfs/imfs_handlers_directory.c
M   1.14  cpukit/libfs/src/imfs/imfs_handlers_memfile.c
M   1.26  cpukit/libfs/src/nfsclient/src/nfs.c
M    1.6  cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c
M    1.8  cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c
M    1.4  cpukit/libfs/src/rfs/rtems-rfs-rtems.h
M   1.14  cpukit/libfs/src/rfs/rtems-rfs-rtems.c

diff -u rtems/cpukit/ChangeLog:1.2594 rtems/cpukit/ChangeLog:1.2595
--- rtems/cpukit/ChangeLog:1.2594	Wed Aug 25 03:44:13 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 04:37:48 2010
@@ -1,5 +1,17 @@
 2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* libfs/src/imfs/imfs_fcntl.c: Removed file.
+	* libfs/Makefile.am: Reflect change from above.
+	* libfs/src/defaults/default_fcntl.c: Return 0 instead of -1 and errno.
+	* libfs/src/imfs/imfs.h, libfs/src/imfs/imfs_fifo.c,
+	libfs/src/imfs/imfs_handlers_directory.c,
+	libfs/src/imfs/imfs_handlers_memfile.c, libfs/src/nfsclient/src/nfs.c,
+	libfs/src/rfs/rtems-rfs-rtems-dir.c,
+	libfs/src/rfs/rtems-rfs-rtems-file.c, libfs/src/rfs/rtems-rfs-rtems.c,
+	libfs/src/rfs/rtems-rfs-rtems.h: Use default file system handlers.
+
+2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	* libblock/include/rtems/media.h, libblock/src/media-server.c: Use
 	chains instead of a message queue.
 

diff -u rtems/cpukit/libfs/Makefile.am:1.46 rtems/cpukit/libfs/Makefile.am:1.47
--- rtems/cpukit/libfs/Makefile.am:1.46	Thu Jul 15 02:36:37 2010
+++ rtems/cpukit/libfs/Makefile.am	Wed Aug 25 04:37:48 2010
@@ -40,7 +40,7 @@
 libimfs_a_SOURCES += src/imfs/deviceerrno.c src/imfs/deviceio.c \
     src/imfs/fifoimfs_init.c src/imfs/imfs_chown.c src/imfs/imfs_config.c \
     src/imfs/imfs_creat.c src/imfs/imfs_debug.c src/imfs/imfs_directory.c \
-    src/imfs/imfs_eval.c src/imfs/imfs_fchmod.c src/imfs/imfs_fcntl.c \
+    src/imfs/imfs_eval.c src/imfs/imfs_fchmod.c \
     src/imfs/imfs_fdatasync.c src/imfs/imfs_fifo.c \
     src/imfs/imfs_fsunmount.c src/imfs/imfs_getchild.c \
     src/imfs/imfs_gtkn.c src/imfs/imfs_handlers_device.c \

diff -u rtems/cpukit/libfs/src/defaults/default_fcntl.c:1.2 rtems/cpukit/libfs/src/defaults/default_fcntl.c:1.3
--- rtems/cpukit/libfs/src/defaults/default_fcntl.c:1.2	Mon Jun 28 20:53:18 2010
+++ rtems/cpukit/libfs/src/defaults/default_fcntl.c	Wed Aug 25 04:37:48 2010
@@ -18,5 +18,5 @@
   rtems_libio_t *iop
 )
 {
-  rtems_set_errno_and_return_minus_one( ENOTSUP );
+  return 0;
 }

diff -u rtems/cpukit/libfs/src/imfs/imfs.h:1.48 rtems/cpukit/libfs/src/imfs/imfs.h:1.49
--- rtems/cpukit/libfs/src/imfs/imfs.h:1.48	Sun Aug  8 15:25:00 2010
+++ rtems/cpukit/libfs/src/imfs/imfs.h	Wed Aug 25 04:37:48 2010
@@ -542,11 +542,6 @@
   rtems_libio_t *iop
 );
 
-extern int IMFS_fcntl(
-  int            cmd,
-  rtems_libio_t *iop
-);
-
 extern void IMFS_create_orphan(
   IMFS_jnode_t *jnode
 );

diff -u rtems/cpukit/libfs/src/imfs/imfs_fifo.c:1.7 rtems/cpukit/libfs/src/imfs/imfs_fifo.c:1.8
--- rtems/cpukit/libfs/src/imfs/imfs_fifo.c:1.7	Tue Aug 10 12:41:31 2010
+++ rtems/cpukit/libfs/src/imfs/imfs_fifo.c	Wed Aug 25 04:37:48 2010
@@ -143,6 +143,6 @@
   rtems_filesystem_default_fpathconf,
   rtems_filesystem_default_fsync,
   rtems_filesystem_default_fdatasync,
-  IMFS_fcntl,
+  rtems_filesystem_default_fcntl,
   IMFS_rmnod,
 };

diff -u rtems/cpukit/libfs/src/imfs/imfs_handlers_directory.c:1.10 rtems/cpukit/libfs/src/imfs/imfs_handlers_directory.c:1.11
--- rtems/cpukit/libfs/src/imfs/imfs_handlers_directory.c:1.10	Thu Jul  1 15:18:40 2010
+++ rtems/cpukit/libfs/src/imfs/imfs_handlers_directory.c	Wed Aug 25 04:37:48 2010
@@ -36,6 +36,6 @@
   rtems_filesystem_default_fpathconf,
   rtems_filesystem_default_fsync,
   IMFS_fdatasync,
-  IMFS_fcntl,
+  rtems_filesystem_default_fcntl,
   imfs_dir_rmnod
 };

diff -u rtems/cpukit/libfs/src/imfs/imfs_handlers_memfile.c:1.13 rtems/cpukit/libfs/src/imfs/imfs_handlers_memfile.c:1.14
--- rtems/cpukit/libfs/src/imfs/imfs_handlers_memfile.c:1.13	Thu Jul  1 15:18:41 2010
+++ rtems/cpukit/libfs/src/imfs/imfs_handlers_memfile.c	Wed Aug 25 04:37:48 2010
@@ -36,6 +36,6 @@
   rtems_filesystem_default_fpathconf,
   IMFS_fdatasync,      /* fsync */
   IMFS_fdatasync,
-  IMFS_fcntl,
+  rtems_filesystem_default_fcntl,
   IMFS_rmnod
 };

diff -u rtems/cpukit/libfs/src/nfsclient/src/nfs.c:1.25 rtems/cpukit/libfs/src/nfsclient/src/nfs.c:1.26
--- rtems/cpukit/libfs/src/nfsclient/src/nfs.c:1.25	Thu Jul 15 03:46:06 2010
+++ rtems/cpukit/libfs/src/nfsclient/src/nfs.c	Wed Aug 25 04:37:48 2010
@@ -1861,53 +1861,6 @@
  * rather than by recursion.
  */
 
-#ifdef DECLARE_BODY
-/* This routine is called when they try to mount something
- * on top of THIS filesystem, i.e. if one of our directories
- * is used as a mount point
- */
-static int nfs_mount(
-	rtems_filesystem_mount_table_entry_t *mt_entry     /* in */
-)DECLARE_BODY
-#else
-#define nfs_mount 0
-#endif
-
-#ifdef DECLARE_BODY
-/* This op is called when they try to unmount a FS
- * from a mountpoint managed by THIS FS.
- */
-static int nfs_unmount(
-	rtems_filesystem_mount_table_entry_t *mt_entry     /* in */
-)DECLARE_BODY
-#else
-#define nfs_unmount 0
-#endif
-
-#if 0
-
-/* for reference (libio.h) */
-
-struct rtems_filesystem_mount_table_entry_tt {
-  rtems_chain_node                       Node;
-  rtems_filesystem_location_info_t       mt_point_node;
-  rtems_filesystem_location_info_t       mt_fs_root;
-  int                                    options;
-  void                                  *fs_info;
-
-  rtems_filesystem_limits_and_options_t  pathconf_limits_and_options;
-
-  /*
-   *  When someone adds a mounted filesystem on a real device,
-   *  this will need to be used.
-   *
-   *  The best option long term for this is probably an open file descriptor.
-   */
-  char                                  *dev;
-};
-#endif
-
-
 int rtems_nfs_initialize(
   rtems_filesystem_mount_table_entry_t *mt_entry,
   const void                           *data
@@ -2478,9 +2431,9 @@
 		nfs_mknod,			/* OPTIONAL; may be defaulted */
 		nfs_chown,			/* OPTIONAL; may be defaulted */
 		nfs_freenode,		/* OPTIONAL; may be defaulted; (release node_access) */
-		nfs_mount,			/* OPTIONAL; may be defaulted */
+		rtems_filesystem_default_mount,
 		rtems_nfs_initialize,		/* OPTIONAL; may be defaulted -- not used anymore */
-		nfs_unmount,		/* OPTIONAL; may be defaulted */
+		rtems_filesystem_default_unmount,
 		nfs_fsunmount_me,	/* OPTIONAL; may be defaulted */
 		nfs_utime,			/* OPTIONAL; may be defaulted */
 		nfs_eval_link,		/* OPTIONAL; may be defaulted */
@@ -2567,8 +2520,6 @@
 	return 0;
 }
 
-#define nfs_link_open 0
-
 static int nfs_file_close(
 	rtems_libio_t *iop
 )
@@ -2585,8 +2536,6 @@
 	return 0;
 }
 
-#define nfs_link_close 0
-
 static ssize_t nfs_file_read(
 	rtems_libio_t *iop,
 	void          *buffer,
@@ -2689,8 +2638,6 @@
 	return (char*)di->ptr - (char*)buffer;
 }
 
-#define nfs_link_read 0
-
 static ssize_t nfs_file_write(
 	rtems_libio_t *iop,
 	const void    *buffer,
@@ -2741,22 +2688,6 @@
 	return count;
 }
 
-#define nfs_dir_write  0
-#define nfs_link_write 0
-
-/* IOCTL is unneeded/unsupported */
-#ifdef DECLARE_BODY
-static int nfs_file_ioctl(
-	rtems_libio_t *iop,
-	uint32_t      command,
-	void          *buffer
-)DECLARE_BODY
-#else
-#define nfs_file_ioctl 0
-#define nfs_dir_ioctl 0
-#define nfs_link_ioctl 0
-#endif
-
 static rtems_off64_t nfs_file_lseek(
 	rtems_libio_t *iop,
 	rtems_off64_t  length,
@@ -2816,8 +2747,6 @@
 	return iop->offset;
 }
 
-#define nfs_link_lseek 0
-
 #if 0	/* structure types for reference */
 struct fattr {
 		ftype type;
@@ -3044,55 +2973,6 @@
 					 SATTR_SIZE);
 }
 
-#define nfs_dir_ftruncate 0
-#define nfs_link_ftruncate 0
-
-/* not implemented */
-#ifdef DECLARE_BODY
-static int nfs_file_fpathconf(
-	rtems_libio_t *iop,
-	int name
-)DECLARE_BODY
-#else
-#define nfs_file_fpathconf 0
-#define nfs_dir_fpathconf 0
-#define nfs_link_fpathconf 0
-#endif
-
-/* unused */
-#ifdef DECLARE_BODY
-static int nfs_file_fsync(
-	rtems_libio_t *iop
-)DECLARE_BODY
-#else
-#define nfs_file_fsync 0
-#define nfs_dir_fsync 0
-#define nfs_link_fsync 0
-#endif
-
-/* unused */
-#ifdef DECLARE_BODY
-static int nfs_file_fdatasync(
-	rtems_libio_t *iop
-)DECLARE_BODY
-#else
-#define nfs_file_fdatasync 0
-#define nfs_dir_fdatasync 0
-#define nfs_link_fdatasync 0
-#endif
-
-/* unused */
-#ifdef DECLARE_BODY
-static int nfs_file_fcntl(
-	int            cmd,
-	rtems_libio_t *iop
-)DECLARE_BODY
-#else
-#define nfs_file_fcntl 0
-#define nfs_dir_fcntl 0
-#define nfs_link_fcntl 0
-#endif
-
 /* files and symlinks are removed
  * by the common nfs_unlink() routine.
  * NFS has a different NFSPROC_RMDIR
@@ -3113,15 +2993,15 @@
 		nfs_file_close,			/* OPTIONAL; may be defaulted */
 		nfs_file_read,			/* OPTIONAL; may be defaulted */
 		nfs_file_write,			/* OPTIONAL; may be defaulted */
-		nfs_file_ioctl,			/* OPTIONAL; may be defaulted */
+		rtems_filesystem_default_ioctl,
 		nfs_file_lseek,			/* OPTIONAL; may be defaulted */
 		nfs_fstat,				/* OPTIONAL; may be defaulted */
 		nfs_fchmod,				/* OPTIONAL; may be defaulted */
 		nfs_file_ftruncate,		/* OPTIONAL; may be defaulted */
-		nfs_file_fpathconf,		/* OPTIONAL; may be defaulted - UNUSED */
-		nfs_file_fsync,			/* OPTIONAL; may be defaulted */
-		nfs_file_fdatasync,		/* OPTIONAL; may be defaulted */
-		nfs_file_fcntl,			/* OPTIONAL; may be defaulted */
+		rtems_filesystem_default_fpathconf,
+		rtems_filesystem_default_fsync,
+		rtems_filesystem_default_fdatasync,
+		rtems_filesystem_default_fcntl,
 		nfs_unlink,				/* OPTIONAL; may be defaulted */
 };
 
@@ -3131,35 +3011,35 @@
 		nfs_dir_open,			/* OPTIONAL; may be defaulted */
 		nfs_dir_close,			/* OPTIONAL; may be defaulted */
 		nfs_dir_read,			/* OPTIONAL; may be defaulted */
-		nfs_dir_write,			/* OPTIONAL; may be defaulted */
-		nfs_dir_ioctl,			/* OPTIONAL; may be defaulted */
+		rtems_filesystem_default_write,
+		rtems_filesystem_default_ioctl,
 		nfs_dir_lseek,			/* OPTIONAL; may be defaulted */
 		nfs_fstat,				/* OPTIONAL; may be defaulted */
 		nfs_fchmod,				/* OPTIONAL; may be defaulted */
-		nfs_dir_ftruncate,		/* OPTIONAL; may be defaulted */
-		nfs_dir_fpathconf,		/* OPTIONAL; may be defaulted - UNUSED */
-		nfs_dir_fsync,			/* OPTIONAL; may be defaulted */
-		nfs_dir_fdatasync,		/* OPTIONAL; may be defaulted */
-		nfs_dir_fcntl,			/* OPTIONAL; may be defaulted */
+		rtems_filesystem_default_ftruncate,
+		rtems_filesystem_default_fpathconf,
+		rtems_filesystem_default_fsync,
+		rtems_filesystem_default_fdatasync,
+		rtems_filesystem_default_fcntl,
 		nfs_dir_rmnod,				/* OPTIONAL; may be defaulted */
 };
 
 /* the link handlers table */
 static
 struct _rtems_filesystem_file_handlers_r nfs_link_file_handlers = {
-		nfs_link_open,			/* OPTIONAL; may be defaulted */
-		nfs_link_close,			/* OPTIONAL; may be defaulted */
-		nfs_link_read,			/* OPTIONAL; may be defaulted */
-		nfs_link_write,			/* OPTIONAL; may be defaulted */
-		nfs_link_ioctl,			/* OPTIONAL; may be defaulted */
-		nfs_link_lseek,			/* OPTIONAL; may be defaulted */
+		rtems_filesystem_default_open,
+		rtems_filesystem_default_close,
+		rtems_filesystem_default_read,
+		rtems_filesystem_default_write,
+		rtems_filesystem_default_ioctl,
+		rtems_filesystem_default_lseek,
 		nfs_fstat,				/* OPTIONAL; may be defaulted */
 		nfs_fchmod,				/* OPTIONAL; may be defaulted */
-		nfs_link_ftruncate,		/* OPTIONAL; may be defaulted */
-		nfs_link_fpathconf,		/* OPTIONAL; may be defaulted - UNUSED */
-		nfs_link_fsync,			/* OPTIONAL; may be defaulted */
-		nfs_link_fdatasync,		/* OPTIONAL; may be defaulted */
-		nfs_link_fcntl,			/* OPTIONAL; may be defaulted */
+		rtems_filesystem_default_ftruncate,
+		rtems_filesystem_default_fpathconf,
+		rtems_filesystem_default_fsync,
+		rtems_filesystem_default_fdatasync,
+		rtems_filesystem_default_fcntl,
 		nfs_unlink,				/* OPTIONAL; may be defaulted */
 };
 

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c:1.5 rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c:1.6
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c:1.5	Thu Jul  1 15:18:41 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c	Wed Aug 25 04:37:49 2010
@@ -239,6 +239,6 @@
   .fpathconf_h = rtems_filesystem_default_fpathconf,
   .fsync_h     = rtems_filesystem_default_fsync,
   .fdatasync_h = rtems_rfs_rtems_fdatasync,
-  .fcntl_h     = rtems_rfs_rtems_fcntl,
+  .fcntl_h     = rtems_filesystem_default_fcntl,
   .rmnod_h     = rtems_rfs_rtems_dir_rmnod
 };

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c:1.7 rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c:1.8
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c:1.7	Thu Jul 15 03:10:48 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c	Wed Aug 25 04:37:49 2010
@@ -341,6 +341,6 @@
   .fpathconf_h = rtems_filesystem_default_fpathconf,
   .fsync_h     = rtems_rfs_rtems_fdatasync,
   .fdatasync_h = rtems_rfs_rtems_fdatasync,
-  .fcntl_h     = rtems_rfs_rtems_fcntl,
+  .fcntl_h     = rtems_filesystem_default_fcntl,
   .rmnod_h     = rtems_rfs_rtems_rmnod
 };

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h:1.3 rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h:1.4
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h:1.3	Thu Jul 15 03:10:48 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h	Wed Aug 25 04:37:49 2010
@@ -306,13 +306,4 @@
  */
 int rtems_rfs_rtems_fdatasync (rtems_libio_t* iop);
 
-/**
- * The following routine does a fcntl on an node.
- *
- * @param cmd
- * @param iop
- * @return int
- */
-int rtems_rfs_rtems_fcntl (int cmd, rtems_libio_t* iop);
-
 #endif

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.c:1.13 rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.c:1.14
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.c:1.13	Wed Jul 14 10:44:43 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.c	Wed Aug 25 04:37:49 2010
@@ -853,21 +853,6 @@
 }
 
 /**
- * The following routine does a fcntl on an node.
- *
- * @param cmd
- * @param iop
- * @return int
- */
-
-int
-rtems_rfs_rtems_fcntl (int            cmd,
-                       rtems_libio_t* iop)
-{
-  return 0;
-}
-
-/**
  * The following routine does a stat on a node.
  *
  * @param pathloc


 *sh*:
2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>

	PR 1672/cpukit
	* score/include/rtems/score/heap.h, score/src/heap.c,
	score/src/heapallocate.c, score/src/heapextend.c,
	score/src/heapfree.c, score/src/heapresizeblock.c,
	score/src/heapsizeofuserarea.c: Added heap protection in case
	RTEMS_DEBUG is defined.

M 1.2596  cpukit/ChangeLog
M   1.44  cpukit/score/include/rtems/score/heap.h
M   1.39  cpukit/score/src/heap.c
M   1.18  cpukit/score/src/heapallocate.c
M   1.18  cpukit/score/src/heapextend.c
M   1.14  cpukit/score/src/heapfree.c
M   1.13  cpukit/score/src/heapresizeblock.c
M   1.18  cpukit/score/src/heapsizeofuserarea.c

diff -u rtems/cpukit/ChangeLog:1.2595 rtems/cpukit/ChangeLog:1.2596
--- rtems/cpukit/ChangeLog:1.2595	Wed Aug 25 04:37:48 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 07:35:51 2010
@@ -1,5 +1,14 @@
 2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	PR 1672/cpukit
+	* score/include/rtems/score/heap.h, score/src/heap.c,
+	score/src/heapallocate.c, score/src/heapextend.c,
+	score/src/heapfree.c, score/src/heapresizeblock.c,
+	score/src/heapsizeofuserarea.c: Added heap protection in case
+	RTEMS_DEBUG is defined.
+	
+2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	* libfs/src/imfs/imfs_fcntl.c: Removed file.
 	* libfs/Makefile.am: Reflect change from above.
 	* libfs/src/defaults/default_fcntl.c: Return 0 instead of -1 and errno.

diff -u rtems/cpukit/score/include/rtems/score/heap.h:1.43 rtems/cpukit/score/include/rtems/score/heap.h:1.44
--- rtems/cpukit/score/include/rtems/score/heap.h:1.43	Thu Jul  1 10:39:59 2010
+++ rtems/cpukit/score/include/rtems/score/heap.h	Wed Aug 25 07:35:52 2010
@@ -20,10 +20,17 @@
 #ifndef _RTEMS_SCORE_HEAP_H
 #define _RTEMS_SCORE_HEAP_H
 
+#include <rtems/system.h>
+#include <rtems/score/thread.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#ifdef RTEMS_DEBUG
+  #define HEAP_PROTECTION
+#endif
+
 /**
  * @defgroup ScoreHeap Heap Handler
  *
@@ -125,27 +132,76 @@
  * @{
  */
 
+typedef struct Heap_Control Heap_Control;
+
+typedef struct Heap_Block Heap_Block;
+
+#ifndef HEAP_PROTECTION
+  #define HEAP_PROTECTION_HEADER_SIZE 0
+#else
+  #define HEAP_PROTECTOR_COUNT 2
+
+  #define HEAP_BEGIN_PROTECTOR_0 ((uintptr_t) 0xfd75a98f)
+  #define HEAP_BEGIN_PROTECTOR_1 ((uintptr_t) 0xbfa1f177)
+  #define HEAP_END_PROTECTOR_0 ((uintptr_t) 0xd6b8855e)
+  #define HEAP_END_PROTECTOR_1 ((uintptr_t) 0x13a44a5b)
+
+  #define HEAP_FREE_PATTERN ((uintptr_t) 0xe7093cdf)
+
+  #define HEAP_PROTECTION_OBOLUS ((Heap_Block *) 1)
+
+  typedef void (*_Heap_Protection_handler)(
+     Heap_Control *heap,
+     Heap_Block *block
+  );
+
+  typedef struct {
+    _Heap_Protection_handler block_initialize;
+    _Heap_Protection_handler block_check;
+    _Heap_Protection_handler block_error;
+    void *handler_data;
+    Heap_Block *first_delayed_free_block;
+    Heap_Block *last_delayed_free_block;
+    uintptr_t delayed_free_block_count;
+  } Heap_Protection;
+
+  typedef struct {
+    uintptr_t protector [HEAP_PROTECTOR_COUNT];
+    Heap_Block *next_delayed_free_block;
+    Thread_Control *task;
+    void *tag;
+  } Heap_Protection_block_begin;
+
+  typedef struct {
+    uintptr_t protector [HEAP_PROTECTOR_COUNT];
+  } Heap_Protection_block_end;
+
+  #define HEAP_PROTECTION_HEADER_SIZE \
+    (sizeof(Heap_Protection_block_begin) + sizeof(Heap_Protection_block_end))
+#endif
+
 /**
  * @brief See also @ref Heap_Block.size_and_flag.
  */
 #define HEAP_PREV_BLOCK_USED ((uintptr_t) 1)
 
 /**
- * @brief Offset from the block begin up to the block size field
- * (@ref Heap_Block.size_and_flag).
+ * @brief Size of the part at the block begin which may be used for allocation
+ * in charge of the previous block.
  */
-#define HEAP_BLOCK_SIZE_OFFSET sizeof(uintptr_t)
+#define HEAP_ALLOC_BONUS sizeof(uintptr_t)
 
 /**
  * @brief The block header consists of the two size fields
  * (@ref Heap_Block.prev_size and @ref Heap_Block.size_and_flag).
  */
-#define HEAP_BLOCK_HEADER_SIZE (sizeof(uintptr_t) * 2)
+#define HEAP_BLOCK_HEADER_SIZE \
+  (2 * sizeof(uintptr_t) + HEAP_PROTECTION_HEADER_SIZE)
 
 /**
  * @brief Description for free or used blocks.
  */
-typedef struct Heap_Block {
+struct Heap_Block {
   /**
    * @brief Size of the previous block or part of the allocated area of the
    * previous block.
@@ -161,6 +217,10 @@
    */
   uintptr_t prev_size;
 
+  #ifdef HEAP_PROTECTION
+    Heap_Protection_block_begin Protection_begin;
+  #endif
+
   /**
    * @brief Contains the size of the current block and a flag which indicates
    * if the previous block is free or used.
@@ -176,6 +236,10 @@
    */
   uintptr_t size_and_flag;
 
+  #ifdef HEAP_PROTECTION
+    Heap_Protection_block_end Protection_end;
+  #endif
+
   /**
    * @brief Pointer to the next free block or part of the allocated area.
    *
@@ -185,7 +249,7 @@
    * This field is only valid if the block is free and thus part of the free
    * block list.
    */
-  struct Heap_Block *next;
+  Heap_Block *next;
 
   /**
    * @brief Pointer to the previous free block or part of the allocated area.
@@ -193,8 +257,8 @@
    * This field is only valid if the block is free and thus part of the free
    * block list.
    */
-  struct Heap_Block *prev;
-} Heap_Block;
+  Heap_Block *prev;
+};
 
 /**
  * @brief Run-time heap statistics.
@@ -274,7 +338,7 @@
 /**
  * @brief Control block used to manage a heap.
  */
-typedef struct {
+struct Heap_Control {
   Heap_Block free_list;
   uintptr_t page_size;
   uintptr_t min_block_size;
@@ -283,7 +347,10 @@
   Heap_Block *first_block;
   Heap_Block *last_block;
   Heap_Statistics stats;
-} Heap_Control;
+  #ifdef HEAP_PROTECTION
+    Heap_Protection Protection;
+  #endif
+};
 
 /**
  * @brief Information about blocks.
@@ -535,6 +602,36 @@
   uintptr_t alloc_size
 );
 
+#ifndef HEAP_PROTECTION
+  #define _Heap_Protection_block_initialize( heap, block ) ((void) 0)
+  #define _Heap_Protection_block_check( heap, block ) ((void) 0)
+  #define _Heap_Protection_block_error( heap, block ) ((void) 0)
+#else
+  static inline void _Heap_Protection_block_initialize(
+    Heap_Control *heap,
+    Heap_Block *block
+  )
+  {
+    (*heap->Protection.block_initialize)( heap, block );
+  }
+
+  static inline void _Heap_Protection_block_check(
+    Heap_Control *heap,
+    Heap_Block *block
+  )
+  {
+    (*heap->Protection.block_check)( heap, block );
+  }
+
+  static inline void _Heap_Protection_block_error(
+    Heap_Control *heap,
+    Heap_Block *block
+  )
+  {
+    (*heap->Protection.block_error)( heap, block );
+  }
+#endif
+
 /** @} */
 
 #ifdef RTEMS_DEBUG

diff -u rtems/cpukit/score/src/heap.c:1.38 rtems/cpukit/score/src/heap.c:1.39
--- rtems/cpukit/score/src/heap.c:1.38	Mon Jun  7 04:35:01 2010
+++ rtems/cpukit/score/src/heap.c	Wed Aug 25 07:35:52 2010
@@ -23,8 +23,11 @@
 #include "config.h"
 #endif
 
+#include <string.h>
+
 #include <rtems/system.h>
 #include <rtems/score/heap.h>
+#include <rtems/score/interr.h>
 
 #if CPU_ALIGNMENT == 0 || CPU_ALIGNMENT % 2 != 0
   #error "invalid CPU_ALIGNMENT value"
@@ -123,6 +126,46 @@
  *
  */
 
+#ifdef HEAP_PROTECTION
+  static void _Heap_Protection_block_initialize_default(
+    Heap_Control *heap,
+    Heap_Block *block
+  )
+  {
+    block->Protection_begin.protector [0] = HEAP_BEGIN_PROTECTOR_0;
+    block->Protection_begin.protector [1] = HEAP_BEGIN_PROTECTOR_1;
+    block->Protection_begin.next_delayed_free_block = NULL;
+    block->Protection_begin.task = _Thread_Executing;
+    block->Protection_begin.tag = NULL;
+    block->Protection_end.protector [0] = HEAP_END_PROTECTOR_0;
+    block->Protection_end.protector [1] = HEAP_END_PROTECTOR_1;
+  }
+
+  static void _Heap_Protection_block_check_default(
+    Heap_Control *heap,
+    Heap_Block *block
+  )
+  {
+    if (
+      block->Protection_begin.protector [0] != HEAP_BEGIN_PROTECTOR_0
+        || block->Protection_begin.protector [1] != HEAP_BEGIN_PROTECTOR_1
+        || block->Protection_end.protector [0] != HEAP_END_PROTECTOR_0
+        || block->Protection_end.protector [1] != HEAP_END_PROTECTOR_1
+    ) {
+      _Heap_Protection_block_error( heap, block );
+    }
+  }
+
+  static void _Heap_Protection_block_error_default(
+    Heap_Control *heap,
+    Heap_Block *block
+  )
+  {
+    /* FIXME */
+    _Internal_error_Occurred( 0xdeadbeef, false, 0xdeadbeef );
+  }
+#endif
+
 bool _Heap_Get_first_and_last_block(
   uintptr_t heap_area_begin,
   uintptr_t heap_area_size,
@@ -202,6 +245,14 @@
     return 0;
   }
 
+  memset(heap, 0, sizeof(*heap));
+
+  #ifdef HEAP_PROTECTION
+    heap->Protection.block_initialize = _Heap_Protection_block_initialize_default;
+    heap->Protection.block_check = _Heap_Protection_block_check_default;
+    heap->Protection.block_error = _Heap_Protection_block_error_default;
+  #endif
+
   first_block_begin = (uintptr_t) first_block;
   last_block_begin = (uintptr_t) last_block;
   first_block_size = last_block_begin - first_block_begin;
@@ -211,6 +262,7 @@
   first_block->size_and_flag = first_block_size | HEAP_PREV_BLOCK_USED;
   first_block->next = _Heap_Free_list_tail( heap );
   first_block->prev = _Heap_Free_list_head( heap );
+  _Heap_Protection_block_initialize( heap, first_block );
 
   /* Heap control */
   heap->page_size = page_size;
@@ -226,6 +278,7 @@
   last_block->prev_size = first_block_size;
   last_block->size_and_flag = 0;
   _Heap_Set_last_block_size( heap );
+  _Heap_Protection_block_initialize( heap, last_block );
 
   /* Statistics */
   stats->size = first_block_size;
@@ -233,12 +286,6 @@
   stats->min_free_size = first_block_size;
   stats->free_blocks = 1;
   stats->max_free_blocks = 1;
-  stats->used_blocks = 0;
-  stats->max_search = 0;
-  stats->allocs = 0;
-  stats->searches = 0;
-  stats->frees = 0;
-  stats->resizes = 0;
   stats->instance = instance++;
 
   _HAssert( _Heap_Is_aligned( heap->page_size, CPU_ALIGNMENT ) );
@@ -253,7 +300,7 @@
   return first_block_size;
 }
 
-void _Heap_Block_split(
+static void _Heap_Block_split(
   Heap_Control *heap,
   Heap_Block *block,
   Heap_Block *free_list_anchor,
@@ -272,13 +319,13 @@
     _Heap_Max( alloc_size, min_alloc_size ) + HEAP_BLOCK_HEADER_SIZE;
   uintptr_t const used_block_size = _Heap_Align_up( used_size, page_size );
 
-  uintptr_t const free_size = block_size + HEAP_BLOCK_SIZE_OFFSET - used_size;
-  uintptr_t const free_size_limit = min_block_size + HEAP_BLOCK_SIZE_OFFSET;
+  uintptr_t const free_size = block_size + HEAP_ALLOC_BONUS - used_size;
+  uintptr_t const free_size_limit = min_block_size + HEAP_ALLOC_BONUS;
 
   Heap_Block *next_block = _Heap_Block_at( block, block_size );
 
-  _HAssert( used_size <= block_size + HEAP_BLOCK_SIZE_OFFSET );
-  _HAssert( used_size + free_size == block_size + HEAP_BLOCK_SIZE_OFFSET );
+  _HAssert( used_size <= block_size + HEAP_ALLOC_BONUS );
+  _HAssert( used_size + free_size == block_size + HEAP_ALLOC_BONUS );
 
   if ( free_size >= free_size_limit ) {
     Heap_Block *const free_block = _Heap_Block_at( block, used_block_size );
@@ -310,6 +357,8 @@
 
     next_block->prev_size = free_block_size;
     next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;
+
+    _Heap_Protection_block_initialize( heap, free_block );
   } else {
     next_block->size_and_flag |= HEAP_PREV_BLOCK_USED;
   }
@@ -434,5 +483,7 @@
     stats->min_free_size = stats->free_size;
   }
 
+  _Heap_Protection_block_initialize( heap, block );
+
   return block;
 }

diff -u rtems/cpukit/score/src/heapallocate.c:1.17 rtems/cpukit/score/src/heapallocate.c:1.18
--- rtems/cpukit/score/src/heapallocate.c:1.17	Wed Sep  9 09:58:37 2009
+++ rtems/cpukit/score/src/heapallocate.c	Wed Aug 25 07:35:52 2010
@@ -27,6 +27,47 @@
 #include <rtems/score/sysstate.h>
 #include <rtems/score/heap.h>
 
+#ifndef HEAP_PROTECTION
+  #define _Heap_Protection_free_delayed_blocks( heap, alloc_begin ) false
+#else
+  static bool _Heap_Protection_free_delayed_blocks(
+    Heap_Control *heap,
+    uintptr_t alloc_begin
+  )
+  {
+    bool search_again = false;
+    uintptr_t const blocks_to_free_count =
+      (heap->Protection.delayed_free_block_count + 1) / 2;
+
+    if ( alloc_begin == 0 && blocks_to_free_count > 0 ) {
+      Heap_Block *block_to_free = heap->Protection.first_delayed_free_block;
+      uintptr_t count = 0;
+
+      for ( count = 0; count < blocks_to_free_count; ++count ) {
+        Heap_Block *next_block_to_free =
+          block_to_free->Protection_begin.next_delayed_free_block;
+
+        block_to_free->Protection_begin.next_delayed_free_block =
+          HEAP_PROTECTION_OBOLUS;
+
+        _Heap_Free(
+          heap,
+          (void *) _Heap_Alloc_area_of_block( block_to_free )
+        );
+
+        block_to_free = next_block_to_free;
+      }
+
+      heap->Protection.delayed_free_block_count -= blocks_to_free_count;
+      heap->Protection.first_delayed_free_block = block_to_free;
+
+      search_again = true;
+    }
+
+    return search_again;
+  }
+#endif
+
 #ifdef RTEMS_HEAP_DEBUG
   static void _Heap_Check_allocation(
     const Heap_Control *heap,
@@ -58,7 +99,7 @@
       _Heap_Is_aligned( block_size, page_size )
     );
 
-    _HAssert( alloc_end <= block_end + HEAP_BLOCK_SIZE_OFFSET );
+    _HAssert( alloc_end <= block_end + HEAP_ALLOC_BONUS );
     _HAssert( alloc_area_begin == block_begin + HEAP_BLOCK_HEADER_SIZE);
     _HAssert( alloc_area_offset < page_size );
 
@@ -99,7 +140,7 @@
   uintptr_t const alloc_begin_ceiling = block_end - min_block_size
     + HEAP_BLOCK_HEADER_SIZE + page_size - 1;
 
-  uintptr_t alloc_end = block_end + HEAP_BLOCK_SIZE_OFFSET;
+  uintptr_t alloc_end = block_end + HEAP_ALLOC_BONUS;
   uintptr_t alloc_begin = alloc_end - alloc_size;
 
   alloc_begin = _Heap_Align_down( alloc_begin, alignment );
@@ -149,13 +190,13 @@
 )
 {
   Heap_Statistics *const stats = &heap->stats;
-  Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );
-  Heap_Block *block = _Heap_Free_list_first( heap );
   uintptr_t const block_size_floor = alloc_size + HEAP_BLOCK_HEADER_SIZE
-    - HEAP_BLOCK_SIZE_OFFSET;
+    - HEAP_ALLOC_BONUS;
   uintptr_t const page_size = heap->page_size;
+  Heap_Block *block = NULL;
   uintptr_t alloc_begin = 0;
   uint32_t search_count = 0;
+  bool search_again = false;
 
   if ( block_size_floor < alloc_size ) {
     /* Integer overflow occured */
@@ -172,40 +213,50 @@
     }
   }
 
-  while ( block != free_list_tail ) {
-    _HAssert( _Heap_Is_prev_used( block ) );
+  do {
+    Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );
 
-    /* Statistics */
-    ++search_count;
+    block = _Heap_Free_list_first( heap );
+    while ( block != free_list_tail ) {
+      _HAssert( _Heap_Is_prev_used( block ) );
+
+      _Heap_Protection_block_check( heap, block );
+
+      /*
+       * The HEAP_PREV_BLOCK_USED flag is always set in the block size_and_flag
+       * field.  Thus the value is about one unit larger than the real block
+       * size.  The greater than operator takes this into account.
+       */
+      if ( block->size_and_flag > block_size_floor ) {
+        if ( alignment == 0 ) {
+          alloc_begin = _Heap_Alloc_area_of_block( block );
+        } else {
+          alloc_begin = _Heap_Check_block(
+            heap,
+            block,
+            alloc_size,
+            alignment,
+            boundary
+          );
+        }
+      }
 
-    /*
-     * The HEAP_PREV_BLOCK_USED flag is always set in the block size_and_flag
-     * field.  Thus the value is about one unit larger than the real block
-     * size.  The greater than operator takes this into account.
-     */
-    if ( block->size_and_flag > block_size_floor ) {
-      if ( alignment == 0 ) {
-        alloc_begin = _Heap_Alloc_area_of_block( block );
-      } else {
-        alloc_begin = _Heap_Check_block(
-          heap,
-          block,
-          alloc_size,
-          alignment,
-          boundary
-        );
+      /* Statistics */
+      ++search_count;
+
+      if ( alloc_begin != 0 ) {
+        break;
       }
-    }
 
-    if ( alloc_begin != 0 ) {
-      break;
+      block = block->next;
     }
 
-    block = block->next;
-  }
+    search_again = _Heap_Protection_free_delayed_blocks( heap, alloc_begin );
+  } while ( search_again );
 
   if ( alloc_begin != 0 ) {
     /* Statistics */
+    ++stats->allocs;
     stats->searches += search_count;
 
     block = _Heap_Block_allocate( heap, block, alloc_begin, alloc_size );

diff -u rtems/cpukit/score/src/heapextend.c:1.17 rtems/cpukit/score/src/heapextend.c:1.18
--- rtems/cpukit/score/src/heapextend.c:1.17	Mon Jun  7 04:35:01 2010
+++ rtems/cpukit/score/src/heapextend.c	Wed Aug 25 07:35:52 2010
@@ -194,9 +194,11 @@
   extend_first_block->prev_size = extend_area_end;
   extend_first_block->size_and_flag =
     extend_first_block_size | HEAP_PREV_BLOCK_USED;
+  _Heap_Protection_block_initialize( heap, extend_first_block );
 
   extend_last_block->prev_size = extend_first_block_size;
   extend_last_block->size_and_flag = 0;
+  _Heap_Protection_block_initialize( heap, extend_last_block );
 
   if ( (uintptr_t) extend_first_block < (uintptr_t) heap->first_block ) {
     heap->first_block = extend_first_block;

diff -u rtems/cpukit/score/src/heapfree.c:1.13 rtems/cpukit/score/src/heapfree.c:1.14
--- rtems/cpukit/score/src/heapfree.c:1.13	Sun Sep  6 10:24:07 2009
+++ rtems/cpukit/score/src/heapfree.c	Wed Aug 25 07:35:52 2010
@@ -22,9 +22,89 @@
 #endif
 
 #include <rtems/system.h>
-#include <rtems/score/sysstate.h>
 #include <rtems/score/heap.h>
 
+#ifndef HEAP_PROTECTION
+  #define _Heap_Protection_determine_block_free( heap, block ) true
+#else
+  static void _Heap_Protection_delay_block_free(
+    Heap_Control *heap,
+    Heap_Block *block
+  )
+  {
+    uintptr_t *const pattern_begin = (uintptr_t *)
+      _Heap_Alloc_area_of_block( block );
+    uintptr_t *const pattern_end = (uintptr_t *)
+      ((uintptr_t) block + _Heap_Block_size( block ) + HEAP_ALLOC_BONUS);
+    uintptr_t const delayed_free_block_count = 
+      heap->Protection.delayed_free_block_count;
+    uintptr_t *current = NULL;
+
+    block->Protection_begin.next_delayed_free_block = block;
+    block->Protection_begin.task = _Thread_Executing;
+
+    if ( delayed_free_block_count > 0 ) {
+      Heap_Block *const last = heap->Protection.last_delayed_free_block;
+      
+      last->Protection_begin.next_delayed_free_block = block;
+    } else {
+      heap->Protection.first_delayed_free_block = block;
+    }
+    heap->Protection.last_delayed_free_block = block;
+    heap->Protection.delayed_free_block_count = delayed_free_block_count + 1;
+
+    for ( current = pattern_begin; current != pattern_end; ++current ) {
+      *current = HEAP_FREE_PATTERN;
+    }
+  }
+
+  static void _Heap_Protection_check_free_block(
+    Heap_Control *heap,
+    Heap_Block *block
+  )
+  {
+    uintptr_t *const pattern_begin = (uintptr_t *)
+      _Heap_Alloc_area_of_block( block );
+    uintptr_t *const pattern_end = (uintptr_t *)
+      ((uintptr_t) block + _Heap_Block_size( block ) + HEAP_ALLOC_BONUS);
+    uintptr_t *current = NULL;
+
+    for ( current = pattern_begin; current != pattern_end; ++current ) {
+      if ( *current != HEAP_FREE_PATTERN ) {
+        _Heap_Protection_block_error( heap, block );
+        break;
+      }
+    }
+  }
+
+  static bool _Heap_Protection_determine_block_free(
+    Heap_Control *heap,
+    Heap_Block *block
+  )
+  {
+    bool do_free = true;
+
+    /*
+     * Sometimes after a free the allocated area is still in use.  An example
+     * is the task stack of a thread that deletes itself.  The thread dispatch
+     * disable level is a way to detect this use case.
+     */
+    if ( _Thread_Dispatch_disable_level == 0 ) {
+      Heap_Block *const next = block->Protection_begin.next_delayed_free_block;
+      if ( next == NULL ) {
+        _Heap_Protection_delay_block_free( heap, block );
+        do_free = false;
+      } else if ( next == HEAP_PROTECTION_OBOLUS ) {
+        _Heap_Protection_check_free_block( heap, block );
+      } else {
+        _Heap_Protection_block_error( heap, block );
+      }
+    }
+
+    return do_free;
+  }
+#endif
+
 bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr )
 {
   Heap_Statistics *const stats = &heap->stats;
@@ -36,6 +116,8 @@
   uintptr_t next_block_size = 0;
   bool next_is_free = false;
 
+  _Heap_Protection_block_check( heap, block );
+
   if ( !_Heap_Is_block_in_heap( heap, block ) ) {
     return false;
   }
@@ -43,16 +125,23 @@
   block_size = _Heap_Block_size( block );
   next_block = _Heap_Block_at( block, block_size );
 
+  _Heap_Protection_block_check( heap, next_block );
+
   if ( !_Heap_Is_block_in_heap( heap, next_block ) ) {
     _HAssert( false );
     return false;
   }
 
   if ( !_Heap_Is_prev_used( next_block ) ) {
-    _HAssert( false );
+    _Heap_Protection_block_error( heap, block );
+
     return false;
   }
 
+  if ( !_Heap_Protection_determine_block_free( heap, block ) ) {
+    return true;
+  }
+
   next_block_size = _Heap_Block_size( next_block );
   next_is_free = next_block != heap->last_block
     && !_Heap_Is_prev_used( _Heap_Block_at( next_block, next_block_size ));

diff -u rtems/cpukit/score/src/heapresizeblock.c:1.12 rtems/cpukit/score/src/heapresizeblock.c:1.13
--- rtems/cpukit/score/src/heapresizeblock.c:1.12	Wed Sep  9 09:58:37 2009
+++ rtems/cpukit/score/src/heapresizeblock.c	Wed Aug 25 07:35:52 2010
@@ -42,7 +42,7 @@
   uintptr_t block_size = _Heap_Block_size( block );
   uintptr_t block_end = block_begin + block_size;
 
-  uintptr_t alloc_size = block_end - alloc_begin + HEAP_BLOCK_SIZE_OFFSET;
+  uintptr_t alloc_size = block_end - alloc_begin + HEAP_ALLOC_BONUS;
 
   Heap_Block *next_block = _Heap_Block_at( block, block_size );
   uintptr_t next_block_size = _Heap_Block_size( next_block );
@@ -79,7 +79,7 @@
 
   block_size = _Heap_Block_size( block );
   next_block = _Heap_Block_at( block, block_size );
-  *new_size = (uintptr_t) next_block - alloc_begin + HEAP_BLOCK_SIZE_OFFSET;
+  *new_size = (uintptr_t) next_block - alloc_begin + HEAP_ALLOC_BONUS;
 
   /* Statistics */
   ++stats->resizes;
@@ -104,6 +104,8 @@
   *old_size = 0;
   *new_size = 0;
 
+  _Heap_Protection_block_check( heap, block );
+
   if ( _Heap_Is_block_in_heap( heap, block ) ) {
     return _Heap_Resize_block_checked(
       heap,

diff -u rtems/cpukit/score/src/heapsizeofuserarea.c:1.17 rtems/cpukit/score/src/heapsizeofuserarea.c:1.18
--- rtems/cpukit/score/src/heapsizeofuserarea.c:1.17	Sun Sep  6 10:24:07 2009
+++ rtems/cpukit/score/src/heapsizeofuserarea.c	Wed Aug 25 07:35:52 2010
@@ -51,7 +51,7 @@
     return false;
   }
 
-  *alloc_size = (uintptr_t) next_block + HEAP_BLOCK_SIZE_OFFSET - alloc_begin;
+  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
 
   return true;
 }


 *sh*:
2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* malloctest/init.c: Update for heap API changes.

M  1.238  testsuites/libtests/ChangeLog
M   1.43  testsuites/libtests/malloctest/init.c

diff -u rtems/testsuites/libtests/ChangeLog:1.237 rtems/testsuites/libtests/ChangeLog:1.238
--- rtems/testsuites/libtests/ChangeLog:1.237	Mon Aug 23 03:32:51 2010
+++ rtems/testsuites/libtests/ChangeLog	Wed Aug 25 07:38:48 2010
@@ -1,3 +1,7 @@
+2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* malloctest/init.c: Update for heap API changes.
+
 2010-08-23	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* gxx01/gxx_wrappers.h, gxx02/.cvsignore, gxx02/Makefile.am,

diff -u rtems/testsuites/libtests/malloctest/init.c:1.42 rtems/testsuites/libtests/malloctest/init.c:1.43
--- rtems/testsuites/libtests/malloctest/init.c:1.42	Thu Jul 15 08:54:54 2010
+++ rtems/testsuites/libtests/malloctest/init.c	Wed Aug 25 07:38:48 2010
@@ -235,7 +235,7 @@
       _Heap_Is_aligned( block_size, page_size )
     );
 
-    rtems_test_assert( alloc_end <= block_end + HEAP_BLOCK_SIZE_OFFSET );
+    rtems_test_assert( alloc_end <= block_end + HEAP_ALLOC_BONUS );
     rtems_test_assert( alloc_area_begin > block_begin );
     rtems_test_assert( alloc_area_offset < page_size );
 
@@ -772,7 +772,7 @@
 
   puts( "\tallocate block full space");
   alloc_begin = alloc_box_begin;
-  alloc_size = alloc_box_size + HEAP_BLOCK_SIZE_OFFSET
+  alloc_size = alloc_box_size + HEAP_ALLOC_BONUS
     - HEAP_BLOCK_HEADER_SIZE;
   test_block_alloc( variant, 1, alloc_begin, alloc_size );
 
@@ -783,7 +783,7 @@
 
   puts( "\tallocate block at the end");
   alloc_begin = alloc_box_end - TEST_DEFAULT_PAGE_SIZE;
-  alloc_size = TEST_DEFAULT_PAGE_SIZE + HEAP_BLOCK_SIZE_OFFSET
+  alloc_size = TEST_DEFAULT_PAGE_SIZE + HEAP_ALLOC_BONUS
     - HEAP_BLOCK_HEADER_SIZE;
   test_block_alloc( variant, 3, alloc_begin, alloc_size );
 }


 *sh*:
2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* spheapprot/.cvsignore, spheapprot/Makefile.am,
	spheapprot/spheapprot.doc, spheapprot/spheapprot.scn: New files.
	* Makefile.am, configure.ac: Reflect changes above.

M  1.418  testsuites/sptests/ChangeLog
M  1.106  testsuites/sptests/Makefile.am
M  1.111  testsuites/sptests/configure.ac
A    1.1  testsuites/sptests/spheapprot/.cvsignore
A    1.1  testsuites/sptests/spheapprot/Makefile.am
A    1.1  testsuites/sptests/spheapprot/init.c
A    1.1  testsuites/sptests/spheapprot/spheapprot.doc
A    1.1  testsuites/sptests/spheapprot/spheapprot.scn

diff -u rtems/testsuites/sptests/ChangeLog:1.417 rtems/testsuites/sptests/ChangeLog:1.418
--- rtems/testsuites/sptests/ChangeLog:1.417	Tue Aug 24 10:01:04 2010
+++ rtems/testsuites/sptests/ChangeLog	Wed Aug 25 08:05:47 2010
@@ -1,3 +1,9 @@
+2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* spheapprot/.cvsignore, spheapprot/Makefile.am,
+	spheapprot/spheapprot.doc, spheapprot/spheapprot.scn: New files.
+	* Makefile.am, configure.ac: Reflect changes above.
+
 2010-08-24	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* spchain/init.c, spchain/spchain.doc, spchain/spchain.scn: New test

diff -u rtems/testsuites/sptests/Makefile.am:1.105 rtems/testsuites/sptests/Makefile.am:1.106
--- rtems/testsuites/sptests/Makefile.am:1.105	Mon Aug 23 03:27:34 2010
+++ rtems/testsuites/sptests/Makefile.am	Wed Aug 25 08:05:47 2010
@@ -28,7 +28,7 @@
     spintrcritical05 spintrcritical06 spintrcritical07 spintrcritical08 \
     spintrcritical09 spintrcritical10 spintrcritical11 spintrcritical12 \
     spintrcritical13 spintrcritical14 spintrcritical15 spintrcritical16 \
-    spintrcritical17 spmkdir spmountmgr01
+    spintrcritical17 spmkdir spmountmgr01 spheapprot
 
 DIST_SUBDIRS = $(SUBDIRS) spfatal_support spintrcritical_support
 EXTRA_DIST = spfatal_support/init.c spfatal_support/system.h

diff -u rtems/testsuites/sptests/configure.ac:1.110 rtems/testsuites/sptests/configure.ac:1.111
--- rtems/testsuites/sptests/configure.ac:1.110	Mon Aug 23 03:27:34 2010
+++ rtems/testsuites/sptests/configure.ac	Wed Aug 25 08:05:47 2010
@@ -151,6 +151,7 @@
 spintrcritical15/Makefile
 spintrcritical16/Makefile
 spintrcritical17/Makefile
+spheapprot/Makefile
 spmkdir/Makefile
 spmountmgr01/Makefile
 spnotepad01/Makefile

diff -u /dev/null rtems/testsuites/sptests/spheapprot/.cvsignore:1.1
--- /dev/null	Thu Aug 26 23:44:06 2010
+++ rtems/testsuites/sptests/spheapprot/.cvsignore	Wed Aug 25 08:05:47 2010
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in

diff -u /dev/null rtems/testsuites/sptests/spheapprot/Makefile.am:1.1
--- /dev/null	Thu Aug 26 23:44:06 2010
+++ rtems/testsuites/sptests/spheapprot/Makefile.am	Wed Aug 25 08:05:47 2010
@@ -0,0 +1,27 @@
+##
+## $Id$
+##
+
+MANAGERS = io semaphore event
+
+rtems_tests_PROGRAMS = spheapprot
+spheapprot_SOURCES = init.c
+
+dist_rtems_tests_DATA = spheapprot.scn spheapprot.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+spheapprot_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(spheapprot_OBJECTS) $(spheapprot_LDADD)
+LINK_LIBS = $(spheapprot_LDLIBS)
+
+spheapprot$(EXEEXT): $(spheapprot_OBJECTS) $(spheapprot_DEPENDENCIES)
+	@rm -f spheapprot$(EXEEXT)
+	$(make-exe)
+
+include $(top_srcdir)/../automake/local.am

diff -u /dev/null rtems/testsuites/sptests/spheapprot/init.c:1.1
--- /dev/null	Thu Aug 26 23:44:07 2010
+++ rtems/testsuites/sptests/spheapprot/init.c	Wed Aug 25 08:05:47 2010
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems at embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+
+#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__
+
+#include <rtems.h>
+
+#ifdef HEAP_PROTECTION
+  static void test_heap_block_error(Heap_Control *heap, Heap_Block *block)
+  {
+    bool *error = heap->Protection.handler_data;
+
+    *error = true;
+  }
+
+  static void test_heap_initialize(
+    Heap_Control *heap,
+    void *begin,
+    uintptr_t size,
+    bool *error
+  )
+  {
+    size = _Heap_Initialize(heap, begin, size, 0);
+    assert(size > 0);
+
+    heap->Protection.handler_data = error;
+    heap->Protection.block_error = test_heap_block_error;
+
+    *error = false;
+  }
+
+  static void test_heap_protection(void)
+  {
+    Heap_Control heap;
+    Heap_Block *block = NULL;
+    char area [512];
+    uintptr_t *p = NULL;
+    uintptr_t max_size = 0;
+    bool ok = false;
+    bool error = false;
+
+    /* Test double free */
+
+    test_heap_initialize(&heap, area, sizeof(area), &error);
+
+    max_size = heap.stats.free_size
+      - HEAP_BLOCK_HEADER_SIZE + HEAP_ALLOC_BONUS;
+
+    p = _Heap_Allocate(&heap, max_size);
+    assert(p != NULL);
+
+    ok = _Heap_Free(&heap, p);
+    assert(ok && !error);
+
+    ok = _Heap_Free(&heap, p);
+    assert(ok && error);
+
+    /* Test begin overwrite */
+
+    test_heap_initialize(&heap, area, sizeof(area), &error);
+
+    p = _Heap_Allocate(&heap, max_size);
+    assert(p != NULL);
+
+    *(p - 1) = 0;
+
+    ok = _Heap_Free(&heap, p);
+    assert(ok && error);
+
+    /* Test end overwrite */
+
+    test_heap_initialize(&heap, area, sizeof(area), &error);
+
+    p = _Heap_Allocate(&heap, max_size);
+    assert(p != NULL);
+
+    *(uintptr_t *)((char *) p + max_size) = 0;
+
+    ok = _Heap_Free(&heap, p);
+    assert(ok && error);
+
+    /* Test use after free */
+
+    test_heap_initialize(&heap, area, sizeof(area), &error);
+
+    p = _Heap_Allocate(&heap, max_size);
+    assert(p != NULL);
+
+    ok = _Heap_Free(&heap, p);
+    assert(ok && !error);
+
+    *p = 0;
+
+    block = _Heap_Block_of_alloc_area((uintptr_t) p, heap.page_size);
+    block->Protection_begin.next_delayed_free_block = HEAP_PROTECTION_OBOLUS;
+    ok = _Heap_Free(&heap, p);
+    assert(ok && error);
+  }
+#else
+  #define test_heap_protection() ((void) 0)
+#endif
+
+static rtems_task Init(rtems_task_argument argument)
+{
+  puts( "\n\n*** TEST HEAP PROTECTION ***" );
+
+  test_heap_protection();
+
+  puts( "*** END OF TEST HEAP PROTECTION ***" );
+
+  exit(0);
+}
+
+#define CONFIGURE_INIT
+
+#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+
+#define CONFIGURE_MAXIMUM_TASKS 2
+#define CONFIGURE_MAXIMUM_DRIVERS 1
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#include <rtems/confdefs.h>

diff -u /dev/null rtems/testsuites/sptests/spheapprot/spheapprot.doc:1.1
--- /dev/null	Thu Aug 26 23:44:07 2010
+++ rtems/testsuites/sptests/spheapprot/spheapprot.doc	Wed Aug 25 08:05:47 2010
@@ -0,0 +1,29 @@
+# 
+# Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+# 
+#  embedded brains GmbH
+#  Obere Lagerstr. 30
+#  82178 Puchheim
+#  Germany
+#  <rtems at embedded-brains.de>
+# 
+# The license and distribution terms for this file may be
+# found in the file LICENSE in this distribution or at
+# http://www.rtems.com/license/LICENSE.
+#
+# $Id$
+#
+
+This file describes the directives and concepts tested by this test set.
+
+test set name: spheapprot
+
+directives:
+
+  _Heap_Initialize
+  _Heap_Allocate_aligned_with_boundary
+  _Heap_Free
+
+concepts:
+
++ Check if heap protection works.

diff -u /dev/null rtems/testsuites/sptests/spheapprot/spheapprot.scn:1.1
--- /dev/null	Thu Aug 26 23:44:07 2010
+++ rtems/testsuites/sptests/spheapprot/spheapprot.scn	Wed Aug 25 08:05:47 2010
@@ -0,0 +1,2 @@
+*** TEST HEAP PROTECTION ***
+*** END OF TEST HEAP PROTECTION ***


 *sh*:
2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* libcsupport/src/free.c, libcsupport/src/malloc.c,
	libcsupport/src/malloc_initialize.c: Remove heap walks in case
	RTEMS_DEBUG is defined.

M 1.2597  cpukit/ChangeLog
M   1.10  cpukit/libcsupport/src/free.c
M   1.60  cpukit/libcsupport/src/malloc.c
M   1.14  cpukit/libcsupport/src/malloc_initialize.c

diff -u rtems/cpukit/ChangeLog:1.2596 rtems/cpukit/ChangeLog:1.2597
--- rtems/cpukit/ChangeLog:1.2596	Wed Aug 25 07:35:51 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 09:30:01 2010
@@ -1,5 +1,11 @@
 2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* libcsupport/src/free.c, libcsupport/src/malloc.c,
+	libcsupport/src/malloc_initialize.c: Remove heap walks in case
+	RTEMS_DEBUG is defined.
+
+2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	PR 1672/cpukit
 	* score/include/rtems/score/heap.h, score/src/heap.c,
 	score/src/heapallocate.c, score/src/heapextend.c,

diff -u rtems/cpukit/libcsupport/src/free.c:1.9 rtems/cpukit/libcsupport/src/free.c:1.10
--- rtems/cpukit/libcsupport/src/free.c:1.9	Wed Jun 30 10:36:48 2010
+++ rtems/cpukit/libcsupport/src/free.c	Wed Aug 25 09:30:01 2010
@@ -28,10 +28,6 @@
   if ( !ptr )
     return;
 
-  #if defined(RTEMS_HEAP_DEBUG)
-    _Protected_heap_Walk( RTEMS_Malloc_Heap, 0, false );
-  #endif
-
   /*
    *  Do not attempt to free memory if in a critical section or ISR.
    */

diff -u rtems/cpukit/libcsupport/src/malloc.c:1.59 rtems/cpukit/libcsupport/src/malloc.c:1.60
--- rtems/cpukit/libcsupport/src/malloc.c:1.59	Wed Jun 30 10:36:48 2010
+++ rtems/cpukit/libcsupport/src/malloc.c	Wed Aug 25 09:30:01 2010
@@ -49,13 +49,6 @@
     return NULL;
 
   /*
-   *  Walk the heap and verify its integrity
-   */
-  #if defined(RTEMS_HEAP_DEBUG)
-    _Protected_heap_Walk( RTEMS_Malloc_Heap, 0, false );
-  #endif
-
-  /*
    * Try to give a segment in the current heap if there is not
    * enough space then try to grow the heap.
    * If this fails then return a NULL pointer.

diff -u rtems/cpukit/libcsupport/src/malloc_initialize.c:1.13 rtems/cpukit/libcsupport/src/malloc_initialize.c:1.14
--- rtems/cpukit/libcsupport/src/malloc_initialize.c:1.13	Thu Jul  8 15:09:56 2010
+++ rtems/cpukit/libcsupport/src/malloc_initialize.c	Wed Aug 25 09:30:01 2010
@@ -110,15 +110,5 @@
   }
 
   MSBUMP( space_available, _Protected_heap_Get_size(RTEMS_Malloc_Heap) );
-
-  #if defined(RTEMS_HEAP_DEBUG)
-    if ( _Protected_heap_Walk( RTEMS_Malloc_Heap, 0, false ) ) {
-      printk( "Malloc heap not initialized correctly\n" );
-      rtems_print_buffer( heap_begin, 32 );
-      printk( "\n" );
-      rtems_print_buffer( (heap_begin + heap_size) - 48, 48 );
-      rtems_fatal_error_occurred( RTEMS_NO_MEMORY );
-    }
-  #endif
 }
 #endif


 *strauman* (on branch rtems-4-10-branch):
2010-08-25	Till Straumann <strauman at slac.stanford.edu>

	PR 1689/bsps
	* shared/flash/intelFlash.c: Scale erase timeout by actual
	system clock rate rather than assuming a fixed value.

M  1.238  c/src/lib/libbsp/powerpc/ChangeLog
M 1.178.2.9  c/src/lib/libbsp/powerpc/ChangeLog
M 1.233.2.1  c/src/lib/libbsp/powerpc/ChangeLog
M    1.3  c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c
M 1.1.2.1  c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c
M 1.2.2.1  c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c

diff -u rtems/c/src/lib/libbsp/powerpc/ChangeLog:1.237 rtems/c/src/lib/libbsp/powerpc/ChangeLog:1.238
--- rtems/c/src/lib/libbsp/powerpc/ChangeLog:1.237	Sun Aug 15 18:31:09 2010
+++ rtems/c/src/lib/libbsp/powerpc/ChangeLog	Wed Aug 25 17:21:14 2010
@@ -1,3 +1,9 @@
+2010-08-25	Till Straumann <strauman at slac.stanford.edu>
+
+	PR 1689/bsps
+	* shared/flash/intelFlash.c: Scale erase timeout by actual
+	system clock rate rather than assuming a fixed value.
+
 2010-08-15	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* shared/console/polled_io.c: Add BSP_poll_char.

diff -u rtems/c/src/lib/libbsp/powerpc/ChangeLog:1.178.2.8 rtems/c/src/lib/libbsp/powerpc/ChangeLog:1.178.2.9
--- rtems/c/src/lib/libbsp/powerpc/ChangeLog:1.178.2.8	Mon Feb  1 12:49:13 2010
+++ rtems/c/src/lib/libbsp/powerpc/ChangeLog	Wed Aug 25 17:29:55 2010
@@ -1,3 +1,9 @@
+2010-08-25	Till Straumann <strauman at slac.stanford.edu>
+
+	PR 1689/bsps
+	* shared/flash/intelFlash.c: Scale erase timeout by actual
+	system clock rate rather than assuming a fixed value.
+
 2010-02-01	Till Straumann <strauman at slac.stanford.edu>
 
 	PR 1492/bsps

diff -u rtems/c/src/lib/libbsp/powerpc/ChangeLog:1.233 rtems/c/src/lib/libbsp/powerpc/ChangeLog:1.233.2.1
--- rtems/c/src/lib/libbsp/powerpc/ChangeLog:1.233	Wed Apr 28 13:51:58 2010
+++ rtems/c/src/lib/libbsp/powerpc/ChangeLog	Wed Aug 25 17:24:01 2010
@@ -1,3 +1,9 @@
+2010-08-25	Till Straumann <strauman at slac.stanford.edu>
+
+	PR 1689/bsps
+	* shared/flash/intelFlash.c: Scale erase timeout by actual
+	system clock rate rather than assuming a fixed value.
+
 2010-04-28	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* shared/bootloader/em86.c, shared/bootloader/mm.c,

diff -u rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c:1.2 rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c:1.3
--- rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c:1.2	Sun Nov 29 22:29:20 2009
+++ rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c	Wed Aug 25 17:21:14 2010
@@ -56,16 +56,20 @@
  */
 #ifdef TESTING
 
-#define TIMEOUT_US	100000
-#define rtems_task_wake_after(args...) do {} while (0)
+#define TIMEOUT_US       100000
+#define rtems_task_wake_after(t) sleep(t)
+#define CLOCKRATE_GET(p) (*(p)=1)
 
 #else
 
 #include <rtems.h>
-#define TIMEOUT_US			1000
+#define TIMEOUT_US       1000
+#define CLOCKRATE_GET(p) rtems_clock_get( RTEMS_CLOCK_GET_TICKS_PER_SECOND, p )
 
 #endif
 
+#define ERASE_TIMEOUT_S 2
+
 #include <stdio.h>
 #include <inttypes.h>
 #include <stdlib.h>
@@ -321,14 +325,19 @@
 STATIC int
 flash_erase_block_intel(struct bankdesc *b, uint32_t addr)
 {
-uint32_t sta;
-int i;
+uint32_t       sta;
+int            i;
+rtems_interval p;
+
 	if ( (sta = flash_check_ready_intel(b, addr)) )
 		return sta;
 
 	(void)BSP_flashReadRaw(F_CMD_WR_ERA, addr);
 	(void)BSP_flashReadRaw(F_CMD_WR_CMD, addr);
-	i = 50;
+
+	CLOCKRATE_GET( &p );
+	i = p * ERASE_TIMEOUT_S;
+
 	while ( STA_RDYRDY != (STA_RDYRDY & (sta = BSP_flashReadRaw(F_CMD_RD_STA, addr))) && --i > 0 ) {
 		rtems_task_wake_after(1);
 	}

diff -u rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c:1.1 rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c:1.1.2.1
--- rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c:1.1	Tue Nov 27 14:36:22 2007
+++ rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c	Wed Aug 25 17:29:55 2010
@@ -56,16 +56,20 @@
  */ 
 #ifdef TESTING
 
-#define TIMEOUT_US	100000
-#define rtems_task_wake_after(args...) do {} while (0)
+#define TIMEOUT_US       100000
+#define rtems_task_wake_after(t) sleep(t)
+#define CLOCKRATE_GET(p) (*(p)=1)
 
 #else
 
 #include <rtems.h>
-#define TIMEOUT_US			1000
+#define TIMEOUT_US       1000
+#define CLOCKRATE_GET(p) rtems_clock_get( RTEMS_CLOCK_GET_TICKS_PER_SECOND, p )
 
 #endif
 
+#define ERASE_TIMEOUT_S 2
+
 #include <stdio.h>
 #include <inttypes.h>
 #include <stdlib.h>
@@ -321,14 +325,19 @@
 STATIC int
 flash_erase_block_intel(struct bankdesc *b, uint32_t addr)
 {
-uint32_t sta;
-int i;
+uint32_t       sta;
+int            i;
+rtems_interval p;
+
 	if ( (sta = flash_check_ready_intel(b, addr)) )
 		return sta;
 
 	(void)BSP_flashReadRaw(F_CMD_WR_ERA, addr);
 	(void)BSP_flashReadRaw(F_CMD_WR_CMD, addr);
-	i = 50;
+
+	CLOCKRATE_GET( &p );
+	i = p * ERASE_TIMEOUT_S;
+
 	while ( STA_RDYRDY != (STA_RDYRDY & (sta = BSP_flashReadRaw(F_CMD_RD_STA, addr))) && --i > 0 ) {
 		rtems_task_wake_after(1);
 	}

diff -u rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c:1.2 rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c:1.2.2.1
--- rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c:1.2	Sun Nov 29 22:29:20 2009
+++ rtems/c/src/lib/libbsp/powerpc/shared/flash/intelFlash.c	Wed Aug 25 17:24:01 2010
@@ -56,16 +56,20 @@
  */
 #ifdef TESTING
 
-#define TIMEOUT_US	100000
-#define rtems_task_wake_after(args...) do {} while (0)
+#define TIMEOUT_US       100000
+#define rtems_task_wake_after(t) sleep(t)
+#define CLOCKRATE_GET(p) (*(p)=1)
 
 #else
 
 #include <rtems.h>
-#define TIMEOUT_US			1000
+#define TIMEOUT_US       1000
+#define CLOCKRATE_GET(p) rtems_clock_get( RTEMS_CLOCK_GET_TICKS_PER_SECOND, p )
 
 #endif
 
+#define ERASE_TIMEOUT_S 2
+
 #include <stdio.h>
 #include <inttypes.h>
 #include <stdlib.h>
@@ -321,14 +325,19 @@
 STATIC int
 flash_erase_block_intel(struct bankdesc *b, uint32_t addr)
 {
-uint32_t sta;
-int i;
+uint32_t       sta;
+int            i;
+rtems_interval p;
+
 	if ( (sta = flash_check_ready_intel(b, addr)) )
 		return sta;
 
 	(void)BSP_flashReadRaw(F_CMD_WR_ERA, addr);
 	(void)BSP_flashReadRaw(F_CMD_WR_CMD, addr);
-	i = 50;
+
+	CLOCKRATE_GET( &p );
+	i = p * ERASE_TIMEOUT_S;
+
 	while ( STA_RDYRDY != (STA_RDYRDY & (sta = BSP_flashReadRaw(F_CMD_RD_STA, addr))) && --i > 0 ) {
 		rtems_task_wake_after(1);
 	}


 *joel*:
2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>

	Coverity Id 164/UNINIT
	Coverity Id 165/UNINIT
	* posix/src/prwlockinit.c, posix/src/pspininit.c,
	score/include/rtems/score/corespinlock.h,
	score/inline/rtems/score/corerwlock.inl,
	score/inline/rtems/score/corespinlock.inl: Add initialization helpers
	for score rwlock and spinlock. Use them from POSIX.

M 1.2598  cpukit/ChangeLog
M    1.5  cpukit/posix/src/prwlockinit.c
M    1.4  cpukit/posix/src/pspininit.c
M    1.5  cpukit/score/include/rtems/score/corespinlock.h
M    1.4  cpukit/score/inline/rtems/score/corerwlock.inl
M    1.6  cpukit/score/inline/rtems/score/corespinlock.inl

diff -u rtems/cpukit/ChangeLog:1.2597 rtems/cpukit/ChangeLog:1.2598
--- rtems/cpukit/ChangeLog:1.2597	Wed Aug 25 09:30:01 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 15:01:47 2010
@@ -1,3 +1,13 @@
+2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
+
+	Coverity Id 164/UNINIT
+	Coverity Id 165/UNINIT
+	* posix/src/prwlockinit.c, posix/src/pspininit.c,
+	score/include/rtems/score/corespinlock.h,
+	score/inline/rtems/score/corerwlock.inl,
+	score/inline/rtems/score/corespinlock.inl: Add initialization helpers
+	for score rwlock and spinlock. Use them from POSIX.
+
 2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* libcsupport/src/free.c, libcsupport/src/malloc.c,

diff -u rtems/cpukit/posix/src/prwlockinit.c:1.4 rtems/cpukit/posix/src/prwlockinit.c:1.5
--- rtems/cpukit/posix/src/prwlockinit.c:1.4	Fri Aug 15 11:29:22 2008
+++ rtems/cpukit/posix/src/prwlockinit.c	Wed Aug 25 15:01:47 2010
@@ -78,8 +78,10 @@
 
   /*
    * Convert from POSIX attributes to Core RWLock attributes
+   * 
+   * NOTE: Currently there are no core rwlock attributes
    */
-  /*  Currently there are no core rwlock attributes */
+  _CORE_RWLock_Initialize_attributes( &the_attributes );
 
   /*
    * Enter dispatching critical section to allocate and initialize RWLock

diff -u rtems/cpukit/posix/src/pspininit.c:1.3 rtems/cpukit/posix/src/pspininit.c:1.4
--- rtems/cpukit/posix/src/pspininit.c:1.3	Mon Nov 30 09:44:21 2009
+++ rtems/cpukit/posix/src/pspininit.c	Wed Aug 25 15:01:47 2010
@@ -65,6 +65,8 @@
     return EAGAIN;
   }
 
+  _CORE_spinlock_Initialize_attributes( &attributes );
+
   _CORE_spinlock_Initialize( &the_spinlock->Spinlock, &attributes );
 
   _Objects_Open_u32( &_POSIX_Spinlock_Information, &the_spinlock->Object, 0 );

diff -u rtems/cpukit/score/include/rtems/score/corespinlock.h:1.4 rtems/cpukit/score/include/rtems/score/corespinlock.h:1.5
--- rtems/cpukit/score/include/rtems/score/corespinlock.h:1.4	Fri Nov 27 23:58:54 2009
+++ rtems/cpukit/score/include/rtems/score/corespinlock.h	Wed Aug 25 15:01:47 2010
@@ -32,7 +32,6 @@
 #endif
 
 #include <rtems/score/thread.h>
-#include <rtems/score/thread.h>
 #include <rtems/score/priority.h>
 
 /**

diff -u rtems/cpukit/score/inline/rtems/score/corerwlock.inl:1.3 rtems/cpukit/score/inline/rtems/score/corerwlock.inl:1.4
--- rtems/cpukit/score/inline/rtems/score/corerwlock.inl:1.3	Tue Aug 19 03:32:59 2008
+++ rtems/cpukit/score/inline/rtems/score/corerwlock.inl	Wed Aug 25 15:01:47 2010
@@ -31,6 +31,19 @@
 #include <rtems/score/thread.h>
 #include <rtems/score/threadq.h>
 
+/**
+ *
+ *  This method is used to initialize core rwlock attributes.
+ *
+ *  @param[in] the_attributes pointer to the attributes to initialize.
+ */
+RTEMS_INLINE_ROUTINE void _CORE_RWLock_Initialize_attributes(
+  CORE_RWLock_Attributes *the_attributes
+)
+{
+  the_attributes->XXX = 0;
+}
+
 
 /**@}*/
 

diff -u rtems/cpukit/score/inline/rtems/score/corespinlock.inl:1.5 rtems/cpukit/score/inline/rtems/score/corespinlock.inl:1.6
--- rtems/cpukit/score/inline/rtems/score/corespinlock.inl:1.5	Mon Dec 22 03:22:17 2008
+++ rtems/cpukit/score/inline/rtems/score/corespinlock.inl	Wed Aug 25 15:01:47 2010
@@ -30,6 +30,19 @@
 
 /**
  *
+ *  This method is used to initialize core spinlock attributes.
+ *
+ *  @param[in] the_attributes pointer to the attributes to initialize.
+ */
+RTEMS_INLINE_ROUTINE void _CORE_spinlock_Initialize_attributes(
+  CORE_spinlock_Attributes *the_attributes
+)
+{
+  the_attributes->XXX = 0;
+}
+
+/**
+ *
  *  This method is used to determine if the spinlock is available or not.
  *
  *  @param[in] the_spinlock will be checked


 *joel*:
2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>

	Coverity Id 163
	* libmisc/stackchk/check.c: Adjust conditional compilation.

M 1.2599  cpukit/ChangeLog
M   1.71  cpukit/libmisc/stackchk/check.c

diff -u rtems/cpukit/ChangeLog:1.2598 rtems/cpukit/ChangeLog:1.2599
--- rtems/cpukit/ChangeLog:1.2598	Wed Aug 25 15:01:47 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 15:15:56 2010
@@ -1,5 +1,10 @@
 2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
 
+	Coverity Id 163
+	* libmisc/stackchk/check.c: Adjust conditional compilation.
+
+2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
+
 	Coverity Id 164/UNINIT
 	Coverity Id 165/UNINIT
 	* posix/src/prwlockinit.c, posix/src/pspininit.c,

diff -u rtems/cpukit/libmisc/stackchk/check.c:1.70 rtems/cpukit/libmisc/stackchk/check.c:1.71
--- rtems/cpukit/libmisc/stackchk/check.c:1.70	Mon Aug  2 13:26:30 2010
+++ rtems/cpukit/libmisc/stackchk/check.c	Wed Aug 25 15:15:56 2010
@@ -403,12 +403,11 @@
       the_thread = 0;
       current = 0;
     } else 
-  #else
+  #endif
     {
       stack  = &the_thread->Start.Initial_stack;
       current = (void *)_CPU_Context_Get_SP( &the_thread->Registers );
     }
-  #endif
 
   low  = Stack_check_usable_stack_start(stack);
   size = Stack_check_usable_stack_size(stack);


 *joel*:
2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>

	Coverity Id 169
	* libmisc/stackchk/check.c: Readd line accidentally deleted between
	1.67 and 1.68.

M 1.2600  cpukit/ChangeLog
M   1.72  cpukit/libmisc/stackchk/check.c

diff -u rtems/cpukit/ChangeLog:1.2599 rtems/cpukit/ChangeLog:1.2600
--- rtems/cpukit/ChangeLog:1.2599	Wed Aug 25 15:15:56 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 15:29:40 2010
@@ -1,5 +1,11 @@
 2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
 
+	Coverity Id 169
+	* libmisc/stackchk/check.c: Readd line accidentally deleted between
+	1.67 and 1.68.
+
+2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
+
 	Coverity Id 163
 	* libmisc/stackchk/check.c: Adjust conditional compilation.
 

diff -u rtems/cpukit/libmisc/stackchk/check.c:1.71 rtems/cpukit/libmisc/stackchk/check.c:1.72
--- rtems/cpukit/libmisc/stackchk/check.c:1.71	Wed Aug 25 15:15:56 2010
+++ rtems/cpukit/libmisc/stackchk/check.c	Wed Aug 25 15:29:41 2010
@@ -142,6 +142,7 @@
     0xDEADF00D, 0x600D0D06   /* DEAD FOOD but GOOD DOG */
   };
 
+  if ( Stack_check_Initialized )
     return;
 
   /*


 *joel*:
2010-08-25	Gedare Bloom <giddyup44 at yahoo.com>

	PR 1688/libcpu
	* shared/score/interrupt.S: Fix bug in the sun4u _ISR_Dispatch code
	that ends up cloberring the global registers. It manifests primarily
	as a memory alignment error when the globals are used to read to/from
	memory.

M    1.4  c/src/lib/libcpu/sparc64/ChangeLog
M    1.4  c/src/lib/libcpu/sparc64/shared/score/interrupt.S

diff -u rtems/c/src/lib/libcpu/sparc64/ChangeLog:1.3 rtems/c/src/lib/libcpu/sparc64/ChangeLog:1.4
--- rtems/c/src/lib/libcpu/sparc64/ChangeLog:1.3	Fri Aug 20 07:47:38 2010
+++ rtems/c/src/lib/libcpu/sparc64/ChangeLog	Wed Aug 25 15:33:25 2010
@@ -1,3 +1,11 @@
+2010-08-25	Gedare Bloom <giddyup44 at yahoo.com>
+
+	PR 1688/libcpu
+	* shared/score/interrupt.S: Fix bug in the sun4u _ISR_Dispatch code
+	that ends up cloberring the global registers. It manifests primarily
+	as a memory alignment error when the globals are used to read to/from
+	memory.
+
 2010-08-20	Gedare Bloom <giddyup44 at yahoo.com>
 
 	PR 1681/cpukit

diff -u rtems/c/src/lib/libcpu/sparc64/shared/score/interrupt.S:1.3 rtems/c/src/lib/libcpu/sparc64/shared/score/interrupt.S:1.4
--- rtems/c/src/lib/libcpu/sparc64/shared/score/interrupt.S:1.3	Fri Aug 20 07:47:38 2010
+++ rtems/c/src/lib/libcpu/sparc64/shared/score/interrupt.S	Wed Aug 25 15:33:25 2010
@@ -357,7 +357,7 @@
     ldub     [%g7], %o5
 
     orcc     %o5, %g0, %g0   ! Is thread switch necessary?
-    bnz      SYM(_ISR_Dispatch) ! yes, then invoke the dispatcher
+    bz       simple_return   ! no, then do a simple return. otherwise fallthru
     nop
 
     /*
@@ -502,16 +502,16 @@
   ldx     [%sp + STACK_BIAS + ISF_G6_OFFSET], %g6    ! restore g6
   ldx     [%sp + STACK_BIAS + ISF_G7_OFFSET], %g7    ! restore g7
 
-
-
+  ! Assume the interrupted context is in TL 0 with GL 0 / normal globals.
+  ! When tstate is restored at done/retry, the interrupted context is restored.
   ! return to TL[1], GL[1], and restore TSTATE, TPC, and TNPC
   wrpr  %g0, 1, %tl
 
   ! return to GL=1 or AG
 #if defined(SUN4U)
-    rdpr  %pstate, %g1
-    andn  %g1, SPARC_PSTATE_AG_MASK, %g1
-    wrpr  %g1, %g0, %pstate                 ! go to regular global
+    rdpr  %pstate, %o1
+    or  %o1, SPARC_PSTATE_AG_MASK, %o1
+    wrpr  %o1, %g0, %pstate                 ! go to AG.
 #elif defined(SUN4V)
   wrpr  %g0, 1, %gl
 #endif


 *joel*:
2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>

	Coverity Id 148/STRAY_SEMICOLON
	* score/src/coremsginsert.c: Slightly modify macro.

M 1.2601  cpukit/ChangeLog
M   1.10  cpukit/score/src/coremsginsert.c

diff -u rtems/cpukit/ChangeLog:1.2600 rtems/cpukit/ChangeLog:1.2601
--- rtems/cpukit/ChangeLog:1.2600	Wed Aug 25 15:29:40 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 15:47:33 2010
@@ -1,5 +1,10 @@
 2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
 
+	Coverity Id 148/STRAY_SEMICOLON
+	* score/src/coremsginsert.c: Slightly modify macro.
+
+2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
+
 	Coverity Id 169
 	* libmisc/stackchk/check.c: Readd line accidentally deleted between
 	1.67 and 1.68.

diff -u rtems/cpukit/score/src/coremsginsert.c:1.9 rtems/cpukit/score/src/coremsginsert.c:1.10
--- rtems/cpukit/score/src/coremsginsert.c:1.9	Sun Sep 13 11:05:14 2009
+++ rtems/cpukit/score/src/coremsginsert.c	Wed Aug 25 15:47:33 2010
@@ -59,8 +59,10 @@
   #if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
     bool    notify = false;
     #define SET_NOTIFY() \
-      if ( the_message_queue->number_of_pending_messages == 0 )
-        notify = true;
+      do { \
+        if ( the_message_queue->number_of_pending_messages == 0 )
+          notify = true; \
+      } while (0)
   #else
     #define SET_NOTIFY()
   #endif


 *joel*:
2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>

	* score/src/coremsginsert.c: Fix typo.

M 1.2602  cpukit/ChangeLog
M   1.11  cpukit/score/src/coremsginsert.c

diff -u rtems/cpukit/ChangeLog:1.2601 rtems/cpukit/ChangeLog:1.2602
--- rtems/cpukit/ChangeLog:1.2601	Wed Aug 25 15:47:33 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 15:48:42 2010
@@ -1,5 +1,9 @@
 2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
 
+	* score/src/coremsginsert.c: Fix typo.
+
+2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
+
 	Coverity Id 148/STRAY_SEMICOLON
 	* score/src/coremsginsert.c: Slightly modify macro.
 

diff -u rtems/cpukit/score/src/coremsginsert.c:1.10 rtems/cpukit/score/src/coremsginsert.c:1.11
--- rtems/cpukit/score/src/coremsginsert.c:1.10	Wed Aug 25 15:47:33 2010
+++ rtems/cpukit/score/src/coremsginsert.c	Wed Aug 25 15:48:43 2010
@@ -60,7 +60,7 @@
     bool    notify = false;
     #define SET_NOTIFY() \
       do { \
-        if ( the_message_queue->number_of_pending_messages == 0 )
+        if ( the_message_queue->number_of_pending_messages == 0 ) \
           notify = true; \
       } while (0)
   #else


 *joel*:
2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>

	Coverity Id 125
	Coverity Id 126
	* libi2c/libi2c.c: Use strncpy and snprintf.

M 1.2603  cpukit/ChangeLog
M   1.19  cpukit/libi2c/libi2c.c

diff -u rtems/cpukit/ChangeLog:1.2602 rtems/cpukit/ChangeLog:1.2603
--- rtems/cpukit/ChangeLog:1.2602	Wed Aug 25 15:48:42 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 16:17:03 2010
@@ -1,5 +1,11 @@
 2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
 
+	Coverity Id 125
+	Coverity Id 126
+	* libi2c/libi2c.c: Use strncpy and snprintf.
+
+2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
+
 	* score/src/coremsginsert.c: Fix typo.
 
 2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>

diff -u rtems/cpukit/libi2c/libi2c.c:1.18 rtems/cpukit/libi2c/libi2c.c:1.19
--- rtems/cpukit/libi2c/libi2c.c:1.18	Mon Aug 23 18:18:27 2010
+++ rtems/cpukit/libi2c/libi2c.c	Wed Aug 25 16:17:03 2010
@@ -385,7 +385,8 @@
 {
   int i;
   rtems_status_code err;
-  char *nmcpy = malloc (name ? strlen (name) + 1 : 20);
+  size_t length = (name ? strlen (name) + 1 : 20);
+  char *nmcpy = malloc(length);
   char tmp, *chpt;
   struct stat sbuf;
 
@@ -394,7 +395,7 @@
     return -RTEMS_NO_MEMORY;
   }
 
-  strcpy (nmcpy, name ? name : "/dev/i2c");
+  strncpy (nmcpy, name ? name : "/dev/i2c", length);
 
   /* check */
   if ('/' != *nmcpy) {
@@ -737,8 +738,9 @@
       minor = ((i + 1) << 13) | RTEMS_LIBI2C_MAKE_MINOR (busno, i2caddr);
 
       if (name) {
-        str = malloc (strlen (busses[busno].name) + strlen (name) + 2);
-        sprintf (str, "%s.%s", busses[busno].name, name);
+        size_t length = strlen (busses[busno].name) + strlen (name) + 2;
+        str = malloc (length);
+        snprintf (str, length, "%s.%s", busses[busno].name, name);
 
         dev = rtems_filesystem_make_dev_t (rtems_libi2c_major, minor);
 


 *joel*:
2010-08-25	Joel Sherrill <joel.sherrilL at OARcorp.com>

	* .cvsignore: New file.

A    1.1  c/src/lib/libbsp/lm32/milkymist/.cvsignore
M    1.2  c/src/lib/libbsp/lm32/milkymist/ChangeLog

diff -u /dev/null rtems/c/src/lib/libbsp/lm32/milkymist/.cvsignore:1.1
--- /dev/null	Thu Aug 26 23:44:10 2010
+++ rtems/c/src/lib/libbsp/lm32/milkymist/.cvsignore	Wed Aug 25 17:15:43 2010
@@ -0,0 +1,8 @@
+Makefile
+Makefile.in
+aclocal.m4
+autom4te.cache
+config.cache
+config.log
+config.status
+configure

diff -u rtems/c/src/lib/libbsp/lm32/milkymist/ChangeLog:1.1 rtems/c/src/lib/libbsp/lm32/milkymist/ChangeLog:1.2
--- rtems/c/src/lib/libbsp/lm32/milkymist/ChangeLog:1.1	Fri Aug 20 16:22:27 2010
+++ rtems/c/src/lib/libbsp/lm32/milkymist/ChangeLog	Wed Aug 25 17:15:44 2010
@@ -1,3 +1,7 @@
+2010-08-25	Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+	* .cvsignore: New file.
+
 2010-08-20	<yann.sionneau at telecom-sudparis.eu>
 
 	Add Milkymist BSP developed as part of GSOC 2010.


 *joel*:
2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>

	Coverity Id 93/NO_EFFECT
	Coverity Id 94/NO_EFFECT
	* libcsupport/src/readv.c, libcsupport/src/writev.c: size_t is unsigned
	so it is useless to check for < 0.

M 1.2604  cpukit/ChangeLog
M    1.7  cpukit/libcsupport/src/readv.c
M    1.6  cpukit/libcsupport/src/writev.c

diff -u rtems/cpukit/ChangeLog:1.2603 rtems/cpukit/ChangeLog:1.2604
--- rtems/cpukit/ChangeLog:1.2603	Wed Aug 25 16:17:03 2010
+++ rtems/cpukit/ChangeLog	Wed Aug 25 17:25:17 2010
@@ -1,5 +1,12 @@
 2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
 
+	Coverity Id 93/NO_EFFECT
+	Coverity Id 94/NO_EFFECT
+	* libcsupport/src/readv.c, libcsupport/src/writev.c: size_t is unsigned
+	so it is useless to check for < 0.
+
+2010-08-25	Joel Sherrill <joel.sherrill at oarcorp.com>
+
 	Coverity Id 125
 	Coverity Id 126
 	* libi2c/libi2c.c: Use strncpy and snprintf.

diff -u rtems/cpukit/libcsupport/src/readv.c:1.6 rtems/cpukit/libcsupport/src/readv.c:1.7
--- rtems/cpukit/libcsupport/src/readv.c:1.6	Thu Jul 15 03:10:47 2010
+++ rtems/cpukit/libcsupport/src/readv.c	Wed Aug 25 17:25:18 2010
@@ -68,10 +68,11 @@
   for ( total=0, v=0 ; v < iovcnt ; v++ ) {
     ssize_t old;
 
-    if ( !iov[v].iov_base )
-      rtems_set_errno_and_return_minus_one( EINVAL );
-
-    if ( iov[v].iov_len < 0 )
+    /*
+     *  iov[v].iov_len cannot be less than 0 because size_t is unsigned.
+     *  So we only check for zero.
+     */
+    if ( iov[v].iov_base == 0 )
       rtems_set_errno_and_return_minus_one( EINVAL );
 
     /* check for wrap */

diff -u rtems/cpukit/libcsupport/src/writev.c:1.5 rtems/cpukit/libcsupport/src/writev.c:1.6
--- rtems/cpukit/libcsupport/src/writev.c:1.5	Thu Jul 15 03:10:47 2010
+++ rtems/cpukit/libcsupport/src/writev.c	Wed Aug 25 17:25:18 2010
@@ -73,10 +73,11 @@
   all_zeros = true;
   for ( old=0, total=0, v=0 ; v < iovcnt ; v++ ) {
 
-    if ( !iov[v].iov_base )
-      rtems_set_errno_and_return_minus_one( EINVAL );
-
-    if ( iov[v].iov_len < 0 )
+    /*
+     *  iov[v].iov_len cannot be less than 0 because size_t is unsigned.
+     *  So we only check for zero.
+     */
+    if ( iov[v].iov_base == 0 )
       rtems_set_errno_and_return_minus_one( EINVAL );
 
     if ( iov[v].iov_len )


 *joel*:
2010-08-26  Gedare Bloom <giddyup44 at yahoo.com>

	PR 1691/bsps
	* shared/include/traptable.h: Double the size of TABLE_SIZE to copy
	code branched to from the trap table.

M    1.5  c/src/lib/libbsp/sparc64/ChangeLog
M    1.2  c/src/lib/libbsp/sparc64/shared/include/traptable.h

diff -u rtems/c/src/lib/libbsp/sparc64/ChangeLog:1.4 rtems/c/src/lib/libbsp/sparc64/ChangeLog:1.5
--- rtems/c/src/lib/libbsp/sparc64/ChangeLog:1.4	Tue Aug  3 13:29:11 2010
+++ rtems/c/src/lib/libbsp/sparc64/ChangeLog	Thu Aug 26 13:04:51 2010
@@ -1,3 +1,9 @@
+2010-08-26  Gedare Bloom <giddyup44 at yahoo.com>
+
+	PR 1691/bsps
+	* shared/include/traptable.h: Double the size of TABLE_SIZE to copy
+	code branched to from the trap table.
+
 2010-08-03	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* shared/startup/linkcmds: Add .gcc_except_table*.

diff -u rtems/c/src/lib/libbsp/sparc64/shared/include/traptable.h:1.1 rtems/c/src/lib/libbsp/sparc64/shared/include/traptable.h:1.2
--- rtems/c/src/lib/libbsp/sparc64/shared/include/traptable.h:1.1	Thu Jun 17 11:20:45 2010
+++ rtems/c/src/lib/libbsp/sparc64/shared/include/traptable.h	Thu Aug 26 13:04:51 2010
@@ -13,7 +13,8 @@
 /* This file can be included by assembly code */
 
 #define ENTRY_SIZE (32)
-#define TABLE_SIZE (1024*ENTRY_SIZE)
+
+#define TABLE_SIZE (1024*ENTRY_SIZE * 2 /* HACK */ )
 
 #ifndef ASM
 extern void* trap_table[TABLE_SIZE];


 *joel*:
2010-08-26	Joel Sherrill <joel.sherrill at oarcorp.com>

	* psxenosys/init.c, psxenosys/psxenosys.scn: Update to reflect some of
	aio being implemented.

M  1.313  testsuites/psxtests/ChangeLog
M   1.12  testsuites/psxtests/psxenosys/init.c
M    1.6  testsuites/psxtests/psxenosys/psxenosys.scn

diff -u rtems/testsuites/psxtests/ChangeLog:1.312 rtems/testsuites/psxtests/ChangeLog:1.313
--- rtems/testsuites/psxtests/ChangeLog:1.312	Thu Aug 19 14:55:29 2010
+++ rtems/testsuites/psxtests/ChangeLog	Thu Aug 26 14:35:09 2010
@@ -1,3 +1,8 @@
+2010-08-26	Joel Sherrill <joel.sherrill at oarcorp.com>
+
+	* psxenosys/init.c, psxenosys/psxenosys.scn: Update to reflect some of
+	aio being implemented.
+
 2010-08-19	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* psxenosys/init.c, psxenosys/psxenosys.scn: Update to reflect AIO

diff -u rtems/testsuites/psxtests/psxenosys/init.c:1.11 rtems/testsuites/psxtests/psxenosys/init.c:1.12
--- rtems/testsuites/psxtests/psxenosys/init.c:1.11	Thu Aug 19 14:55:29 2010
+++ rtems/testsuites/psxtests/psxenosys/init.c	Thu Aug 26 14:35:09 2010
@@ -56,18 +56,10 @@
   sc = lio_listio( 0, NULL, 0, NULL );
   check_enosys( sc );
 
-  puts( "aio_cancel -- ENOSYS" );
-  sc = aio_cancel( 0, NULL );
-  check_enosys( sc );
-
   puts( "aio_suspend -- ENOSYS" );
   sc = aio_suspend( NULL, 0, NULL );
   check_enosys( sc );
 
-  puts( "aio_fsync -- ENOSYS" );
-  sc = aio_fsync( 0, NULL );
-  check_enosys( sc );
-
   puts( "clock_getcpuclockid -- ENOSYS" );
   sc = clock_getcpuclockid( 0, NULL );
   check_enosys( sc );

diff -u rtems/testsuites/psxtests/psxenosys/psxenosys.scn:1.5 rtems/testsuites/psxtests/psxenosys/psxenosys.scn:1.6
--- rtems/testsuites/psxtests/psxenosys/psxenosys.scn:1.5	Thu Aug 19 14:55:29 2010
+++ rtems/testsuites/psxtests/psxenosys/psxenosys.scn	Thu Aug 26 14:35:09 2010
@@ -1,8 +1,6 @@
 *** POSIX TEST -- ENOSYS ***
 lio_listio -- ENOSYS
-aio_cancel -- ENOSYS
 aio_suspend -- ENOSYS
-aio_fsync -- ENOSYS
 clock_getcpuclockid -- ENOSYS
 clock_getenable_attr -- ENOSYS
 clock_setenable_attr -- ENOSYS


 *joel*:
2010-08-26	Bharath Suri <bharath.s.jois at gmail.com>

	PR 1663/testing
	* spmkdir/init.c, spmkdir/spmkdir.scn: Added some test outputs to
	the test.

M  1.419  testsuites/sptests/ChangeLog
M    1.3  testsuites/sptests/spmkdir/init.c
M    1.2  testsuites/sptests/spmkdir/spmkdir.scn

diff -u rtems/testsuites/sptests/ChangeLog:1.418 rtems/testsuites/sptests/ChangeLog:1.419
--- rtems/testsuites/sptests/ChangeLog:1.418	Wed Aug 25 08:05:47 2010
+++ rtems/testsuites/sptests/ChangeLog	Thu Aug 26 14:40:09 2010
@@ -1,3 +1,9 @@
+2010-08-26	Bharath Suri <bharath.s.jois at gmail.com>
+
+	PR 1663/testing
+	* spmkdir/init.c, spmkdir/spmkdir.scn: Added some test outputs to
+	the test.
+
 2010-08-25	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* spheapprot/.cvsignore, spheapprot/Makefile.am,

diff -u rtems/testsuites/sptests/spmkdir/init.c:1.2 rtems/testsuites/sptests/spmkdir/init.c:1.3
--- rtems/testsuites/sptests/spmkdir/init.c:1.2	Tue Aug 10 12:34:12 2010
+++ rtems/testsuites/sptests/spmkdir/init.c	Thu Aug 26 14:40:09 2010
@@ -54,29 +54,44 @@
 
   puts("\n\n*** TEST SPMKDIR ***");
 
+  puts( "rtems_mkdir a - OK" );
   test_mkdir("a", omode, 0);
+  puts( "rtems_mkdir a/b - OK" );
   test_mkdir("a/b", omode, 0);
+  puts( "rtems_mkdir a/b/c/d/e/f/g/h/i - OK" );
   test_mkdir("a/b/c/d/e/f/g/h/i", omode, 0);
+  puts( "rtems_mkdir a/b/c - OK" );
   test_mkdir("a/b/c", omode, 0);
+  puts( "rtems_mkdir a/b/c/1 - OK" );
   test_mkdir("a/b/c/1", 0, 0);
+  puts( "rtems_mkdir a/b/c/2 - OK" );
   test_mkdir("a/b/c/2", S_IRWXU, 0);
+  puts( "rtems_mkdir a/b/c/3 - OK" );
   test_mkdir("a/b/c/3", S_IRWXG, 0);
+  puts( "rtems_mkdir a/b/c/4 - OK" );
   test_mkdir("a/b/c/4", S_IRWXO, 0);
+  puts( "rtems_mkdir a/b - OK" );
   test_mkdir("a/b", omode, 0);
+  puts( "rtems_mkdir a - OK" );
   test_mkdir("a", omode, 0);
+  puts( "rtems_mkdir a/b/x - OK" );
   test_mkdir("a/b/x", S_IRUSR, 0);
+  puts( "rtems_mkdir a/b/x/y - expect failure" );
   test_mkdir("a/b/x/y", S_IRUSR, -1);
-  
+  puts( "mknod regular file a/n - OK" );  
   rv = mknod("a/n", S_IRWXU | S_IFREG, 0LL);
-
+  puts( "rtems_mkdir a/n/b - expect failure" );
   test_mkdir("a/n/b", S_IRUSR, -1);
 
+  puts( "Create node b and open in RDONLY mode - OK" );
   rv = open ("b", O_CREAT | O_RDONLY, omode);
   rtems_test_assert(rv >= 0);
 
+  puts( "Closing b - OK" );
   rv = close(rv);
   rtems_test_assert(rv == 0);
 
+  puts( "rtems_mkdir b - expect failure" );
   test_mkdir("b", omode, -1);
   rtems_test_assert(errno == EEXIST);
 

diff -u rtems/testsuites/sptests/spmkdir/spmkdir.scn:1.1 rtems/testsuites/sptests/spmkdir/spmkdir.scn:1.2
--- rtems/testsuites/sptests/spmkdir/spmkdir.scn:1.1	Tue Jun  8 08:22:58 2010
+++ rtems/testsuites/sptests/spmkdir/spmkdir.scn	Thu Aug 26 14:40:09 2010
@@ -1,2 +1,19 @@
 *** TEST SPMKDIR ***
+rtems_mkdir a - OK
+rtems_mkdir a/b - OK
+rtems_mkdir a/b/c/d/e/f/g/h/i - OK
+rtems_mkdir a/b/c - OK
+rtems_mkdir a/b/c/1 - OK
+rtems_mkdir a/b/c/2 - OK
+rtems_mkdir a/b/c/3 - OK
+rtems_mkdir a/b/c/4 - OK
+rtems_mkdir a/b - OK
+rtems_mkdir a - OK
+rtems_mkdir a/b/x - OK
+rtems_mkdir a/b/x/y - expect failure
+mknod regular file a/n - OK
+rtems_mkdir a/n/b - expect failure
+Create node b and open in RDONLY mode - OK
+Closing b - OK
+rtems_mkdir b - expect failure
 *** END OF TEST SPMKDIR ***


 *joel*:
2010-08-26	Joel Sherrill <joel.sherrill at oarcorp.com>

	* libcsupport/src/eval.c: Make some filesystem implementation
	correctness checks conditional on RTEMS_DEBUG.

M 1.2606  cpukit/ChangeLog
M   1.18  cpukit/libcsupport/src/eval.c

diff -u rtems/cpukit/ChangeLog:1.2605 rtems/cpukit/ChangeLog:1.2606
--- rtems/cpukit/ChangeLog:1.2605	Thu Aug 26 01:31:14 2010
+++ rtems/cpukit/ChangeLog	Thu Aug 26 14:57:19 2010
@@ -1,3 +1,8 @@
+2010-08-26	Joel Sherrill <joel.sherrill at oarcorp.com>
+
+	* libcsupport/src/eval.c: Make some filesystem implementation
+	correctness checks conditional on RTEMS_DEBUG.
+
 2010-08-26	Chris Johns <chrisj at rtems.org>
 
 	* libfs/src/defaults/default_evaluate_link.c: Remove assignment.

diff -u rtems/cpukit/libcsupport/src/eval.c:1.17 rtems/cpukit/libcsupport/src/eval.c:1.18
--- rtems/cpukit/libcsupport/src/eval.c:1.17	Thu Jul  1 10:12:36 2010
+++ rtems/cpukit/libcsupport/src/eval.c	Thu Aug 26 14:57:19 2010
@@ -3,7 +3,7 @@
  *
  *  Routine to seed the evaluate path routine.
  *
- *  COPYRIGHT (c) 1989-1999.
+ *  COPYRIGHT (c) 1989-2010.
  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
@@ -32,15 +32,17 @@
   int                           result;
   rtems_filesystem_node_types_t type;
 
-  /*
-   * Verify Input parameters.
-   */
-
-  if ( !pathname )
-    rtems_set_errno_and_return_minus_one( EFAULT );
-
-  if ( !pathloc )
-    rtems_set_errno_and_return_minus_one( EIO );       /* should never happen */
+  #if defined(RTEMS_DEBUG)
+    /*
+     * Verify Input parameters that should never be bad unless someone
+     * is implementing a new filesystem and has bugs.
+     */
+    if ( !pathname )
+      rtems_set_errno_and_return_minus_one( EFAULT );
+
+    if ( !pathloc )
+      rtems_set_errno_and_return_minus_one( EIO );
+  #endif
 
   result = (*pathloc->ops->evalpath_h)( pathname, pathnamelen, flags, pathloc );
 
@@ -87,15 +89,17 @@
 {
   int                           i = 0;
 
-  /*
-   * Verify Input parameters.
-   */
-
-  if ( !pathname )
-    rtems_set_errno_and_return_minus_one( EFAULT );
-
-  if ( !pathloc )
-    rtems_set_errno_and_return_minus_one( EIO );       /* should never happen */
+  #if defined(RTEMS_DEBUG)
+    /*
+     * Verify Input parameters that should never be bad unless someone
+     * is implementing a new filesystem and has bugs.
+     */
+    if ( !pathname )
+      rtems_set_errno_and_return_minus_one( EFAULT );
+
+    if ( !pathloc )
+      rtems_set_errno_and_return_minus_one( EIO );
+  #endif
 
   /*
    * Evaluate the path using the optable evalpath.


 *joel*:
2010-08-26	Joel Sherrill <joel.sherrill at oarcorp.com>

	* libmisc/monitor/mon-symbols.c: Fix length of buffer passed to
	strncpy() so there is room for a NULL terminator.

M 1.2607  cpukit/ChangeLog
M   1.34  cpukit/libmisc/monitor/mon-symbols.c

diff -u rtems/cpukit/ChangeLog:1.2606 rtems/cpukit/ChangeLog:1.2607
--- rtems/cpukit/ChangeLog:1.2606	Thu Aug 26 14:57:19 2010
+++ rtems/cpukit/ChangeLog	Thu Aug 26 16:41:41 2010
@@ -1,5 +1,10 @@
 2010-08-26	Joel Sherrill <joel.sherrill at oarcorp.com>
 
+	* libmisc/monitor/mon-symbols.c: Fix length of buffer passed to
+	strncpy() so there is room for a NULL terminator.
+
+2010-08-26	Joel Sherrill <joel.sherrill at oarcorp.com>
+
 	* libcsupport/src/eval.c: Make some filesystem implementation
 	correctness checks conditional on RTEMS_DEBUG.
 

diff -u rtems/cpukit/libmisc/monitor/mon-symbols.c:1.33 rtems/cpukit/libmisc/monitor/mon-symbols.c:1.34
--- rtems/cpukit/libmisc/monitor/mon-symbols.c:1.33	Mon Apr 12 10:21:42 2010
+++ rtems/cpukit/libmisc/monitor/mon-symbols.c	Thu Aug 26 16:41:41 2010
@@ -1,5 +1,5 @@
 /*
- *  File:	symbols.c
+ *  File: symbols.c
  *
  *  Description:
  *    Symbol table manager for the RTEMS monitor.
@@ -339,7 +339,7 @@
 {
     canonical_symbol->value = sp->value;
     canonical_symbol->offset = 0;
-    strncpy(canonical_symbol->name, sp->name, sizeof(canonical_symbol->name));
+    strncpy(canonical_symbol->name, sp->name, sizeof(canonical_symbol->name)-1);
 }
 
 
@@ -355,7 +355,7 @@
 
     canonical_symbol->value = sp ? sp->value : 0;
 
-    strncpy(canonical_symbol->name, name, sizeof(canonical_symbol->name));
+    strncpy(canonical_symbol->name, name, sizeof(canonical_symbol->name) - 1);
     canonical_symbol->offset = 0;
 }
 
@@ -373,7 +373,7 @@
     {
         canonical_symbol->value = sp->value;
         canonical_symbol->offset = value - sp->value;
-        strncpy(canonical_symbol->name, sp->name, sizeof(canonical_symbol->name));
+        strncpy(canonical_symbol->name, sp->name, sizeof(canonical_symbol->name)-1);
     }
     else
     {


 *joel*:
2010-08-26	Joel Sherrill <joel.sherrill at oarcorp.com>

	* libcsupport/src/sync.c: Add comment explaining why the return value
	from fsync() and fdatasync() is not checked.

M 1.2608  cpukit/ChangeLog
M   1.11  cpukit/libcsupport/src/sync.c

diff -u rtems/cpukit/ChangeLog:1.2607 rtems/cpukit/ChangeLog:1.2608
--- rtems/cpukit/ChangeLog:1.2607	Thu Aug 26 16:41:41 2010
+++ rtems/cpukit/ChangeLog	Thu Aug 26 16:42:21 2010
@@ -1,5 +1,10 @@
 2010-08-26	Joel Sherrill <joel.sherrill at oarcorp.com>
 
+	* libcsupport/src/sync.c: Add comment explaining why the return value
+	from fsync() and fdatasync() is not checked.
+
+2010-08-26	Joel Sherrill <joel.sherrill at oarcorp.com>
+
 	* libmisc/monitor/mon-symbols.c: Fix length of buffer passed to
 	strncpy() so there is room for a NULL terminator.
 

diff -u rtems/cpukit/libcsupport/src/sync.c:1.10 rtems/cpukit/libcsupport/src/sync.c:1.11
--- rtems/cpukit/libcsupport/src/sync.c:1.10	Wed Sep 17 11:12:02 2008
+++ rtems/cpukit/libcsupport/src/sync.c	Thu Aug 26 16:42:21 2010
@@ -47,6 +47,11 @@
 {
   int fn = fileno(f);
 
+  /*
+   *  We are explicitly NOT checking the return values as it does not
+   *  matter if they succeed.  We are just making a best faith attempt
+   *  at both and trusting that we were passed a good FILE pointer.
+   */
   fsync(fn);
   fdatasync(fn);
 }


 *ralf*:
newlib-1.18.0-rtems4.11-20100825.diff.

M   1.22  contrib/crossrpms/rtems4.11/arm/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/avr/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/bfin/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/h8300/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/i386/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/lm32/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/m32c/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/m32r/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/m68k/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/mips/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/powerpc/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/sh/gcc-sources.add
M   1.22  contrib/crossrpms/rtems4.11/sparc/gcc-sources.add
M   1.13  contrib/crossrpms/rtems4.11/sparc64/gcc-sources.add

diff -u rtems/contrib/crossrpms/rtems4.11/arm/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/arm/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/arm/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/arm/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/avr/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/avr/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/avr/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/avr/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/bfin/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/bfin/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/bfin/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/bfin/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/h8300/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/h8300/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/h8300/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/h8300/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/i386/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/i386/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/i386/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/i386/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/lm32/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/lm32/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/lm32/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/lm32/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/m32c/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/m32c/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/m32c/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32c/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/m32r/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/m32r/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/m32r/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32r/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/m68k/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/m68k/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/m68k/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/m68k/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/mips/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/mips/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/mips/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/mips/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/powerpc/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/powerpc/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/powerpc/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/powerpc/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/sh/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/sh/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/sh/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/sh/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/sparc/gcc-sources.add:1.21 rtems/contrib/crossrpms/rtems4.11/sparc/gcc-sources.add:1.22
--- rtems/contrib/crossrpms/rtems4.11/sparc/gcc-sources.add:1.21	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif

diff -u rtems/contrib/crossrpms/rtems4.11/sparc64/gcc-sources.add:1.12 rtems/contrib/crossrpms/rtems4.11/sparc64/gcc-sources.add:1.13
--- rtems/contrib/crossrpms/rtems4.11/sparc64/gcc-sources.add:1.12	Wed Aug 18 05:29:57 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc64/gcc-sources.add	Wed Aug 25 07:46:01 2010
@@ -41,7 +41,7 @@
 %if %build_newlib
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 %endif


 *ralf*:
Bump GCC_RPMREL.

M   1.25  contrib/crossrpms/rtems4.11/arm/Makefile.am
M   1.26  contrib/crossrpms/rtems4.11/avr/Makefile.am
M   1.25  contrib/crossrpms/rtems4.11/bfin/Makefile.am
M   1.27  contrib/crossrpms/rtems4.11/h8300/Makefile.am
M   1.27  contrib/crossrpms/rtems4.11/i386/Makefile.am
M   1.28  contrib/crossrpms/rtems4.11/lm32/Makefile.am
M   1.28  contrib/crossrpms/rtems4.11/m32c/Makefile.am
M   1.25  contrib/crossrpms/rtems4.11/m32r/Makefile.am
M   1.27  contrib/crossrpms/rtems4.11/m68k/Makefile.am
M   1.27  contrib/crossrpms/rtems4.11/mips/Makefile.am
M   1.28  contrib/crossrpms/rtems4.11/powerpc/Makefile.am
M   1.27  contrib/crossrpms/rtems4.11/sh/Makefile.am
M   1.29  contrib/crossrpms/rtems4.11/sparc/Makefile.am
M   1.16  contrib/crossrpms/rtems4.11/sparc64/Makefile.am

diff -u rtems/contrib/crossrpms/rtems4.11/arm/Makefile.am:1.24 rtems/contrib/crossrpms/rtems4.11/arm/Makefile.am:1.25
--- rtems/contrib/crossrpms/rtems4.11/arm/Makefile.am:1.24	Wed Aug 18 05:29:36 2010
+++ rtems/contrib/crossrpms/rtems4.11/arm/Makefile.am	Wed Aug 25 07:46:16 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)

diff -u rtems/contrib/crossrpms/rtems4.11/avr/Makefile.am:1.25 rtems/contrib/crossrpms/rtems4.11/avr/Makefile.am:1.26
--- rtems/contrib/crossrpms/rtems4.11/avr/Makefile.am:1.25	Wed Aug 18 05:29:38 2010
+++ rtems/contrib/crossrpms/rtems4.11/avr/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/bfin/Makefile.am:1.24 rtems/contrib/crossrpms/rtems4.11/bfin/Makefile.am:1.25
--- rtems/contrib/crossrpms/rtems4.11/bfin/Makefile.am:1.24	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/bfin/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/h8300/Makefile.am:1.26 rtems/contrib/crossrpms/rtems4.11/h8300/Makefile.am:1.27
--- rtems/contrib/crossrpms/rtems4.11/h8300/Makefile.am:1.26	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/h8300/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/i386/Makefile.am:1.26 rtems/contrib/crossrpms/rtems4.11/i386/Makefile.am:1.27
--- rtems/contrib/crossrpms/rtems4.11/i386/Makefile.am:1.26	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/i386/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/lm32/Makefile.am:1.27 rtems/contrib/crossrpms/rtems4.11/lm32/Makefile.am:1.28
--- rtems/contrib/crossrpms/rtems4.11/lm32/Makefile.am:1.27	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/lm32/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/m32c/Makefile.am:1.27 rtems/contrib/crossrpms/rtems4.11/m32c/Makefile.am:1.28
--- rtems/contrib/crossrpms/rtems4.11/m32c/Makefile.am:1.27	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32c/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/m32r/Makefile.am:1.24 rtems/contrib/crossrpms/rtems4.11/m32r/Makefile.am:1.25
--- rtems/contrib/crossrpms/rtems4.11/m32r/Makefile.am:1.24	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32r/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/m68k/Makefile.am:1.26 rtems/contrib/crossrpms/rtems4.11/m68k/Makefile.am:1.27
--- rtems/contrib/crossrpms/rtems4.11/m68k/Makefile.am:1.26	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/m68k/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/mips/Makefile.am:1.26 rtems/contrib/crossrpms/rtems4.11/mips/Makefile.am:1.27
--- rtems/contrib/crossrpms/rtems4.11/mips/Makefile.am:1.26	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/mips/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/powerpc/Makefile.am:1.27 rtems/contrib/crossrpms/rtems4.11/powerpc/Makefile.am:1.28
--- rtems/contrib/crossrpms/rtems4.11/powerpc/Makefile.am:1.27	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/powerpc/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/sh/Makefile.am:1.26 rtems/contrib/crossrpms/rtems4.11/sh/Makefile.am:1.27
--- rtems/contrib/crossrpms/rtems4.11/sh/Makefile.am:1.26	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/sh/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/sparc/Makefile.am:1.28 rtems/contrib/crossrpms/rtems4.11/sparc/Makefile.am:1.29
--- rtems/contrib/crossrpms/rtems4.11/sparc/Makefile.am:1.28	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`

diff -u rtems/contrib/crossrpms/rtems4.11/sparc64/Makefile.am:1.15 rtems/contrib/crossrpms/rtems4.11/sparc64/Makefile.am:1.16
--- rtems/contrib/crossrpms/rtems4.11/sparc64/Makefile.am:1.15	Wed Aug 18 05:29:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc64/Makefile.am	Wed Aug 25 07:46:17 2010
@@ -13,7 +13,7 @@
 
 GCC_VERS = 4.5.1
 GCC_PKGVERS = $(GCC_VERS)
-GCC_RPMREL = 5
+GCC_RPMREL = 6
 NEWLIB_VERS = 1.18.0
 NEWLIB_PKGVERS = $(NEWLIB_VERS)
 NEWLIB_RPMREL = `expr $(GCC_RPMREL) + 15`


 *ralf*:
Add binutils-pr11939 patch.

A    1.1  contrib/crossrpms/patches/binutils-2.20.1-rtems4.11-20100826.diff

diff -u /dev/null rtems/contrib/crossrpms/patches/binutils-2.20.1-rtems4.11-20100826.diff:1.1
--- /dev/null	Thu Aug 26 23:44:14 2010
+++ rtems/contrib/crossrpms/patches/binutils-2.20.1-rtems4.11-20100826.diff	Wed Aug 25 21:15:42 2010
@@ -0,0 +1,99 @@
+diff -Naur binutils-2.20.1.orig/bfd/ChangeLog.rtems binutils-2.20.1/bfd/ChangeLog.rtems
+--- binutils-2.20.1.orig/bfd/ChangeLog.rtems	1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.20.1/bfd/ChangeLog.rtems	2010-08-26 03:44:38.183353062 +0200
+@@ -0,0 +1,6 @@
++2010-08-25  H.J. Lu  <hongjiu.lu at intel.com>
++ 
++	PR ld/11939
++	* elflink.c (elf_link_add_object_symbols): Don't set
++	unique_global for non-ELF hash link table.
++
+diff -Naur binutils-2.20.1.orig/bfd/config.bfd binutils-2.20.1/bfd/config.bfd
+--- binutils-2.20.1.orig/bfd/config.bfd	2009-08-06 19:38:00.000000000 +0200
++++ binutils-2.20.1/bfd/config.bfd	2010-08-26 03:45:09.080352976 +0200
+@@ -1430,7 +1430,7 @@
+     targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
+     want64=true
+     ;;
+-  sparc64-*-elf*)
++  sparc64-*-elf* | sparc64-*-rtems* )
+     targ_defvec=bfd_elf64_sparc_vec
+     targ_selvecs=bfd_elf32_sparc_vec
+     want64=true
+@@ -1439,7 +1439,7 @@
+   sparc*-*-coff*)
+     targ_defvec=sparccoff_vec
+     ;;
+-  sparc*-*-rtems*)
++  sparc-*-rtems*)
+     targ_defvec=bfd_elf32_sparc_vec
+     targ_selvecs="sunos_big_vec sparccoff_vec"
+     ;;
+diff -Naur binutils-2.20.1.orig/bfd/elflink.c binutils-2.20.1/bfd/elflink.c
+--- binutils-2.20.1.orig/bfd/elflink.c	2009-09-10 13:47:12.000000000 +0200
++++ binutils-2.20.1/bfd/elflink.c	2010-08-26 03:43:54.522352458 +0200
+@@ -4154,7 +4154,8 @@
+ 	h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ 
+       *sym_hash = h;
+-      h->unique_global = (flags & BSF_GNU_UNIQUE) != 0;
++      if (is_elf_hash_table (htab))
++	h->unique_global = (flags & BSF_GNU_UNIQUE) != 0;
+ 
+       new_weakdef = FALSE;
+       if (dynamic
+diff -Naur binutils-2.20.1.orig/bfd/Makefile.am binutils-2.20.1/bfd/Makefile.am
+--- binutils-2.20.1.orig/bfd/Makefile.am	2010-03-03 14:31:55.000000000 +0100
++++ binutils-2.20.1/bfd/Makefile.am	2010-08-26 03:45:09.080352976 +0200
+@@ -4,7 +4,7 @@
+ ACLOCAL_AMFLAGS = -I . -I .. -I ../config
+ 
+ # Uncomment the following line when doing a release.
+-# RELEASE=y
++RELEASE=y
+ 
+ INCDIR = $(srcdir)/../include
+ CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
+diff -Naur binutils-2.20.1.orig/bfd/Makefile.in binutils-2.20.1/bfd/Makefile.in
+--- binutils-2.20.1.orig/bfd/Makefile.in	2010-03-03 14:59:15.000000000 +0100
++++ binutils-2.20.1/bfd/Makefile.in	2010-08-26 03:45:09.081352713 +0200
+@@ -317,7 +317,7 @@
+ ACLOCAL_AMFLAGS = -I . -I .. -I ../config
+ 
+ # Uncomment the following line when doing a release.
+-# RELEASE=y
++RELEASE = y
+ INCDIR = $(srcdir)/../include
+ CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
+ SUBDIRS = doc po
+diff -Naur binutils-2.20.1.orig/gas/configure.tgt binutils-2.20.1/gas/configure.tgt
+--- binutils-2.20.1.orig/gas/configure.tgt	2009-09-09 10:13:28.000000000 +0200
++++ binutils-2.20.1/gas/configure.tgt	2010-08-26 03:45:09.081352713 +0200
+@@ -369,6 +369,7 @@
+   shle*-*-kaos*)			fmt=elf ;;
+   sh64-*-elf*)				fmt=elf ;;
+ 
++  sparc64-*-rtems*)			fmt=elf ;;
+   sparc-*-rtems*)			fmt=elf ;;
+   sparc-*-sunos4*)			fmt=aout em=sun3 ;;
+   sparc-*-aout)				fmt=aout em=sparcaout ;;
+diff -Naur binutils-2.20.1.orig/ld/configure.tgt binutils-2.20.1/ld/configure.tgt
+--- binutils-2.20.1.orig/ld/configure.tgt	2009-08-06 19:38:03.000000000 +0200
++++ binutils-2.20.1/ld/configure.tgt	2010-08-26 03:45:09.081352713 +0200
+@@ -564,6 +564,7 @@
+ 			targ_extra_libpath=$targ_extra_emuls ;;
+ sparc64-*-aout*)	targ_emul=sparcaout ;;
+ sparc64-*-elf*)		targ_emul=elf64_sparc ;;
++sparc64-*-rtems*)	targ_emul=elf64_sparc ;;
+ sparc-sun-sunos4*) 	targ_emul=sun4 ;;
+ sparclite*-*-elf)	targ_emul=elf32_sparc ;;
+ sparclite*-*-coff)	targ_emul=coff_sparc ;;
+@@ -612,7 +613,7 @@
+ 			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
+ sparc*-*-solaris2*)	targ_emul=elf32_sparc ;;
+ sparc*-wrs-vxworks*)	targ_emul=sparcaout ;;
+-sparc*-*-rtems*)        targ_emul=elf32_sparc
++sparc-*-rtems*)		targ_emul=elf32_sparc
+ 			;;
+ spu-*-elf*)		targ_emul=elf32_spu ;;
+ tic30-*-*aout*)		targ_emul=tic30aout ;;


 *ralf*:
binutils-2.20.1-rtems4.11-20100826.diff

M    1.3  contrib/crossrpms/rtems4.11/arm/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/avr/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/bfin/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/h8300/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/i386/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/lm32/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/m32c/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/m32r/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/m68k/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/mips/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/powerpc/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/sh/binutils-sources.add
M    1.3  contrib/crossrpms/rtems4.11/sparc/binutils-sources.add

diff -u rtems/contrib/crossrpms/rtems4.11/arm/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/arm/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/arm/binutils-sources.add:1.2	Wed Jun  9 01:09:22 2010
+++ rtems/contrib/crossrpms/rtems4.11/arm/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/avr/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/avr/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/avr/binutils-sources.add:1.2	Wed Jun  9 01:09:22 2010
+++ rtems/contrib/crossrpms/rtems4.11/avr/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/bfin/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/bfin/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/bfin/binutils-sources.add:1.2	Wed Jun  9 01:09:22 2010
+++ rtems/contrib/crossrpms/rtems4.11/bfin/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/h8300/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/h8300/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/h8300/binutils-sources.add:1.2	Wed Jun  9 01:09:22 2010
+++ rtems/contrib/crossrpms/rtems4.11/h8300/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/i386/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/i386/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/i386/binutils-sources.add:1.2	Wed Jun  9 01:09:22 2010
+++ rtems/contrib/crossrpms/rtems4.11/i386/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/lm32/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/lm32/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/lm32/binutils-sources.add:1.2	Wed Jun  9 01:09:22 2010
+++ rtems/contrib/crossrpms/rtems4.11/lm32/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/m32c/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/m32c/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/m32c/binutils-sources.add:1.2	Wed Jun  9 01:09:23 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32c/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/m32r/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/m32r/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/m32r/binutils-sources.add:1.2	Wed Jun  9 01:09:23 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32r/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/m68k/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/m68k/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/m68k/binutils-sources.add:1.2	Wed Jun  9 01:09:23 2010
+++ rtems/contrib/crossrpms/rtems4.11/m68k/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/mips/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/mips/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/mips/binutils-sources.add:1.2	Wed Jun  9 01:09:23 2010
+++ rtems/contrib/crossrpms/rtems4.11/mips/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/powerpc/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/powerpc/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/powerpc/binutils-sources.add:1.2	Wed Jun  9 01:09:23 2010
+++ rtems/contrib/crossrpms/rtems4.11/powerpc/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/sh/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/sh/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/sh/binutils-sources.add:1.2	Wed Jun  9 01:09:23 2010
+++ rtems/contrib/crossrpms/rtems4.11/sh/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.11/sparc/binutils-sources.add:1.2 rtems/contrib/crossrpms/rtems4.11/sparc/binutils-sources.add:1.3
--- rtems/contrib/crossrpms/rtems4.11/sparc/binutils-sources.add:1.2	Wed Jun  9 01:09:23 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc/binutils-sources.add	Wed Aug 25 21:16:40 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff


 *ralf*:
New.

M 1.1.2.1  contrib/crossrpms/patches/binutils-2.20.1-rtems4.10-20100826.diff
A    1.1  contrib/crossrpms/patches/newlib-1.18.0-rtems4.11-20100825.diff

diff -u /dev/null rtems/contrib/crossrpms/patches/binutils-2.20.1-rtems4.10-20100826.diff:1.1.2.1
--- /dev/null	Thu Aug 26 23:44:15 2010
+++ rtems/contrib/crossrpms/patches/binutils-2.20.1-rtems4.10-20100826.diff	Wed Aug 25 22:07:32 2010
@@ -0,0 +1,47 @@
+diff -Naur binutils-2.20.1.orig/bfd/ChangeLog.rtems binutils-2.20.1/bfd/ChangeLog.rtems
+--- binutils-2.20.1.orig/bfd/ChangeLog.rtems	1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.20.1/bfd/ChangeLog.rtems	2010-08-26 05:03:08.221352824 +0200
+@@ -0,0 +1,6 @@
++2010-08-25  H.J. Lu  <hongjiu.lu at intel.com>
++ 
++	PR ld/11939
++	* elflink.c (elf_link_add_object_symbols): Don't set
++	unique_global for non-ELF hash link table.
++
+diff -Naur binutils-2.20.1.orig/bfd/elflink.c binutils-2.20.1/bfd/elflink.c
+--- binutils-2.20.1.orig/bfd/elflink.c	2009-09-10 13:47:12.000000000 +0200
++++ binutils-2.20.1/bfd/elflink.c	2010-08-26 05:03:08.225352726 +0200
+@@ -4154,7 +4154,8 @@
+ 	h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ 
+       *sym_hash = h;
+-      h->unique_global = (flags & BSF_GNU_UNIQUE) != 0;
++      if (is_elf_hash_table (htab))
++	h->unique_global = (flags & BSF_GNU_UNIQUE) != 0;
+ 
+       new_weakdef = FALSE;
+       if (dynamic
+diff -Naur binutils-2.20.1.orig/bfd/Makefile.am binutils-2.20.1/bfd/Makefile.am
+--- binutils-2.20.1.orig/bfd/Makefile.am	2010-03-03 14:31:55.000000000 +0100
++++ binutils-2.20.1/bfd/Makefile.am	2010-08-26 05:02:54.181352514 +0200
+@@ -4,7 +4,7 @@
+ ACLOCAL_AMFLAGS = -I . -I .. -I ../config
+ 
+ # Uncomment the following line when doing a release.
+-# RELEASE=y
++RELEASE=y
+ 
+ INCDIR = $(srcdir)/../include
+ CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
+diff -Naur binutils-2.20.1.orig/bfd/Makefile.in binutils-2.20.1/bfd/Makefile.in
+--- binutils-2.20.1.orig/bfd/Makefile.in	2010-03-03 14:59:15.000000000 +0100
++++ binutils-2.20.1/bfd/Makefile.in	2010-08-26 05:02:54.181352514 +0200
+@@ -317,7 +317,7 @@
+ ACLOCAL_AMFLAGS = -I . -I .. -I ../config
+ 
+ # Uncomment the following line when doing a release.
+-# RELEASE=y
++RELEASE = y
+ INCDIR = $(srcdir)/../include
+ CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
+ SUBDIRS = doc po

diff -u /dev/null rtems/contrib/crossrpms/patches/newlib-1.18.0-rtems4.11-20100825.diff:1.1
--- /dev/null	Thu Aug 26 23:44:15 2010
+++ rtems/contrib/crossrpms/patches/newlib-1.18.0-rtems4.11-20100825.diff	Wed Aug 25 07:45:40 2010
@@ -0,0 +1,1458 @@
+diff -Naur newlib-1.18.0.orig/newlib/ChangeLog.rtems newlib-1.18.0/newlib/ChangeLog.rtems
+--- newlib-1.18.0.orig/newlib/ChangeLog.rtems	1970-01-01 01:00:00.000000000 +0100
++++ newlib-1.18.0/newlib/ChangeLog.rtems	2010-08-25 14:36:47.450347759 +0200
+@@ -0,0 +1,238 @@
++2010-08-24  Sebastian Huber <sebastian.huber at embedded-brains.de>
++
++	* libc/posix/opendir.c: Added missing memory free.
++
++2010-08-10	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	PR 1475/newlib:
++	* libc/include/stdint.h: Fall back to compute SIZE_MAX based on
++	__SIZEOF_SIZE_T__ and __CHAR_BIT__ if available.
++
++2010-08-04	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/string/strcat.c: 
++	Include <stdint.h>. Use uintptr_t instead of long in ALIGNED.
++	* libc/string/strchr.c, libc/string/strcmp.c, libc/string/strncmp.c:
++	Include <stdint.h>. Use uintptr_t instead of long in UNALIGNED.
++	* libc/include/sys/unistd.h: Activate decls for 
++	getsid, setegid, seteuid.
++
++2010-07-08	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* configure.host: Add -D_COMPILING_NEWLIB to newlib_cflags.
++	* libc/string/index.c, libc/string/rindex.c: Include <string.h>.
++	* libc/stdlib/putenv_r.c: Include <strings.h>
++
++2010-07-06  Corinna Vinschen  <corinna at vinschen.de>
++
++	* libc/posix/rewinddir.c (rewinddir): Remove incorrect cast to off_t.
++	* libc/sys/rtems/sys/dirent.h (_seekdir): Add prototype.
++	* libc/sys/linux/sys/dirent.h (_seekdir): Fix prototype to use long
++	rather than off_t.
++
++2010-06-17	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/machine/_types.h: Special case for sparc64.
++
++2010-04-23	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/machine/_types.h: Add _mode_t.
++	* libc/include/sys/types.h: Derive mode_t from  _mode_t.
++
++2010-04-02	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/include/sched.h, libc/include/sys/sched.h:
++	Adopt newlib-cvs's versions.
++
++2010-03-25	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/include/strings.h: New (split-out from string.h).
++	* libc/include/string.h: Remove bcmp, bcopy, bzero, ffs, index, rindex,
++	strcasecmp, strncasecmp (Moved to strings.h).
++	Remove strcmpi, stricmp, strncmpi, strnicmp.
++	* libc/misc/ffs.c: Use <strings.h> instead of <string.h>.
++	* libc/string/bcmp.c: Use <strings.h> instead of <string.h>.
++	* libc/string/bzero.c: Use <strings.h> instead of <string.h>.
++	* libc/string/rindex.c: Use <strings.h> instead of <string.h>.
++	* libc/string/strcasecmp.c: Use <strings.h> instead of <string.h>.
++	* libc/string/strcasecmp.c: Use <strings.h> instead of <string.h>.
++
++2010-03-23	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/machine/_types.h: Add i386 to 64bit off_t targets.
++
++2010-03-10	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/posix/telldir.c: Adopt newlib-cvs's telldir.c
++
++2010-02-10	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/machine/_types.h: Use __int64_t for _off_t, fpos_t for 
++	selected targets.
++
++2010-02-05	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/posix/telldir.c: Remove bogus nested prototype of lseek().
++
++2010-01-11  Sebastian Huber <sebastian.huber at embedded-brains.de>
++
++	* libc/posix/telldir.c (_cleanupdir): Fixed usage of freed memory.
++
++2009-12-18	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/search/db_local.h:
++	Use __uint32_t instead of u_int (prototype mismatches).
++	* libc/search/extern.h (__buf_init): 
++	Use __uint32_t instead of int (16 bit target portability).
++	* libc/search/hash_buf.c: Use ptrdiff_t instead of __uint32_t,
++	use __uint32_t instead of int (16 bit target portability).
++	* libc/search/hash.h: Use __uint32_it instead of int
++	(16 bit target portability).
++	* libm/common/modfl.c: Add cast to (double*) to avoid GCC warning.
++	* libm/common/sf_llrint.c, libm/common/sf_round.c: Add explicit 
++	casts to __uint32_t to avoid overflows on implicit casts.
++
++2009-12-18	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	Merger with newlib-1.18.0.
++
++2009-10-29	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/machine/_types.h: Rework.
++	* libc/sys/rtems/machine/stdint.h: Remove.
++	* libc/include/inttypes.h: 
++	Rework logic to determine PRI*PTR.
++	Prefer long64 over longlong64.
++	* libc/include/machine/_default_types.h: 
++	Sync logic for __int32 with stdint.h (Prefer long over int).
++	* libc/include/stdint.h:
++	Remove __SPU__ hack.
++	Prefer int for int16_t (sync with _default_types.h).
++	Rework intptr_t determination.
++
++2009-10-28	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/machine/_types.h: New.
++	Add custom time for _ssize_t.
++	* libc/stdlib/assert.c: Sync with newlib-CVS.
++	* configure.host: Add -DHAVE_ASSERT_FUNC to newlib_cflags.
++
++2009-10-27	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/include/sys/pthread.h: 
++	Add pthread_atfork (Mandated by IEEE Std 1003.1-2008).
++	Add pthread_rwlock_unlock (Formerly missing)
++
++2009-10-26	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/include/sys/signal.h: Sync with newlib-CVS.
++
++2009-10-09	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/include/sys/signal.h: Use pid_t as 1st arg to kill()
++	(mandated by POSIX).
++
++2009-09-22	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/sys/queue.h: Update copyright (from FreeBSD).
++	Remove CIRCLEQ_*.
++	* libc/search/hcreate.c: Don't include sys/queue.h.
++
++2009-09-18  Christopher Faylor  <me+cygwin at cgf.cx>
++
++	* libc/include/sys/unistd.h: Declare getpagesize as returning
++	POSIX-mandated int.
++
++2009-09-16	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/crt0.c: Use while(1) in _exit stub to silence GCC "noreturn"
++	warning.
++
++2009-09-15	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/include/stdlib.h: Add posix_memalign.
++
++2009-09-11	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* configure.host (m32c): Remove -D_ABORT_PROVIDED.
++
++2009-09-10	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* configure.host: Add -D_NO_POPEN.
++	* libc/sys/rtems/crt0.c: Don't provide waitpid unless used.
++
++2009-09-09	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* configure.host: Add -D_NO_WORDEXP.
++
++2009-09-06	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/crt0.c: Add issetugid.
++
++2009-09-02	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/crt0.c: Rework. Introduce macro RTEMS_STUB.
++
++2009-07-27	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/crt0.c: Add _isatty_r.
++
++2009-07-06	Joel Sherrill <joel.sherrill at oarcorp.com>
++
++	* libc/include/sys/features.h: Define _UNIX98_THREAD_MUTEX_ATTRIBUTES.
++
++2009-05-05	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* configure.host: Remove -DMISSING_SYSCALL_NAMES.
++
++2009-03-11	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/stdlib/assert.c: Don't build __assert_func.
++	* libc/sys/rtems/crt0.c: Add __assert_func.
++
++2009-03-09	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/machine/powerpc/times.c: Remove.
++	* libc/machine/powerpc/Makefile.am: Remove times.c.
++	* libc/machine/powerpc/Makefile.in: Regenerate.
++
++2009-02-24	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/unix/ttyname.c: Sync with newlib-cvs.
++	* configure.host: Add -DHAVE_BLKSIZE to newlib_cflags.
++
++2009-02-22	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/machine/stdint.h: Add __lm32__.
++	* libc/machine/lm32/configure.in: Set AC_CONFIG_SRC to setjmp.S.
++	* libc/machine/lm32/configure: Regenerate.
++
++2009-02-20	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/unix/Makefile.in: Regenerate.
++
++2009-02-20  Craig Howland <howland at LGSInnovations.com> on behalf of
++	Sebastian Huber <sebastian.huber at embedded-brains.de>
++
++	* libc/unix/ttyname.c:  Remove ttyname_r() (to a new file to avoid
++	coupling ttyname_r() and ttyname() due to the latter's large buffer).
++	* libc/unix/ttyname_r.c:  New file to hold ttyname_r(), previously in
++	ttyname.c.
++	* libc/unix/ttyname.h:  New file (common size definition for the 2
++	ttyname*c files that are now split).
++	* libc/unix/Makefile.am (ELIX_2_SOURCES):  Add ttyname_r.c.
++
++2009-02-16	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/sys/rtems/sys/param.h:
++	Update copyright notice from FreeBSD.
++	Remove HZ.
++	Add #include <sys/priority.h>
++	Remove priority handling (moved to sys/priority.h).
++	Remove CLBYTES (Unused, abandoned in BSD).
++
++2009-02-06	Ralf Corsépius <ralf.corsepius at rtems.org>
++
++	* libc/include/sched.h:
++	Remove (collides with RTEMS's schedul.h).
++
+diff -Naur newlib-1.18.0.orig/newlib/configure.host newlib-1.18.0/newlib/configure.host
+--- newlib-1.18.0.orig/newlib/configure.host	2009-12-10 18:12:11.000000000 +0100
++++ newlib-1.18.0/newlib/configure.host	2010-08-25 14:32:34.362478197 +0200
+@@ -556,6 +556,7 @@
+   *-*-rtems*)
+ 	default_newlib_io_long_long="yes"
+ 	default_newlib_io_c99_formats="yes"
++	newlib_cflags="${newlib_cflags} -D_COMPILING_NEWLIB"
+ 	newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_NANOSLEEP -DHAVE_BLKSIZE -DHAVE_FCNTL -DHAVE_ASSERT_FUNC"
+         # turn off unsupported items in posix directory 
+ 	newlib_cflags="${newlib_cflags} -D_NO_GETLOGIN -D_NO_GETPWENT -D_NO_GETUT -D_NO_GETPASS -D_NO_SIGSET -D_NO_WORDEXP -D_NO_POPEN"
+diff -Naur newlib-1.18.0.orig/newlib/libc/include/inttypes.h newlib-1.18.0/newlib/libc/include/inttypes.h
+--- newlib-1.18.0.orig/newlib/libc/include/inttypes.h	2009-01-19 23:02:06.000000000 +0100
++++ newlib-1.18.0/newlib/libc/include/inttypes.h	2010-08-25 14:32:34.363477668 +0200
+@@ -242,6 +242,20 @@
+ #define SCNxMAX		__SCNMAX(x)
+ 
+ /* ptr types */
++#if INTPTR_MAX == INT64_MAX
++#define __PRIPTR(x) __PRI64(x)
++#define __SCNPTR(x) __SCN64(x)
++#elif INTPTR_MAX == INT32_MAX
++#define __PRIPTR(x) __PRI32(x)
++#define __SCNPTR(x) __SCN32(x)
++#elif INTPTR_MAX == INT16_MAX
++#define __PRIPTR(x) __PRI16(x)
++#define __SCNPTR(x) __SCN16(x)
++#else
++#error cannot determine PRI*PTR
++#endif
++
++#if 0
+ #if __have_long64
+ #define __PRIPTR(x) __STRINGIFY(l##x)
+ #define __SCNPTR(x) __STRINGIFY(l##x)
+@@ -252,6 +266,7 @@
+ #define __PRIPTR(x) __STRINGIFY(x)
+ #define __SCNPTR(x) __STRINGIFY(x)
+ #endif
++#endif
+ 
+ #define PRIdPTR		__PRIPTR(d)
+ #define PRIiPTR		__PRIPTR(i)
+diff -Naur newlib-1.18.0.orig/newlib/libc/include/machine/_default_types.h newlib-1.18.0/newlib/libc/include/machine/_default_types.h
+--- newlib-1.18.0.orig/newlib/libc/include/machine/_default_types.h	2008-06-12 00:14:54.000000000 +0200
++++ newlib-1.18.0/newlib/libc/include/machine/_default_types.h	2010-08-25 14:32:34.363477668 +0200
+@@ -54,14 +54,14 @@
+ #endif
+ #endif
+ 
+-#if __EXP(INT_MAX) == 0x7fffffffL
+-typedef signed int __int32_t;
+-typedef unsigned int __uint32_t;
+-#define ___int32_t_defined 1
+-#elif __EXP(LONG_MAX) == 0x7fffffffL
++#if __EXP(LONG_MAX) == 0x7fffffffL
+ typedef signed long __int32_t;
+ typedef unsigned long __uint32_t;
+ #define ___int32_t_defined 1
++#elif __EXP(INT_MAX) == 0x7fffffffL
++typedef signed int __int32_t;
++typedef unsigned int __uint32_t;
++#define ___int32_t_defined 1
+ #elif __EXP(SHRT_MAX) == 0x7fffffffL
+ typedef signed short __int32_t;
+ typedef unsigned short __uint32_t;
+diff -Naur newlib-1.18.0.orig/newlib/libc/include/sched.h newlib-1.18.0/newlib/libc/include/sched.h
+--- newlib-1.18.0.orig/newlib/libc/include/sched.h	2007-09-21 23:02:15.000000000 +0200
++++ newlib-1.18.0/newlib/libc/include/sched.h	2010-08-25 14:32:34.363477668 +0200
+@@ -1,11 +1,94 @@
++/*
++ *  Written by Joel Sherrill <joel at OARcorp.com>.
++ *
++ *  COPYRIGHT (c) 1989-2010.
++ *  On-Line Applications Research Corporation (OAR).
++ *
++ *  Permission to use, copy, modify, and distribute this software for any
++ *  purpose without fee is hereby granted, provided that this entire notice
++ *  is included in all copies of any software which is or includes a copy
++ *  or modification of this software.
++ *
++ *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
++ *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
++ *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
++ *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
++ *
++ *  $Id$
++ */
++
+ #ifndef _SCHED_H_
+ #define _SCHED_H_
+ 
++#include <sys/types.h>
++#include <sys/sched.h>
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-#include <sys/sched.h>
++#if defined(_POSIX_PRIORITY_SCHEDULING)
++/*
++ *  XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1803
++ */
++int sched_setparam(
++  pid_t                     __pid,
++  const struct sched_param *__param
++);
++
++/*
++ *  XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1800
++ */
++int sched_getparam(
++  pid_t                     __pid,
++  struct sched_param       *__param
++);
++
++/*
++ *  XBD 13 - Set Scheduling Policy and Scheduling Parameters,
++ *         P1003.1b-2008, p. 1805
++ */
++int sched_setscheduler(
++  pid_t                     __pid,
++  int                       __policy,
++  const struct sched_param *__param
++);
++
++/*
++ *  XBD 13 - Get Scheduling Policy, P1003.1b-2008, p. 1801
++ */
++int sched_getscheduler(
++  pid_t                     __pid
++);
++
++/*
++ *  XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1799
++ */
++int sched_get_priority_max(
++  int __policy
++);
++
++int sched_get_priority_min(
++  int  __policy
++);
++
++/*
++ *  XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1802
++ */
++int sched_rr_get_interval(
++  pid_t             __pid,
++  struct timespec  *__interval
++);
++#endif /* _POSIX_PRIORITY_SCHEDULING */
++
++#if defined(_POSIX_THREADS) || defined(_POSIX_PRIORITY_SCHEDULING)
++
++/*
++ *  XBD 13 - Yield Processor, P1003.1b-2008, p. 1807
++ */
++int sched_yield( void );
++
++#endif /* _POSIX_THREADS or _POSIX_PRIORITY_SCHEDULING */
+ 
+ #ifdef __cplusplus
+ }
+diff -Naur newlib-1.18.0.orig/newlib/libc/include/stdint.h newlib-1.18.0/newlib/libc/include/stdint.h
+--- newlib-1.18.0.orig/newlib/libc/include/stdint.h	2009-04-24 23:55:07.000000000 +0200
++++ newlib-1.18.0/newlib/libc/include/stdint.h	2010-08-25 14:32:34.364477763 +0200
+@@ -33,7 +33,7 @@
+ /* Check if "long" is 64bit or 32bit wide */
+ #if __STDINT_EXP(LONG_MAX) > 0x7fffffff
+ #define __have_long64 1
+-#elif __STDINT_EXP(LONG_MAX) == 0x7fffffff && !defined(__SPU__)
++#elif __STDINT_EXP(LONG_MAX) == 0x7fffffff
+ #define __have_long32 1
+ #endif
+ 
+@@ -49,14 +49,14 @@
+ #define __int_least8_t_defined 1
+ #endif
+ 
+-#if __STDINT_EXP(SHRT_MAX) == 0x7fff
+-typedef signed short int16_t;
+-typedef unsigned short uint16_t;
+-#define __int16_t_defined 1
+-#elif __STDINT_EXP(INT_MAX) == 0x7fff
++#if __STDINT_EXP(INT_MAX) == 0x7fff
+ typedef signed int int16_t;
+ typedef unsigned int uint16_t;
+ #define __int16_t_defined 1
++#elif __STDINT_EXP(SHRT_MAX) == 0x7fff
++typedef signed short int16_t;
++typedef unsigned short uint16_t;
++#define __int16_t_defined 1
+ #elif __STDINT_EXP(SCHAR_MAX) == 0x7fff
+ typedef signed char int16_t;
+ typedef unsigned char uint16_t;
+@@ -239,6 +239,29 @@
+  * GCC doesn't provide an appropriate macro for [u]intptr_t
+  * For now, use __PTRDIFF_TYPE__
+  */
++#if defined(__SIZEOF_POINTER__)
++#if __SIZEOF_POINTER__ == 8
++  typedef int64_t intptr_t;
++  typedef uint64_t uintptr_t;
++#define INTPTR_MAX INT64_MAX
++#define INTPTR_MIN INT64_MIN
++#define UINTPTR_MAX UINT64_MAX
++#elif __SIZEOF_POINTER__ == 4
++  typedef int32_t intptr_t;
++  typedef uint32_t uintptr_t;
++#define INTPTR_MAX INT32_MAX
++#define INTPTR_MIN INT32_MIN
++#define UINTPTR_MAX UINT32_MAX
++#elif __SIZEOF_POINTER__ == 2
++  typedef int16_t intptr_t;
++  typedef uint16_t uintptr_t;
++#define INTPTR_MAX INT16_MAX
++#define INTPTR_MIN INT16_MIN
++#define UINTPTR_MAX UINT16_MAX
++#else
++#error cannot determine intptr_t
++#endif
++#else
+ #if defined(__PTRDIFF_TYPE__)
+ typedef signed __PTRDIFF_TYPE__ intptr_t;
+ typedef unsigned __PTRDIFF_TYPE__ uintptr_t;
+@@ -260,6 +283,7 @@
+ #define INTPTR_MIN (-__STDINT_EXP(LONG_MAX) - 1)
+ #define UINTPTR_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
+ #endif
++#endif
+ 
+ /* Limits of Specified-Width Integer Types */
+ 
+@@ -408,6 +432,8 @@
+ /* This must match size_t in stddef.h, currently long unsigned int */
+ #ifdef __SIZE_MAX__
+ #define SIZE_MAX __SIZE_MAX__
++#elif defined(__SIZEOF_SIZE_T__) && defined(__CHAR_BIT__)
++#define SIZE_MAX (__SIZEOF_SIZE_T__ * __CHAR_BIT__)
+ #else
+ #define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
+ #endif
+diff -Naur newlib-1.18.0.orig/newlib/libc/include/string.h newlib-1.18.0/newlib/libc/include/string.h
+--- newlib-1.18.0.orig/newlib/libc/include/string.h	2008-06-18 17:27:27.000000000 +0200
++++ newlib-1.18.0/newlib/libc/include/string.h	2010-08-25 14:32:34.364477763 +0200
+@@ -49,18 +49,11 @@
+ #ifndef __STRICT_ANSI__
+ char 	*_EXFUN(strtok_r,(char *, const char *, char **));
+ 
+-int	 _EXFUN(bcmp,(const void *, const void *, size_t));
+-void	 _EXFUN(bcopy,(const void *, void *, size_t));
+-void	 _EXFUN(bzero,(void *, size_t));
+-int	 _EXFUN(ffs,(int));
+-char 	*_EXFUN(index,(const char *, int));
+ _PTR	 _EXFUN(memccpy,(_PTR, const _PTR, int, size_t));
+ _PTR	 _EXFUN(mempcpy,(_PTR, const _PTR, size_t));
+ _PTR	 _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t));
+-char 	*_EXFUN(rindex,(const char *, int));
+ char 	*_EXFUN(stpcpy,(char *, const char *));
+ char 	*_EXFUN(stpncpy,(char *, const char *, size_t));
+-int	 _EXFUN(strcasecmp,(const char *, const char *));
+ char	*_EXFUN(strcasestr,(const char *, const char *));
+ char 	*_EXFUN(strdup,(const char *));
+ char 	*_EXFUN(_strdup_r,(struct _reent *, const char *));
+@@ -69,7 +62,6 @@
+ char 	*_EXFUN(strerror_r,(int, char *, size_t));
+ size_t	 _EXFUN(strlcat,(char *, const char *, size_t));
+ size_t	 _EXFUN(strlcpy,(char *, const char *, size_t));
+-int	 _EXFUN(strncasecmp,(const char *, const char *, size_t));
+ size_t	 _EXFUN(strnlen,(const char *, size_t));
+ char 	*_EXFUN(strsep,(char **, const char *));
+ char	*_EXFUN(strlwr,(char *));
+@@ -81,20 +73,6 @@
+ int     _EXFUN(strtosigno, (const char *__name));
+ #endif
+ 
+-/* These function names are used on Windows and perhaps other systems.  */
+-#ifndef strcmpi
+-#define strcmpi strcasecmp
+-#endif
+-#ifndef stricmp
+-#define stricmp strcasecmp
+-#endif
+-#ifndef strncmpi
+-#define strncmpi strncasecmp
+-#endif
+-#ifndef strnicmp
+-#define strnicmp strncasecmp
+-#endif
+-
+ #endif /* ! __STRICT_ANSI__ */
+ 
+ #include <sys/string.h>
+diff -Naur newlib-1.18.0.orig/newlib/libc/include/strings.h newlib-1.18.0/newlib/libc/include/strings.h
+--- newlib-1.18.0.orig/newlib/libc/include/strings.h	1970-01-01 01:00:00.000000000 +0100
++++ newlib-1.18.0/newlib/libc/include/strings.h	2010-08-25 14:32:34.364477763 +0200
+@@ -0,0 +1,44 @@
++/*
++ * strings.h
++ *
++ * Definitions for string operations.
++ */
++
++#ifndef _STRINGS_H_
++#define _STRINGS_H_
++
++#include "_ansi.h"
++#include <sys/reent.h>
++
++#include <sys/types.h> /* for size_t */
++#include <locale.h> /* for locale_t */
++
++_BEGIN_STD_C
++
++#ifndef __STRICT_ANSI__
++/* 
++ * Marked LEGACY in Open Group Base Specifications Issue 6/IEEE Std 1003.1-2004
++ * Removed from Open Group Base Specifications Issue 7/IEEE Std 1003.1-2008
++ */
++int	 _EXFUN(bcmp,(const void *, const void *, size_t));
++void	 _EXFUN(bcopy,(const void *, void *, size_t));
++void	 _EXFUN(bzero,(void *, size_t));
++char 	*_EXFUN(index,(const char *, int));
++char 	*_EXFUN(rindex,(const char *, int));
++#endif /* ! __STRICT_ANSI__ */
++
++int	 _EXFUN(ffs,(int));
++int	 _EXFUN(strcasecmp,(const char *, const char *));
++#if 0
++/* Not implemented */
++int	 _EXFUN(strcasecmp_l,(const char *, const char *, locale_t));
++#endif
++int	 _EXFUN(strncasecmp,(const char *, const char *, size_t));
++#if 0
++/* Not implemented */
++int	 _EXFUN(strncasecmp_l,(const char *, const char *, size_t, locale_t));
++#endif
++
++_END_STD_C
++
++#endif /* _STRINGS_H_ */
+diff -Naur newlib-1.18.0.orig/newlib/libc/include/sys/sched.h newlib-1.18.0/newlib/libc/include/sys/sched.h
+--- newlib-1.18.0.orig/newlib/libc/include/sys/sched.h	2002-06-20 21:51:24.000000000 +0200
++++ newlib-1.18.0/newlib/libc/include/sys/sched.h	2010-08-25 14:32:34.364477763 +0200
+@@ -1,7 +1,7 @@
+ /*
+  *  Written by Joel Sherrill <joel at OARcorp.com>.
+  *
+- *  COPYRIGHT (c) 1989-2000.
++ *  COPYRIGHT (c) 1989-2010.
+  *  On-Line Applications Research Corporation (OAR).
+  *
+  *  Permission to use, copy, modify, and distribute this software for any
+@@ -14,51 +14,53 @@
+  *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
+  *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+  *
+- *  $Id$
++ *  $Id$
+  */
+ 
+ 
+-#ifndef __POSIX_SYS_SCHEDULING_h
+-#define __POSIX_SYS_SCHEDULING_h
++#ifndef _SYS_SCHED_H_
++#define _SYS_SCHED_H_
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-#include <sys/unistd.h>
+-
+-#include <sys/types.h>
+-#include <sys/time.h>
+-
+-/* Scheduling Policies, P1003.1b-1993, p. 250
+-   NOTE:  SCHED_SPORADIC added by P1003.4b/D8, p. 34.  */
+-
++/* Scheduling Policies */
++/* Open Group Specifications Issue 6 */
++#if defined(__CYGWIN__)
++#define SCHED_OTHER    3
++#else
+ #define SCHED_OTHER    0
++#endif
++
+ #define SCHED_FIFO     1
+ #define SCHED_RR       2
+ 
+ #if defined(_POSIX_SPORADIC_SERVER)
+-#define SCHED_SPORADIC 3 
++#define SCHED_SPORADIC 4
+ #endif
+ 
+-/* Scheduling Parameters, P1003.1b-1993, p. 249
+-   NOTE:  Fields whose name begins with "ss_" added by P1003.4b/D8, p. 33.  */
++/* Scheduling Parameters */
++/* Open Group Specifications Issue 6 */
+ 
+ struct sched_param {
+   int sched_priority;           /* Process execution scheduling priority */
+ 
+-#if defined(_POSIX_SPORADIC_SERVER)
+-  int ss_low_priority;          /* Low scheduling priority for sporadic */
++#if defined(_POSIX_SPORADIC_SERVER) || defined(_POSIX_THREAD_SPORADIC_SERVER)
++  int sched_ss_low_priority;    /* Low scheduling priority for sporadic */
+                                 /*   server */
+-  struct timespec ss_replenish_period; 
++  struct timespec sched_ss_repl_period;
+                                 /* Replenishment period for sporadic server */
+-  struct timespec ss_initial_budget;   /* Initial budget for sporadic server */
++  struct timespec sched_ss_init_budget;
++                               /* Initial budget for sporadic server */
++  int sched_ss_max_repl;       /* Maximum pending replenishments for */
++                               /* sporadic server */
+ #endif
+ };
+ 
+ #ifdef __cplusplus
+ }
+-#endif 
++#endif
+ 
+ #endif
+ /* end of include file */
+diff -Naur newlib-1.18.0.orig/newlib/libc/include/sys/types.h newlib-1.18.0/newlib/libc/include/sys/types.h
+--- newlib-1.18.0.orig/newlib/libc/include/sys/types.h	2009-09-28 18:42:21.000000000 +0200
++++ newlib-1.18.0/newlib/libc/include/sys/types.h	2010-08-25 14:32:34.364477763 +0200
+@@ -176,7 +176,11 @@
+ #endif
+ typedef _ssize_t ssize_t;
+ 
+-#ifndef __CYGWIN__
++#if defined(__rtems__)
++typedef _mode_t mode_t;
++#endif
++
++#if !defined(__CYGWIN__) && !defined(__rtems__)
+ #ifdef __MS_types__
+ typedef	char *	addr_t;
+ typedef int mode_t;
+diff -Naur newlib-1.18.0.orig/newlib/libc/include/sys/unistd.h newlib-1.18.0/newlib/libc/include/sys/unistd.h
+--- newlib-1.18.0.orig/newlib/libc/include/sys/unistd.h	2009-12-17 20:43:43.000000000 +0100
++++ newlib-1.18.0/newlib/libc/include/sys/unistd.h	2010-08-25 14:32:34.365477694 +0200
+@@ -93,7 +93,7 @@
+ pid_t   _EXFUN(getpgrp, (void ));
+ pid_t   _EXFUN(getpid, (void ));
+ pid_t   _EXFUN(getppid, (void ));
+-#ifdef __CYGWIN__
++#if defined(__CYGWIN__) || defined(__rtems__)
+ pid_t   _EXFUN(getsid, (pid_t));
+ #endif
+ #if !defined(__INSIDE_CYGWIN__)
+@@ -142,7 +142,7 @@
+ #endif
+ void *  _EXFUN(sbrk,  (ptrdiff_t __incr));
+ #if !defined(__INSIDE_CYGWIN__)
+-#if defined(__CYGWIN__)
++#if defined(__CYGWIN__) || defined(__rtems__)
+ int     _EXFUN(setegid, (gid_t __gid ));
+ int     _EXFUN(seteuid, (uid_t __uid ));
+ #endif
+diff -Naur newlib-1.18.0.orig/newlib/libc/machine/powerpc/Makefile.am newlib-1.18.0/newlib/libc/machine/powerpc/Makefile.am
+--- newlib-1.18.0.orig/newlib/libc/machine/powerpc/Makefile.am	2007-05-24 19:33:35.000000000 +0200
++++ newlib-1.18.0/newlib/libc/machine/powerpc/Makefile.am	2010-08-25 14:32:34.365477694 +0200
+@@ -10,7 +10,7 @@
+ 
+ AM_CFLAGS = -I $(srcdir)/../../stdio -I $(srcdir)/../../stdlib
+ 
+-lib_a_SOURCES = setjmp.S times.c
++lib_a_SOURCES = setjmp.S
+ lib_a_CCASFLAGS=$(AM_CCASFLAGS)
+ lib_a_CFLAGS=$(AM_CFLAGS)
+ lib_a_LIBADD = @extra_objs@
+diff -Naur newlib-1.18.0.orig/newlib/libc/machine/powerpc/Makefile.in newlib-1.18.0/newlib/libc/machine/powerpc/Makefile.in
+--- newlib-1.18.0.orig/newlib/libc/machine/powerpc/Makefile.in	2009-10-21 00:44:03.000000000 +0200
++++ newlib-1.18.0/newlib/libc/machine/powerpc/Makefile.in	2010-08-25 14:32:34.365477694 +0200
+@@ -51,7 +51,7 @@
+ LIBRARIES = $(noinst_LIBRARIES)
+ ARFLAGS = cru
+ lib_a_AR = $(AR) $(ARFLAGS)
+-am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT) lib_a-times.$(OBJEXT)
++am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT)
+ lib_a_OBJECTS = $(am_lib_a_OBJECTS)
+ DEFAULT_INCLUDES = -I. at am__isrc@
+ depcomp =
+@@ -173,7 +173,7 @@
+ AM_CCASFLAGS = $(INCLUDES)
+ noinst_LIBRARIES = lib.a
+ AM_CFLAGS = -I $(srcdir)/../../stdio -I $(srcdir)/../../stdlib
+-lib_a_SOURCES = setjmp.S times.c
++lib_a_SOURCES = setjmp.S
+ lib_a_CCASFLAGS = $(AM_CCASFLAGS)
+ lib_a_CFLAGS = $(AM_CFLAGS)
+ lib_a_LIBADD = @extra_objs@
+@@ -184,7 +184,7 @@
+ all: all-am
+ 
+ .SUFFIXES:
+-.SUFFIXES: .S .c .o .obj
++.SUFFIXES: .S .o .obj
+ am--refresh:
+ 	@:
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+@@ -245,18 +245,6 @@
+ lib_a-setjmp.obj: setjmp.S
+ 	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-setjmp.obj `if test -f 'setjmp.S'; then $(CYGPATH_W) 'setjmp.S'; else $(CYGPATH_W) '$(srcdir)/setjmp.S'; fi`
+ 
+-.c.o:
+-	$(COMPILE) -c $<
+-
+-.c.obj:
+-	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+-
+-lib_a-times.o: times.c
+-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-times.o `test -f 'times.c' || echo '$(srcdir)/'`times.c
+-
+-lib_a-times.obj: times.c
+-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-times.obj `if test -f 'times.c'; then $(CYGPATH_W) 'times.c'; else $(CYGPATH_W) '$(srcdir)/times.c'; fi`
+-
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+diff -Naur newlib-1.18.0.orig/newlib/libc/machine/powerpc/times.c newlib-1.18.0/newlib/libc/machine/powerpc/times.c
+--- newlib-1.18.0.orig/newlib/libc/machine/powerpc/times.c	2002-07-22 22:26:51.000000000 +0200
++++ newlib-1.18.0/newlib/libc/machine/powerpc/times.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,36 +0,0 @@
+-/* Time support routines for PowerPC.
+- *
+- * Written by Aldy Hernandez.
+- */
+-
+-#include <_ansi.h>
+-#include <reent.h>
+-#include <sys/time.h>
+-#include <sys/times.h>
+-#include <sys/resource.h>
+-
+-clock_t
+-times (struct tms *tp)
+-{
+-  struct rusage usage;
+-  union {
+-    struct rusage r;
+-    /* Newlib's rusage has only 2 fields.  We need to make room for
+-       when we call the system's rusage.  This should be enough.  */
+-    int filler[32];
+-  } host_ru;
+-
+-  getrusage (RUSAGE_SELF, (void *)&host_ru);
+-
+-  if (tp)
+-    {
+-      tp->tms_utime = host_ru.r.ru_utime.tv_sec * 1000
+-	+ host_ru.r.ru_utime.tv_usec;
+-      tp->tms_stime = host_ru.r.ru_stime.tv_sec * 1000
+-	+ host_ru.r.ru_stime.tv_usec;
+-      tp->tms_cutime = 0;	/* user time, children */
+-      tp->tms_cstime = 0;	/* system time, children */
+-    }
+-
+-  return tp->tms_utime;
+-}
+diff -Naur newlib-1.18.0.orig/newlib/libc/misc/ffs.c newlib-1.18.0/newlib/libc/misc/ffs.c
+--- newlib-1.18.0.orig/newlib/libc/misc/ffs.c	2003-06-06 21:57:51.000000000 +0200
++++ newlib-1.18.0/newlib/libc/misc/ffs.c	2010-08-25 14:32:34.369478930 +0200
+@@ -24,7 +24,7 @@
+ 
+ No supporting OS subroutines are required.  */
+ 
+-#include <_ansi.h>
++#include <strings.h>
+ 
+ int
+ _DEFUN(ffs, (word),
+diff -Naur newlib-1.18.0.orig/newlib/libc/posix/opendir.c newlib-1.18.0/newlib/libc/posix/opendir.c
+--- newlib-1.18.0.orig/newlib/libc/posix/opendir.c	2003-06-06 21:57:51.000000000 +0200
++++ newlib-1.18.0/newlib/libc/posix/opendir.c	2010-08-25 12:51:51.993350066 +0200
+@@ -74,6 +74,7 @@
+ 	dirp->dd_len = 512;
+ 
+ 	if (dirp->dd_buf == NULL) {
++		free(dirp);
+ 		close (fd);
+ 		return NULL;
+ 	}
+diff -Naur newlib-1.18.0.orig/newlib/libc/posix/rewinddir.c newlib-1.18.0/newlib/libc/posix/rewinddir.c
+--- newlib-1.18.0.orig/newlib/libc/posix/rewinddir.c	2003-06-06 21:57:51.000000000 +0200
++++ newlib-1.18.0/newlib/libc/posix/rewinddir.c	2010-08-25 14:32:34.369478930 +0200
+@@ -48,7 +48,7 @@
+ #ifdef HAVE_DD_LOCK
+ 	__lock_acquire_recursive(dirp->dd_lock);
+ #endif
+-	_seekdir((dirp), (off_t)0);
++	_seekdir((dirp), 0L);
+ #ifdef HAVE_DD_LOCK
+ 	__lock_release_recursive(dirp->dd_lock);
+ #endif
+diff -Naur newlib-1.18.0.orig/newlib/libc/posix/telldir.c newlib-1.18.0/newlib/libc/posix/telldir.c
+--- newlib-1.18.0.orig/newlib/libc/posix/telldir.c	2008-11-27 22:01:40.000000000 +0100
++++ newlib-1.18.0/newlib/libc/posix/telldir.c	2010-08-25 14:32:34.369478930 +0200
+@@ -67,7 +67,7 @@
+ #define	NDIRHASH	32	/* Num of hash lists, must be a power of 2 */
+ #define	LOCHASH(i)	((i)&(NDIRHASH-1))
+ 
+-static long	dd_loccnt;	/* Index of entry for sequential readdir's */
++static long	dd_loccnt = 1;	/* Index of entry for sequential readdir's */
+ static struct	ddloc *dd_hash[NDIRHASH];   /* Hash list heads for ddlocs */
+ __LOCK_INIT(static, dd_hash_lock);
+ 
+@@ -119,40 +119,46 @@
+ 	register struct ddloc *lp;
+ 	register struct ddloc **prevlp;
+ 	struct dirent *dp;
+-	extern long lseek();
+ 
+ #ifdef HAVE_DD_LOCK
+ 	__lock_acquire(dd_hash_lock);
+ #endif
+-	prevlp = &dd_hash[LOCHASH(loc)];
+-	lp = *prevlp;
+-	while (lp != NULL) {
+-		if (lp->loc_index == loc)
+-			break;
+-		prevlp = &lp->loc_next;
+-		lp = lp->loc_next;
+-	}
+-	if (lp == NULL) {
++	if (loc != 0) {
++		prevlp = &dd_hash[LOCHASH(loc)];
++		lp = *prevlp;
++		while (lp != NULL) {
++			if (lp->loc_index == loc)
++				break;
++			prevlp = &lp->loc_next;
++			lp = lp->loc_next;
++		}
++		if (lp == NULL) {
+ #ifdef HAVE_DD_LOCK
+-		__lock_release(dd_hash_lock);
++			__lock_release(dd_hash_lock);
+ #endif
+-		return;
+-	}
+-	if (lp->loc_loc == dirp->dd_loc && lp->loc_seek == dirp->dd_seek)
+-		goto found;
+-	(void) lseek(dirp->dd_fd, lp->loc_seek, 0);
+-	dirp->dd_seek = lp->loc_seek;
+-	dirp->dd_loc = 0;
+-	while (dirp->dd_loc < lp->loc_loc) {
+-		dp = readdir(dirp);
+-		if (dp == NULL)
+-			break;
+-	}
++			return;
++		}
++		if (lp->loc_loc == dirp->dd_loc && lp->loc_seek == dirp->dd_seek)
++			goto found;
++		(void) lseek(dirp->dd_fd, lp->loc_seek, 0);
++		dirp->dd_seek = lp->loc_seek;
++		dirp->dd_loc = 0;
++		while (dirp->dd_loc < lp->loc_loc) {
++			dp = readdir(dirp);
++			if (dp == NULL)
++				break;
++		}
+ found:
+ #ifdef SINGLEUSE
+-	*prevlp = lp->loc_next;
+-	free((caddr_t)lp);
++		*prevlp = lp->loc_next;
++		free((caddr_t)lp);
+ #endif
++	} else {
++		// loc 0 means rewinding
++		(void) lseek(dirp->dd_fd, 0, 0);
++		dirp->dd_seek = 0;
++		dirp->dd_loc = 0;
++	}
+ #ifdef HAVE_DD_LOCK
+ 	__lock_release(dd_hash_lock);
+ #endif
+@@ -169,26 +175,26 @@
+ 	__lock_acquire(dd_hash_lock);
+ #endif
+ 	for (i = 0; i < NDIRHASH; ++i) {
++		struct ddloc head;
+ 		register struct ddloc *lp;
+ 		register struct ddloc *prevlp;
++
+ 		lp = dd_hash[i];
+-		while (lp != NULL && lp->loc_dirp == dirp) {
+-			dd_hash[i] = lp->loc_next;
+-			prevlp = lp;
+-			free((caddr_t)lp);
+-			lp = prevlp->loc_next;
+-		}
+-		prevlp = lp;
++		head.loc_next = lp;
++		prevlp = &head;
+ 		while (lp != NULL) {
+-			lp = lp->loc_next;
+-			if (lp != NULL && lp->loc_dirp == dirp) {
+-				prevlp->loc_next = lp->loc_next;
++			struct ddloc *nextlp;
++
++			nextlp = lp->loc_next;
++			if (lp->loc_dirp == dirp) {
++				prevlp->loc_next = nextlp;
+ 				free((caddr_t)lp);
+-				lp = prevlp;
+ 			}
+ 			else
+ 				prevlp = lp;
++			lp = nextlp;
+ 		}
++		dd_hash[i] = head.loc_next;
+ 	}
+ #ifdef HAVE_DD_LOCK
+ 	__lock_release(dd_hash_lock);
+diff -Naur newlib-1.18.0.orig/newlib/libc/search/db_local.h newlib-1.18.0/newlib/libc/search/db_local.h
+--- newlib-1.18.0.orig/newlib/libc/search/db_local.h	2002-06-25 01:05:08.000000000 +0200
++++ newlib-1.18.0/newlib/libc/search/db_local.h	2010-08-25 14:32:34.369478930 +0200
+@@ -102,11 +102,11 @@
+ typedef struct __db {
+ 	DBTYPE type;			/* Underlying db type. */
+ 	int (*close)(struct __db *);
+-	int (*del)(const struct __db *, const DBT *, u_int);
+-	int (*get)(const struct __db *, const DBT *, DBT *, u_int);
+-	int (*put)(const struct __db *, DBT *, const DBT *, u_int);
+-	int (*seq)(const struct __db *, DBT *, DBT *, u_int);
+-	int (*sync)(const struct __db *, u_int);
++	int (*del)(const struct __db *, const DBT *, __uint32_t);
++	int (*get)(const struct __db *, const DBT *, DBT *, __uint32_t);
++	int (*put)(const struct __db *, DBT *, const DBT *, __uint32_t);
++	int (*seq)(const struct __db *, DBT *, DBT *, __uint32_t);
++	int (*sync)(const struct __db *, __uint32_t);
+ 	void *internal;			/* Access method private. */
+ 	int (*fd)(const struct __db *);
+ } DB;
+diff -Naur newlib-1.18.0.orig/newlib/libc/search/extern.h newlib-1.18.0/newlib/libc/search/extern.h
+--- newlib-1.18.0.orig/newlib/libc/search/extern.h	2002-06-20 21:51:31.000000000 +0200
++++ newlib-1.18.0/newlib/libc/search/extern.h	2010-08-25 14:32:34.370482954 +0200
+@@ -43,7 +43,7 @@
+ int	 __big_split(HTAB *, BUFHEAD *, BUFHEAD *, BUFHEAD *,
+ 		int, __uint32_t, SPLIT_RETURN *);
+ int	 __buf_free(HTAB *, int, int);
+-void	 __buf_init(HTAB *, int);
++void	 __buf_init(HTAB *, __uint32_t);
+ __uint32_t	 __call_hash(HTAB *, char *, int);
+ int	 __delpair(HTAB *, BUFHEAD *, int);
+ int	 __expand_table(HTAB *);
+diff -Naur newlib-1.18.0.orig/newlib/libc/search/hash_buf.c newlib-1.18.0/newlib/libc/search/hash_buf.c
+--- newlib-1.18.0.orig/newlib/libc/search/hash_buf.c	2004-05-26 19:57:10.000000000 +0200
++++ newlib-1.18.0/newlib/libc/search/hash_buf.c	2010-08-25 14:32:34.370482954 +0200
+@@ -118,7 +118,7 @@
+ 	int newpage;	/* If prev_bp set, indicates a new overflow page. */
+ {
+ 	BUFHEAD *bp;
+-	__uint32_t is_disk_mask;
++	ptrdiff_t is_disk_mask;
+ 	int is_disk, segment_ndx;
+ 	SEGMENT segp;
+ 
+@@ -298,7 +298,7 @@
+ extern void
+ __buf_init(hashp, nbytes)
+ 	HTAB *hashp;
+-	int nbytes;
++	__uint32_t nbytes;
+ {
+ 	BUFHEAD *bfp;
+ 	int npages;
+diff -Naur newlib-1.18.0.orig/newlib/libc/search/hash.h newlib-1.18.0/newlib/libc/search/hash.h
+--- newlib-1.18.0.orig/newlib/libc/search/hash.h	2008-07-02 20:38:45.000000000 +0200
++++ newlib-1.18.0/newlib/libc/search/hash.h	2010-08-25 14:32:34.370482954 +0200
+@@ -82,7 +82,7 @@
+ 
+ /* Hash Table Information */
+ typedef struct hashhdr {		/* Disk resident portion */
+-	int		magic;		/* Magic NO for hash tables */
++	__uint32_t	magic;		/* Magic NO for hash tables */
+ 	int		version;	/* Version ID */
+ 	__uint32_t	lorder;		/* Byte Order */
+ 	int		bsize;		/* Bucket/Page Size */
+@@ -97,7 +97,7 @@
+ 	int		high_mask;	/* Mask to modulo into entire table */
+ 	int		low_mask;	/* Mask to modulo into lower half of 
+ 					 * table */
+-	int		ffactor;	/* Fill factor */
++	__uint32_t	ffactor;	/* Fill factor */
+ 	int		nkeys;		/* Number of keys in hash table */
+ 	int		hdrpages;	/* Size of table header */
+ 	int		h_charkey;	/* value of hash(CHARKEY) */
+diff -Naur newlib-1.18.0.orig/newlib/libc/stdlib/putenv_r.c newlib-1.18.0/newlib/libc/stdlib/putenv_r.c
+--- newlib-1.18.0.orig/newlib/libc/stdlib/putenv_r.c	2004-11-24 23:34:14.000000000 +0100
++++ newlib-1.18.0/newlib/libc/stdlib/putenv_r.c	2010-08-25 14:32:34.370482954 +0200
+@@ -24,6 +24,7 @@
+ #include <reent.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <strings.h>
+ 
+ #include "envlock.h"
+ 
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/bcmp.c newlib-1.18.0/newlib/libc/string/bcmp.c
+--- newlib-1.18.0.orig/newlib/libc/string/bcmp.c	2005-10-28 23:21:07.000000000 +0200
++++ newlib-1.18.0/newlib/libc/string/bcmp.c	2010-08-25 14:32:34.370482954 +0200
+@@ -6,11 +6,11 @@
+ 	bcmp
+ 
+ ANSI_SYNOPSIS
+-	#include <string.h>
++	#include <strings.h>
+ 	int bcmp(const void *<[s1]>, const void *<[s2]>, size_t <[n]>);
+ 
+ TRAD_SYNOPSIS
+-	#include <string.h>
++	#include <strings.h>
+ 	int bcmp(<[s1]>, <[s2]>, <[n]>)
+ 	const void *<[s1]>;
+ 	const void *<[s2]>;
+@@ -35,7 +35,7 @@
+ 	bcmp ansi pure
+ */
+ 
+-#include <string.h>
++#include <strings.h>
+ 
+ int
+ _DEFUN (bcmp, (m1, m2, n),
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/bcopy.c newlib-1.18.0/newlib/libc/string/bcopy.c
+--- newlib-1.18.0.orig/newlib/libc/string/bcopy.c	2002-05-23 20:46:04.000000000 +0200
++++ newlib-1.18.0/newlib/libc/string/bcopy.c	2010-08-25 14:32:34.370482954 +0200
+@@ -3,7 +3,7 @@
+ 	<<bcopy>>---copy memory regions
+ 
+ ANSI_SYNOPSIS
+-	#include <string.h>
++	#include <strings.h>
+ 	void bcopy(const void *<[in]>, void *<[out]>, size_t <[n]>);
+ 
+ TRAD_SYNOPSIS
+@@ -26,7 +26,7 @@
+ 	bcopy - pure
+ */
+ 
+-#include <string.h>
++#include <strings.h>
+ 
+ void
+ _DEFUN (bcopy, (b1, b2, length),
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/bzero.c newlib-1.18.0/newlib/libc/string/bzero.c
+--- newlib-1.18.0.orig/newlib/libc/string/bzero.c	2002-05-23 20:46:04.000000000 +0200
++++ newlib-1.18.0/newlib/libc/string/bzero.c	2010-08-25 14:32:34.371477322 +0200
+@@ -6,11 +6,11 @@
+ 	bzero
+ 
+ ANSI_SYNOPSIS
+-	#include <string.h>
++	#include <strings.h>
+ 	void bzero(void *<[b]>, size_t <[length]>);
+ 
+ TRAD_SYNOPSIS
+-	#include <string.h>
++	#include <strings.h>
+ 	void bzero(<[b]>, <[length]>)
+ 	void *<[b]>;
+ 	size_t <[length]>;
+@@ -30,7 +30,7 @@
+ <<bzero>> requires no supporting OS subroutines.
+ */
+ 
+-#include <string.h>
++#include <strings.h>
+ 
+ _VOID
+ _DEFUN (bzero, (b, length),
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/index.c newlib-1.18.0/newlib/libc/string/index.c
+--- newlib-1.18.0.orig/newlib/libc/string/index.c	2000-02-17 20:39:48.000000000 +0100
++++ newlib-1.18.0/newlib/libc/string/index.c	2010-08-25 14:32:34.371477322 +0200
+@@ -10,7 +10,7 @@
+ 	char * index(const char *<[string]>, int <[c]>);
+ 
+ TRAD_SYNOPSIS
+-	#include <string.h>
++	#include <strings.h>
+ 	char * index(<[string]>, <[c]>);
+ 	char *<[string]>;
+ 	int *<[c]>;
+@@ -33,7 +33,8 @@
+ 	index - pure
+ */
+ 
+-#include <string.h>
++#include <strings.h>
++#include <string.h> /* strchr */
+ 
+ char *
+ _DEFUN (index, (s, c),
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/rindex.c newlib-1.18.0/newlib/libc/string/rindex.c
+--- newlib-1.18.0.orig/newlib/libc/string/rindex.c	2000-02-17 20:39:48.000000000 +0100
++++ newlib-1.18.0/newlib/libc/string/rindex.c	2010-08-25 14:32:34.371477322 +0200
+@@ -10,7 +10,7 @@
+ 	char * rindex(const char *<[string]>, int <[c]>);
+ 
+ TRAD_SYNOPSIS
+-	#include <string.h>
++	#include <strings.h>
+ 	char * rindex(<[string]>, <[c]>);
+ 	char *<[string]>;
+ 	int *<[c]>;
+@@ -33,7 +33,8 @@
+ 	rindex - pure
+ */
+ 
+-#include <string.h>
++#include <strings.h>
++#include <string.h> /* strchr */
+ 
+ char *
+ _DEFUN (rindex, (s, c),
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/strcasecmp.c newlib-1.18.0/newlib/libc/string/strcasecmp.c
+--- newlib-1.18.0.orig/newlib/libc/string/strcasecmp.c	2009-04-23 20:11:22.000000000 +0200
++++ newlib-1.18.0/newlib/libc/string/strcasecmp.c	2010-08-25 14:32:34.372475230 +0200
+@@ -38,7 +38,7 @@
+ 	strcasecmp
+ */
+ 
+-#include <string.h>
++#include <strings.h>
+ #include <ctype.h>
+ 
+ int
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/strcat.c newlib-1.18.0/newlib/libc/string/strcat.c
+--- newlib-1.18.0.orig/newlib/libc/string/strcat.c	2000-02-17 20:39:48.000000000 +0100
++++ newlib-1.18.0/newlib/libc/string/strcat.c	2010-08-25 14:32:34.372475230 +0200
+@@ -33,12 +33,13 @@
+ 	strcat ansi pure
+ */
+ 
++#include <stdint.h>
+ #include <string.h>
+ #include <limits.h>
+ 
+ /* Nonzero if X is aligned on a "long" boundary.  */
+ #define ALIGNED(X) \
+-  (((long)X & (sizeof (long) - 1)) == 0)
++  (((uintptr_t)X & (sizeof (long) - 1)) == 0)
+ 
+ #if LONG_MAX == 2147483647L
+ #define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/strchr.c newlib-1.18.0/newlib/libc/string/strchr.c
+--- newlib-1.18.0.orig/newlib/libc/string/strchr.c	2008-05-22 04:31:46.000000000 +0200
++++ newlib-1.18.0/newlib/libc/string/strchr.c	2010-08-25 14:32:34.372475230 +0200
+@@ -33,11 +33,12 @@
+ 	strchr ansi pure
+ */
+ 
++#include <stdint.h>
+ #include <string.h>
+ #include <limits.h>
+ 
+ /* Nonzero if X is not aligned on a "long" boundary.  */
+-#define UNALIGNED(X) ((long)X & (sizeof (long) - 1))
++#define UNALIGNED(X) ((uintptr_t)X & (sizeof (long) - 1))
+ 
+ /* How many bytes are loaded each iteration of the word copy loop.  */
+ #define LBLOCKSIZE (sizeof (long))
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/strcmp.c newlib-1.18.0/newlib/libc/string/strcmp.c
+--- newlib-1.18.0.orig/newlib/libc/string/strcmp.c	2000-02-17 20:39:48.000000000 +0100
++++ newlib-1.18.0/newlib/libc/string/strcmp.c	2010-08-25 14:32:34.372475230 +0200
+@@ -35,12 +35,13 @@
+ 	strcmp ansi pure
+ */
+ 
++#include <stdint.h>
+ #include <string.h>
+ #include <limits.h>
+ 
+ /* Nonzero if either X or Y is not aligned on a "long" boundary.  */
+ #define UNALIGNED(X, Y) \
+-  (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
++  (((uintptr_t)X & (sizeof (long) - 1)) | ((uintptr_t)Y & (sizeof (long) - 1)))
+ 
+ /* DETECTNULL returns nonzero if (long)X contains a NULL byte. */
+ #if LONG_MAX == 2147483647L
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/strncasecmp.c newlib-1.18.0/newlib/libc/string/strncasecmp.c
+--- newlib-1.18.0.orig/newlib/libc/string/strncasecmp.c	2009-04-23 20:11:22.000000000 +0200
++++ newlib-1.18.0/newlib/libc/string/strncasecmp.c	2010-08-25 14:32:34.372475230 +0200
+@@ -6,11 +6,11 @@
+ 	strncasecmp
+ 
+ ANSI_SYNOPSIS
+-	#include <string.h>
++	#include <strings.h>
+ 	int strncasecmp(const char *<[a]>, const char * <[b]>, size_t <[length]>);
+ 
+ TRAD_SYNOPSIS
+-	#include <string.h>
++	#include <strings.h>
+ 	int strncasecmp(<[a]>, <[b]>, <[length]>)
+ 	char *<[a]>;
+ 	char *<[b]>;
+@@ -40,7 +40,7 @@
+ 	strncasecmp
+ */
+ 
+-#include <string.h>
++#include <strings.h>
+ #include <ctype.h>
+ 
+ int 
+diff -Naur newlib-1.18.0.orig/newlib/libc/string/strncmp.c newlib-1.18.0/newlib/libc/string/strncmp.c
+--- newlib-1.18.0.orig/newlib/libc/string/strncmp.c	2000-02-17 20:39:48.000000000 +0100
++++ newlib-1.18.0/newlib/libc/string/strncmp.c	2010-08-25 14:32:34.372475230 +0200
+@@ -36,12 +36,13 @@
+ 	strncmp ansi pure
+ */
+ 
++#include <stdint.h>
+ #include <string.h>
+ #include <limits.h>
+ 
+ /* Nonzero if either X or Y is not aligned on a "long" boundary.  */
+ #define UNALIGNED(X, Y) \
+-  (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
++  (((uintptr_t)X & (sizeof (long) - 1)) | ((uintptr_t)Y & (sizeof (long) - 1)))
+ 
+ /* DETECTNULL returns nonzero if (long)X contains a NULL byte. */
+ #if LONG_MAX == 2147483647L
+diff -Naur newlib-1.18.0.orig/newlib/libc/sys/linux/sys/dirent.h newlib-1.18.0/newlib/libc/sys/linux/sys/dirent.h
+--- newlib-1.18.0.orig/newlib/libc/sys/linux/sys/dirent.h	2008-11-19 21:55:52.000000000 +0100
++++ newlib-1.18.0/newlib/libc/sys/linux/sys/dirent.h	2010-08-25 14:32:34.372475230 +0200
+@@ -40,7 +40,7 @@
+ int closedir(DIR *);
+ 
+ /* internal prototype */
+-void _seekdir(DIR *dir,off_t offset);
++void _seekdir(DIR *dir, long offset);
+ DIR *_opendir(const char *);
+ 
+ #ifndef _POSIX_SOURCE
+diff -Naur newlib-1.18.0.orig/newlib/libc/sys/rtems/machine/_types.h newlib-1.18.0/newlib/libc/sys/rtems/machine/_types.h
+--- newlib-1.18.0.orig/newlib/libc/sys/rtems/machine/_types.h	2009-12-17 17:10:41.000000000 +0100
++++ newlib-1.18.0/newlib/libc/sys/rtems/machine/_types.h	2010-08-25 14:32:34.373477484 +0200
+@@ -20,6 +20,9 @@
+ typedef long signed int _ssize_t;
+ #endif
+ #define __ssize_t_defined 1
++#elif defined(__sparc__) && defined(__LP64__)
++typedef long signed int _ssize_t;
++#define __ssize_t_defined 1
+ #elif defined(__AVR__) || defined(__lm32__) || defined(__m32c__) || defined(__mips__) || defined(__PPC__) || defined(__sparc__) || defined(__sh__)
+ typedef signed int _ssize_t;
+ #define __ssize_t_defined 1
+@@ -31,4 +34,25 @@
+ 
+ typedef __int32_t blksize_t;
+ typedef __int32_t blkcnt_t;
++
++/* EXPERIMENTAL: Use 64bit types */
++#if defined(__arm__) || defined(__i386__) || defined(__m68k__) || defined(__mips__) || defined(__PPC__) || defined(__sparc__)
++/* Use 64bit types */
++typedef __int64_t _off_t;
++#define __off_t_defined 1
++
++typedef __int64_t _fpos_t;
++#define __fpos_t_defined 1
++#else
++/* Use 32bit types */
++typedef __int32_t _off_t;
++#define __off_t_defined 1
++
++typedef __int32_t _fpos_t;
++#define __fpos_t_defined 1
++#endif
++
++typedef __uint32_t _mode_t;
++#define __mode_t_defined 1
++
+ #endif
+diff -Naur newlib-1.18.0.orig/newlib/libc/sys/rtems/sys/dirent.h newlib-1.18.0/newlib/libc/sys/rtems/sys/dirent.h
+--- newlib-1.18.0.orig/newlib/libc/sys/rtems/sys/dirent.h	2004-01-08 20:25:21.000000000 +0100
++++ newlib-1.18.0/newlib/libc/sys/rtems/sys/dirent.h	2010-08-25 14:32:34.373477484 +0200
+@@ -31,6 +31,10 @@
+ void seekdir(DIR *dir, long loc);
+ long telldir(DIR *dir);
+ 
++#ifdef _COMPILING_NEWLIB
++void _seekdir(DIR *dir, long offset);
++#endif
++
+ #include <sys/types.h>
+ 
+ #include <limits.h>
+diff -Naur newlib-1.18.0.orig/newlib/libm/common/modfl.c newlib-1.18.0/newlib/libm/common/modfl.c
+--- newlib-1.18.0.orig/newlib/libm/common/modfl.c	2009-04-18 00:15:43.000000000 +0200
++++ newlib-1.18.0/newlib/libm/common/modfl.c	2010-08-25 14:32:34.373477484 +0200
+@@ -36,7 +36,7 @@
+ long double
+ modfl (long double x, long double *iptr)
+ {
+-  return modf(x, iptr);
++  return modf(x, (double*) iptr);
+ }
+ #endif
+ 
+diff -Naur newlib-1.18.0.orig/newlib/libm/common/sf_llrint.c newlib-1.18.0/newlib/libm/common/sf_llrint.c
+--- newlib-1.18.0.orig/newlib/libm/common/sf_llrint.c	2009-04-03 19:39:24.000000000 +0200
++++ newlib-1.18.0/newlib/libm/common/sf_llrint.c	2010-08-25 14:32:34.373477484 +0200
+@@ -71,7 +71,7 @@
+           GET_FLOAT_WORD (i0, t);
+           /* Detect the all-zeros representation of plus and
+              minus zero, which fails the calculation below. */
+-          if ((i0 & ~(1 << 31)) == 0)
++          if ((i0 & ~((__uint32_t)1 << 31)) == 0)
+               return 0;
+           j0 = ((i0 >> 23) & 0xff) - 0x7f;
+           i0 &= 0x7fffff;
+diff -Naur newlib-1.18.0.orig/newlib/libm/common/sf_round.c newlib-1.18.0/newlib/libm/common/sf_round.c
+--- newlib-1.18.0.orig/newlib/libm/common/sf_round.c	2005-02-24 20:02:35.000000000 +0100
++++ newlib-1.18.0/newlib/libm/common/sf_round.c	2010-08-25 14:32:34.373477484 +0200
+@@ -38,7 +38,7 @@
+           w &= 0x80000000;
+           if (exponent_less_127 == -1)
+             /* Result is +1.0 or -1.0. */
+-            w |= (127 << 23);
++            w |= ((__uint32_t)127 << 23);
+         }
+       else
+         {
+diff -Naur newlib-1.18.0.orig/newlib/Makefile.am newlib-1.18.0/newlib/Makefile.am
+--- newlib-1.18.0.orig/newlib/Makefile.am	2009-08-18 23:48:05.000000000 +0200
++++ newlib-1.18.0/newlib/Makefile.am	2010-08-25 14:32:34.374477484 +0200
+@@ -81,7 +81,7 @@
+ 	libc.a
+ endif
+ 
+-noinst_DATA = stmp-targ-include
++BUILT_SOURCES = stmp-targ-include
+ 
+ toollib_DATA = $(CRT0) $(CRT1)
+ 
+diff -Naur newlib-1.18.0.orig/newlib/Makefile.in newlib-1.18.0/newlib/Makefile.in
+--- newlib-1.18.0.orig/newlib/Makefile.in	2009-10-21 00:43:45.000000000 +0200
++++ newlib-1.18.0/newlib/Makefile.in	2010-08-25 14:32:34.374477484 +0200
+@@ -122,7 +122,7 @@
+ 	install-pdf-recursive install-ps-recursive install-recursive \
+ 	installcheck-recursive installdirs-recursive pdf-recursive \
+ 	ps-recursive uninstall-recursive
+-DATA = $(noinst_DATA) $(toollib_DATA)
++DATA = $(toollib_DATA)
+ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+   distclean-recursive maintainer-clean-recursive
+ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+@@ -351,7 +351,7 @@
+ @USE_LIBTOOL_FALSE at toollib_LIBRARIES = libm.a \
+ @USE_LIBTOOL_FALSE@	libc.a
+ 
+-noinst_DATA = stmp-targ-include
++BUILT_SOURCES = stmp-targ-include
+ toollib_DATA = $(CRT0) $(CRT1)
+ 
+ # The functions ldexp, frexp and modf are traditionally supplied in
+@@ -411,7 +411,7 @@
+ 
+ # dejagnu support
+ RUNTESTFLAGS = 
+-all: newlib.h
++all: $(BUILT_SOURCES) newlib.h
+ 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+ 
+ .SUFFIXES:
+@@ -725,14 +725,16 @@
+ 	done
+ check-am:
+ 	$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
+-check: check-recursive
++check: $(BUILT_SOURCES)
++	$(MAKE) $(AM_MAKEFLAGS) check-recursive
+ all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(DATA) newlib.h
+ installdirs: installdirs-recursive
+ installdirs-am:
+ 	for dir in "$(DESTDIR)$(toollibdir)" "$(DESTDIR)$(toollibdir)" "$(DESTDIR)$(toollibdir)"; do \
+ 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+-install: install-recursive
++install: $(BUILT_SOURCES)
++	$(MAKE) $(AM_MAKEFLAGS) install-recursive
+ install-exec: install-exec-recursive
+ install-data: install-data-recursive
+ uninstall: uninstall-recursive
+@@ -758,6 +760,7 @@
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
++	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+ clean: clean-recursive
+ 
+ clean-am: clean-generic clean-libtool clean-toollibLIBRARIES \
+@@ -833,8 +836,9 @@
+ uninstall-am: uninstall-toollibDATA uninstall-toollibLIBRARIES \
+ 	uninstall-toollibLTLIBRARIES
+ 
+-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check-am \
+-	ctags-recursive install-am install-strip tags-recursive
++.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
++	check-am ctags-recursive install install-am install-strip \
++	tags-recursive
+ 
+ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ 	all all-am am--refresh check check-DEJAGNU check-am clean \


 *ralf*:
branches:  1.1.2;
file binutils-2.20.1-rtems4.10-20100826.diff was initially added on branch rtems-4-10-branch.

A   NONE  contrib/crossrpms/patches/binutils-2.20.1-rtems4.10-20100826.diff

 *ralf*:
Bump BINUTILS_RPMREL.

M 1.120.2.4  contrib/crossrpms/rtems4.10/arm/Makefile.am
M 1.124.2.4  contrib/crossrpms/rtems4.10/avr/Makefile.am
M 1.109.2.3  contrib/crossrpms/rtems4.10/bfin/Makefile.am
M 1.123.2.4  contrib/crossrpms/rtems4.10/h8300/Makefile.am
M 1.122.2.4  contrib/crossrpms/rtems4.10/i386/Makefile.am
M 1.80.2.4  contrib/crossrpms/rtems4.10/lm32/Makefile.am
M 1.119.2.4  contrib/crossrpms/rtems4.10/m32c/Makefile.am
M 1.112.2.4  contrib/crossrpms/rtems4.10/m32r/Makefile.am
M 1.123.2.4  contrib/crossrpms/rtems4.10/m68k/Makefile.am
M 1.125.2.4  contrib/crossrpms/rtems4.10/mips/Makefile.am
M 1.126.2.4  contrib/crossrpms/rtems4.10/powerpc/Makefile.am
M 1.122.2.4  contrib/crossrpms/rtems4.10/sh/Makefile.am
M 1.122.2.4  contrib/crossrpms/rtems4.10/sparc/Makefile.am
M   1.26  contrib/crossrpms/rtems4.11/arm/Makefile.am
M   1.27  contrib/crossrpms/rtems4.11/avr/Makefile.am
M   1.26  contrib/crossrpms/rtems4.11/bfin/Makefile.am
M   1.28  contrib/crossrpms/rtems4.11/h8300/Makefile.am
M   1.28  contrib/crossrpms/rtems4.11/i386/Makefile.am
M   1.29  contrib/crossrpms/rtems4.11/lm32/Makefile.am
M   1.29  contrib/crossrpms/rtems4.11/m32c/Makefile.am
M   1.26  contrib/crossrpms/rtems4.11/m32r/Makefile.am
M   1.28  contrib/crossrpms/rtems4.11/m68k/Makefile.am
M   1.28  contrib/crossrpms/rtems4.11/mips/Makefile.am
M   1.29  contrib/crossrpms/rtems4.11/powerpc/Makefile.am
M   1.28  contrib/crossrpms/rtems4.11/sh/Makefile.am
M   1.30  contrib/crossrpms/rtems4.11/sparc/Makefile.am
M   1.17  contrib/crossrpms/rtems4.11/sparc64/Makefile.am

diff -u rtems/contrib/crossrpms/rtems4.10/arm/Makefile.am:1.120.2.3 rtems/contrib/crossrpms/rtems4.10/arm/Makefile.am:1.120.2.4
--- rtems/contrib/crossrpms/rtems4.10/arm/Makefile.am:1.120.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/arm/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/avr/Makefile.am:1.124.2.3 rtems/contrib/crossrpms/rtems4.10/avr/Makefile.am:1.124.2.4
--- rtems/contrib/crossrpms/rtems4.10/avr/Makefile.am:1.124.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/avr/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/bfin/Makefile.am:1.109.2.2 rtems/contrib/crossrpms/rtems4.10/bfin/Makefile.am:1.109.2.3
--- rtems/contrib/crossrpms/rtems4.10/bfin/Makefile.am:1.109.2.2	Mon Aug  9 23:04:08 2010
+++ rtems/contrib/crossrpms/rtems4.10/bfin/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/h8300/Makefile.am:1.123.2.3 rtems/contrib/crossrpms/rtems4.10/h8300/Makefile.am:1.123.2.4
--- rtems/contrib/crossrpms/rtems4.10/h8300/Makefile.am:1.123.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/h8300/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/i386/Makefile.am:1.122.2.3 rtems/contrib/crossrpms/rtems4.10/i386/Makefile.am:1.122.2.4
--- rtems/contrib/crossrpms/rtems4.10/i386/Makefile.am:1.122.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/i386/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/lm32/Makefile.am:1.80.2.3 rtems/contrib/crossrpms/rtems4.10/lm32/Makefile.am:1.80.2.4
--- rtems/contrib/crossrpms/rtems4.10/lm32/Makefile.am:1.80.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/lm32/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/m32c/Makefile.am:1.119.2.3 rtems/contrib/crossrpms/rtems4.10/m32c/Makefile.am:1.119.2.4
--- rtems/contrib/crossrpms/rtems4.10/m32c/Makefile.am:1.119.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/m32c/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/m32r/Makefile.am:1.112.2.3 rtems/contrib/crossrpms/rtems4.10/m32r/Makefile.am:1.112.2.4
--- rtems/contrib/crossrpms/rtems4.10/m32r/Makefile.am:1.112.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/m32r/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/m68k/Makefile.am:1.123.2.3 rtems/contrib/crossrpms/rtems4.10/m68k/Makefile.am:1.123.2.4
--- rtems/contrib/crossrpms/rtems4.10/m68k/Makefile.am:1.123.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/m68k/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/mips/Makefile.am:1.125.2.3 rtems/contrib/crossrpms/rtems4.10/mips/Makefile.am:1.125.2.4
--- rtems/contrib/crossrpms/rtems4.10/mips/Makefile.am:1.125.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/mips/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/powerpc/Makefile.am:1.126.2.3 rtems/contrib/crossrpms/rtems4.10/powerpc/Makefile.am:1.126.2.4
--- rtems/contrib/crossrpms/rtems4.10/powerpc/Makefile.am:1.126.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/powerpc/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/sh/Makefile.am:1.122.2.3 rtems/contrib/crossrpms/rtems4.10/sh/Makefile.am:1.122.2.4
--- rtems/contrib/crossrpms/rtems4.10/sh/Makefile.am:1.122.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/sh/Makefile.am	Wed Aug 25 22:08:32 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.10/sparc/Makefile.am:1.122.2.3 rtems/contrib/crossrpms/rtems4.10/sparc/Makefile.am:1.122.2.4
--- rtems/contrib/crossrpms/rtems4.10/sparc/Makefile.am:1.122.2.3	Thu Aug 12 21:45:13 2010
+++ rtems/contrib/crossrpms/rtems4.10/sparc/Makefile.am	Wed Aug 25 22:08:33 2010
@@ -6,7 +6,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/arm/Makefile.am:1.25 rtems/contrib/crossrpms/rtems4.11/arm/Makefile.am:1.26
--- rtems/contrib/crossrpms/rtems4.11/arm/Makefile.am:1.25	Wed Aug 25 07:46:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/arm/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/avr/Makefile.am:1.26 rtems/contrib/crossrpms/rtems4.11/avr/Makefile.am:1.27
--- rtems/contrib/crossrpms/rtems4.11/avr/Makefile.am:1.26	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/avr/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/bfin/Makefile.am:1.25 rtems/contrib/crossrpms/rtems4.11/bfin/Makefile.am:1.26
--- rtems/contrib/crossrpms/rtems4.11/bfin/Makefile.am:1.25	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/bfin/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/h8300/Makefile.am:1.27 rtems/contrib/crossrpms/rtems4.11/h8300/Makefile.am:1.28
--- rtems/contrib/crossrpms/rtems4.11/h8300/Makefile.am:1.27	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/h8300/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/i386/Makefile.am:1.27 rtems/contrib/crossrpms/rtems4.11/i386/Makefile.am:1.28
--- rtems/contrib/crossrpms/rtems4.11/i386/Makefile.am:1.27	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/i386/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/lm32/Makefile.am:1.28 rtems/contrib/crossrpms/rtems4.11/lm32/Makefile.am:1.29
--- rtems/contrib/crossrpms/rtems4.11/lm32/Makefile.am:1.28	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/lm32/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/m32c/Makefile.am:1.28 rtems/contrib/crossrpms/rtems4.11/m32c/Makefile.am:1.29
--- rtems/contrib/crossrpms/rtems4.11/m32c/Makefile.am:1.28	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32c/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/m32r/Makefile.am:1.25 rtems/contrib/crossrpms/rtems4.11/m32r/Makefile.am:1.26
--- rtems/contrib/crossrpms/rtems4.11/m32r/Makefile.am:1.25	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32r/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/m68k/Makefile.am:1.27 rtems/contrib/crossrpms/rtems4.11/m68k/Makefile.am:1.28
--- rtems/contrib/crossrpms/rtems4.11/m68k/Makefile.am:1.27	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/m68k/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/mips/Makefile.am:1.27 rtems/contrib/crossrpms/rtems4.11/mips/Makefile.am:1.28
--- rtems/contrib/crossrpms/rtems4.11/mips/Makefile.am:1.27	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/mips/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/powerpc/Makefile.am:1.28 rtems/contrib/crossrpms/rtems4.11/powerpc/Makefile.am:1.29
--- rtems/contrib/crossrpms/rtems4.11/powerpc/Makefile.am:1.28	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/powerpc/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/sh/Makefile.am:1.27 rtems/contrib/crossrpms/rtems4.11/sh/Makefile.am:1.28
--- rtems/contrib/crossrpms/rtems4.11/sh/Makefile.am:1.27	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/sh/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/sparc/Makefile.am:1.29 rtems/contrib/crossrpms/rtems4.11/sparc/Makefile.am:1.30
--- rtems/contrib/crossrpms/rtems4.11/sparc/Makefile.am:1.29	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 

diff -u rtems/contrib/crossrpms/rtems4.11/sparc64/Makefile.am:1.16 rtems/contrib/crossrpms/rtems4.11/sparc64/Makefile.am:1.17
--- rtems/contrib/crossrpms/rtems4.11/sparc64/Makefile.am:1.16	Wed Aug 25 07:46:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc64/Makefile.am	Wed Aug 25 21:16:19 2010
@@ -7,7 +7,7 @@
 
 BINUTILS_VERS = 2.20.1
 BINUTILS_PKGVERS = $(BINUTILS_VERS)
-BINUTILS_RPMREL = 2
+BINUTILS_RPMREL = 3
 include ../binutils.am
 BINUTILS_OPTS +=
 


 *ralf* (on branch rtems-4-10-branch):
binutils-2.20.1-rtems4.10-20100826.diff.

M 1.12.2.1  contrib/crossrpms/rtems4.10/arm/binutils-sources.add
M 1.12.2.1  contrib/crossrpms/rtems4.10/avr/binutils-sources.add
M 1.12.2.1  contrib/crossrpms/rtems4.10/bfin/binutils-sources.add
M 1.12.2.1  contrib/crossrpms/rtems4.10/h8300/binutils-sources.add
M 1.12.2.1  contrib/crossrpms/rtems4.10/i386/binutils-sources.add
M 1.7.2.1  contrib/crossrpms/rtems4.10/lm32/binutils-sources.add
M 1.8.2.1  contrib/crossrpms/rtems4.10/m32c/binutils-sources.add
M 1.8.2.1  contrib/crossrpms/rtems4.10/m32r/binutils-sources.add
M 1.12.2.1  contrib/crossrpms/rtems4.10/m68k/binutils-sources.add
M 1.12.2.1  contrib/crossrpms/rtems4.10/mips/binutils-sources.add
M 1.12.2.1  contrib/crossrpms/rtems4.10/powerpc/binutils-sources.add
M 1.12.2.1  contrib/crossrpms/rtems4.10/sh/binutils-sources.add
M 1.12.2.1  contrib/crossrpms/rtems4.10/sparc/binutils-sources.add

diff -u rtems/contrib/crossrpms/rtems4.10/arm/binutils-sources.add:1.12 rtems/contrib/crossrpms/rtems4.10/arm/binutils-sources.add:1.12.2.1
--- rtems/contrib/crossrpms/rtems4.10/arm/binutils-sources.add:1.12	Wed Mar 10 01:07:58 2010
+++ rtems/contrib/crossrpms/rtems4.10/arm/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/avr/binutils-sources.add:1.12 rtems/contrib/crossrpms/rtems4.10/avr/binutils-sources.add:1.12.2.1
--- rtems/contrib/crossrpms/rtems4.10/avr/binutils-sources.add:1.12	Wed Mar 10 01:07:58 2010
+++ rtems/contrib/crossrpms/rtems4.10/avr/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/bfin/binutils-sources.add:1.12 rtems/contrib/crossrpms/rtems4.10/bfin/binutils-sources.add:1.12.2.1
--- rtems/contrib/crossrpms/rtems4.10/bfin/binutils-sources.add:1.12	Wed Mar 10 01:07:58 2010
+++ rtems/contrib/crossrpms/rtems4.10/bfin/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/h8300/binutils-sources.add:1.12 rtems/contrib/crossrpms/rtems4.10/h8300/binutils-sources.add:1.12.2.1
--- rtems/contrib/crossrpms/rtems4.10/h8300/binutils-sources.add:1.12	Wed Mar 10 01:07:58 2010
+++ rtems/contrib/crossrpms/rtems4.10/h8300/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/i386/binutils-sources.add:1.12 rtems/contrib/crossrpms/rtems4.10/i386/binutils-sources.add:1.12.2.1
--- rtems/contrib/crossrpms/rtems4.10/i386/binutils-sources.add:1.12	Wed Mar 10 01:07:58 2010
+++ rtems/contrib/crossrpms/rtems4.10/i386/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/lm32/binutils-sources.add:1.7 rtems/contrib/crossrpms/rtems4.10/lm32/binutils-sources.add:1.7.2.1
--- rtems/contrib/crossrpms/rtems4.10/lm32/binutils-sources.add:1.7	Wed Mar 10 01:07:59 2010
+++ rtems/contrib/crossrpms/rtems4.10/lm32/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/m32c/binutils-sources.add:1.8 rtems/contrib/crossrpms/rtems4.10/m32c/binutils-sources.add:1.8.2.1
--- rtems/contrib/crossrpms/rtems4.10/m32c/binutils-sources.add:1.8	Wed Mar 10 01:07:59 2010
+++ rtems/contrib/crossrpms/rtems4.10/m32c/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/m32r/binutils-sources.add:1.8 rtems/contrib/crossrpms/rtems4.10/m32r/binutils-sources.add:1.8.2.1
--- rtems/contrib/crossrpms/rtems4.10/m32r/binutils-sources.add:1.8	Wed Mar 10 01:07:59 2010
+++ rtems/contrib/crossrpms/rtems4.10/m32r/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/m68k/binutils-sources.add:1.12 rtems/contrib/crossrpms/rtems4.10/m68k/binutils-sources.add:1.12.2.1
--- rtems/contrib/crossrpms/rtems4.10/m68k/binutils-sources.add:1.12	Wed Mar 10 01:07:59 2010
+++ rtems/contrib/crossrpms/rtems4.10/m68k/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/mips/binutils-sources.add:1.12 rtems/contrib/crossrpms/rtems4.10/mips/binutils-sources.add:1.12.2.1
--- rtems/contrib/crossrpms/rtems4.10/mips/binutils-sources.add:1.12	Wed Mar 10 01:07:59 2010
+++ rtems/contrib/crossrpms/rtems4.10/mips/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/powerpc/binutils-sources.add:1.12 rtems/contrib/crossrpms/rtems4.10/powerpc/binutils-sources.add:1.12.2.1
--- rtems/contrib/crossrpms/rtems4.10/powerpc/binutils-sources.add:1.12	Wed Mar 10 01:07:59 2010
+++ rtems/contrib/crossrpms/rtems4.10/powerpc/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/sh/binutils-sources.add:1.12 rtems/contrib/crossrpms/rtems4.10/sh/binutils-sources.add:1.12.2.1
--- rtems/contrib/crossrpms/rtems4.10/sh/binutils-sources.add:1.12	Wed Mar 10 01:07:59 2010
+++ rtems/contrib/crossrpms/rtems4.10/sh/binutils-sources.add	Wed Aug 25 22:09:10 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff

diff -u rtems/contrib/crossrpms/rtems4.10/sparc/binutils-sources.add:1.12 rtems/contrib/crossrpms/rtems4.10/sparc/binutils-sources.add:1.12.2.1
--- rtems/contrib/crossrpms/rtems4.10/sparc/binutils-sources.add:1.12	Wed Mar 10 01:07:59 2010
+++ rtems/contrib/crossrpms/rtems4.10/sparc/binutils-sources.add	Wed Aug 25 22:09:11 2010
@@ -1,2 +1,2 @@
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff


 *ralf*:
Regenerate.

M 1.22.2.1  contrib/crossrpms/rtems4.10/arm/rtems-4.10-arm-rtems4.10-binutils.spec
M 1.22.2.1  contrib/crossrpms/rtems4.10/avr/rtems-4.10-avr-rtems4.10-binutils.spec
M 1.22.2.1  contrib/crossrpms/rtems4.10/bfin/rtems-4.10-bfin-rtems4.10-binutils.spec
M 1.22.2.1  contrib/crossrpms/rtems4.10/h8300/rtems-4.10-h8300-rtems4.10-binutils.spec
M 1.22.2.1  contrib/crossrpms/rtems4.10/i386/rtems-4.10-i386-rtems4.10-binutils.spec
M 1.11.2.1  contrib/crossrpms/rtems4.10/lm32/rtems-4.10-lm32-rtems4.10-binutils.spec
M 1.18.2.1  contrib/crossrpms/rtems4.10/m32c/rtems-4.10-m32c-rtems4.10-binutils.spec
M 1.18.2.1  contrib/crossrpms/rtems4.10/m32r/rtems-4.10-m32r-rtems4.10-binutils.spec
M 1.22.2.1  contrib/crossrpms/rtems4.10/m68k/rtems-4.10-m68k-rtems4.10-binutils.spec
M 1.22.2.1  contrib/crossrpms/rtems4.10/mips/rtems-4.10-mips-rtems4.10-binutils.spec
M 1.22.2.1  contrib/crossrpms/rtems4.10/powerpc/rtems-4.10-powerpc-rtems4.10-binutils.spec
M 1.22.2.1  contrib/crossrpms/rtems4.10/sh/rtems-4.10-sh-rtems4.10-binutils.spec
M 1.22.2.1  contrib/crossrpms/rtems4.10/sparc/rtems-4.10-sparc-rtems4.10-binutils.spec
M    1.3  contrib/crossrpms/rtems4.11/arm/rtems-4.11-arm-rtems4.11-binutils.spec
M   1.31  contrib/crossrpms/rtems4.11/arm/rtems-4.11-arm-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/avr/rtems-4.11-avr-rtems4.11-binutils.spec
M   1.31  contrib/crossrpms/rtems4.11/avr/rtems-4.11-avr-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/bfin/rtems-4.11-bfin-rtems4.11-binutils.spec
M   1.33  contrib/crossrpms/rtems4.11/bfin/rtems-4.11-bfin-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/h8300/rtems-4.11-h8300-rtems4.11-binutils.spec
M   1.32  contrib/crossrpms/rtems4.11/h8300/rtems-4.11-h8300-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/i386/rtems-4.11-i386-rtems4.11-binutils.spec
M   1.32  contrib/crossrpms/rtems4.11/i386/rtems-4.11-i386-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/lm32/rtems-4.11-lm32-rtems4.11-binutils.spec
M   1.32  contrib/crossrpms/rtems4.11/lm32/rtems-4.11-lm32-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/m32c/rtems-4.11-m32c-rtems4.11-binutils.spec
M   1.31  contrib/crossrpms/rtems4.11/m32c/rtems-4.11-m32c-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/m32r/rtems-4.11-m32r-rtems4.11-binutils.spec
M   1.30  contrib/crossrpms/rtems4.11/m32r/rtems-4.11-m32r-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/m68k/rtems-4.11-m68k-rtems4.11-binutils.spec
M   1.32  contrib/crossrpms/rtems4.11/m68k/rtems-4.11-m68k-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/mips/rtems-4.11-mips-rtems4.11-binutils.spec
M   1.32  contrib/crossrpms/rtems4.11/mips/rtems-4.11-mips-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/powerpc/rtems-4.11-powerpc-rtems4.11-binutils.spec
M   1.32  contrib/crossrpms/rtems4.11/powerpc/rtems-4.11-powerpc-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/sh/rtems-4.11-sh-rtems4.11-binutils.spec
M   1.32  contrib/crossrpms/rtems4.11/sh/rtems-4.11-sh-rtems4.11-gcc.spec
M    1.3  contrib/crossrpms/rtems4.11/sparc/rtems-4.11-sparc-rtems4.11-binutils.spec
M   1.34  contrib/crossrpms/rtems4.11/sparc/rtems-4.11-sparc-rtems4.11-gcc.spec
M    1.2  contrib/crossrpms/rtems4.11/sparc64/rtems-4.11-sparc64-rtems4.11-binutils.spec
M   1.16  contrib/crossrpms/rtems4.11/sparc64/rtems-4.11-sparc64-rtems4.11-gcc.spec

diff -u rtems/contrib/crossrpms/rtems4.10/arm/rtems-4.10-arm-rtems4.10-binutils.spec:1.22 rtems/contrib/crossrpms/rtems4.10/arm/rtems-4.10-arm-rtems4.10-binutils.spec:1.22.2.1
--- rtems/contrib/crossrpms/rtems4.10/arm/rtems-4.10-arm-rtems4.10-binutils.spec:1.22	Wed Mar 10 01:09:05 2010
+++ rtems/contrib/crossrpms/rtems4.10/arm/rtems-4.10-arm-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target arm-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target arm-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/avr/rtems-4.10-avr-rtems4.10-binutils.spec:1.22 rtems/contrib/crossrpms/rtems4.10/avr/rtems-4.10-avr-rtems4.10-binutils.spec:1.22.2.1
--- rtems/contrib/crossrpms/rtems4.10/avr/rtems-4.10-avr-rtems4.10-binutils.spec:1.22	Wed Mar 10 01:09:05 2010
+++ rtems/contrib/crossrpms/rtems4.10/avr/rtems-4.10-avr-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target avr-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target avr-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/bfin/rtems-4.10-bfin-rtems4.10-binutils.spec:1.22 rtems/contrib/crossrpms/rtems4.10/bfin/rtems-4.10-bfin-rtems4.10-binutils.spec:1.22.2.1
--- rtems/contrib/crossrpms/rtems4.10/bfin/rtems-4.10-bfin-rtems4.10-binutils.spec:1.22	Wed Mar 10 01:09:05 2010
+++ rtems/contrib/crossrpms/rtems4.10/bfin/rtems-4.10-bfin-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target bfin-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target bfin-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/h8300/rtems-4.10-h8300-rtems4.10-binutils.spec:1.22 rtems/contrib/crossrpms/rtems4.10/h8300/rtems-4.10-h8300-rtems4.10-binutils.spec:1.22.2.1
--- rtems/contrib/crossrpms/rtems4.10/h8300/rtems-4.10-h8300-rtems4.10-binutils.spec:1.22	Wed Mar 10 01:09:05 2010
+++ rtems/contrib/crossrpms/rtems4.10/h8300/rtems-4.10-h8300-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target h8300-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target h8300-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/i386/rtems-4.10-i386-rtems4.10-binutils.spec:1.22 rtems/contrib/crossrpms/rtems4.10/i386/rtems-4.10-i386-rtems4.10-binutils.spec:1.22.2.1
--- rtems/contrib/crossrpms/rtems4.10/i386/rtems-4.10-i386-rtems4.10-binutils.spec:1.22	Wed Mar 10 01:09:05 2010
+++ rtems/contrib/crossrpms/rtems4.10/i386/rtems-4.10-i386-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target i386-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target i386-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/lm32/rtems-4.10-lm32-rtems4.10-binutils.spec:1.11 rtems/contrib/crossrpms/rtems4.10/lm32/rtems-4.10-lm32-rtems4.10-binutils.spec:1.11.2.1
--- rtems/contrib/crossrpms/rtems4.10/lm32/rtems-4.10-lm32-rtems4.10-binutils.spec:1.11	Wed Mar 10 01:09:05 2010
+++ rtems/contrib/crossrpms/rtems4.10/lm32/rtems-4.10-lm32-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target lm32-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target lm32-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/m32c/rtems-4.10-m32c-rtems4.10-binutils.spec:1.18 rtems/contrib/crossrpms/rtems4.10/m32c/rtems-4.10-m32c-rtems4.10-binutils.spec:1.18.2.1
--- rtems/contrib/crossrpms/rtems4.10/m32c/rtems-4.10-m32c-rtems4.10-binutils.spec:1.18	Wed Mar 10 01:09:05 2010
+++ rtems/contrib/crossrpms/rtems4.10/m32c/rtems-4.10-m32c-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target m32c-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target m32c-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/m32r/rtems-4.10-m32r-rtems4.10-binutils.spec:1.18 rtems/contrib/crossrpms/rtems4.10/m32r/rtems-4.10-m32r-rtems4.10-binutils.spec:1.18.2.1
--- rtems/contrib/crossrpms/rtems4.10/m32r/rtems-4.10-m32r-rtems4.10-binutils.spec:1.18	Wed Mar 10 01:09:05 2010
+++ rtems/contrib/crossrpms/rtems4.10/m32r/rtems-4.10-m32r-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target m32r-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target m32r-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/m68k/rtems-4.10-m68k-rtems4.10-binutils.spec:1.22 rtems/contrib/crossrpms/rtems4.10/m68k/rtems-4.10-m68k-rtems4.10-binutils.spec:1.22.2.1
--- rtems/contrib/crossrpms/rtems4.10/m68k/rtems-4.10-m68k-rtems4.10-binutils.spec:1.22	Wed Mar 10 01:09:06 2010
+++ rtems/contrib/crossrpms/rtems4.10/m68k/rtems-4.10-m68k-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target m68k-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target m68k-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/mips/rtems-4.10-mips-rtems4.10-binutils.spec:1.22 rtems/contrib/crossrpms/rtems4.10/mips/rtems-4.10-mips-rtems4.10-binutils.spec:1.22.2.1
--- rtems/contrib/crossrpms/rtems4.10/mips/rtems-4.10-mips-rtems4.10-binutils.spec:1.22	Wed Mar 10 01:09:06 2010
+++ rtems/contrib/crossrpms/rtems4.10/mips/rtems-4.10-mips-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target mips-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target mips-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/powerpc/rtems-4.10-powerpc-rtems4.10-binutils.spec:1.22 rtems/contrib/crossrpms/rtems4.10/powerpc/rtems-4.10-powerpc-rtems4.10-binutils.spec:1.22.2.1
--- rtems/contrib/crossrpms/rtems4.10/powerpc/rtems-4.10-powerpc-rtems4.10-binutils.spec:1.22	Wed Mar 10 01:09:06 2010
+++ rtems/contrib/crossrpms/rtems4.10/powerpc/rtems-4.10-powerpc-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target powerpc-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target powerpc-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/sh/rtems-4.10-sh-rtems4.10-binutils.spec:1.22 rtems/contrib/crossrpms/rtems4.10/sh/rtems-4.10-sh-rtems4.10-binutils.spec:1.22.2.1
--- rtems/contrib/crossrpms/rtems4.10/sh/rtems-4.10-sh-rtems4.10-binutils.spec:1.22	Wed Mar 10 01:09:06 2010
+++ rtems/contrib/crossrpms/rtems4.10/sh/rtems-4.10-sh-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target sh-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target sh-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.10/sparc/rtems-4.10-sparc-rtems4.10-binutils.spec:1.22 rtems/contrib/crossrpms/rtems4.10/sparc/rtems-4.10-sparc-rtems4.10-binutils.spec:1.22.2.1
--- rtems/contrib/crossrpms/rtems4.10/sparc/rtems-4.10-sparc-rtems4.10-binutils.spec:1.22	Wed Mar 10 01:09:06 2010
+++ rtems/contrib/crossrpms/rtems4.10/sparc/rtems-4.10-sparc-rtems4.10-binutils.spec	Wed Aug 25 22:10:13 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target sparc-rtems4.10
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.10-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100826.diff
 
 %description
 Cross binutils for target sparc-rtems4.10

diff -u rtems/contrib/crossrpms/rtems4.11/arm/rtems-4.11-arm-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/arm/rtems-4.11-arm-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/arm/rtems-4.11-arm-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:36 2010
+++ rtems/contrib/crossrpms/rtems4.11/arm/rtems-4.11-arm-rtems4.11-binutils.spec	Wed Aug 25 21:18:03 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target arm-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target arm-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/arm/rtems-4.11-arm-rtems4.11-gcc.spec:1.30 rtems/contrib/crossrpms/rtems4.11/arm/rtems-4.11-arm-rtems4.11-gcc.spec:1.31
--- rtems/contrib/crossrpms/rtems4.11/arm/rtems-4.11-arm-rtems4.11-gcc.spec:1.30	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/arm/rtems-4.11-arm-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-arm-rtems4.11-binutils
 Requires:	rtems-4.11-arm-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-arm-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-arm-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-arm-rtems4.11-binutils
-# Requires:       rtems-4.11-arm-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-arm-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-arm-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-arm-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-arm-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/avr/rtems-4.11-avr-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/avr/rtems-4.11-avr-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/avr/rtems-4.11-avr-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:39 2010
+++ rtems/contrib/crossrpms/rtems4.11/avr/rtems-4.11-avr-rtems4.11-binutils.spec	Wed Aug 25 21:18:07 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target avr-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target avr-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/avr/rtems-4.11-avr-rtems4.11-gcc.spec:1.30 rtems/contrib/crossrpms/rtems4.11/avr/rtems-4.11-avr-rtems4.11-gcc.spec:1.31
--- rtems/contrib/crossrpms/rtems4.11/avr/rtems-4.11-avr-rtems4.11-gcc.spec:1.30	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/avr/rtems-4.11-avr-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-avr-rtems4.11-binutils
 Requires:	rtems-4.11-avr-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-avr-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-avr-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -282,7 +282,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -360,7 +360,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -629,7 +629,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-avr-rtems4.11-binutils
-# Requires:       rtems-4.11-avr-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-avr-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -647,7 +647,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-avr-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-avr-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-avr-rtems4.11-gcc-libgcc
@@ -760,7 +760,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -781,7 +781,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/bfin/rtems-4.11-bfin-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/bfin/rtems-4.11-bfin-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/bfin/rtems-4.11-bfin-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:39 2010
+++ rtems/contrib/crossrpms/rtems4.11/bfin/rtems-4.11-bfin-rtems4.11-binutils.spec	Wed Aug 25 21:18:11 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target bfin-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target bfin-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/bfin/rtems-4.11-bfin-rtems4.11-gcc.spec:1.32 rtems/contrib/crossrpms/rtems4.11/bfin/rtems-4.11-bfin-rtems4.11-gcc.spec:1.33
--- rtems/contrib/crossrpms/rtems4.11/bfin/rtems-4.11-bfin-rtems4.11-gcc.spec:1.32	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/bfin/rtems-4.11-bfin-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-bfin-rtems4.11-binutils
 Requires:	rtems-4.11-bfin-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-bfin-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-bfin-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-bfin-rtems4.11-binutils
-# Requires:       rtems-4.11-bfin-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-bfin-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-bfin-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-bfin-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-bfin-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/h8300/rtems-4.11-h8300-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/h8300/rtems-4.11-h8300-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/h8300/rtems-4.11-h8300-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:39 2010
+++ rtems/contrib/crossrpms/rtems4.11/h8300/rtems-4.11-h8300-rtems4.11-binutils.spec	Wed Aug 25 21:18:12 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target h8300-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target h8300-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/h8300/rtems-4.11-h8300-rtems4.11-gcc.spec:1.31 rtems/contrib/crossrpms/rtems4.11/h8300/rtems-4.11-h8300-rtems4.11-gcc.spec:1.32
--- rtems/contrib/crossrpms/rtems4.11/h8300/rtems-4.11-h8300-rtems4.11-gcc.spec:1.31	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/h8300/rtems-4.11-h8300-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-h8300-rtems4.11-binutils
 Requires:	rtems-4.11-h8300-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-h8300-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-h8300-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-h8300-rtems4.11-binutils
-# Requires:       rtems-4.11-h8300-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-h8300-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-h8300-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-h8300-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-h8300-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/i386/rtems-4.11-i386-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/i386/rtems-4.11-i386-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/i386/rtems-4.11-i386-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:39 2010
+++ rtems/contrib/crossrpms/rtems4.11/i386/rtems-4.11-i386-rtems4.11-binutils.spec	Wed Aug 25 21:18:16 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target i386-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target i386-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/i386/rtems-4.11-i386-rtems4.11-gcc.spec:1.31 rtems/contrib/crossrpms/rtems4.11/i386/rtems-4.11-i386-rtems4.11-gcc.spec:1.32
--- rtems/contrib/crossrpms/rtems4.11/i386/rtems-4.11-i386-rtems4.11-gcc.spec:1.31	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/i386/rtems-4.11-i386-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-i386-rtems4.11-binutils
 Requires:	rtems-4.11-i386-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-i386-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-i386-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-i386-rtems4.11-binutils
-# Requires:       rtems-4.11-i386-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-i386-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-i386-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-i386-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-i386-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/lm32/rtems-4.11-lm32-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/lm32/rtems-4.11-lm32-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/lm32/rtems-4.11-lm32-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/lm32/rtems-4.11-lm32-rtems4.11-binutils.spec	Wed Aug 25 21:18:19 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target lm32-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target lm32-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/lm32/rtems-4.11-lm32-rtems4.11-gcc.spec:1.31 rtems/contrib/crossrpms/rtems4.11/lm32/rtems-4.11-lm32-rtems4.11-gcc.spec:1.32
--- rtems/contrib/crossrpms/rtems4.11/lm32/rtems-4.11-lm32-rtems4.11-gcc.spec:1.31	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/lm32/rtems-4.11-lm32-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-lm32-rtems4.11-binutils
 Requires:	rtems-4.11-lm32-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-lm32-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-lm32-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-lm32-rtems4.11-binutils
-# Requires:       rtems-4.11-lm32-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-lm32-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-lm32-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-lm32-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-lm32-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/m32c/rtems-4.11-m32c-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/m32c/rtems-4.11-m32c-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/m32c/rtems-4.11-m32c-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32c/rtems-4.11-m32c-rtems4.11-binutils.spec	Wed Aug 25 21:18:21 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target m32c-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target m32c-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/m32c/rtems-4.11-m32c-rtems4.11-gcc.spec:1.30 rtems/contrib/crossrpms/rtems4.11/m32c/rtems-4.11-m32c-rtems4.11-gcc.spec:1.31
--- rtems/contrib/crossrpms/rtems4.11/m32c/rtems-4.11-m32c-rtems4.11-gcc.spec:1.30	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32c/rtems-4.11-m32c-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-m32c-rtems4.11-binutils
 Requires:	rtems-4.11-m32c-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-m32c-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-m32c-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -282,7 +282,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -360,7 +360,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -629,7 +629,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-m32c-rtems4.11-binutils
-# Requires:       rtems-4.11-m32c-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-m32c-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -647,7 +647,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-m32c-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-m32c-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-m32c-rtems4.11-gcc-libgcc
@@ -761,7 +761,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -782,7 +782,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/m32r/rtems-4.11-m32r-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/m32r/rtems-4.11-m32r-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/m32r/rtems-4.11-m32r-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32r/rtems-4.11-m32r-rtems4.11-binutils.spec	Wed Aug 25 21:18:21 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target m32r-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target m32r-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/m32r/rtems-4.11-m32r-rtems4.11-gcc.spec:1.29 rtems/contrib/crossrpms/rtems4.11/m32r/rtems-4.11-m32r-rtems4.11-gcc.spec:1.30
--- rtems/contrib/crossrpms/rtems4.11/m32r/rtems-4.11-m32r-rtems4.11-gcc.spec:1.29	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/m32r/rtems-4.11-m32r-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-m32r-rtems4.11-binutils
 Requires:	rtems-4.11-m32r-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-m32r-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-m32r-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -282,7 +282,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -360,7 +360,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -629,7 +629,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-m32r-rtems4.11-binutils
-# Requires:       rtems-4.11-m32r-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-m32r-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -647,7 +647,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-m32r-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-m32r-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-m32r-rtems4.11-gcc-libgcc
@@ -761,7 +761,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -782,7 +782,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/m68k/rtems-4.11-m68k-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/m68k/rtems-4.11-m68k-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/m68k/rtems-4.11-m68k-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/m68k/rtems-4.11-m68k-rtems4.11-binutils.spec	Wed Aug 25 21:18:21 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target m68k-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target m68k-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/m68k/rtems-4.11-m68k-rtems4.11-gcc.spec:1.31 rtems/contrib/crossrpms/rtems4.11/m68k/rtems-4.11-m68k-rtems4.11-gcc.spec:1.32
--- rtems/contrib/crossrpms/rtems4.11/m68k/rtems-4.11-m68k-rtems4.11-gcc.spec:1.31	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/m68k/rtems-4.11-m68k-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-m68k-rtems4.11-binutils
 Requires:	rtems-4.11-m68k-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-m68k-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-m68k-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-m68k-rtems4.11-binutils
-# Requires:       rtems-4.11-m68k-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-m68k-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-m68k-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-m68k-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-m68k-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/mips/rtems-4.11-mips-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/mips/rtems-4.11-mips-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/mips/rtems-4.11-mips-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:40 2010
+++ rtems/contrib/crossrpms/rtems4.11/mips/rtems-4.11-mips-rtems4.11-binutils.spec	Wed Aug 25 21:18:21 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target mips-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target mips-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/mips/rtems-4.11-mips-rtems4.11-gcc.spec:1.31 rtems/contrib/crossrpms/rtems4.11/mips/rtems-4.11-mips-rtems4.11-gcc.spec:1.32
--- rtems/contrib/crossrpms/rtems4.11/mips/rtems-4.11-mips-rtems4.11-gcc.spec:1.31	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/mips/rtems-4.11-mips-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-mips-rtems4.11-binutils
 Requires:	rtems-4.11-mips-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-mips-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-mips-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-mips-rtems4.11-binutils
-# Requires:       rtems-4.11-mips-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-mips-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-mips-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-mips-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-mips-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/powerpc/rtems-4.11-powerpc-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/powerpc/rtems-4.11-powerpc-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/powerpc/rtems-4.11-powerpc-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:42 2010
+++ rtems/contrib/crossrpms/rtems4.11/powerpc/rtems-4.11-powerpc-rtems4.11-binutils.spec	Wed Aug 25 21:18:21 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target powerpc-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target powerpc-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/powerpc/rtems-4.11-powerpc-rtems4.11-gcc.spec:1.31 rtems/contrib/crossrpms/rtems4.11/powerpc/rtems-4.11-powerpc-rtems4.11-gcc.spec:1.32
--- rtems/contrib/crossrpms/rtems4.11/powerpc/rtems-4.11-powerpc-rtems4.11-gcc.spec:1.31	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/powerpc/rtems-4.11-powerpc-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-powerpc-rtems4.11-binutils
 Requires:	rtems-4.11-powerpc-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-powerpc-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-powerpc-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-powerpc-rtems4.11-binutils
-# Requires:       rtems-4.11-powerpc-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-powerpc-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-powerpc-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-powerpc-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-powerpc-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/sh/rtems-4.11-sh-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/sh/rtems-4.11-sh-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/sh/rtems-4.11-sh-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:42 2010
+++ rtems/contrib/crossrpms/rtems4.11/sh/rtems-4.11-sh-rtems4.11-binutils.spec	Wed Aug 25 21:18:21 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target sh-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target sh-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/sh/rtems-4.11-sh-rtems4.11-gcc.spec:1.31 rtems/contrib/crossrpms/rtems4.11/sh/rtems-4.11-sh-rtems4.11-gcc.spec:1.32
--- rtems/contrib/crossrpms/rtems4.11/sh/rtems-4.11-sh-rtems4.11-gcc.spec:1.31	Wed Aug 18 05:31:16 2010
+++ rtems/contrib/crossrpms/rtems4.11/sh/rtems-4.11-sh-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-sh-rtems4.11-binutils
 Requires:	rtems-4.11-sh-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-sh-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-sh-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-sh-rtems4.11-binutils
-# Requires:       rtems-4.11-sh-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-sh-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-sh-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-sh-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-sh-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/sparc/rtems-4.11-sparc-rtems4.11-binutils.spec:1.2 rtems/contrib/crossrpms/rtems4.11/sparc/rtems-4.11-sparc-rtems4.11-binutils.spec:1.3
--- rtems/contrib/crossrpms/rtems4.11/sparc/rtems-4.11-sparc-rtems4.11-binutils.spec:1.2	Wed Jun  9 01:10:43 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc/rtems-4.11-sparc-rtems4.11-binutils.spec	Wed Aug 25 21:18:24 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target sparc-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -74,7 +74,7 @@
 Requires:	rtems-4.11-binutils-common
 
 Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
-Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.11-20100521.diff
+Patch0:  ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/binutils-2.20.1-rtems4.11-20100826.diff
 
 %description
 Cross binutils for target sparc-rtems4.11

diff -u rtems/contrib/crossrpms/rtems4.11/sparc/rtems-4.11-sparc-rtems4.11-gcc.spec:1.33 rtems/contrib/crossrpms/rtems4.11/sparc/rtems-4.11-sparc-rtems4.11-gcc.spec:1.34
--- rtems/contrib/crossrpms/rtems4.11/sparc/rtems-4.11-sparc-rtems4.11-gcc.spec:1.33	Wed Aug 18 05:31:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc/rtems-4.11-sparc-rtems4.11-gcc.spec	Wed Aug 25 07:46:46 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-sparc-rtems4.11-binutils
 Requires:	rtems-4.11-sparc-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-sparc-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-sparc-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-sparc-rtems4.11-binutils
-# Requires:       rtems-4.11-sparc-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-sparc-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-sparc-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-sparc-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-sparc-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 

diff -u rtems/contrib/crossrpms/rtems4.11/sparc64/rtems-4.11-sparc64-rtems4.11-binutils.spec:1.1 rtems/contrib/crossrpms/rtems4.11/sparc64/rtems-4.11-sparc64-rtems4.11-binutils.spec:1.2
--- rtems/contrib/crossrpms/rtems4.11/sparc64/rtems-4.11-sparc64-rtems4.11-binutils.spec:1.1	Fri May 21 11:16:18 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc64/rtems-4.11-sparc64-rtems4.11-binutils.spec	Wed Aug 25 21:18:22 2010
@@ -53,7 +53,7 @@
 Summary:	Binutils for target sparc64-rtems4.11
 Group:		Development/Tools
 Version:	%{binutils_rpmvers}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	GPL/LGPL
 URL: 		http://sources.redhat.com/binutils
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

diff -u rtems/contrib/crossrpms/rtems4.11/sparc64/rtems-4.11-sparc64-rtems4.11-gcc.spec:1.15 rtems/contrib/crossrpms/rtems4.11/sparc64/rtems-4.11-sparc64-rtems4.11-gcc.spec:1.16
--- rtems/contrib/crossrpms/rtems4.11/sparc64/rtems-4.11-sparc64-rtems4.11-gcc.spec:1.15	Wed Aug 18 05:31:17 2010
+++ rtems/contrib/crossrpms/rtems4.11/sparc64/rtems-4.11-sparc64-rtems4.11-gcc.spec	Wed Aug 25 07:46:45 2010
@@ -58,7 +58,7 @@
 
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	5%{?dist}
+Release:      	6%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -258,7 +258,7 @@
 Requires:	rtems-4.11-gcc-common
 Requires:	rtems-4.11-sparc64-rtems4.11-binutils
 Requires:	rtems-4.11-sparc64-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
-Requires:	rtems-4.11-sparc64-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:	rtems-4.11-sparc64-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 
 %if "%{gcc_version}" >= "4.5.0"
 BuildRequires:  zlib-devel
@@ -290,7 +290,7 @@
 
 %if "%{newlib_version}" == "1.18.0"
 Source50:	ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
-Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100810.diff
+Patch50:	ftp://ftp.rtems.org/pub/rtems/SOURCES/4.11/newlib-1.18.0-rtems4.11-20100825.diff
 %endif
 %{?_without_sources:NoSource:	50}
 
@@ -372,7 +372,7 @@
   ln -s ../libelf-%{libelf_version} gcc-%{gcc_pkgvers}/libelf
 %endif
 
-echo "RTEMS gcc-%{gcc_version}-5%{?dist}/newlib-%{newlib_version}-20%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
+echo "RTEMS gcc-%{gcc_version}-6%{?dist}/newlib-%{newlib_version}-21%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
 
 
   # Fix timestamps
@@ -642,7 +642,7 @@
 # Group:          Development/Tools
 # Version:        %{gcc_rpmvers}
 # Requires:       rtems-4.11-sparc64-rtems4.11-binutils
-# Requires:       rtems-4.11-sparc64-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+# Requires:       rtems-4.11-sparc64-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 # License:	GPL
 
 # %if %build_infos
@@ -660,7 +660,7 @@
 Group:          Development/Tools
 Version:        %{gcc_rpmvers}
 %{?_with_noarch_subpackages:BuildArch: noarch}
-Requires:       rtems-4.11-sparc64-rtems4.11-newlib = %{newlib_version}-20%{?dist}
+Requires:       rtems-4.11-sparc64-rtems4.11-newlib = %{newlib_version}-21%{?dist}
 License:	GPL
 
 %description -n rtems-4.11-sparc64-rtems4.11-gcc-libgcc
@@ -834,7 +834,7 @@
 Group: 		Development/Tools
 License:	Distributable
 Version:	%{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 
 Requires:	rtems-4.11-newlib-common
@@ -855,7 +855,7 @@
 Summary:	Base package for RTEMS newlib C Library
 Group:          Development/Tools
 Version:        %{newlib_version}
-Release:        20%{?dist}
+Release:        21%{?dist}
 %{?_with_noarch_subpackages:BuildArch: noarch}
 License:	Distributable
 



--

Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20100826/599ceb2a/attachment.html>


More information about the vc mailing list