A temporary fix for CI: define macros from the missing if_types.h

One of our CI machines has WatchOS SDK 3.2 which is missing
net/if_types.h. This block integrations and until SDK is updated
in VM, we provide the missing macros from if_types.h. To be
removed ASAP.

Task-number: QTBUG-64447
Change-Id: I202d3313b9a6a6d7bd29670f0bffc182d4660f81
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
This commit is contained in:
Timur Pocheptsov 2017-11-21 16:15:44 +01:00
parent 04da027439
commit d07ea0efbc
2 changed files with 26 additions and 1 deletions

View File

@ -237,5 +237,26 @@ struct in6_ifreq {
#define SIOCGIFAFLAG_IN6 _IOWR('i', 73, struct in6_ifreq)
#define SIOCGIFALIFETIME_IN6 _IOWR('i', 81, struct in6_ifreq)
// The definition below is ONLY a temporary workaround to unblock
// integrations on CI. MUST be removed ASAP, as soon as SDK is
// updated. Currently, we have WatchOS SDK 3.2 and it's missing
// net/if_types.h (unlike SDK 4.0, which has it). Alas, we have to
// work this around. We only define constants that we use in code.
#if !QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_NA, __IPHONE_NA, __TVOS_NA, __WATCHOS_4_0)
#define QT_WATCHOS_OUTDATED_SDK_WORKAROUND
#define IFT_PPP 0x17 /* RFC 1331 */
#define IFT_LOOP 0x18 /* loopback */
#define IFT_SLIP 0x1c /* IP over generic TTY */
#define IFT_GIF 0x37 /*0xf0*/
#define IFT_STF 0x39 /*0xf3*/
#define IFT_IEEE1394 0x90 /* IEEE1394 High Performance SerialBus*/
#endif // WatchOS SDK below 4.0
#endif // QNETWORKINTERFACE_UIKIT_P_H

View File

@ -405,11 +405,15 @@ static void getAddressExtraInfo(QNetworkAddressEntry *entry, struct sockaddr *sa
# elif defined(Q_OS_BSD4)
QT_BEGIN_INCLUDE_NAMESPACE
# include <net/if_dl.h>
# include <net/if_types.h>
#if defined(QT_PLATFORM_UIKIT)
# include "qnetworkinterface_uikit_p.h"
#if !defined(QT_WATCHOS_OUTDATED_SDK_WORKAROUND)
// TODO: remove it as soon as SDK is updated on CI!!!
# include <net/if_types.h>
#endif
#else
# include <net/if_media.h>
# include <net/if_types.h>
# include <netinet/in_var.h>
#endif // QT_PLATFORM_UIKIT
QT_END_INCLUDE_NAMESPACE