mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-02 20:40:24 +08:00
027cfa4720
The MSP430 target supports both 16-bit and 20-bit size_t and intptr_t. Some implicit casts in Newlib expect these types to be "long", (a 32-bit type on MSP430) which causes warnings during compilation such as: "cast from pointer to integer of different size"
37 lines
1.2 KiB
C
37 lines
1.2 KiB
C
/* Copyright (c) 2013 Red Hat, Inc. All rights reserved.
|
|
|
|
This copyrighted material is made available to anyone wishing to use, modify,
|
|
copy, or redistribute it subject to the terms and conditions of the BSD
|
|
License. This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY expressed or implied, including the implied warranties
|
|
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. A copy of this license
|
|
is available at http://www.opensource.org/licenses. Any Red Hat trademarks that
|
|
are incorporated in the source code or documentation are not subject to the BSD
|
|
License and may only be used or replicated with the express permission of
|
|
Red Hat, Inc.
|
|
*/
|
|
|
|
int write (int fd, const char *buf, int len);
|
|
void abort (void);
|
|
|
|
char *
|
|
_sbrk (int adj)
|
|
{
|
|
extern char end[]; /* Defined in the linker script. */
|
|
static char * heap = end;
|
|
char * rv = heap;
|
|
char * sp = (char *) & sp; /* Stack grows down, heap grows up... */
|
|
|
|
if (heap + adj > sp)
|
|
{
|
|
#define MESSAGE "Heap and stack collision\n"
|
|
write (1, MESSAGE, sizeof MESSAGE);
|
|
abort ();
|
|
}
|
|
|
|
heap += adj;
|
|
return rv;
|
|
}
|
|
|
|
char * sbrk (int) __attribute__((weak, alias ("_sbrk")));
|