]> ruderich.org/simon Gitweb - coloredstderr/coloredstderr.git/commitdiff
Prevent inlining for more functions.
authorSimon Ruderich <simon@ruderich.org>
Mon, 10 Jun 2013 12:11:04 +0000 (14:11 +0200)
committerSimon Ruderich <simon@ruderich.org>
Mon, 10 Jun 2013 12:11:04 +0000 (14:11 +0200)
Clang is inlining quite aggressively.

src/ldpreload.h
src/trackfds.h

index 6ef291185981a44c90a484df71efe635460e7b03..57f923b22e5dab013401a7e9f2ea1477daa85236 100644 (file)
 #include <dlfcn.h>
 #include <errno.h>
 
+static void *dlsym_function(char const *name)
+#ifdef HAVE___ATTRIBUTE__
+                                              __attribute__((noinline))
+#endif
+;
+
 /* 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. */
index 175f1e387d17fd9672c5bc066c088018bd32f8ab..eddff4c5b5dc92bbf296c0e52b3979231479900c 100644 (file)
@@ -300,7 +300,7 @@ static int tracked_fds_remove(int fd) {
     return 0;
 }
 
-static int tracked_fds_find_slow(int fd);
+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