On Tue, 17 Feb 2015, Jakub Jelinek wrote:

> Third attempt failed with:
> ../../../libgcc/config/nvptx/realloc.c:24:20: fatal error: stdlib.h: No such 
> file or directory
> compilation terminated.
> ../../../libgcc/static-object.mk:17: recipe for target 'realloc.o' failed
> make[2]: *** [realloc.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[2]: Leaving directory '/usr/src/gcc/objnvptx/nvptx-none/libgcc'
> I have nvptx-newlib symlinked into the gcc tree as newlib, so I expected it
> would be built in-tree, is that not the case (at least wiki/Offloading
> mentions that).  Or is it just that libgcc can't really have dependencies on
> newlib headers as newlib is built after libgcc?

I've committed this patch to fix this last issue (the header dependence, 
that is; I don't know about the in-tree build).

2015-02-17  Joseph Myers  <jos...@codesourcery.com>

        * config/nvptx/realloc.c: Include <stddef.h> instead of <stdlib.h>
        and <string.h>.
        (__nvptx_realloc): Call __builtin_memcpy instead of memcpy.

Index: libgcc/config/nvptx/realloc.c
===================================================================
--- libgcc/config/nvptx/realloc.c       (revision 220763)
+++ libgcc/config/nvptx/realloc.c       (working copy)
@@ -21,8 +21,7 @@
    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
-#include <stdlib.h>
-#include <string.h>
+#include <stddef.h>
 #include "nvptx-malloc.h"
 
 void *
@@ -44,7 +43,7 @@ __nvptx_realloc (void *ptr, size_t newsz)
       oldsz = *sp;
     }
   if (oldsz != 0)
-    memcpy (newptr, ptr, oldsz > newsz ? newsz : oldsz);
+    __builtin_memcpy (newptr, ptr, oldsz > newsz ? newsz : oldsz);
 
   __nvptx_free (ptr);
   return newptr;

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to