[prev in list] [next in list] [prev in thread] [next in thread]
List: openbsd-ports
Subject: Re: some icu4c fallout
From: Antoine Jacoutot <ajacoutot () bsdfrog ! org>
Date: 2020-10-30 7:28:50
Message-ID: 20201030072850.GR93136 () janus ! obspm ! bsdfrog ! org
[Download RAW message or body]
On Fri, Oct 30, 2020 at 12:38:35AM +0100, Matthias Kilian wrote:
> Hi,
>
> it looks like the recent update of icu4c breaks a couple of other
> ports (editors/libreoffice, www/webkitgtk4, x11/qt5/qtwebkit,
> x11/qt5/qtwebengine, textproc/libical so far for my build). The
> reason appears to be that icu4c used to #define TRUE and FALSE but
> no lonber does, and the consuming ports relied on TRUE and FALSE.
>
> TRUE and FALSE are #defined in include/unicode/umachine.h from icu4c,
> but are now shielded by an
>
> #if U_DEFINE_FALSE_AND_TRUE || defined(U_IN_DOXYGEN)
> ...
> #endif
>
> umachine.h also has this comment:
>
> /**
> * \def U_DEFINE_FALSE_AND_TRUE
> * Normally turns off defining macros FALSE=0 & TRUE=1 in public ICU headers.
> * These obsolete macros sometimes break compilation of other code that
> * defines enum constants or similar with these names.
> * C++ has long defined bool/false/true.
> * C99 also added definitions for these, although as macros; see stdbool.h.
> *
> * You may transitionally define U_DEFINE_FALSE_AND_TRUE=1 if you need time to migrate code.
> *
> * @internal ICU 68
> */
>
> I'm not sure about the best way to fix the current problems -- patch
> icu4c to $define U_DEFINE_FALSE_AND_TRUE 1, patch depending (and
> currently broken) ports to #define U_DEFINE_FALSE_AND_TRUE 1, patch
> depending ports to no longer use TRUE and FALSE (that would be the
> best for submitting upstream).
>
> Thoughts?
I reverted the update for the time being and will see how to fix those.
Thanks.
--
Antoine
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic