All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Vladimir 'φ-coder/phcoder' Serbinenko" <phcoder@gmail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: [PATCH v2] fix Mingw W64-32 cross compile failure due to printf redefinition in libintl.h
Date: Sat, 18 Jan 2014 17:24:53 +0100	[thread overview]
Message-ID: <52DAAAD5.5000807@gmail.com> (raw)
In-Reply-To: <1390061390-14156-1-git-send-email-arvidjaar@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4357 bytes --]

On 18.01.2014 17:09, Andrey Borzenkov wrote:
> In file included from util/misc.c:36:0:
> ./include/grub/emu/misc.h:56:1: error: 'libintl_printf' is an unrecognized format function type [-Werror=format=]
>  char * EXPORT_FUNC(xasprintf) (const char *fmt, ...) __attribute__ ((format (printf, 1, 2))) WARN_UNUSED_RESULT;
>  ^
> ./include/grub/emu/misc.h:58:1: error: 'libintl_printf' is an unrecognized format function type [-Werror=format=]
> 
> The reason is libintl.h which redefines printf as libintl_printf. The problem
> is not present in native MinGW build which avoids redefinition.  Use
> (format (__printf__) instead which is valid replacement in GCC.
> 
> v2: add grub-core/lib/libgcrypt/src/g10lib.h
> 
can we avoid modifying libgcrypt?
> ---
>  grub-core/lib/libgcrypt/src/g10lib.h | 4 ++--
>  include/grub/crypto.h                | 2 +-
>  include/grub/emu/misc.h              | 8 ++++----
>  include/grub/err.h                   | 2 +-
>  4 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/grub-core/lib/libgcrypt/src/g10lib.h b/grub-core/lib/libgcrypt/src/g10lib.h
> index 6bde20f..85a51be 100644
> --- a/grub-core/lib/libgcrypt/src/g10lib.h
> +++ b/grub-core/lib/libgcrypt/src/g10lib.h
> @@ -47,9 +47,9 @@
>  #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5 )
>  #define JNLIB_GCC_M_FUNCTION 1
>  #define JNLIB_GCC_A_NR 	     __attribute__ ((noreturn))
> -#define JNLIB_GCC_A_PRINTF( f, a )  __attribute__ ((format (printf,f,a)))
> +#define JNLIB_GCC_A_PRINTF( f, a )  __attribute__ ((format (__printf__,f,a)))
>  #define JNLIB_GCC_A_NR_PRINTF( f, a ) \
> -			    __attribute__ ((noreturn, format (printf,f,a)))
> +			    __attribute__ ((noreturn, format (__printf__,f,a)))
>  #define GCC_ATTR_NORETURN  __attribute__ ((__noreturn__))
>  #else
>  #define JNLIB_GCC_A_NR
> diff --git a/include/grub/crypto.h b/include/grub/crypto.h
> index ec1b980..a24e89d 100644
> --- a/include/grub/crypto.h
> +++ b/include/grub/crypto.h
> @@ -408,7 +408,7 @@ void _gcry_assert_failed (const char *expr, const char *file, int line,
>                            const char *func) __attribute__ ((noreturn));
>  
>  void _gcry_burn_stack (int bytes);
> -void _gcry_log_error( const char *fmt, ... )  __attribute__ ((format (printf, 1, 2)));
> +void _gcry_log_error( const char *fmt, ... )  __attribute__ ((format (__printf__, 1, 2)));
>  
>  
>  #ifdef GRUB_UTIL
> diff --git a/include/grub/emu/misc.h b/include/grub/emu/misc.h
> index dde48c1..a588ba2 100644
> --- a/include/grub/emu/misc.h
> +++ b/include/grub/emu/misc.h
> @@ -53,11 +53,11 @@ grub_util_device_is_mapped (const char *dev);
>  void * EXPORT_FUNC(xmalloc) (grub_size_t size) WARN_UNUSED_RESULT;
>  void * EXPORT_FUNC(xrealloc) (void *ptr, grub_size_t size) WARN_UNUSED_RESULT;
>  char * EXPORT_FUNC(xstrdup) (const char *str) WARN_UNUSED_RESULT;
> -char * EXPORT_FUNC(xasprintf) (const char *fmt, ...) __attribute__ ((format (printf, 1, 2))) WARN_UNUSED_RESULT;
> +char * EXPORT_FUNC(xasprintf) (const char *fmt, ...) __attribute__ ((format (__printf__, 1, 2))) WARN_UNUSED_RESULT;
>  
> -void EXPORT_FUNC(grub_util_warn) (const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
> -void EXPORT_FUNC(grub_util_info) (const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
> -void EXPORT_FUNC(grub_util_error) (const char *fmt, ...) __attribute__ ((format (printf, 1, 2), noreturn));
> +void EXPORT_FUNC(grub_util_warn) (const char *fmt, ...) __attribute__ ((format (__printf__, 1, 2)));
> +void EXPORT_FUNC(grub_util_info) (const char *fmt, ...) __attribute__ ((format (__printf__, 1, 2)));
> +void EXPORT_FUNC(grub_util_error) (const char *fmt, ...) __attribute__ ((format (__printf__, 1, 2), noreturn));
>  
>  grub_uint64_t EXPORT_FUNC (grub_util_get_cpu_time_ms) (void);
>  
> diff --git a/include/grub/err.h b/include/grub/err.h
> index 9896fcc..1590c68 100644
> --- a/include/grub/err.h
> +++ b/include/grub/err.h
> @@ -91,6 +91,6 @@ int EXPORT_FUNC(grub_error_pop) (void);
>  void EXPORT_FUNC(grub_print_error) (void);
>  extern int EXPORT_VAR(grub_err_printed_errors);
>  int grub_err_printf (const char *fmt, ...)
> -     __attribute__ ((format (printf, 1, 2)));
> +     __attribute__ ((format (__printf__, 1, 2)));
>  
>  #endif /* ! GRUB_ERR_HEADER */
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 274 bytes --]

  reply	other threads:[~2014-01-18 16:25 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-28 18:00 [PATCH] fix mingw cross compile failure due to printf redefinition in libintl.h Andrey Borzenkov
2014-01-18 16:09 ` [PATCH v2] fix Mingw W64-32 " Andrey Borzenkov
2014-01-18 16:24   ` Vladimir 'φ-coder/phcoder' Serbinenko [this message]
2014-01-18 19:02     ` Andrey Borzenkov
2014-01-18 19:07       ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-01-18 19:09         ` Andrey Borzenkov
2014-01-24 20:34           ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-01-25 15:51             ` Andrey Borzenkov
2014-01-25 17:05               ` Vladimir 'φ-coder/phcoder' Serbinenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52DAAAD5.5000807@gmail.com \
    --to=phcoder@gmail.com \
    --cc=grub-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.