Jed Brown committed a3aaec0

petscsys.h: find memcpy and memset in string.h

C89 and later say that memcpy and memset are in string.h. With glibc,
memory.h merely includes string.h, and one user reported an error due to
undefined memset (which I cannot reproduce). So quit bothering with
nonstandard memory.h and just include string.h.

Reported-by: Alexander Krimm <>

Comments (0)

Files changed (2)


     self.mpi.headerPrefix        = self.headerPrefix
     headersC = map(lambda name: name+'.h', ['setjmp','dos', 'endian', 'fcntl', 'float', 'io', 'limits', 'malloc', 'pwd', 'search', 'strings',
                                             'unistd', 'sys/sysinfo', 'machine/endian', 'sys/param', 'sys/procfs', 'sys/resource',
-                                            'sys/systeminfo', 'sys/times', 'sys/utsname','string', 'stdlib','memory',
+                                            'sys/systeminfo', 'sys/times', 'sys/utsname','string', 'stdlib',
                                             'WindowsX', 'cxxabi','float','ieeefp','stdint','sched','pthread','mathimf'])
     functions = ['access', '_access', 'clock', 'drand48', 'getcwd', '_getcwd', 'getdomainname', 'gethostname',
 PETSC_EXTERN PetscErrorCode PetscScalarView(PetscInt,const PetscScalar[],PetscViewer);
 #include <stddef.h>
-#if defined(PETSC_HAVE_MEMORY_H)
-#include <memory.h>
+#include <string.h>             /* for memcpy, memset */
 #if defined(PETSC_HAVE_STDLIB_H)
 #include <stdlib.h>