From: Michal K. <mi...@mk...> - 2017-10-31 08:25:53
|
On Mon, Oct 30, 2017 at 05:04:25PM +0200, marius adrian popa wrote: > Firebird 3.0 icu59 ubuntu related patch > > ---------- Forwarded message ---------- > From: Adam Conrad <adc...@de...> > Date: Fri, Oct 27, 2017 at 10:03 PM > Subject: [pkg-firebird-general] Bug#879972: firebird3.0: FTBFS with icu59, > simple workaround/patch attached > To: Debian Bug Tracking System <su...@bu...> > > > Package: firebird3.0 > Version: 3.0.2.32703.ds4-11 > Severity: important > Tags: patch > User: ubu...@li... > Usertags: origin-ubuntu bionic ubuntu-patch > > > > In Ubuntu, the attached patch was applied to achieve the following: > > * Define UCHAR_TYPE=uint16_t to avoid C++11 and fix FTBFS with icu59. > > So, here's what's happening. In icu59, UChar is defined as char16_t if > you're compiling a C++ project (ie: ifdef __cplusplus), but char16_t is > a C++11 type. One could argue this is an ICU bug for forcing rdeps to > conform to a newer C++ standard (and one could even win that argument, > I imagine), but I figured working around it in firebird was the path of > least resistance. > > My first attempt was to change the firebird build from std=gnu++98 to > std=gnu++11. Don't do that. I mean, try if you want, but it does not > end well. > > This patch just tells icu to use the same type for UChar that it used to > and it seems to do the trick here. So, enjoy. This will probably work around the immediate build problem but as I pointed out some time ago in http://firebird.1100200.n4.nabble.com/heads-up-ICU-59-1-requires-C-11-td4645984.html the real problem is that starting with version 59.1, ICU officially requires C++11 so that there may be other, more subtle, issues with it and even if not, more can be expected to come with newer versions. On the other hand, making 2.5 code fully conform to C++11 might bring other problems so addressing ICU compatibility problems one by one is probably the only viable option (except just claiming that users of distributions that new should use 3.0). Michal Kubecek |