Libraries updates and cleanup
* Updating common/lib * Updating lib/csu * Updating lib/libc * Updating libexec/ld.elf_so * Corrected test on __minix in featuretest to actually follow the meaning of the comment. * Cleaned up _REENTRANT-related defintions. * Disabled -D_REENTRANT for libfetch * Removing some unneeded __NBSD_LIBC defines and tests Change-Id: Ic1394baef74d11b9f86b312f5ff4bbc3cbf72ce2
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/* $NetBSD: ssp.h,v 1.6 2011/01/20 02:58:17 christos Exp $ */
|
||||
/* $NetBSD: ssp.h,v 1.10 2012/08/08 20:23:32 joerg Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2006 The NetBSD Foundation, Inc.
|
||||
* Copyright (c) 2006, 2011 The NetBSD Foundation, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to The NetBSD Foundation
|
||||
@@ -34,39 +34,48 @@
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#if !defined(__cplusplus)
|
||||
# if _FORTIFY_SOURCE > 0 && __OPTIMIZE__ > 0 && __GNUC_PREREQ__(4, 1)
|
||||
# if _FORTIFY_SOURCE > 0 && !defined(__lint__) && \
|
||||
(__OPTIMIZE__ > 0 || defined(__clang__)) && __GNUC_PREREQ__(4, 1)
|
||||
# if _FORTIFY_SOURCE > 1
|
||||
# define __SSP_FORTIFY_LEVEL 2
|
||||
# else
|
||||
# define __SSP_FORTIFY_LEVEL 1
|
||||
# endif
|
||||
# else
|
||||
# define __SSP_FORTIFY_LEVEL 0
|
||||
# endif
|
||||
#else
|
||||
# define __SSP_FORTIFY_LEVEL 0
|
||||
#endif
|
||||
|
||||
#ifdef _NAMESPACE_H_
|
||||
#define __ssp_weak_name(fun) _sys ## fun
|
||||
/* __ssp_real is used by the implementation in libc */
|
||||
#if __SSP_FORTIFY_LEVEL == 0
|
||||
#define __ssp_real_(fun) fun
|
||||
#else
|
||||
#define __ssp_weak_name(fun) _sys_ ## fun
|
||||
#define __ssp_real_(fun) __ssp_real_ ## fun
|
||||
#endif
|
||||
#define __ssp_real(fun) __ssp_real_(fun)
|
||||
|
||||
#define __ssp_inline static __inline __attribute__((__always_inline__))
|
||||
|
||||
#define __ssp_bos(ptr) __builtin_object_size(ptr, __SSP_FORTIFY_LEVEL > 1)
|
||||
#define __ssp_bos0(ptr) __builtin_object_size(ptr, 0)
|
||||
|
||||
#define __ssp_redirect_raw(rtype, fun, args, call, bos) \
|
||||
rtype __ssp_weak_name(fun) args; \
|
||||
__ssp_inline rtype fun args; \
|
||||
#define __ssp_check(buf, len, bos) \
|
||||
if (bos(buf) != (size_t)-1 && len > bos(buf)) \
|
||||
__chk_fail()
|
||||
#define __ssp_redirect_raw(rtype, fun, symbol, args, call, bos) \
|
||||
rtype __ssp_real_(fun) args __RENAME(symbol); \
|
||||
__ssp_inline rtype fun args __RENAME(__ssp_protected_ ## fun); \
|
||||
__ssp_inline rtype fun args { \
|
||||
if (bos(__buf) != (size_t)-1 && __len > bos(__buf)) \
|
||||
__chk_fail(); \
|
||||
return __ssp_weak_name(fun) call; \
|
||||
__ssp_check(__buf, __len, bos); \
|
||||
return __ssp_real_(fun) call; \
|
||||
}
|
||||
|
||||
#define __ssp_redirect(rtype, fun, args, call) \
|
||||
__ssp_redirect_raw(rtype, fun, args, call, __ssp_bos)
|
||||
__ssp_redirect_raw(rtype, fun, fun, args, call, __ssp_bos)
|
||||
#define __ssp_redirect0(rtype, fun, args, call) \
|
||||
__ssp_redirect_raw(rtype, fun, args, call, __ssp_bos0)
|
||||
__ssp_redirect_raw(rtype, fun, fun, args, call, __ssp_bos0)
|
||||
|
||||
__BEGIN_DECLS
|
||||
void __stack_chk_fail(void) __dead;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $NetBSD: stdio.h,v 1.4 2010/02/25 18:37:13 joerg Exp $ */
|
||||
/* $NetBSD: stdio.h,v 1.5 2011/07/17 20:54:34 joerg Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2006 The NetBSD Foundation, Inc.
|
||||
@@ -37,13 +37,13 @@ __BEGIN_DECLS
|
||||
int __sprintf_chk(char *__restrict, int, size_t, const char *__restrict, ...)
|
||||
__printflike(4, 5);
|
||||
int __vsprintf_chk(char *__restrict, int, size_t, const char *__restrict,
|
||||
_BSD_VA_LIST_)
|
||||
__va_list)
|
||||
__printflike(4, 0);
|
||||
int __snprintf_chk(char *__restrict, size_t, int, size_t,
|
||||
const char *__restrict, ...)
|
||||
__printflike(5, 6);
|
||||
int __vsnprintf_chk(char *__restrict, size_t, int, size_t,
|
||||
const char *__restrict, _BSD_VA_LIST_)
|
||||
const char *__restrict, __va_list)
|
||||
__printflike(5, 0);
|
||||
char *__gets_chk(char *, size_t);
|
||||
char *__fgets_chk(char *, int, size_t, FILE *);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $NetBSD: string.h,v 1.4 2009/11/17 20:47:59 drochner Exp $ */
|
||||
/* $NetBSD: string.h,v 1.5 2012/07/22 21:05:26 joerg Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2006 The NetBSD Foundation, Inc.
|
||||
@@ -33,6 +33,16 @@
|
||||
|
||||
#include <ssp/ssp.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
void *__memcpy_chk(void *, const void *, size_t, size_t);
|
||||
void *__memmove_chk(void *, void *, size_t, size_t);
|
||||
void *__memset_chk(void *, int, size_t, size_t);
|
||||
char *__strcat_chk(char *, const char *, size_t);
|
||||
char *__strcpy_chk(char *, const char *, size_t);
|
||||
char *__strncat_chk(char *, const char *, size_t, size_t);
|
||||
char *__strncpy_chk(char *, const char *, size_t, size_t);
|
||||
__END_DECLS
|
||||
|
||||
#if __SSP_FORTIFY_LEVEL > 0
|
||||
|
||||
#define __ssp_bos_check3(fun, dst, src, len) \
|
||||
@@ -74,13 +84,6 @@ __ssp_bos_icheck2_restrict(strcpy, char *, const char *)
|
||||
__ssp_bos_icheck2_restrict(strcat, char *, const char *)
|
||||
__ssp_bos_icheck3_restrict(strncpy, char *, const char *)
|
||||
__ssp_bos_icheck3_restrict(strncat, char *, const char *)
|
||||
void *__memcpy_chk(void *, const void *, size_t, size_t);
|
||||
void *__memmove_chk(void *, void *, size_t, size_t);
|
||||
void *__memset_chk(void *, int, size_t, size_t);
|
||||
char *__strcat_chk(char *, const char *, size_t);
|
||||
char *__strcpy_chk(char *, const char *, size_t);
|
||||
char *__strncat_chk(char *, const char *, size_t, size_t);
|
||||
char *__strncpy_chk(char *, const char *, size_t, size_t);
|
||||
__END_DECLS
|
||||
|
||||
#define memcpy(dst, src, len) __ssp_bos_check3(memcpy, dst, src, len)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $NetBSD: unistd.h,v 1.5 2011/01/19 19:21:29 christos Exp $ */
|
||||
/* $NetBSD: unistd.h,v 1.6 2011/01/26 18:07:44 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2006 The NetBSD Foundation, Inc.
|
||||
@@ -39,7 +39,7 @@ __BEGIN_DECLS
|
||||
__ssp_redirect0(ssize_t, read, (int __fd, void *__buf, size_t __len), \
|
||||
(__fd, __buf, __len));
|
||||
|
||||
__ssp_redirect(int, readlink, (const char *__restrict __path, \
|
||||
__ssp_redirect(ssize_t, readlink, (const char *__restrict __path, \
|
||||
char *__restrict __buf, size_t __len), (__path, __buf, __len));
|
||||
|
||||
__ssp_redirect(char *, getcwd, (char *__buf, size_t __len), (__buf, __len));
|
||||
|
||||
Reference in New Issue
Block a user