tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: icu wants c++11



Just for the record: On Solaris 11.2, textproc/icu itself fails to
compile with GCC 4.8.5:

gmake[1]: Entering directory
`/opt/pkgsrc/pkg-hrz/pkgsrc/textproc/icu/work.pkgsrc-sol11i86/icu/source/stubdata'
g++ -I/usr/include -D_REENTRANT  -DU_HAVE_ELF_H=1 -DU_HAVE_ATOMIC=0
-DU_HAVE_TIMEZONE=0 -DU_HAVE_STRTOD_L=0  -I../common
-DU_ATTRIBUTE_DEPRECATED= -O2 -I/usr/include -W -Wall -pedantic
-Wpointer-arith -Wwrite-strings -Wno-long-long   -c   -o stubdata.ao
stubdata.cpp
In file included from ../common/unicode/utypes.h:38:0,
                 from stubdata.cpp:22:
../common/unicode/umachine.h:347:13: error: 'char16_t' does not name a type
     typedef char16_t UChar;
             ^
In file included from ../common/unicode/utypes.h:39:0,
                 from stubdata.cpp:22:
../common/unicode/uversion.h:167:55: error: 'UChar' does not name a type
 u_versionFromUString(UVersionInfo versionArray, const UChar *versionString);
                                                       ^
../common/unicode/uversion.h:167:62: error: ISO C++ forbids
declaration of 'versionString' with no type [-fpermissive]
 u_versionFromUString(UVersionInfo versionArray, const UChar *versionString);
                                                              ^
stubdata.cpp:58:16: error: 'UChar' was not declared in this scope
         sizeof(UChar),
                ^
gmake[1]: *** [stubdata.ao] Error 1


The number of dependent packages is rather significant (via harfbuzz,
pango and GTK 2 and 3). Greg mentioned rolling back icu, which I'd
second.

On Sun, Apr 23, 2017 at 5:55 PM, Thomas Klausner <tk%giga.or.at@localhost> wrote:
> Since the last update, icu uses a C++11 feature (char16_t) in an
> installed header file.
>
> Some packages stopped compiling because of that, and since it's a
> property of a header installed by icu, I added "CXXFLAGS+=-std=c++11"
> to icu's bl3.mk file.
>
> However, that breaks other packages like musicpd (which wants C++14)
> or firefox:
>
> .../work/build/dist/include/nscore.h:145:9: error: ISO C++ forbids declaration of 'typeof' with no type [-fpermissive]
>
> So basically, I need a setting that says "at least C++11 for
> everything that uses this".
>
> I'm not really sure if there even is a reasonable way to do that.
>
> Any suggestions?
>  Thomas



-- 
Joern Clausen
http://www.oe-files.de/photography/


Home | Main Index | Thread Index | Old Index