kompozer version 1:0.8~b3.dfsg.1-0.1 failed to build on amd64 with GCC-4.6/oneiric
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
kompozer (Debian) |
Fix Released
|
Unknown
|
|||
kompozer (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Oneiric |
Fix Released
|
High
|
Unassigned |
Bug Description
kompozer version 1:0.8~b3.dfsg.1-0.1 failed to build on amd64 with GCC-4.6/oneiric
Link to failed build: https:/
Details about the rebuild:
https:/
Direct link to the build log: https:/
This log snippet might be of interest, since it triggered the matcher 'Purging chroot-autobuild'.
Excerpt 76847 lines into the build log:
../../dist/
/build/
/build/
make[5]: *** [nsCSSStyleSheet.o] Error 1
make[5]: Leaving directory `/build/
make[4]: *** [libs] Error 2
make[4]: Leaving directory `/build/
make[3]: *** [tier_9] Error 2
make[3]: Leaving directory `/build/
make[2]: *** [default] Error 2
make[2]: Leaving directory `/build/
make[1]: *** [build] Error 2
make[1]: Leaving directory `/build/
make: *** [build-stamp] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
*******
Build finished at 20110423-2256
FAILED [dpkg-buildpackage died]
Purging chroot-
Related branches
Changed in kompozer (Ubuntu): | |
importance: | Undecided → High |
Changed in kompozer (Ubuntu): | |
milestone: | none → oneiric-alpha-3 |
Changed in kompozer (Ubuntu Oneiric): | |
milestone: | oneiric-alpha-3 → none |
status: | New → Confirmed |
tags: | added: universe |
Changed in kompozer (Debian): | |
status: | Unknown → New |
Changed in kompozer (Debian): | |
status: | New → Fix Released |
I don't pretend to understand the actual C++ issue here but the build log snippet
that was posted misses something that might help solve the problem, vis, the two
lines above the snippet which detail the actual error and where the compiler suggests
how to avoid it
/build/ buildd/ kompozer- 0.8~b3. dfsg.1/ mozilla/ layout/ style/nsCSSStyl eSheet. cpp: In function 'PRBool AttrMatchesValu e(const nsAttrSelector*, const nsString&)': buildd/ kompozer- 0.8~b3. dfsg.1/ mozilla/ layout/ style/nsCSSStyl eSheet. cpp:2897: 43: error: uninitialized const 'ciComparator' [-fpermissive] include/ unicharutil/ nsUnicharUtils. h:63:7: note: 'const class nsCaseInsensiti veStringCompara tor' has no user-provided default constructor
/build/
../../dist/
For reasons I won't go into here I came to build FireFox2 (yes, 2!) and have seen the same error and
then found this thread whilst looking for an answer.
The lines of relevant code in nsCSSStyleSheet.cpp are these
... Comparator defaultComparator; veStringCompara tor ciComparator; >mCaseSensitive CAST(const nsStringCompara tor&, defaultComparator) CAST(const nsStringCompara tor&, ciComparator);
const nsDefaultString
const nsCaseInsensiti
const nsStringComparator& comparator = aAttrSelector-
? NS_STATIC_
: NS_STATIC_
...
but note that there's only one place where the variable for which the declaration
is causing the error, ciComparator, is used.
Elsewhere in the firefox codebase, you don't see declarations such as the above
but you do see a "default constructor" referred to, vis:
nsCaseInsensiti veStringCompara tor()
I therefore modified nsCSSStyleSheet.cpp to just use the default constructor in place
and not declare the "intermediate" variable.
const nsDefaultString Comparator defaultComparator; >mCaseSensitive CAST(const nsStringCompara tor&, defaultComparator) CAST(const nsStringCompara tor&, nsCaseInsensiti veStringCompara tor() );
const nsStringComparator& comparator = aAttrSelector-
? NS_STATIC_
: NS_STATIC_
This at least allows nsCSSStyleSheet.cpp to compile.
I also ran the compile of that individual source file using -fpermissive and that "defeats"
the error too.
As I say, it may not be the correct/complete solution, but maybe the info will help point
someone else to it.