URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/tags/gnu-src/gcc-4.5.1/gcc-4.5.1-or32-1.0rc1/libssp/ssp
- from Rev 276 to Rev 338
- ↔ Reverse comparison
Rev 276 → Rev 338
/ssp.h.in
0,0 → 1,65
/* Object size checking support macros. |
Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify it under |
the terms of the GNU General Public License as published by the Free |
Software Foundation; either version 3, or (at your option) any later |
version. |
|
In addition to the permissions in the GNU General Public License, the |
Free Software Foundation gives you unlimited permission to link the |
compiled version of this file into combinations with other programs, |
and to distribute those combinations without any restriction coming |
from the use of this file. (The General Public License restrictions |
do apply in other respects; for example, they cover modification of |
the file, and distribution when not linked into a combine |
executable.) |
|
GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
WARRANTY; without even the implied warranty of MERCHANTABILITY or |
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
|
#ifndef _SSP_H |
#define _SSP_H 1 |
|
#if _FORTIFY_SOURCE > 0 && __OPTIMIZE__ > 0 \ |
&& defined __GNUC__ \ |
&& (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) \ |
&& !defined __cplusplus |
# if _FORTIFY_SOURCE == 1 |
# define __SSP_FORTIFY_LEVEL 1 |
# elif _FORTIFY_SOURCE > 1 |
# define __SSP_FORTIFY_LEVEL 2 |
# endif |
#endif |
|
#if __SSP_FORTIFY_LEVEL > 0 |
# include <stddef.h> |
# define __ssp_bos(ptr) __builtin_object_size (ptr, __SSP_FORTIFY_LEVEL > 1) |
# define __ssp_bos0(ptr) __builtin_object_size (ptr, 0) |
|
# define __SSP_REDIRECT(name, proto, alias) \ |
name proto __asm__ (__SSP_ASMNAME (#alias)) |
# define __SSP_ASMNAME(cname) __SSP_ASMNAME2 (__USER_LABEL_PREFIX__, cname) |
# define __SSP_ASMNAME2(prefix, cname) __SSP_ASMNAME3 (prefix) cname |
# define __SSP_ASMNAME3(prefix) #prefix |
|
# @ssp_have_usable_vsnprintf@ __SSP_HAVE_VSNPRINTF |
|
extern void __chk_fail (void) __attribute__((__noreturn__)); |
#endif |
|
#endif /* _SSP_H */ |
/stdio.h
0,0 → 1,100
/* Checking macros for stdio functions. |
Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify it under |
the terms of the GNU General Public License as published by the Free |
Software Foundation; either version 3, or (at your option) any later |
version. |
|
In addition to the permissions in the GNU General Public License, the |
Free Software Foundation gives you unlimited permission to link the |
compiled version of this file into combinations with other programs, |
and to distribute those combinations without any restriction coming |
from the use of this file. (The General Public License restrictions |
do apply in other respects; for example, they cover modification of |
the file, and distribution when not linked into a combine |
executable.) |
|
GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
WARRANTY; without even the implied warranty of MERCHANTABILITY or |
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
|
#ifndef _SSP_STDIO_H |
#define _SSP_STDIO_H 1 |
|
#include <ssp.h> |
#include_next <stdio.h> |
|
#if __SSP_FORTIFY_LEVEL > 0 |
|
#include <stdarg.h> |
|
#undef sprintf |
#undef vsprintf |
#undef snprintf |
#undef vsnprintf |
#undef gets |
#undef fgets |
|
extern int __sprintf_chk (char *__restrict__ __s, int __flag, size_t __slen, |
__const char *__restrict__ __format, ...); |
extern int __vsprintf_chk (char *__restrict__ __s, int __flag, size_t __slen, |
__const char *__restrict__ __format, |
va_list __ap); |
|
#define sprintf(str, ...) \ |
__builtin___sprintf_chk (str, 0, __ssp_bos (str), \ |
__VA_ARGS__) |
#define vsprintf(str, fmt, ap) \ |
__builtin___vsprintf_chk (str, 0, __ssp_bos (str), fmt, ap) |
|
extern int __snprintf_chk (char *__restrict__ __s, size_t __n, int __flag, |
size_t __slen, __const char *__restrict__ __format, |
...); |
extern int __vsnprintf_chk (char *__restrict__ __s, size_t __n, int __flag, |
size_t __slen, __const char *__restrict__ __format, |
va_list __ap); |
|
#define snprintf(str, len, ...) \ |
__builtin___snprintf_chk (str, len, 0, __ssp_bos (str), __VA_ARGS__) |
#define vsnprintf(str, len, fmt, ap) \ |
__builtin___vsnprintf_chk (str, len, 0, __ssp_bos (str), fmt, ap) |
|
extern char *__gets_chk (char *__str, size_t); |
extern char *__SSP_REDIRECT (__gets_alias, (char *__str), gets); |
|
extern inline __attribute__((__always_inline__)) char * |
gets (char *__str) |
{ |
if (__ssp_bos (__str) != (size_t) -1) |
return __gets_chk (__str, __ssp_bos (__str)); |
return __gets_alias (__str); |
} |
|
extern char *__SSP_REDIRECT (__fgets_alias, |
(char *__restrict__ __s, int __n, |
FILE *__restrict__ __stream), fgets); |
|
extern inline __attribute__((__always_inline__)) char * |
fgets (char *__restrict__ __s, int __n, FILE *__restrict__ __stream) |
{ |
if (__ssp_bos (__s) != (size_t) -1 && (size_t) __n > __ssp_bos (__s)) |
__chk_fail (); |
return __fgets_alias (__s, __n, __stream); |
} |
|
#endif /* __SSP_FORTIFY_LEVEL > 0 */ |
#endif /* _SSP_STDIO_H */ |
stdio.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: string.h
===================================================================
--- string.h (nonexistent)
+++ string.h (revision 338)
@@ -0,0 +1,167 @@
+/* Checking macros for string functions.
+ Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file into combinations with other programs,
+and to distribute those combinations without any restriction coming
+from the use of this file. (The General Public License restrictions
+do apply in other respects; for example, they cover modification of
+the file, and distribution when not linked into a combine
+executable.)
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ . */
+
+
+#ifndef _SSP_STRING_H
+#define _SSP_STRING_H 1
+
+#include
+#include_next
+
+#if __SSP_FORTIFY_LEVEL > 0
+
+#undef memcpy
+#undef memmove
+#undef memset
+#undef strcat
+#undef strcpy
+#undef strncat
+#undef strncpy
+#undef mempcpy
+#undef stpcpy
+#undef bcopy
+#undef bzero
+
+#define memcpy(dest, src, len) \
+ ((__ssp_bos0 (dest) != (size_t) -1) \
+ ? __builtin___memcpy_chk (dest, src, len, __ssp_bos0 (dest)) \
+ : __memcpy_ichk (dest, src, len))
+static inline __attribute__((__always_inline__)) void *
+__memcpy_ichk (void *__restrict__ __dest, const void *__restrict__ __src,
+ size_t __len)
+{
+ return __builtin___memcpy_chk (__dest, __src, __len, __ssp_bos0 (__dest));
+}
+
+
+#define memmove(dest, src, len) \
+ ((__ssp_bos0 (dest) != (size_t) -1) \
+ ? __builtin___memmove_chk (dest, src, len, __ssp_bos0 (dest)) \
+ : __memmove_ichk (dest, src, len))
+static inline __attribute__((__always_inline__)) void *
+__memmove_ichk (void *__dest, const void *__src, size_t __len)
+{
+ return __builtin___memmove_chk (__dest, __src, __len, __ssp_bos0 (__dest));
+}
+
+
+#define mempcpy(dest, src, len) \
+ ((__ssp_bos0 (dest) != (size_t) -1) \
+ ? __builtin___mempcpy_chk (dest, src, len, __ssp_bos0 (dest)) \
+ : __mempcpy_ichk (dest, src, len))
+static inline __attribute__((__always_inline__)) void *
+__mempcpy_ichk (void *__restrict__ __dest, const void *__restrict__ __src,
+ size_t __len)
+{
+ return __builtin___mempcpy_chk (__dest, __src, __len, __ssp_bos0 (__dest));
+}
+
+
+#define memset(dest, ch, len) \
+ ((__ssp_bos0 (dest) != (size_t) -1) \
+ ? __builtin___memset_chk (dest, ch, len, __ssp_bos0 (dest)) \
+ : __memset_ichk (dest, ch, len))
+static inline __attribute__((__always_inline__)) void *
+__memset_ichk (void *__dest, int __ch, size_t __len)
+{
+ return __builtin___memset_chk (__dest, __ch, __len, __ssp_bos0 (__dest));
+}
+
+#define bcopy(src, dest, len) ((void) \
+ ((__ssp_bos0 (dest) != (size_t) -1) \
+ ? __builtin___memmove_chk (dest, src, len, __ssp_bos0 (dest)) \
+ : __memmove_ichk (dest, src, len)))
+#define bzero(dest, len) ((void) \
+ ((__ssp_bos0 (dest) != (size_t) -1) \
+ ? __builtin___memset_chk (dest, '\0', len, __ssp_bos0 (dest)) \
+ : __memset_ichk (dest, '\0', len)))
+
+
+#define strcpy(dest, src) \
+ ((__ssp_bos (dest) != (size_t) -1) \
+ ? __builtin___strcpy_chk (dest, src, __ssp_bos (dest)) \
+ : __strcpy_ichk (dest, src))
+static inline __attribute__((__always_inline__)) char *
+__strcpy_ichk (char *__restrict__ __dest, const char *__restrict__ __src)
+{
+ return __builtin___strcpy_chk (__dest, __src, __ssp_bos (__dest));
+}
+
+
+#define stpcpy(dest, src) \
+ ((__ssp_bos (dest) != (size_t) -1) \
+ ? __builtin___stpcpy_chk (dest, src, __ssp_bos (dest)) \
+ : __stpcpy_ichk (dest, src))
+static inline __attribute__((__always_inline__)) char *
+__stpcpy_ichk (char *__restrict__ __dest, const char *__restrict__ __src)
+{
+ return __builtin___stpcpy_chk (__dest, __src, __ssp_bos (__dest));
+}
+
+
+#define strncpy(dest, src, len) \
+ ((__ssp_bos (dest) != (size_t) -1) \
+ ? __builtin___strncpy_chk (dest, src, len, __ssp_bos (dest)) \
+ : __strncpy_ichk (dest, src, len))
+static inline __attribute__((__always_inline__)) char *
+__strncpy_ichk (char *__restrict__ __dest, const char *__restrict__ __src,
+ size_t __len)
+{
+ return __builtin___strncpy_chk (__dest, __src, __len, __ssp_bos (__dest));
+}
+
+
+#define strcat(dest, src) \
+ ((__ssp_bos (dest) != (size_t) -1) \
+ ? __builtin___strcat_chk (dest, src, __ssp_bos (dest)) \
+ : __strcat_ichk (dest, src))
+static inline __attribute__((__always_inline__)) char *
+__strcat_ichk (char *__restrict__ __dest, const char *__restrict__ __src)
+{
+ return __builtin___strcat_chk (__dest, __src, __ssp_bos (__dest));
+}
+
+
+#define strncat(dest, src, len) \
+ ((__ssp_bos (dest) != (size_t) -1) \
+ ? __builtin___strncat_chk (dest, src, len, __ssp_bos (dest)) \
+ : __strncat_ichk (dest, src, len))
+static inline __attribute__((__always_inline__)) char *
+__strncat_ichk (char *__restrict__ __dest, const char *__restrict__ __src,
+ size_t __len)
+{
+ return __builtin___strncat_chk (__dest, __src, __len, __ssp_bos (__dest));
+}
+
+#endif /* __SSP_FORTIFY_LEVEL > 0 */
+#endif /* _SSP_STRING_H */
string.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: unistd.h
===================================================================
--- unistd.h (nonexistent)
+++ unistd.h (revision 338)
@@ -0,0 +1,84 @@
+/* Checking macros for unistd functions.
+ Copyright (C) 2005, 2009 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file into combinations with other programs,
+and to distribute those combinations without any restriction coming
+from the use of this file. (The General Public License restrictions
+do apply in other respects; for example, they cover modification of
+the file, and distribution when not linked into a combine
+executable.)
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ . */
+
+
+#ifndef _SSP_UNISTD_H
+#define _SSP_UNISTD_H 1
+
+#include
+#include_next
+
+#if __SSP_FORTIFY_LEVEL > 0
+
+#undef read
+#undef readlink
+#undef getcwd
+
+extern ssize_t __SSP_REDIRECT (__read_alias, (int __fd, void *__buf,
+ size_t __nbytes), read);
+
+extern inline __attribute__((__always_inline__)) ssize_t
+read (int __fd, void *__buf, size_t __nbytes)
+{
+ if (__ssp_bos0 (__buf) != (size_t) -1 && __nbytes > __ssp_bos0 (__buf))
+ __chk_fail ();
+ return __read_alias (__fd, __buf, __nbytes);
+}
+
+extern int __SSP_REDIRECT (__readlink_alias,
+ (const char *__restrict__ __path,
+ char *__restrict__ __buf, size_t __len),
+ readlink);
+
+extern inline __attribute__((__always_inline__)) int
+readlink (const char *__restrict__ __path, char *__restrict__ __buf,
+ size_t __len)
+{
+ if (__ssp_bos (__buf) != (size_t) -1 && __len > __ssp_bos (__buf))
+ __chk_fail ();
+ return __readlink_alias (__path, __buf, __len);
+}
+
+extern char *__SSP_REDIRECT (__getcwd_alias,
+ (char *__buf, size_t __size), getcwd);
+
+extern inline __attribute__((__always_inline__)) char *
+getcwd (char *__buf, size_t __size)
+{
+ if (__ssp_bos (__buf) != (size_t) -1 && __size > __ssp_bos (__buf))
+ __chk_fail ();
+ return __getcwd_alias (__buf, __size);
+}
+
+#endif /* __SSP_FORTIFY_LEVEL > 0 */
+#endif /* _SSP_UNISTD_H */
unistd.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property