Opened 7 years ago

Closed 7 years ago

#54902 closed defect (fixed)

wxWidgets-3.0 @3.0.3: build failure on High Sierra

Reported by: MaddTheSane (C.W. Betts) Owned by: mojca (Mojca Miklavec)
Priority: Normal Milestone:
Component: ports Version: 2.4.1
Keywords: highsierra Cc: iqgrande, maehne (Torsten Maehne), fracai, Schamschula (Marius Schamschula), lassfido (Henrik Quanz), refactoringdr, michaellass (Michael Lass)
Port: wxWidgets-3.0

Description

wxWidgets fails to build on High Sierra. It looks like verify_noerr, which wxWidgets uses, was removed from Apple's headers.

Change History (15)

comment:1 Changed 7 years ago by MaddTheSane (C.W. Betts)

It seems like this is a known issue: https://github.com/wxWidgets/wxWidgets/pull/533

comment:2 Changed 7 years ago by kencu (Ken)

Looks like a trivial fix for the Portfile - which has already made it into wxWidgets upstream for the next release:

<https://github.com/wxWidgets/wxWidgets/commit/9a610eadcfed4cbe81f831450f0613c006dd5eed>

and I wouldn't be surprised if this same error comes up in other ports if it's true that this previously defined macro is no longer defined.

comment:3 Changed 7 years ago by MaddTheSane (C.W. Betts)

It looks like it is no longer defined by default. It can be overridden by setting __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES to 1 in the compiler flags. Although Apple seems to be really pressing that the non-underscored macros should be replaced by the underscored version. It looks like wxWidgets doesn't want to do this (backwards compatibility with older OSes), but others may want to migrate away from the deprecated macros. See /usr/include/AssertMacros.h:1228 for Apple's reasoning for this, as well as a shell snippet that will replace the old macros with the new ones.

comment:4 Changed 7 years ago by kencu (Ken)

eg apparently qt5 54754. sigh. I presume there was a good reason this was changed... and it appears there was, eg <https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/MIjO2Gwc3qc>

From old versions of AssertMacros.h:

 *      Clients are recommended to migrate over to these new macros as
 *      they update their sources because a future release of Mac OS X will remove the
 *      old macro definitions ( without the double-underscore prefix ).  Clients who
 *      want to compile without the old macro definitions can define the macro
 *      __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES to 0 before this file is
 *      included.

and later

#ifndef __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES
	/* If we haven't set this yet, it defaults to on.  In the next release, this will default to off. */
	#define	__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES	1
#endif

So I guess now they have officially turned that off, and you need to turn it on manually if you want it.

Last edited 7 years ago by kencu (Ken) (previous) (diff)

comment:5 Changed 7 years ago by mf2k (Frank Schima)

Keywords: highsierra added
Owner: set to mojca
Status: newassigned

In the future, please Cc the port maintainers (port info --maintainers wxWidgets-3.0), if any.

comment:6 Changed 7 years ago by iqgrande

Cc: iqgrande added

comment:7 Changed 7 years ago by maehne (Torsten Maehne)

Cc: maehne added

comment:8 Changed 7 years ago by fracai

Cc: fracai added

comment:9 Changed 7 years ago by Schamschula (Marius Schamschula)

Cc: Schamschula added

comment:10 Changed 7 years ago by lassfido (Henrik Quanz)

Cc: lassfido added

comment:11 Changed 7 years ago by refactoringdr

Cc refactoringdr added

comment:12 Changed 7 years ago by refactoringdr

Cc: refactoringdr added

comment:13 Changed 7 years ago by michaellass (Michael Lass)

Cc: michaellass added

comment:14 Changed 7 years ago by mojca (Mojca Miklavec)

I submitted a PR, feel free to merge (or fix it).

comment:15 Changed 7 years ago by mojca (Mojca Miklavec)

Resolution: fixed
Status: assignedclosed

In 37befb86d44e57f2c13124fbfabae3c38ba629c4/macports-ports:

wxWidgets-3.0: patch for High Sierra

Closes: #54902

Note: See TracTickets for help on using tickets.