qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] configure: Define NCURSES_WIDECHAR if we're using curses
@ 2017-06-02 14:35 Peter Maydell
  2017-06-02 21:58 ` Laszlo Ersek
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Peter Maydell @ 2017-06-02 14:35 UTC (permalink / raw)
  To: qemu-devel
  Cc: patches, Chad Joan, Paolo Bonzini, Laszlo Ersek,
	Rainer Müller

We want the wide character functions from the ncurses header.
Unfortunately it doesn't provide them by default, but only
if either:
 * NCURSES_WIDECHAR is defined (for ncurses 20111030 and up)
 * _XOPEN_SOURCE/_XOPEN_SOURCE_EXTENDED are suitably defined

So far we have been implicitly relying on the latter, because
for GNU libc when we define _GNU_SOURCE this causes libc
to define the _XOPEN_SOURCE macros for us. Unfortunately
this doesn't work on all libcs, because some (like OSX and
musl libc) do not define _XOPEN_SOURCE when _GNU_SOURCE
is defined.

We can't fix this by defining _XOPEN_SOURCE ourselves, because
that also means "and don't provide any functions that aren't in
that standard", and not all libcs provide any way to override
that to also get the non-standard functions. In particular
FreeBSD has no such mechanism, and OSX's _DARWIN_C_SOURCE
doesn't reenable everything (for instance getpagesize()
is still not prototyped if _DARWIN_C_SOURCE and _XOPEN_SOURCE
are both defined).

So we have to define NCURSES_WIDECHAR. (This will only work
if your ncurses is at least 20111030, as older versions
don't honour this macro.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
Testing from the people with musl libc and OSX-with-ncurses
appreciated, as I don't have any systems which have the bug
which this patch is attempting to fix...

 configure | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configure b/configure
index 0586ec9..6aca5d1 100755
--- a/configure
+++ b/configure
@@ -3053,6 +3053,8 @@ int main(void) {
 EOF
   IFS=:
   for curses_inc in $curses_inc_list; do
+    # Make sure we get the wide character prototypes
+    curses_inc="-DNCURSES_WIDECHAR $curses_inc"
     IFS=:
     for curses_lib in $curses_lib_list; do
       unset IFS
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-06-07 13:08 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-02 14:35 [Qemu-devel] [PATCH] configure: Define NCURSES_WIDECHAR if we're using curses Peter Maydell
2017-06-02 21:58 ` Laszlo Ersek
2017-06-03  9:43   ` Kamil Rytarowski
2017-06-03 16:08     ` Laszlo Ersek
2017-06-03 10:13 ` Rainer Müller
2017-06-03 10:17   ` Kamil Rytarowski
2017-06-26 13:31 ` Peter Maydell
2021-06-06 18:13 ` Stefan Weil
2021-06-07 12:57   ` Laszlo Ersek
2021-06-07 13:05     ` Daniel P. Berrangé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).