Bug 222269 - lang/v8-devel: fails to build with ICU 59.1
Summary: lang/v8-devel: fails to build with ICU 59.1
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jan Beich
URL:
Keywords: needs-patch
Depends on:
Blocks: 218788
  Show dependency treegraph
 
Reported: 2017-09-12 19:48 UTC by Jan Beich
Modified: 2017-09-14 21:47 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (sunpoet)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer freebsd_triage 2017-09-12 19:48:18 UTC
In file included from ../src/i18n.cc:8:
In file included from /usr/local/include/unicode/brkiter.h:47:
In file included from /usr/local/include/unicode/unistr.h:33:
/usr/local/include/unicode/char16ptr.h:90:19: error: deleted function definitions are a C++11 extension [-Werror,-Wc++11-extensions]
    Char16Ptr() = delete;
                  ^
/usr/local/include/unicode/char16ptr.h:198:24: error: deleted function definitions are a C++11 extension [-Werror,-Wc++11-extensions]
    ConstChar16Ptr() = delete;
                       ^
  CXX(target) /wrkdirs/usr/ports/lang/v8-devel/work/v8-3.27.7/out/native/obj.target/v8_base/src/incremental-marking.o
../src/i18n.cc:160:32: error: pasting formed 'u"Etc/GMT"', an invalid preprocessing token
    if (canonical_time_zone == UNICODE_STRING_SIMPLE("Etc/GMT")) {
                               ^
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:82: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                                 ^
../src/i18n.cc:160:32: error: use of undeclared identifier 'u'
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                               ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'u'
../src/i18n.cc:257:18: error: pasting formed 'u"currency"', an invalid preprocessing token
    if (style == UNICODE_STRING_SIMPLE("currency")) {
                 ^
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:82: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                                 ^
../src/i18n.cc:257:18: error: use of undeclared identifier 'u'
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                               ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'u'
../src/i18n.cc:273:22: error: pasting formed 'u"code"', an invalid preprocessing token
      if (display == UNICODE_STRING_SIMPLE("code")) {
                     ^
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:82: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                                 ^
../src/i18n.cc:273:22: error: use of undeclared identifier 'u'
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                               ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'u'
../src/i18n.cc:275:29: error: pasting formed 'u"name"', an invalid preprocessing token
      } else if (display == UNICODE_STRING_SIMPLE("name")) {
                            ^
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:82: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                                 ^
../src/i18n.cc:275:29: error: use of undeclared identifier 'u'
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                               ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'u'
../src/i18n.cc:284:25: error: pasting formed 'u"percent"', an invalid preprocessing token
    } else if (style == UNICODE_STRING_SIMPLE("percent")) {
                        ^
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:82: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                                 ^
../src/i18n.cc:284:25: error: use of undeclared identifier 'u'
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                               ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'u'
../src/i18n.cc:509:23: error: pasting formed 'u"upper"', an invalid preprocessing token
    if (case_first == UNICODE_STRING_SIMPLE("upper")) {
                      ^
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:82: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                                 ^
../src/i18n.cc:509:23: error: use of undeclared identifier 'u'
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                               ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'u'
../src/i18n.cc:511:30: error: pasting formed 'u"lower"', an invalid preprocessing token
    } else if (case_first == UNICODE_STRING_SIMPLE("lower")) {
                             ^
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:82: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                                 ^
  CXX(target) /wrkdirs/usr/ports/lang/v8-devel/work/v8-3.27.7/out/native/obj.target/v8_base/src/interface.o
../src/i18n.cc:511:30: error: use of undeclared identifier 'u'
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                               ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'u'
../src/i18n.cc:521:24: error: pasting formed 'u"base"', an invalid preprocessing token
    if (sensitivity == UNICODE_STRING_SIMPLE("base")) {
                       ^
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:82: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                                 ^
../src/i18n.cc:521:24: error: use of undeclared identifier 'u'
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                               ^
/usr/local/include/unicode/unistr.h:125:80: note: expanded from macro 'u'
../src/i18n.cc:523:31: error: pasting formed 'u"accent"', an invalid preprocessing token
    } else if (sensitivity == UNICODE_STRING_SIMPLE("accent")) {
                              ^
/usr/local/include/unicode/unistr.h:141:35: note: expanded from macro 'UNICODE_STRING_SIMPLE'
#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)
                                  ^
/usr/local/include/unicode/unistr.h:125:82: note: expanded from macro 'UNICODE_STRING'
# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
                                                                                 ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

build log: http://sprunge.us/geSj
Comment 1 Jan Beich freebsd_committer freebsd_triage 2017-09-12 20:23:01 UTC
Either drop -Werror, pass -Wno-error=c++11-extensions (Clang-only) or switch to USES=compiler:c++11-lib + USE_CXXSTD=gnu++11.
Comment 2 Jan Beich freebsd_committer freebsd_triage 2017-09-12 20:26:35 UTC
Or add USES=localbase for -isystem to hide headers under /usr/local/include from -Werror.
Comment 3 Jan Beich freebsd_committer freebsd_triage 2017-09-14 21:46:11 UTC
Fixed by https://reviews.freebsd.org/differential/changeset/?ref=317293 and the following commit.
Comment 4 commit-hook freebsd_committer freebsd_triage 2017-09-14 21:47:07 UTC
A commit references this bug:

Author: jbeich
Date: Thu Sep 14 21:46:30 UTC 2017
New revision: 449857
URL: https://svnweb.freebsd.org/changeset/ports/449857

Log:
  lang/v8-devel: unbreak with ICU >= 59

  In file included from ../src/i18n.cc:8:
  In file included from /usr/local/include/unicode/brkiter.h:47:
  In file included from /usr/local/include/unicode/unistr.h:33:
  /usr/local/include/unicode/char16ptr.h:90:19: error: deleted function definitions are a C++11 extension [-Werror,-Wc++11-extensions]
      Char16Ptr() = delete;
                    ^
  /usr/local/include/unicode/char16ptr.h:198:24: error: deleted function definitions are a C++11 extension [-Werror,-Wc++11-extensions]
      ConstChar16Ptr() = delete;
                         ^
  ../src/runtime.cc:14238:3: error: no member named 'Normalizer' in namespace 'icu'; did you mean 'UNormalizer2'?
    icu::Normalizer::normalize(u_value, normalizationForms[form_id], 0,
    ^~~~~~~~~~~~~~~
    UNormalizer2
  /usr/local/include/unicode/unorm2.h:119:29: note: 'UNormalizer2' declared here
  typedef struct UNormalizer2 UNormalizer2;  /**< C typedef for struct UNormalizer2. @stable ICU 4.4 */
                              ^
  ../src/runtime.cc:14238:8: error: incomplete type 'UNormalizer2' named in nested name specifier
    icu::Normalizer::normalize(u_value, normalizationForms[form_id], 0,
    ~~~~~^~~~~~~~~~~~
  /usr/local/include/unicode/unorm2.h:118:8: note: forward declaration of 'UNormalizer2'
  struct UNormalizer2;
         ^

  PR:		222269

Changes:
  head/lang/v8-devel/Makefile
  head/lang/v8-devel/files/patch-src_runtime.cc