all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Bruno Haible <bruno@clisp.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: angelo.g0@libero.it, luangruo@yahoo.com, eggert@cs.ucla.edu,
	emacs-devel@gnu.org
Subject: Re: Android port
Date: Sat, 05 Aug 2023 14:25:59 +0200	[thread overview]
Message-ID: <3473524.ldcX8TXnAK@nimes> (raw)
In-Reply-To: <83msz5sn66.fsf@gnu.org>

Eli Zaretskii wrote:
> > But from this error log:
> > 
> > In file included from C:/msys64/tmp/emacs-bfbdf4eb892935536fc665d6cc986fd669364263/nt/inc/ms-w32.h:389,
> >                  from ../src/conf_post.h:38,
> >                  from ../src/config.h:3511,
> >                  from printf.c:18:
> > C:/msys64/mingw64/include/stdio.h:379:5: note: previous definition of 'printf' with type 'int(const char *, ...)'
> > 
> > it seems that nt/inc/ms-w32.h directly includes <stdio.h> from mingw, without
> > the interposed lib/stdio.h.
> > 
> > Do you have a lib/stdio.h in your build tree?

Angelo replied "It seems no".

And that is the problem. The generated stdio.h, on this platform, is
supposed to contain macro definitions:
  #define asprintf rpl_asprintf
  #define printf __printf__
  #define vasprintf rpl_vasprintf
  #define vfprintf rpl_vfprintf

By omitting these macro definitions, there is a conflict between the
inline definition in mingw's <stdio.h> and the Gnulib replacement code.

> The MinGW build omits building the Gnulib's stdio module.  We did that
> since 2017.  The exact reasons are probably lost in time, but I can
> assure you they were real, and I wouldn't want to reintroduce them for
> this particular reason.

It'd be worth a try nevertheless. Gnulib has changed a lot since 2017.

> Since the *printf family doesn't need to be replaced in the Emacs
> build on MS-Windows, I'd rather we understood why the above causes
> compilation errors.

See above.

> Aren't Gnulib replacements for *printf functions
> supposed to have prototypes compatible to the MinGW headers?

No, Gnulib replacements always have different function names than
the system function (except for the 'free' function). The reason
is that there is so much variation in the prototypes of a function
(with or without 'restrict', with or without 'throw()' in C++,
with or without 'static' / 'inline'), that it would be extremely
fragile to attempt to get the exact same prototype as the system.

So, if you decided not to have a generated stdio.h, the simplest
solution seems to be:
  1) in the conf_post.h or nt/inc/ms-w32.h, include <stdio.h>
     (this is the one from the system),
  2) after this #include, add
     #define asprintf rpl_asprintf
     #define printf __printf__
     #define vasprintf rpl_vasprintf
     #define vfprintf rpl_vfprintf
     and add prototypes for these 4 functions.

Bruno






  parent reply	other threads:[~2023-08-05 12:25 UTC|newest]

Thread overview: 206+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-04  7:42 Android port Angelo Graziosi
2023-08-04  7:54 ` Eli Zaretskii
2023-08-04  9:45   ` Po Lu
2023-08-04 10:40     ` Eli Zaretskii
2023-08-04 12:12       ` Po Lu
2023-08-04 12:59         ` Eli Zaretskii
2023-08-04 13:23           ` Po Lu
2023-08-04 14:00             ` Eli Zaretskii
2023-08-05  0:48               ` Po Lu
2023-08-05  6:39                 ` Eli Zaretskii
2023-08-05  7:00                   ` Po Lu
2023-08-05  8:39                     ` Angelo Graziosi
2023-08-05  9:15                       ` Po Lu
2023-08-05 10:04                   ` Bruno Haible
2023-08-05 11:05                     ` Angelo Graziosi
2023-08-05 11:20                       ` Bruno Haible
2023-08-05 12:06                         ` Angelo Graziosi
2023-08-05 12:12                         ` Eli Zaretskii
2023-08-05 12:16                           ` Po Lu
2023-08-05 12:31                             ` Eli Zaretskii
2023-08-05 12:35                               ` Po Lu
2023-08-05 12:42                                 ` Po Lu
2023-08-05 12:25                           ` Bruno Haible [this message]
2023-08-05 12:42                             ` Eli Zaretskii
2023-08-05 12:47                               ` Bruno Haible
2023-08-05 13:00                                 ` Eli Zaretskii
2023-08-05 13:13                                   ` Po Lu
2023-08-05 15:26                                     ` Eli Zaretskii
2023-08-05 15:35                                       ` Eli Zaretskii
2023-08-05 23:37                                         ` Po Lu
2023-08-06  5:00                                           ` Eli Zaretskii
2023-08-06  5:07                                             ` Po Lu
2023-08-06  5:24                                               ` Eli Zaretskii
2023-08-06  8:48                                                 ` Paul Eggert
2023-08-06  8:58                                                   ` Eli Zaretskii
2023-08-06  9:24                                                   ` Po Lu
2023-08-06  9:35                                                     ` Eli Zaretskii
2023-08-06  9:41                                                       ` Po Lu
2023-08-06  9:44                                                         ` Eli Zaretskii
2023-08-06  9:54                                                           ` Po Lu
2023-08-06 10:00                                                             ` Eli Zaretskii
2023-08-06 10:10                                                               ` Po Lu
2023-08-06 10:40                                                                 ` Eli Zaretskii
2023-08-06 11:02                                                                   ` Bruno Haible
2023-08-06 11:56                                                                     ` Eli Zaretskii
2023-08-06 12:30                                                                       ` Po Lu
2023-08-06 12:42                                                                         ` Eli Zaretskii
2023-08-06 14:40                                                                       ` Bruno Haible
2023-08-06 15:09                                                                         ` Eli Zaretskii
2023-08-06 15:46                                                                           ` Bruno Haible
2023-08-06 17:44                                                                             ` Eli Zaretskii
2023-08-06 18:54                                                                               ` Bruno Haible
2023-08-06 19:14                                                                                 ` Eli Zaretskii
2023-08-06 13:05                                                                 ` Eli Zaretskii
2023-08-06 13:12                                                                   ` Bruno Haible
2023-08-06 13:18                                                                     ` Eli Zaretskii
2023-08-06 13:41                                                                       ` Po Lu
2023-08-06 15:09                                                                         ` Angelo Graziosi
2023-08-06 15:35                                                                           ` Angelo Graziosi
2023-08-06 15:44                                                                             ` Angelo Graziosi
2023-08-06 17:36                                                                               ` Eli Zaretskii
2023-08-06 18:11                                                                                 ` Angelo Graziosi
2023-08-06 18:19                                                                                   ` Eli Zaretskii
2023-08-06 18:34                                                                                     ` Angelo Graziosi
2023-08-06 18:53                                                                                       ` Eli Zaretskii
2023-08-06 20:26                                                                                         ` Angelo Graziosi
2023-08-07  2:26                                                                                           ` Eli Zaretskii
2023-08-07  7:20                                                                                             ` Angelo Graziosi
2023-08-07  7:22                                                                                               ` Po Lu
2023-08-07  8:19                                                                                                 ` Corwin Brust
2023-08-07  8:44                                                                                                   ` Po Lu
2023-08-07 11:11                                                                                                     ` Eli Zaretskii
2023-08-07 11:22                                                                                               ` Eli Zaretskii
2023-08-07 12:03                                                                                                 ` Angelo Graziosi
2023-08-07 15:48                                                                                                   ` Corwin Brust
2023-08-06 15:39                                                                           ` Eli Zaretskii
2023-08-06 15:48                                                                             ` Angelo Graziosi
2023-08-06 10:41                                                       ` Bruno Haible
2023-08-06 11:07                                                         ` Manuel Giraud via Emacs development discussions.
2023-08-06 11:39                                                           ` Eli Zaretskii
2023-08-06 12:47                                                           ` Po Lu
2023-08-06 16:21                                                             ` Paul Eggert
2023-08-06 12:16                                                         ` Po Lu
2023-08-06 12:23                                                           ` Eli Zaretskii
2023-08-06  9:39                                                     ` Arsen Arsenović
2023-08-06  9:43                                                       ` Eli Zaretskii
2023-08-06 10:33                                                   ` Bruno Haible
2023-08-06 12:20                                                     ` Po Lu
2023-08-06 12:26                                                       ` Eli Zaretskii
2023-08-06 12:33                                                         ` Po Lu
2023-08-06 12:43                                                         ` Bruno Haible
2023-08-06 12:51                                                           ` Po Lu
2023-08-06 13:13                                                             ` Eli Zaretskii
2023-08-06 13:07                                                           ` Bruno Haible
2023-08-06 18:10                                                             ` Paul Eggert
2023-08-06 18:15                                                               ` Eli Zaretskii
2023-08-06 17:44                                                       ` Paul Eggert
2023-08-06 17:51                                                         ` Eli Zaretskii
2023-08-06 23:55                                                           ` Po Lu
2023-08-07  0:49                                                             ` Po Lu
2023-08-07 11:19                                                               ` Eli Zaretskii
2023-08-07 12:03                                                                 ` Eli Zaretskii
2023-08-07 14:47                                                                   ` Eli Zaretskii
2023-08-04  9:44 ` Po Lu
2023-08-04 10:34   ` Eli Zaretskii
2023-08-04 12:02     ` Po Lu
2023-08-04 12:58       ` Angelo Graziosi
2023-08-04 13:17         ` Po Lu
2023-08-04 13:37           ` Corwin Brust
2023-08-05  3:24             ` Corwin Brust
2023-08-05  6:46               ` Eli Zaretskii
2023-08-05  7:11                 ` Corwin Brust
2023-08-04 13:48           ` Angelo Graziosi
2023-08-04 14:09           ` Eli Zaretskii
2023-08-05  1:04             ` Po Lu
2023-08-05  6:41               ` Eli Zaretskii
2023-08-04 10:53   ` Angelo Graziosi
     [not found] <87pm43a1jp.fsf.ref@yahoo.com>
2023-08-04  4:12 ` Po Lu
2023-08-04  6:27   ` Eli Zaretskii
2023-08-04  6:37     ` Po Lu
     [not found] <ygeednymfh3.fsf@PML-1006.intra>
2023-05-03  0:37 ` Po Lu
  -- strict thread matches above, loose matches on Subject: below --
2023-02-18  8:35 Angelo Graziosi
2023-02-18  8:42 ` Po Lu
2023-02-18 21:58   ` Angelo Graziosi
2023-02-19  2:13     ` Po Lu
2023-02-19  9:01       ` Angelo Graziosi
2023-02-19  9:24         ` Dov Grobgeld
2023-02-19 10:17           ` Michael Albinus
2023-02-19 10:55             ` Po Lu
2023-02-19 11:49               ` Michael Albinus
2023-02-19 10:55           ` Po Lu
2023-02-19 11:11             ` Angelo Graziosi
2023-02-19 11:24               ` Peter Oliver
2023-02-19 12:01                 ` Po Lu
2023-02-19 10:40         ` Arsen Arsenović
2023-02-19 10:53         ` Po Lu
2023-02-19 11:19           ` Angelo Graziosi
2023-02-19 11:59             ` Po Lu
2023-02-19 17:10               ` Angelo Graziosi
2023-02-20  2:39                 ` Po Lu
2023-02-20 17:05                   ` Angelo Graziosi
2023-02-21  2:28                     ` Po Lu
2023-02-21 17:39                       ` Angelo Graziosi
2023-02-21 17:51                         ` Jonathan Kenyon
2023-02-21 18:24                           ` Jonathan Kenyon
2023-02-21 18:48                             ` Simon Pugnet
2023-02-22  2:33                               ` Po Lu
2023-02-22  3:21                                 ` Jonathan Kenyon
2023-02-22  3:35                                   ` Po Lu
2023-02-22 14:11                                     ` Po Lu
2023-02-22 15:16                                       ` Simon Pugnet
2023-02-22 16:01                                       ` Angelo Graziosi
2023-02-23 14:47                                       ` Angelo Graziosi
2023-02-24  0:56                                         ` Po Lu
2023-02-24  1:01                                         ` Po Lu
2023-02-24 17:49                                           ` Angelo Graziosi
2023-02-22  2:31                           ` Po Lu
2023-02-22  2:30                         ` Po Lu
2023-02-22  8:04                           ` Angelo Graziosi
2023-02-22  8:31                           ` Angelo Graziosi
2023-03-05 22:03                         ` Angelo Graziosi
2023-03-05 23:57                           ` Po Lu
2023-03-07 15:47                             ` Angelo Graziosi
2023-03-07 23:58                               ` Po Lu
2023-03-08 16:12                                 ` Angelo Graziosi
2023-03-09  1:22                                   ` Po Lu
2023-03-09 16:38                                     ` Angelo Graziosi
2023-07-17  8:21                                     ` Angelo Graziosi
2023-07-17  8:30                                       ` Po Lu
2023-08-31  5:51                                         ` Jean Louis
2023-08-31 10:27                                           ` Angelo Graziosi
2023-07-17  8:40                                       ` Takesi Ayanokoji
2023-07-18  7:31                                         ` Angelo Graziosi
2023-07-18  7:41                                           ` Po Lu
2023-02-19 11:30       ` Peter Oliver
2023-02-18 18:12 ` Jean Louis
2023-02-19  8:31   ` Po Lu
     [not found] <87ttzkmrw1.fsf.ref@yahoo.com>
2023-02-17 11:51 ` Po Lu
2023-02-17 12:26   ` Eric S Fraga
2023-02-17 12:56   ` Arsen Arsenović
2023-02-17 13:05     ` Po Lu
2023-02-17 13:21       ` Arsen Arsenović
2023-02-19 11:17     ` Arsen Arsenović
2023-02-19 12:21       ` Po Lu
2023-02-19 14:16         ` Po Lu
2023-02-19 14:40           ` Arsen Arsenović
2023-02-19 15:13             ` Arsen Arsenović
2023-02-20  2:37               ` Po Lu
2023-02-20 15:33                 ` Arsen Arsenović
2023-02-20 15:46                   ` Po Lu
2023-02-20 16:05                     ` Arsen Arsenović
2023-02-19 14:42         ` Arsen Arsenović
2023-02-17 13:50   ` tomas
2023-02-21 13:41   ` Po Lu
2023-03-10 20:07   ` Etienne Prud'homme
2023-03-10 23:50     ` Po Lu
     [not found] <87bkmv6z36.fsf.ref@yahoo.com>
2023-01-19  2:24 ` gnulib fsusage Po Lu
2023-01-19  6:44   ` Eli Zaretskii
2023-01-19 10:11     ` Po Lu
2023-01-19 10:26       ` Eli Zaretskii
2023-01-19 11:59         ` Po Lu
2023-01-19 13:33           ` Eli Zaretskii
2023-01-19 13:40             ` Po Lu
2023-01-19 14:27               ` Android port (was: gnulib fsusage) Eli Zaretskii
2023-01-19 14:34                 ` Android port Po Lu
2023-01-19 14:56                   ` Eli Zaretskii
2023-01-20  0:18                     ` Po Lu
2023-01-20  7:09                       ` Eli Zaretskii
2023-01-20  9:39                         ` Po Lu
2023-01-25 10:48                         ` Po Lu
2023-01-26  8:59                           ` Eli Zaretskii
2023-01-20  6:47                 ` Android port (was: gnulib fsusage) Jean Louis
2023-01-20  7:19                   ` Eli Zaretskii
2023-01-28  7:50                     ` Konstantin Kharlamov
2023-01-28  8:49                       ` Eli Zaretskii
2023-01-28  9:06                         ` Konstantin Kharlamov
2023-01-28  9:21                           ` Eli Zaretskii
2023-01-28  9:31                             ` Konstantin Kharlamov
2023-01-28  9:59                               ` Android port Po Lu
2023-01-28  9:57                       ` Po Lu
2023-01-28 10:23                         ` Konstantin Kharlamov

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=3473524.ldcX8TXnAK@nimes \
    --to=bruno@clisp.org \
    --cc=angelo.g0@libero.it \
    --cc=eggert@cs.ucla.edu \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=luangruo@yahoo.com \
    /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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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.