Move some gcc extensions to new gcc_extensions.h header

- Move ATTRIBUTE_PRINTF/ATTRIBUTE_SCANF from _ansi.h
  They are not related at all to this file, and this broke compilation
  with Code Sourcery GCC which ships its own _ansi.h
- Move LIKELY/UNLIKELY from system.h

There is likely a lot more GCC extensions used everywhere in the source,
conditionally on __GNUC__ or unconditionally

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27548 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Rafaël Carré 2010-07-25 14:44:29 +00:00
parent 1828a753a8
commit a72aa856bd
11 changed files with 58 additions and 28 deletions

View file

@ -31,7 +31,6 @@
#define MEM 2
#endif
#include <_ansi.h>
#include <stdbool.h>
#include <stdlib.h>
#include "strlcpy.h"
@ -51,6 +50,8 @@
#endif
#include "settings.h"
#include "gcc_extensions.h"
#ifdef CODEC
#if defined(DEBUG) || defined(SIMULATOR)
#undef DEBUGF

View file

@ -21,8 +21,9 @@
#ifndef _GUI_SPLASH_H_
#define _GUI_SPLASH_H_
#include <_ansi.h>
#include "screen_access.h"
#include "gcc_extensions.h"
/*
* Puts a splash message centered on all the screens for a given period

View file

@ -39,6 +39,7 @@
#include <stdlib.h>
#include <string.h>
#include "string-extra.h"
#include "gcc_extensions.h"
char* strncpy(char *, const char *, size_t);
void* plugin_get_buffer(size_t *buffer_size);

View file

@ -21,7 +21,7 @@
#ifndef DEBUG_H
#define DEBUG_H
#include "../include/_ansi.h"
#include "gcc_extensions.h"
extern void debug_init(void);
extern void debugf(const char* fmt,...) ATTRIBUTE_PRINTF(1, 2);

View file

@ -22,7 +22,7 @@
#define LOGF_H
#include <config.h>
#include <stdbool.h>
#include "../include/_ansi.h"
#include "gcc_extensions.h"
#include "debug.h"
#ifdef ROCKBOX_HAS_LOGF

View file

@ -22,7 +22,7 @@
#ifndef __PANIC_H__
#define __PANIC_H__
#include "_ansi.h"
#include "gcc_extensions.h"
void panicf( const char *fmt, ... ) ATTRIBUTE_PRINTF(1, 2);

View file

@ -25,6 +25,7 @@
#include "cpu.h"
#include "stdbool.h"
#include "kernel.h"
#include "gcc_extensions.h" /* for LIKELY/UNLIKELY */
extern void system_reboot (void);
/* Called from any UIE handler and panicf - wait for a key and return
@ -198,15 +199,6 @@ int get_cpu_boost_counter(void);
#define TYPE_FROM_MEMBER(type, memberptr, membername) \
((type *)((intptr_t)(memberptr) - OFFSETOF(type, membername)))
/* Use to give gcc hints on which branch is most likely taken */
#if defined(__GNUC__) && __GNUC__ >= 3
#define LIKELY(x) __builtin_expect(!!(x), 1)
#define UNLIKELY(x) __builtin_expect(!!(x), 0)
#else
#define LIKELY(x) (x)
#define UNLIKELY(x) (x)
#endif
/* returns index of first set bit or 32 if no bits are set */
int find_first_set_bit(uint32_t val);

View file

@ -64,15 +64,4 @@
#endif
#endif
/* Support gcc's __attribute__ facility. */
#ifdef __GNUC__
#define _ATTRIBUTE(attrs) __attribute__ (attrs)
#else
#define _ATTRIBUTE(attrs)
#endif
#define ATTRIBUTE_PRINTF(fmt, arg1) _ATTRIBUTE( ( format( printf, fmt, arg1 ) ) )
#define ATTRIBUTE_SCANF(fmt, arg1) _ATTRIBUTE( ( format( scanf, fmt, arg1 ) ) )
#endif /* _ANSIDECL_H_ */

View file

@ -27,7 +27,7 @@
#include <sys/types.h>
#include "config.h"
#include "_ansi.h"
#include "gcc_extensions.h"
#define MAX_OPEN_FILES 11

View file

@ -0,0 +1,46 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright © 2010 Rafaël Carré
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _GCC_EXTENSIONS_H_
#define _GCC_EXTENSIONS_H_
/* Support for some GCC extensions */
/* Compile time check of format for printf/scanf like functions */
#ifdef __GNUC__
#define ATTRIBUTE_PRINTF(fmt, arg1) __attribute__( ( format( printf, fmt, arg1 ) ) )
#define ATTRIBUTE_SCANF(fmt, arg1) __attribute__( ( format( scanf, fmt, arg1 ) ) )
#else
#define ATTRIBUTE_PRINTF(fmt, arg1)
#define ATTRIBUTE_SCANF(fmt, arg1)
#endif
/* Use to give gcc hints on which branch is most likely taken */
#if defined(__GNUC__) && __GNUC__ >= 3
#define LIKELY(x) __builtin_expect(!!(x), 1)
#define UNLIKELY(x) __builtin_expect(!!(x), 0)
#else
#define LIKELY(x) (x)
#define UNLIKELY(x) (x)
#endif
#endif /* _GCC_EXTENSIONS_H_ */

View file

@ -1,14 +1,14 @@
#ifndef _STDIO_H_
#define _STDIO_H_
#include <_ansi.h>
#define __need_size_t
#include <stddef.h>
#define __need___va_list
#include <stdarg.h>
#include "gcc_extensions.h"
#ifndef NULL
#define NULL 0
#endif