diff options
author | Khem Raj <raj.khem@gmail.com> | 2019-11-15 12:45:13 -0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-11-17 12:34:21 -0800 |
commit | 599304fb377187eb900261d4eda66de39abaf664 (patch) | |
tree | 1f9c8cf81cae3bdba4dd077f26ff133288cf0804 /meta-gnome/recipes-gnome/evince | |
parent | 5ad8fb181e4f113901ebaa045b6a903afa367e78 (diff) | |
download | meta-openembedded-contrib-599304fb377187eb900261d4eda66de39abaf664.tar.gz |
evince: Fix build with clang
Enhance the patch for printf format checking to make clang work as well
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andreas Müller <schnitzeltony@gmail.com>
Diffstat (limited to 'meta-gnome/recipes-gnome/evince')
-rw-r--r-- | meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch | 96 |
1 files changed, 92 insertions, 4 deletions
diff --git a/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch b/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch index e87da90bce..c374fc9430 100644 --- a/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch +++ b/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch @@ -19,16 +19,104 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> cut-n-paste/unarr/common/unarr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/cut-n-paste/unarr/common/unarr.c b/cut-n-paste/unarr/common/unarr.c -index 97ec92a..9e6e3ad 100644 --- a/cut-n-paste/unarr/common/unarr.c +++ b/cut-n-paste/unarr/common/unarr.c -@@ -92,7 +92,7 @@ size_t ar_get_global_comment(ar_archive *ar, void *buffer, size_t count) +@@ -92,7 +92,7 @@ size_t ar_get_global_comment(ar_archive return ar->get_comment(ar, buffer, count); } -void ar_log(const char *prefix, const char *file, int line, const char *msg, ...) -+void __attribute__((__format__ (__printf__, 4, 0))) ar_log(const char *prefix, const char *file, int line, const char *msg, ...) ++void __attribute__((__format__ (__printf__, 4, 5))) ar_log(const char *prefix, const char *file, int line, const char *msg, ...) { va_list args; va_start(args, msg); +--- a/cut-n-paste/synctex/synctex_parser_utils.c ++++ b/cut-n-paste/synctex/synctex_parser_utils.c +@@ -87,11 +87,11 @@ void _synctex_free(void * ptr) { + # include <syslog.h> + #endif + +-int _synctex_error(const char * reason, ...) __attribute__((__format__ (__printf__, 1, 2))); +-int _synctex_log(int level, const char * prompt, const char * reason, va_list arg) __attribute__((__format__ (__printf__, 3, 0))); +- +-int _synctex_log(int level, const char * prompt, const char * reason,va_list arg) { ++static int _synctex_log(int level, const char * prompt, const char * reason, ...) SYNCTEX_PRINTF_FORMAT(3, 0); ++static int _synctex_log(int level, const char * prompt, const char * reason, ...) { ++ va_list arg; + int result; ++ va_start(arg, reason); + # ifdef SYNCTEX_RECENT_WINDOWS + {/* This code is contributed by William Blum. + As it does not work on some older computers, +@@ -133,10 +133,10 @@ int _synctex_log(int level, const char * + result += vfprintf(where, reason, arg); + result += fprintf(where,"\n"); + # endif ++ va_end(arg); + return result; + } + +-__attribute__((__format__ (__printf__, 1, 0))) + int _synctex_error(const char * reason,...) { + va_list arg; + int result; +@@ -355,6 +355,7 @@ char * _synctex_merge_strings(const char + size_t len = strlen(temp); + if(UINT_MAX-len<size) { + _synctex_error("! _synctex_merge_strings: Capacity exceeded."); ++ va_end(arg); + return NULL; + } + size+=len; +@@ -374,6 +375,7 @@ char * _synctex_merge_strings(const char + if(dest != strncpy(dest,temp,size)) { + _synctex_error("! _synctex_merge_strings: Copy problem"); + free(result); ++ va_end(arg); + result = NULL; + return NULL; + } +--- a/cut-n-paste/synctex/synctex_parser.c ++++ b/cut-n-paste/synctex/synctex_parser.c +@@ -8411,6 +8411,7 @@ struct synctex_updater_t { + int length; /* the number of chars appended */ + }; + ++static int _synctex_updater_print(synctex_updater_p updater, const char * format, ...) SYNCTEX_PRINTF_FORMAT(2, 3); + static int _synctex_updater_print(synctex_updater_p updater, const char * format, ...) { + int result = 0; + if (updater) { +@@ -8447,6 +8448,7 @@ static int vasprintf(char **ret, + /** + * gzvprintf is not available until OSX 10.10 + */ ++static int _synctex_updater_print_gz(synctex_updater_p updater, const char * format, ...) SYNCTEX_PRINTF_FORMAT(2, 3); + static int _synctex_updater_print_gz(synctex_updater_p updater, const char * format, ...) { + int result = 0; + if (updater) { +--- a/cut-n-paste/synctex/synctex_parser_utils.h ++++ b/cut-n-paste/synctex/synctex_parser_utils.h +@@ -85,7 +85,11 @@ extern "C" { + # else + # define SYNCTEX_ARE_PATH_CHARACTERS_EQUAL(left,right) (toupper(left) != toupper(right)) + # endif +- ++# ifdef __GNUC__ ++# define SYNCTEX_PRINTF_FORMAT(si, ftc) __attribute__ ((format (printf, si, ftc))) ++# else ++# define SYNCTEX_PRINTF_FORMAT(si, ftc) ++# endif + /* This custom malloc functions initializes to 0 the newly allocated memory. + * There is no bzero function on windows. */ + void *_synctex_malloc(size_t size); +@@ -97,8 +101,8 @@ void _synctex_free(void * ptr); + /* This is used to log some informational message to the standard error stream. + * On Windows, the stderr stream is not exposed and another method is used. + * The return value is the number of characters printed. */ +- int _synctex_error(const char * reason,...); +- int _synctex_debug(const char * reason,...); ++ int _synctex_error(const char * reason,...) SYNCTEX_PRINTF_FORMAT(1, 2); ++ int _synctex_debug(const char * reason,...) SYNCTEX_PRINTF_FORMAT(1, 2); + + /* strip the last extension of the given string, this string is modified! + * This function depends on the OS because the path separator may differ. |