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 <dan@archlinux.org>
This commit is contained in:
Dan McGee 2007-10-07 15:00:24 -05:00
parent b1613c2651
commit 920b0d2049
3 changed files with 5 additions and 5 deletions

View File

@ -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 \

View File

@ -65,7 +65,7 @@ char *strsep(char **, const char *);
/* check exported library symbols with: nm -C -D <lib> */
#define SYMEXPORT __attribute__((visibility("default")))
#define SYMHIDDEN __attribute__((visibility("hidden")))
#define SYMHIDDEN __attribute__((visibility("internal")))
#endif /* _ALPM_UTIL_H */

View File

@ -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 */