Closed Bug 968798 Opened 6 years ago Closed 6 years ago

ICU may pick up system headers when building internal copy

Categories

(Core :: JavaScript: Internationalization API, defect)

x86_64
FreeBSD
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla30

People

(Reporter: jbeich, Assigned: jbeich)

Details

Attachments

(1 file, 2 obsolete files)

Attached patch prepend (obsolete) — Splinter Review
Default CPPFLAGS on FreeBSD often contain -I/usr/local/include due to implied --x-includes=/usr/local/include. The include path creeps in ICU configure and breaks the build. To fix one could prepend MOZ_ICU_CFLAGS or teach autoconf/pkg-config about -isystem.

clang++ -DU_USING_ICU_NAMESPACE=0 -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -DUCONFIG_NO_LEGACY_CONVERSION -DUCONFIG_NO_TRANSLITERATION -DUCONFIG_NO_REGULAR_EXPRESSIONS -DUCONFIG_NO_BREAK_ITERATION -Qunused-arguments   -I/usr/local/include -D_REENTRANT  -DU_HAVE_ELF_H=1 -DU_HAVE_ATOMIC=1 -DU_HAVE_TIMEZONE=0  -Iintl/icu/source/common   "-DDEFAULT_ICU_PLUGINS=\"/usr/local/lib/icu\" " -DU_ATTRIBUTE_DEPRECATED= -DU_COMMON_IMPLEMENTATION  -fPIC -Qunused-arguments -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Werror=int-to-pointer-cast -Wtype-limits -Wempty-body -Werror=conversion-null -Wsign-compare -Wno-invalid-offsetof -Wno-c++0x-extensions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-mismatched-tags -frtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pipe -g -UDEBUG -DNDEBUG -O -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long    -c -DPIC -fPIC -o stringtriebuilder.o intl/icu/source/common/stringtriebuilder.cpp
intl/icu/source/common/stringtriebuilder.cpp:243:18: error: allocating
      an object of abstract class type 'icu_50::StringTrieBuilder::BranchHeadNode'
        node=new BranchHeadNode(length, subNode);
                 ^
/usr/local/include/unicode/uobject.h:243:22: note: unimplemented pure virtual method
      'getDynamicClassID' in 'BranchHeadNode'
    virtual UClassID getDynamicClassID() const = 0;
                     ^
intl/icu/source/common/stringtriebuilder.cpp:249:22: error: allocating
      an object of abstract class type
      'icu_50::StringTrieBuilder::IntermediateValueNode'
            node=new IntermediateValueNode(value, registerNode(node, errorCode));
                     ^
/usr/local/include/unicode/uobject.h:243:22: note: unimplemented pure virtual method
      'getDynamicClassID' in 'IntermediateValueNode'
    virtual UClassID getDynamicClassID() const = 0;
                     ^
intl/icu/source/common/stringtriebuilder.cpp:281:34: error: allocating
      an object of abstract class type 'icu_50::StringTrieBuilder::ListBranchNode'
    ListBranchNode *listNode=new ListBranchNode();
                                 ^
/usr/local/include/unicode/uobject.h:243:22: note: unimplemented pure virtual method
      'getDynamicClassID' in 'ListBranchNode'
    virtual UClassID getDynamicClassID() const = 0;
                     ^
intl/icu/source/common/stringtriebuilder.cpp:311:17: error: allocating
      an object of abstract class type 'icu_50::StringTrieBuilder::SplitBranchNode'
            new SplitBranchNode(middleUnits[ltLength], lessThan[ltLength], n...
                ^
/usr/local/include/unicode/uobject.h:243:22: note: unimplemented pure virtual method
      'getDynamicClassID' in 'SplitBranchNode'
    virtual UClassID getDynamicClassID() const = 0;
                     ^
intl/icu/source/common/stringtriebuilder.cpp:350:20: error: variable
      type 'icu_50::StringTrieBuilder::FinalValueNode' is an abstract class
    FinalValueNode key(value);
                   ^
/usr/local/include/unicode/uobject.h:243:22: note: unimplemented pure virtual method
      'getDynamicClassID' in 'FinalValueNode'
    virtual UClassID getDynamicClassID() const = 0;
                     ^
intl/icu/source/common/stringtriebuilder.cpp:355:23: error: allocating
      an object of abstract class type 'icu_50::StringTrieBuilder::FinalValueNode'
    Node *newNode=new FinalValueNode(value);
                      ^
6 errors generated.

The issue surfaced after bug 924839 due to devel/icu port still stuck at 50.1.2.
Attachment #8371458 - Flags: review?(mh+mozilla)
Comment on attachment 8371458 [details] [diff] [review]
prepend

Review of attachment 8371458 [details] [diff] [review]:
-----------------------------------------------------------------

Please send to try to check it doesn't break windows.
Attachment #8371458 - Flags: review?(mh+mozilla) → review+
I don't have Try access. Landry, can you do?
Hmm, I need to rebase first after bug 969164.
Component: JavaScript Engine → JavaScript: Internationalization API
(In reply to Jan Beich from comment #2)
> I don't have Try access. Landry, can you do?

Yes, if you have something that applies i'll push it to try
Attached patch prepend (rebased) (obsolete) — Splinter Review
Please do build-only.
Attachment #8371458 - Attachment is obsolete: true
Attached patch prepend, v2Splinter Review
It seems the breakage is due to |-I/c/...| vs. |-Ic:/...| which comes from |$(topsrcdir)| (make) vs. |$_topsrcdir| (sh) not being the same. Requesting review again in case you don't like |$icudir| there.

Landry, this needs a Try run again.
Attachment #8374510 - Attachment is obsolete: true
Attachment #8376664 - Flags: review?(mh+mozilla)
Please, re-Try after rebasing to include bug 939276 backout in
https://hg.mozilla.org/integration/mozilla-inbound/rev/91dea745dd4a
https://tbpl.mozilla.org/?tree=Try&rev=003f7d55b2f1

Jan, you should ask for L1 to get Try access..
Attachment #8376664 - Flags: review?(mh+mozilla) → review+
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/1298da719e59
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla30
You need to log in before you can comment on or make changes to this bug.