am e00f4890: Merge "Move bionic over to GCC\'s \'warning\' attribute."

* commit 'e00f4890c71e9c9eb715faf2c7443732b2fdfae3':
  Move bionic over to GCC's 'warning' attribute.
This commit is contained in:
Elliott Hughes 2013-12-18 09:58:10 -08:00 committed by Android Git Automerger
commit debc37b4fb
8 changed files with 22 additions and 165 deletions

View File

@ -1,19 +0,0 @@
/* $OpenBSD: cdefs.h,v 1.2 2005/11/24 20:46:44 deraadt Exp $ */
#ifndef _MACHINE_CDEFS_H_
#define _MACHINE_CDEFS_H_
#if defined(lint)
#define __indr_reference(sym,alias) __lint_equal__(sym,alias)
#define __warn_references(sym,msg)
#define __weak_alias(alias,sym) __lint_equal__(sym,alias)
#elif defined(__GNUC__) && defined(__STDC__)
#define __weak_alias(alias,sym) \
__asm__(".weak " __STRING(alias) " ; " __STRING(alias) \
" = " __STRING(sym));
#define __warn_references(sym,msg) \
__asm__(".section .gnu.warning." __STRING(sym) \
" ; .ascii \"" msg "\" ; .text");
#endif
#endif /* !_MACHINE_CDEFS_H_ */

View File

@ -1,47 +0,0 @@
/* $OpenBSD: cdefs.h,v 1.4 2006/01/10 00:04:04 millert Exp $ */
/*
* Copyright (c) 2002-2003 Opsycon AB (www.opsycon.se / www.opsycon.com)
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
#ifndef _MIPS_CDEFS_H_
#define _MIPS_CDEFS_H_
#if defined(lint)
#define __indr_reference(sym,alias) __lint_equal__(sym,alias)
#define __warn_references(sym,msg)
#define __weak_alias(alias,sym) __lint_equal__(sym,alias)
#elif defined(__GNUC__) && defined(__STDC__)
#define __weak_alias(alias,sym) \
__asm__(".weak " __STRING(alias) " ; " \
__STRING(alias) " = " __STRING(sym))
#define __warn_references(sym,msg) \
__asm__(".section .gnu.warning." __STRING(sym) \
" ; .ascii \"" msg "\" ; .text")
#define __indr_references(sym,msg) /* nothing */
#endif
#endif /* !_MIPS_CDEFS_H_ */

View File

@ -1,24 +0,0 @@
/* $OpenBSD: cdefs.h,v 1.9 2005/11/24 20:46:45 deraadt Exp $ */
/*
* Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
* Public domain.
*/
#ifndef _MACHINE_CDEFS_H_
#define _MACHINE_CDEFS_H_
#if defined(lint)
#define __indr_reference(sym,alias) __lint_equal__(sym,alias)
#define __warn_references(sym,msg)
#define __weak_alias(alias,sym) __lint_equal__(sym,alias)
#elif defined(__GNUC__) && defined(__STDC__)
#define __weak_alias(alias,sym) \
__asm__(".weak " __STRING(alias) " ; " \
__STRING(alias) " = " __STRING(sym));
#define __warn_references(sym,msg) \
__asm__(".section .gnu.warning." __STRING(sym) \
" ; .ascii \"" msg "\" ; .text");
#endif
#endif /* !_MACHINE_CDEFS_H_ */

View File

@ -1,21 +0,0 @@
/* $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ */
/*
* Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
* Public domain.
*/
#ifndef _MACHINE_CDEFS_H_
#define _MACHINE_CDEFS_H_
#define __strong_alias(alias,sym) \
__asm__(".global " __STRING(alias) " ; " __STRING(alias) \
" = " __STRING(sym))
#define __weak_alias(alias,sym) \
__asm__(".weak " __STRING(alias) " ; " __STRING(alias) \
" = " __STRING(sym))
#define __warn_references(sym,msg) \
__asm__(".section .gnu.warning." __STRING(sym) \
" ; .ascii \"" msg "\" ; .text")
#endif /* !_MACHINE_CDEFS_H_ */

View File

@ -222,13 +222,13 @@ int getchar(void);
ssize_t getdelim(char ** __restrict, size_t * __restrict, int,
FILE * __restrict);
ssize_t getline(char ** __restrict, size_t * __restrict, FILE * __restrict);
char *gets(char *);
#if __BSD_VISIBLE && !defined(__SYS_ERRLIST)
#define __SYS_ERRLIST
extern int sys_nerr; /* perror(3) external variables */
extern char *sys_errlist[];
#endif
void perror(const char *);
int printf(const char * __restrict, ...)
__printflike(1, 2);
@ -251,13 +251,16 @@ int vprintf(const char * __restrict, __va_list)
__printflike(1, 0);
#ifndef __AUDIT__
char *gets(char *);
int sprintf(char * __restrict, const char * __restrict, ...)
__printflike(2, 3);
char *tmpnam(char *);
int vsprintf(char * __restrict, const char * __restrict,
__va_list)
__printflike(2, 0);
char* gets(char*) __warnattr("gets is very unsafe; consider using fgets");
int sprintf(char* __restrict, const char* __restrict, ...)
__printflike(2, 3) __warnattr("sprintf is often misused; please use snprintf");
char* tmpnam(char*) __warnattr("tmpnam possibly used unsafely; consider using mkstemp");
int vsprintf(char* __restrict, const char* __restrict, __va_list)
__printflike(2, 0) __warnattr("vsprintf is often misused; please use vsnprintf");
#if __XPG_VISIBLE
char* tempnam(const char*, const char*)
__warnattr("tempnam possibly used unsafely; consider using mkstemp");
#endif
#endif
extern int rename(const char*, const char*);
@ -320,9 +323,6 @@ int putc_unlocked(int, FILE *);
int putchar_unlocked(int);
#endif /* __POSIX_VISIBLE >= 199506 */
#if __XPG_VISIBLE
char *tempnam(const char *, const char *);
#endif
__END_DECLS
#endif /* __BSD_VISIBLE || __POSIX_VISIBLE || __XPG_VISIBLE */

View File

@ -51,9 +51,9 @@ extern int setenv(const char *, const char *, int);
extern int unsetenv(const char *);
extern int clearenv(void);
extern char *mkdtemp(char *);
extern char *mktemp(char *);
extern int mkstemp(char *);
extern char* mkdtemp(char*);
extern char* mktemp(char*) __warnattr("mktemp possibly used unsafely; consider using mkstemp");
extern int mkstemp(char*);
extern long strtol(const char *, char **, int);
extern long long strtoll(const char *, char **, int);

View File

@ -334,8 +334,10 @@
#if __GNUC_PREREQ__(4, 3)
#define __errordecl(name, msg) extern void name(void) __attribute__((__error__(msg)))
#define __warnattr(msg) __attribute__((__warning__(msg)))
#else
#define __errordecl(name, msg) extern void name(void)
#define __warnattr(msg)
#endif
/*

View File

@ -38,20 +38,10 @@
#define _C_LABEL_STRING(x) x
#endif
#if __STDC__
#define ___RENAME(x) __asm__(___STRING(_C_LABEL(x)))
#else
#ifdef __LEADING_UNDERSCORE
#define ___RENAME(x) ____RENAME(_/**/x)
#define ____RENAME(x) __asm__(___STRING(x))
#else
#define ___RENAME(x) __asm__(___STRING(x))
#endif
#endif
#define __indr_reference(sym,alias) /* nada, since we do weak refs */
#if __STDC__
#define __strong_alias(alias,sym) \
__asm__(".global " _C_LABEL_STRING(#alias) "\n" \
_C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));
@ -61,39 +51,15 @@
_C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));
#define __weak_extern(sym) \
__asm__(".weak " _C_LABEL_STRING(#sym));
/* We use __warnattr instead of __warn_references.
* TODO: remove this and put an empty definition in one of the upstream-* compatibility headers.
*/
#define __warn_references(sym,msg) \
__asm__(".section .gnu.warning." #sym "\n\t.ascii \"" msg "\"\n\t.text");
/*__asm__(".section .gnu.warning." #sym "\n\t.ascii \"" msg "\"\n\t.text");*/
#else /* !__STDC__ */
#ifdef __LEADING_UNDERSCORE
#define __weak_alias(alias,sym) ___weak_alias(_/**/alias,_/**/sym)
#define ___weak_alias(alias,sym) \
__asm__(".weak alias\nalias = sym");
#else
#define __weak_alias(alias,sym) \
__asm__(".weak alias\nalias = sym");
#endif
#ifdef __LEADING_UNDERSCORE
#define __weak_extern(sym) ___weak_extern(_/**/sym)
#define ___weak_extern(sym) \
__asm__(".weak sym");
#else
#define __weak_extern(sym) \
__asm__(".weak sym");
#endif
#define __warn_references(sym,msg) \
__asm__(".section .gnu.warning.sym\n\t.ascii msg ; .text");
#endif /* !__STDC__ */
#if __STDC__
#define __SECTIONSTRING(_sec, _str) \
__asm__(".section " #_sec "\n\t.asciz \"" _str "\"\n\t.previous")
#else
#define __SECTIONSTRING(_sec, _str) \
__asm__(".section _sec\n\t.asciz _str\n\t.previous")
#endif
/* GCC visibility helper macro */
/* This must be used to tag non-static functions that are private, i.e.