From 920b0d2049deb148efe89bfebda03d172b68c1f5 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 7 Oct 2007 15:00:24 -0500 Subject: Update usage of gcc __attribute__ flags Change the default visibility of libalpm functions to internal instead of hidden- this allows for slightly better optimization because it tells GCC that the function can never be called outside of the current module (see http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html). Also added some attributes to the pacman print functions so that they check the format strings being passed to them. Signed-off-by: Dan McGee --- lib/libalpm/Makefile.am | 2 +- lib/libalpm/util.h | 2 +- src/pacman/util.h | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/libalpm/Makefile.am b/lib/libalpm/Makefile.am index 37053707..69482396 100644 --- a/lib/libalpm/Makefile.am +++ b/lib/libalpm/Makefile.am @@ -7,7 +7,7 @@ include_HEADERS = alpm_list.h alpm.h DEFS = -DLOCALEDIR=\"@localedir@\" @DEFS@ -AM_CFLAGS = -fvisibility=hidden -pedantic -D_GNU_SOURCE -fgnu89-inline +AM_CFLAGS = -fvisibility=internal -pedantic -D_GNU_SOURCE -fgnu89-inline libalpm_la_SOURCES = \ add.h add.c \ diff --git a/lib/libalpm/util.h b/lib/libalpm/util.h index acf2eb3b..5ebc70c5 100644 --- a/lib/libalpm/util.h +++ b/lib/libalpm/util.h @@ -65,7 +65,7 @@ char *strsep(char **, const char *); /* check exported library symbols with: nm -C -D */ #define SYMEXPORT __attribute__((visibility("default"))) -#define SYMHIDDEN __attribute__((visibility("hidden"))) +#define SYMHIDDEN __attribute__((visibility("internal"))) #endif /* _ALPM_UTIL_H */ diff --git a/src/pacman/util.h b/src/pacman/util.h index 73347fe8..f3171caf 100644 --- a/src/pacman/util.h +++ b/src/pacman/util.h @@ -49,9 +49,9 @@ char *strreplace(const char *str, const char *needle, const char *replace); void list_display(const char *title, const alpm_list_t *list); void display_targets(const alpm_list_t *syncpkgs); int yesno(char *fmt, ...); -int pm_printf(pmloglevel_t level, const char *format, ...); -int pm_fprintf(FILE *stream, pmloglevel_t level, const char *format, ...); -int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list args); +int pm_printf(pmloglevel_t level, const char *format, ...) __attribute__((format(printf,2,3))); +int pm_fprintf(FILE *stream, pmloglevel_t level, const char *format, ...) __attribute__((format(printf,3,4))); +int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0))); #endif /* _PM_UTIL_H */ -- cgit v1.2.3-24-g4f1b