Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2002-08-26 08:33:46 +0400
committerChristopher Faylor <me@cgf.cx>2002-08-26 08:33:46 +0400
commit2e2b268ce6c2cf278e255a8cccaf40cbdfe7b4ec (patch)
tree6c82e7f8fdf01f0ef7a08edac592e64ae34db379 /newlib
parent720055740313044a597240a941e26a15459fcadd (diff)
* libc/include/malloc.h: On cygwin, define malloc _r functions as wrapper
macros to standard malloc functions. * libc/include/stdlib.h: Ditto. * configure.host: Always define MALLOC_PROVIDED on cygwin.
Diffstat (limited to 'newlib')
-rw-r--r--newlib/ChangeLog7
-rw-r--r--newlib/configure.host6
-rw-r--r--newlib/libc/include/malloc.h65
-rw-r--r--newlib/libc/include/stdlib.h31
4 files changed, 104 insertions, 5 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 215af69b9..c39a03f1e 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,10 @@
+2002-08-26 Christopher Faylor <cgf@redhat.com>
+
+ * libc/include/malloc.h: On cygwin, define malloc _r functions as
+ wrapper macros to standard malloc functions.
+ * libc/include/stdlib.h: Ditto.
+ * configure.host: Always define MALLOC_PROVIDED on cygwin.
+
2002-08-22 Thomas Fitzsimmons <fitzsim@redhat.com>
* libc/include/langinfo.h: New file.
diff --git a/newlib/configure.host b/newlib/configure.host
index 5220a3563..b6d223795 100644
--- a/newlib/configure.host
+++ b/newlib/configure.host
@@ -413,11 +413,7 @@ esac
case "${host}" in
*-*-cygwin*)
- newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DSIGNAL_PROVIDED -DWANT_IO_LONG_DBL -DWANT_PRINTF_LONG_LONG -D_COMPILING_NEWLIB -DHAVE_FCNTL"
-# CYGWIN provides its own malloc if --enable-malloc-debugging is set
- if [ "x${malloc_debugging}" = "xyes" ] ; then
- newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED"
- fi
+ newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DSIGNAL_PROVIDED -DWANT_IO_LONG_DBL -DWANT_PRINTF_LONG_LONG -D_COMPILING_NEWLIB -DHAVE_FCNTL -DMALLOC_PROVIDED"
syscall_dir=syscalls
;;
# RTEMS supplies its own versions of some routines:
diff --git a/newlib/libc/include/malloc.h b/newlib/libc/include/malloc.h
index 08a14252a..c46357c65 100644
--- a/newlib/libc/include/malloc.h
+++ b/newlib/libc/include/malloc.h
@@ -35,48 +35,113 @@ struct mallinfo {
/* The routines. */
extern _PTR malloc _PARAMS ((size_t));
+#ifdef __CYGWIN__
+#undef _malloc_r
+#define _malloc_r(r, s) malloc (s)
+#else
extern _PTR _malloc_r _PARAMS ((struct _reent *, size_t));
+#endif
extern _VOID free _PARAMS ((_PTR));
+#ifdef __CYGWIN__
+#undef _free_r
+#define _free_r(r, p) free (p)
+#else
extern _VOID _free_r _PARAMS ((struct _reent *, _PTR));
+#endif
extern _PTR realloc _PARAMS ((_PTR, size_t));
+#ifdef __CYGWIN__
+#undef _realloc_r
+#define _realloc_r(r, p, s) realloc (p, s)
+#else
extern _PTR _realloc_r _PARAMS ((struct _reent *, _PTR, size_t));
+#endif
extern _PTR calloc _PARAMS ((size_t, size_t));
+#ifdef __CYGWIN__
+#undef _calloc_r
+#define _calloc_r(r, s1, s2) calloc (s1, s2);
+#else
extern _PTR _calloc_r _PARAMS ((struct _reent *, size_t, size_t));
+#endif
extern _PTR memalign _PARAMS ((size_t, size_t));
+#ifdef __CYGWIN__
+#undef _memalign_r
+#define _memalign_r(r, s1, s2) memalign (s1, s2);
+#else
extern _PTR _memalign_r _PARAMS ((struct _reent *, size_t, size_t));
+#endif
extern struct mallinfo mallinfo _PARAMS ((void));
+#ifdef __CYGWIN__
+#undef _mallinfo_r
+#define _mallinfo_r(r) mallinfo ()
+#else
extern struct mallinfo _mallinfo_r _PARAMS ((struct _reent *));
+#endif
extern void malloc_stats _PARAMS ((void));
+#ifdef __CYGWIN__
+#undef _malloc_stats_r
+#define _malloc_stats_r(r) malloc_stats ()
+#else
extern void _malloc_stats_r _PARAMS ((struct _reent *));
+#endif
extern int mallopt _PARAMS ((int, int));
+#ifdef __CYGWIN__
+#undef _mallopt_r
+#define _mallopt_r(i1, i2) mallopt (i1, i2)
+#else
extern int _mallopt_r _PARAMS ((struct _reent *, int, int));
+#endif
extern size_t malloc_usable_size _PARAMS ((_PTR));
+#ifdef __CYGWIN__
+#undef _malloc_usable_size_r
+#define _malloc_usable_size_r(r, p) malloc_usable_size (p)
+#else
extern size_t _malloc_usable_size_r _PARAMS ((struct _reent *, _PTR));
+#endif
/* These aren't too useful on an embedded system, but we define them
anyhow. */
extern _PTR valloc _PARAMS ((size_t));
+#ifdef __CYGWIN__
+#undef _valloc_r
+#define _valloc_r(r, s) valloc (s)
+#else
extern _PTR _valloc_r _PARAMS ((struct _reent *, size_t));
+#endif
extern _PTR pvalloc _PARAMS ((size_t));
+#ifdef __CYGWIN__
+#undef _pvalloc_r
+#define _pvalloc_r(r, s) pvalloc (s)
+#else
extern _PTR _pvalloc_r _PARAMS ((struct _reent *, size_t));
+#endif
extern int malloc_trim _PARAMS ((size_t));
+#ifdef __CYGWIN__
+#undef _malloc_trim_r
+#define _malloc_trim_r(r, s) malloc_trim (s)
+#else
extern int _malloc_trim_r _PARAMS ((struct _reent *, size_t));
+#endif
/* A compatibility routine for an earlier version of the allocator. */
extern _VOID mstats _PARAMS ((char *));
+#ifdef __CYGWIN__
+#undef _mstats_r
+#define _mstats_r(r, p) mstats (p)
+#else
extern _VOID _mstats_r _PARAMS ((struct _reent *, char *));
+#endif
/* SVID2/XPG mallopt options */
diff --git a/newlib/libc/include/stdlib.h b/newlib/libc/include/stdlib.h
index d7246c386..d6b14f222 100644
--- a/newlib/libc/include/stdlib.h
+++ b/newlib/libc/include/stdlib.h
@@ -166,15 +166,46 @@ int _EXFUN(unlockpt,(int));
#endif /* ! __STRICT_ANSI__ */
char * _EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, int*, char**));
+#ifndef __CYGWIN__
_PTR _EXFUN(_malloc_r,(struct _reent *, size_t));
_PTR _EXFUN(_calloc_r,(struct _reent *, size_t, size_t));
_VOID _EXFUN(_free_r,(struct _reent *, _PTR));
_PTR _EXFUN(_realloc_r,(struct _reent *, _PTR, size_t));
_VOID _EXFUN(_mstats_r,(struct _reent *, char *));
+#endif
int _EXFUN(_system_r,(struct _reent *, const char *));
_VOID _EXFUN(__eprintf,(const char *, const char *, unsigned int, const char *));
+#ifdef __CYGWIN__
+#undef _malloc_r
+#define _malloc_r(r, s) malloc (s)
+#undef _free_r
+#define _free_r(r, p) free (p)
+#undef _realloc_r
+#define _realloc_r(r, p, s) realloc (p, s)
+#undef _calloc_r
+#define _calloc_r(r, s1, s2) calloc (s1, s2);
+#undef _memalign_r
+#define _memalign_r(r, s1, s2) memalign (s1, s2);
+#undef _mallinfo_r
+#define _mallinfo_r(r) mallinfo ()
+#undef _malloc_stats_r
+#define _malloc_stats_r(r) malloc_stats ()
+#undef _mallopt_r
+#define _mallopt_r(i1, i2) mallopt (i1, i2)
+#undef _malloc_usable_size_r
+#define _malloc_usable_size_r(r, p) malloc_usable_size (p)
+#undef _valloc_r
+#define _valloc_r(r, s) valloc (s)
+#undef _pvalloc_r
+#define _pvalloc_r(r, s) pvalloc (s)
+#undef _malloc_trim_r
+#define _malloc_trim_r(r, s) malloc_trim (s)
+#undef _mstats_r
+#define _mstats_r(r, p) mstats (p)
+#endif
+
_END_STD_C
#endif /* _STDLIB_H_ */