Rename __noinline/__always_inline to prevent clash with headers.

With this change noinline can be used in ldpreload.h.
This commit is contained in:
Simon Ruderich
2013-06-10 14:55:13 +02:00
parent 488159627f
commit b75b0ec399
4 changed files with 14 additions and 20 deletions

View File

@@ -20,6 +20,8 @@
#include <config.h>
#include "compiler.h"
/* Must be loaded before the following headers. */
#include "ldpreload.h"
@@ -51,7 +53,6 @@ static int force_write_to_non_tty;
#include "constants.h"
#include "compiler.h"
#ifdef DEBUG
# include "debug.h"
#endif
@@ -67,7 +68,7 @@ static int force_write_to_non_tty;
/* Prevent inlining into hook functions because it may increase the number of
* spilled registers unnecessarily. As it's not called very often accept the
* additional call. */
static int isatty_noinline(int fd) __noinline;
static int isatty_noinline(int fd) noinline;
static int isatty_noinline(int fd) {
int saved_errno = errno;
int result = isatty(fd);
@@ -137,10 +138,10 @@ static void init_pre_post_string(void) {
/* Don't inline any of the pre/post functions. Keep the hook function as small
* as possible for speed reasons. */
static void handle_fd_pre(int fd) __noinline;
static void handle_fd_post(int fd) __noinline;
static void handle_file_pre(FILE *stream) __noinline;
static void handle_file_post(FILE *stream) __noinline;
static void handle_fd_pre(int fd) noinline;
static void handle_fd_post(int fd) noinline;
static void handle_file_pre(FILE *stream) noinline;
static void handle_file_post(FILE *stream) noinline;
static void handle_fd_pre(int fd) {
int saved_errno = errno;

View File

@@ -21,14 +21,12 @@
#define COMPILER_H 1
/* Prevent/force inlining. Used to improve performance. */
#undef __noinline
#undef __always_inline
#ifdef HAVE___ATTRIBUTE__
# define __noinline __attribute__((noinline))
# define __always_inline __attribute__((always_inline))
# define noinline __attribute__((noinline))
# define always_inline __attribute__((always_inline))
#else
# define __noinline
# define __always_inline
# define noinline
# define always_inline
#endif
/* Branch prediction information for the compiler. */

View File

@@ -30,12 +30,7 @@
#include <dlfcn.h>
#include <errno.h>
static void *dlsym_function(char const *name)
#ifdef HAVE___ATTRIBUTE__
__attribute__((noinline))
#endif
;
static void *dlsym_function(char const *name) noinline;
/* Load the function name using dlsym() and return it. Terminate program on
* failure. Split in function and macro to reduce code inserted into the
* function using the macro. */

View File

@@ -300,7 +300,7 @@ static int tracked_fds_remove(int fd) {
return 0;
}
static int tracked_fds_find_slow(int fd) __noinline;
static int tracked_fds_find_slow(int fd) noinline;
/*
* tracked_fds_find() is called for each hook call and should be as fast as
* possible. As most file descriptors are < TRACKFDS_STATIC_COUNT, force the
@@ -309,7 +309,7 @@ static int tracked_fds_find_slow(int fd) __noinline;
* Inlining tracked_fds_add()/tracked_fds_remove() isn't worth the effort as
* they are not called often enough.
*/
inline static int tracked_fds_find(int fd) __always_inline;
inline static int tracked_fds_find(int fd) always_inline;
static int tracked_fds_find(int fd) {
if (fd < TRACKFDS_STATIC_COUNT) {
return tracked_fds[fd];