Issue Details (XML | Word | Printable)

Key: CORE-5817
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Alexander Peshkov
Reporter: vincent
Votes: 0
Watchers: 3
Operations

If you were logged in you would be able to see more operations.
Firebird Core

Unable to compile Firebird with ICU 60 or higer

Created: 07/May/18 11:18 AM   Updated: 20/Sep/18 10:20 AM
Component/s: Build Issues / Porting
Affects Version/s: 3.0.3
Fix Version/s: 3.0.4, 4.0 Beta 1

Environment: Linux (Gentoo)

QA Status: Cannot be tested
Test Specifics: Platform (Windows/Linux) specific


 Description  « Hide
(with icu 58 everything works as expected)

When I compile with icu 60 or higher, I get :

In file included from /usr/include/unicode/utypes.h:38:0,
                 from /usr/include/unicode/ucnv_err.h:88,
                 from /usr/include/unicode/ucnv.h:52,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:34,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/intl_classes.h:35,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/TextType.cpp:96:
/usr/include/unicode/umachine.h:347:13: error: 'char16_t' does not name a type; did you mean 'charset'?
     typedef char16_t UChar;
             ^~~~~~~~
             charset
In file included from /usr/include/unicode/utypes.h:39:0,
                 from /usr/include/unicode/ucnv_err.h:88,
                 from /usr/include/unicode/ucnv.h:52,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:34,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/intl_classes.h:35,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/TextType.cpp:96:
/usr/include/unicode/uversion.h:167:55: error: 'UChar' does not name a type; did you mean 'UChar32'?
 u_versionFromUString(UVersionInfo versionArray, const UChar *versionString);
                                                       ^~~~~
                                                       UChar32
In file included from /usr/include/unicode/ucnv.h:52:0,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:34,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/intl_classes.h:35,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/TextType.cpp:96:
/usr/include/unicode/ucnv_err.h:198:11: error: 'UChar' does not name a type; did you mean 'UChar32'?
     const UChar *source; /**< Pointer to the source source buffer. @stable ICU 2.0 */
           ^~~~~
           UChar32
/usr/include/unicode/ucnv_err.h:199:11: error: 'UChar' does not name a type; did you mean 'UChar32'?
     const UChar *sourceLimit; /**< Pointer to the limit (end + 1) of source buffer. @stable ICU 2.0 */
           ^~~~~
           UChar32
/usr/include/unicode/ucnv_err.h:216:5: error: 'UChar' does not name a type; did you mean 'UChar32'?
     UChar *target; /**< Pointer to the target buffer. @stable ICU 2.0 */
     ^~~~~
     UChar32
/usr/include/unicode/ucnv_err.h:217:11: error: 'UChar' does not name a type; did you mean 'UChar32'?
     const UChar *targetLimit; /**< Pointer to the limit (end + 1) of target buffer. @stable ICU 2.0 */
           ^~~~~
           UChar32
/usr/include/unicode/ucnv_err.h:239:25: error: 'UChar' does not name a type; did you mean 'UChar32'?
                   const UChar* codeUnits,
                         ^~~~~
                         UChar32
/usr/include/unicode/ucnv_err.h:290:25: error: 'UChar' does not name a type; did you mean 'UChar32'?
                   const UChar* codeUnits,
                         ^~~~~
                         UChar32
/usr/include/unicode/ucnv_err.h:320:25: error: 'UChar' does not name a type; did you mean 'UChar32'?
                   const UChar* codeUnits,
                         ^~~~~
                         UChar32
/usr/include/unicode/ucnv_err.h:376:25: error: 'UChar' does not name a type; did you mean 'UChar32'?
                   const UChar* codeUnits,
                         ^~~~~
                         UChar32
In file included from /usr/include/unicode/uenum.h:23:0,
                 from /usr/include/unicode/ucnv.h:53,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:34,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/intl_classes.h:35,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/TextType.cpp:96:
/usr/include/unicode/localpointer.h:221:34: error: expected ',' or '...' before '&&' token
     LocalPointer(LocalPointer<T> &&src) U_NOEXCEPT : LocalPointerBase<T>(src.ptr) {
                                  ^~
/usr/include/unicode/localpointer.h:221:39: error: invalid constructor; you probably meant 'icu::LocalPointer<T> (const icu::LocalPointer<T>&)'
     LocalPointer(LocalPointer<T> &&src) U_NOEXCEPT : LocalPointerBase<T>(src.ptr) {
                                       ^
/usr/include/unicode/localpointer.h:238:48: error: expected ',' or '...' before '&&' token
     LocalPointer<T> &operator=(LocalPointer<T> &&src) U_NOEXCEPT {
                                                ^~
/usr/include/unicode/localpointer.h: In member function 'icu::LocalPointer<T>& icu::LocalPointer<T>::operator=(icu::LocalPointer<T>)':
/usr/include/unicode/localpointer.h:239:25: error: 'src' was not declared in this scope
         return moveFrom(src);
                         ^~~
/usr/include/unicode/localpointer.h: At global scope:
/usr/include/unicode/localpointer.h:366:30: error: expected ',' or '...' before '&&' token
     LocalArray(LocalArray<T> &&src) U_NOEXCEPT : LocalPointerBase<T>(src.ptr) {
                              ^~
/usr/include/unicode/localpointer.h:366:35: error: invalid constructor; you probably meant 'icu::LocalArray<T> (const icu::LocalArray<T>&)'
     LocalArray(LocalArray<T> &&src) U_NOEXCEPT : LocalPointerBase<T>(src.ptr) {
                                   ^
/usr/include/unicode/localpointer.h:383:44: error: expected ',' or '...' before '&&' token
     LocalArray<T> &operator=(LocalArray<T> &&src) U_NOEXCEPT {
                                            ^~
/usr/include/unicode/localpointer.h: In member function 'icu::LocalArray<T>& icu::LocalArray<T>::operator=(icu::LocalArray<T>)':
/usr/include/unicode/localpointer.h:384:25: error: 'src' was not declared in this scope
         return moveFrom(src);
                         ^~~
/usr/include/unicode/uenum.h: At global scope:
/usr/include/unicode/uenum.h:68:1: error: expected ',' or '...' before '&&' token
 U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, uenum_close);
 ^
/usr/include/unicode/uenum.h:68:1: error: invalid constructor; you probably meant 'icu::LocalUEnumerationPointer (const icu::LocalUEnumerationPointer&)'
 U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, uenum_close);
 ^
/usr/include/unicode/uenum.h:68:1: error: expected ',' or '...' before '&&' token
 U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, uenum_close);
 ^
/usr/include/unicode/uenum.h: In member function 'icu::LocalUEnumerationPointer& icu::LocalUEnumerationPointer::operator=(icu::LocalUEnumerationPointer)':
/usr/include/unicode/uenum.h:68:1: error: 'src' was not declared in this scope
 U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, uenum_close);
 ^
In file included from /usr/include/unicode/ucnv.h:53:0,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:34,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/intl_classes.h:35,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/TextType.cpp:96:
/usr/include/unicode/uenum.h: At global scope:
/usr/include/unicode/uenum.h:112:16: error: 'UChar' does not name a type; did you mean 'UChar32'?
 U_STABLE const UChar* U_EXPORT2
                ^~~~~
                UChar32
In file included from /usr/include/unicode/ucnv.h:53:0,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:34,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/intl_classes.h:35,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/TextType.cpp:96:
/usr/include/unicode/uenum.h:190:41: error: 'UChar' does not name a type; did you mean 'UChar32'?
 uenum_openUCharStringsEnumeration(const UChar* const strings[], int32_t count,
                                         ^~~~~
                                         UChar32
In file included from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:34:0,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/intl_classes.h:35,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/TextType.cpp:96:
/usr/include/unicode/ucnv.h:226:27: error: 'UChar' does not name a type; did you mean 'UChar32'?
                     const UChar* codeUnits,
                           ^~~~~
                           UChar32
/usr/include/unicode/ucnv.h:397:18: error: 'UChar' does not name a type; did you mean 'UChar32'?
 ucnv_openU(const UChar *name,
                  ^~~~~
                  UChar32
In file included from /usr/include/unicode/uenum.h:23:0,
                 from /usr/include/unicode/ucnv.h:53,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:34,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/intl_classes.h:35,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/TextType.cpp:96:
/usr/include/unicode/ucnv.h:586:1: error: expected ',' or '...' before '&&' token
 U_DEFINE_LOCAL_OPEN_POINTER(LocalUConverterPointer, UConverter, ucnv_close);
 ^
/usr/include/unicode/ucnv.h:586:1: error: invalid constructor; you probably meant 'icu::LocalUConverterPointer (const icu::LocalUConverterPointer&)'
 U_DEFINE_LOCAL_OPEN_POINTER(LocalUConverterPointer, UConverter, ucnv_close);
 ^
/usr/include/unicode/ucnv.h:586:1: error: expected ',' or '...' before '&&' token
 U_DEFINE_LOCAL_OPEN_POINTER(LocalUConverterPointer, UConverter, ucnv_close);
 ^
/usr/include/unicode/ucnv.h: In member function 'icu::LocalUConverterPointer& icu::LocalUConverterPointer::operator=(icu::LocalUConverterPointer)':
/usr/include/unicode/ucnv.h:586:1: error: 'src' was not declared in this scope
 U_DEFINE_LOCAL_OPEN_POINTER(LocalUConverterPointer, UConverter, ucnv_close);
 ^
In file included from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:34:0,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/intl_classes.h:35,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/TextType.cpp:96:
/usr/include/unicode/ucnv.h: At global scope:
/usr/include/unicode/ucnv.h:669:27: error: 'UChar' does not name a type; did you mean 'UChar32'?
                     const UChar *s,
                           ^~~~~
                           UChar32
/usr/include/unicode/ucnv.h:707:23: error: 'UChar' has not been declared
                       UChar *errUChars,
                       ^~~~~
/usr/include/unicode/ucnv.h:846:21: error: 'UChar' has not been declared
                     UChar *displayName,
                     ^~~~~
/usr/include/unicode/ucnv.h:1147:25: error: 'UChar' does not name a type; did you mean 'UChar32'?
                   const UChar ** source,
                         ^~~~~
                         UChar32
/usr/include/unicode/ucnv.h:1148:25: error: 'UChar' does not name a type; did you mean 'UChar32'?
                   const UChar * sourceLimit,
                         ^~~~~
                         UChar32
/usr/include/unicode/ucnv.h:1214:16: error: 'UChar' has not been declared
                UChar **target,
                ^~~~~
/usr/include/unicode/ucnv.h:1215:22: error: 'UChar' does not name a type; did you mean 'UChar32'?
                const UChar *targetLimit,
                      ^~~~~
                      UChar32
/usr/include/unicode/ucnv.h:1252:23: error: 'UChar' does not name a type; did you mean 'UChar32'?
                 const UChar *src, int32_t srcLength,
                       ^~~~~
                       UChar32
/usr/include/unicode/ucnv.h:1283:15: error: 'UChar' has not been declared
               UChar *dest, int32_t destCapacity,
               ^~~~~
/usr/include/unicode/ucnv.h:1505:16: error: 'UChar' has not been declared
                UChar *pivotStart, UChar **pivotSource,
                ^~~~~
/usr/include/unicode/ucnv.h:1505:35: error: 'UChar' has not been declared
                UChar *pivotStart, UChar **pivotSource,
                                   ^~~~~
/usr/include/unicode/ucnv.h:1506:16: error: 'UChar' has not been declared
                UChar **pivotTarget, const UChar *pivotLimit,
                ^~~~~
/usr/include/unicode/ucnv.h:1506:43: error: 'UChar' does not name a type; did you mean 'UChar32'?
                UChar **pivotTarget, const UChar *pivotLimit,
                                           ^~~~~
                                           UChar32
/usr/include/unicode/ucnv.h:1916:46: error: 'UChar' has not been declared
 ucnv_fixFileSeparator(const UConverter *cnv, UChar *source, int32_t sourceLen);
                                              ^~~~~
In file included from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/intl_classes.h:35:0,
                 from /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/TextType.cpp:96:
/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:54:20: error: 'UChar' does not name a type; did you mean 'UChar32'?
              const UChar *src, int32_t srcLength,
                    ^~~~~
                    UChar32
/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:59:44: error: 'UChar' does not name a type; did you mean 'UChar32'?
   int32_t (U_EXPORT2* u_strCompare) (const UChar* s1, int32_t length1,
                                            ^~~~~
                                            UChar32
/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:60:20: error: 'UChar' does not name a type; did you mean 'UChar32'?
              const UChar* s2, int32_t length2, UBool codePointOrder);
                    ^~~~~
                    UChar32
/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:61:45: error: 'UChar' does not name a type; did you mean 'UChar32'?
   int32_t (U_EXPORT2* u_countChar32) (const UChar* s, int32_t length);
                                             ^~~~~
                                             UChar32
/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:68:23: error: 'UChar' does not name a type; did you mean 'UChar32'?
                 const UChar* codeUnits,
                       ^~~~~
                       UChar32
/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:100:23: error: 'UChar' does not name a type; did you mean 'UChar32'?
                 const UChar ** source,
                       ^~~~~
                       UChar32
/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:101:23: error: 'UChar' does not name a type; did you mean 'UChar32'?
                 const UChar * sourceLimit,
                       ^~~~~
                       UChar32
/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:107:17: error: 'UChar' has not been declared
                 UChar **target,
                 ^~~~~
/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/src/common/../jrd/../common/unicode_util.h:108:23: error: 'UChar' does not name a type; did you mean 'UChar32'?
                 const UChar *targetLimit,
                       ^~~~~
                       UChar32
make[3]: *** [make.rules:102: /var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/temp/Release/common/TextType.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/gen'
make[2]: *** [Makefile:178: master_process] Error 2
make[2]: Leaving directory '/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/gen'
make[1]: *** [Makefile:66: firebird] Error 2
make[1]: Leaving directory '/var/tmp/portage/dev-db/firebird-3.0.3.32900.0/work/Firebird-3.0.3.32900-0/gen'
make: *** [Makefile:6: firebird] Error 2
 * ERROR: dev-db/firebird-3.0.3.32900.0::linuxunderground-overlay failed (compile phase):
 * emake failed


 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Adriano dos Santos Fernandes added a comment - 07/May/18 10:06 PM
Build works for me with Ubuntu 18.04 which has icu 60.

Michal Kubeček added a comment - 07/May/18 11:50 PM
Should be fixed by commit a4cb621bf55e ("Make it build with icu60"). It's not in 3.0.3 but it's in B3_0_Release branch so that it's going to be in 3.0.4.

Alexander Peshkov added a comment - 10/May/18 02:12 PM
Already fixed on github