forkfd: Also define BSD visibility macros in forkfd_qt.cpp.
This is a follow-up to c8c4ad0
("forkfd: Define __BSD_VISIBLE and
_NETBSD_SOURCE").
Defining those macros in forkfd.c is not enough: forkfd_qt.cpp also sets
_POSIX_C_SOURCE, and sys/cdefs.h can be included implicitly via Qt's
headers (<algorithm> ends up pulling unistd.h that leads to sys/cdefs.h
and sys/types.h with both libstdc++ and older libc++ versions). In this
case, __BSD_VISIBLE/_NETBSD_SOURCE are not defined, _POSIX_C_SOURCE is,
several type definitions are omitted and by the time we include
sys/time.h in forkfd.c the build fails. On FreeBSD < 11, the error looks
like this:
In file included from io/../../3rdparty/forkfd/forkfd.c:36,
from io/forkfd_qt.cpp:80:
/usr/include/sys/time.h:94: error: 'u_int' has not been declared
Change-Id: I01fa2f5861027d99936d3026faeee9f0db3ecabd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
c8c4ad0c62
commit
655246969e
@ -39,6 +39,15 @@
|
||||
# define _XOPEN_SOURCE 700
|
||||
#endif
|
||||
|
||||
// Define BSD visibility macros. These are also defined in forkfd.c, but the
|
||||
// headers using them may be included before forkfd.c itself.
|
||||
#ifndef _NETBSD_SOURCE
|
||||
# define _NETBSD_SOURCE 1
|
||||
#endif
|
||||
#ifndef __BSD_VISIBLE
|
||||
# define __BSD_VISIBLE 1
|
||||
#endif
|
||||
|
||||
#include <QtCore/qatomic.h>
|
||||
#include "qprocess_p.h"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user