@All
Some news:
After fixing of some usual moments, it runs, generate fontconfig, show window and happy crashes on sqlite3 functions. In end it turns that my pure recompiled sqlite3.8.2 as posix based pure like this:
./configure --build=i686-pc-cygwin --host=ppc-amigaos --disable-shared --enable-static --disable-dynamic-extensions CFLAGS='-DSQLITE_OMIT_WAL=1 -Os'
didn't works. Once i link with HansJoerg's sqlite 3.7.5 i have no crashes (or even if i link with my old sqlite3).
Sadly i do not remember now what library (or odyssey itself?) ask for new version of sqlite3, so i just currently link with Hans one, and at moment we can skipthat till more major problems not sorted.
@Fab
are you make any specific changes in sqlite3 to make it works ?
@All
So, after sqlite crash fixed, i have working main window. But, here is another problem which i think related to my current os4 compiler and all that tasty changes in terms of adding "nullptr".
I.e. some files before just do not compiles on my gcc, and bring all sort of erros about "nullptr".
I.e. file Source/Webcore/accecebility/AccessebilityNodeObject.cpp
Do not compiles before with such errors:
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp: In member function 'WebCore::HTMLLabelElement* WebCore::AccessibilityNodeObject::labelForElement(WebCore::Element*) const':
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1105: error: no match for ternary 'operator?:' in 'enclosingLabel.WebCore::ElementAncestorIterator<WebCore::HTMLLabelElement>::<anonymous>.WebCore::ElementIterator<ElementType>::operator!= [with ElementType = WebCore::HTMLLabelElement](((const WebCore::ElementIterator<WebCore::HTMLLabelElement>&)((const WebCore::ElementIterator<WebCore::HTMLLabelElement>*)(& labelAncestors.WebCore::ElementAncestorIteratorAdapter<ElementType>::end [with ElementType = WebCore::HTMLLabelElement]().WebCore::ElementAncestorIterator<WebCore::HTMLLabelElement>::<anonymous>)))) ? (WebCore::HTMLLabelElement*)enclosingLabel.WebCore::ElementAncestorIterator<WebCore::HTMLLabelElement>::<anonymous>.WebCore::ElementIterator<ElementType>::operator* [with ElementType = WebCore::HTMLLabelElement]() : nullptr'
In file included from /usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:363,
from /usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:37:
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h: In constructor 'WebCore::ElementAncestorIterator<ElementType>::ElementAncestorIterator(ElementType*) [with ElementType = WebCore::Element]':
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h:147: instantiated from 'WebCore::ElementAncestorIterator<ElementType> WebCore::ElementAncestorIteratorAdapter<ElementType>::begin() [with ElementType = WebCore::Element]'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:986: instantiated from here
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h:97: error: no matching function for call to 'WebCore::ElementIterator<WebCore::Element>::ElementIterator(std::nullptr_t&, WebCore::Element*&)'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:105: note: candidates are: WebCore::ElementIterator<ElementType>::ElementIterator(const WebCore::ContainerNode*, ElementType*) [with ElementType = WebCore::Element]
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:94: note: WebCore::ElementIterator<ElementType>::ElementIterator(const WebCore::ContainerNode*) [with ElementType = WebCore::Element]
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:38: note: WebCore::ElementIterator<WebCore::Element>::ElementIterator(const WebCore::ElementIterator<WebCore::Element>&)
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h: In constructor 'WebCore::ElementAncestorIterator<ElementType>::ElementAncestorIterator() [with ElementType = WebCore::Element]':
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h:153: instantiated from 'WebCore::ElementAncestorIterator<ElementType> WebCore::ElementAncestorIteratorAdapter<ElementType>::end() [with ElementType = WebCore::Element]'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:986: instantiated from here
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h:87: error: no matching function for call to 'WebCore::ElementIterator<WebCore::Element>::ElementIterator(std::nullptr_t&)'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:105: note: candidates are: WebCore::ElementIterator<ElementType>::ElementIterator(const WebCore::ContainerNode*, ElementType*) [with ElementType = WebCore::Element]
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:94: note: WebCore::ElementIterator<ElementType>::ElementIterator(const WebCore::ContainerNode*) [with ElementType = WebCore::Element]
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:38: note: WebCore::ElementIterator<WebCore::Element>::ElementIterator(const WebCore::ElementIterator<WebCore::Element>&)
In file included from /usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:37:
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h: In function 'ElementTypeWithConst* WebCore::findElementAncestorOfType(const WebCore::Element&) [with ElementTypeWithConst = WebCore::HTMLLabelElement]':
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h:213: instantiated from 'WebCore::ElementAncestorIteratorAdapter<ElementType> WebCore::ancestorsOfType(WebCore::Element*) [with ElementType = WebCore::HTMLLabelElement]'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1103: instantiated from here
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:184: error: cannot convert 'std::nullptr_t' to 'WebCore::HTMLLabelElement*' in return
In file included from /usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:363,
from /usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:37:
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h: In constructor 'WebCore::ElementAncestorIterator<ElementType>::ElementAncestorIterator(ElementType*) [with ElementType = WebCore::HTMLLabelElement]':
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h:147: instantiated from 'WebCore::ElementAncestorIterator<ElementType> WebCore::ElementAncestorIteratorAdapter<ElementType>::begin() [with ElementType = WebCore::HTMLLabelElement]'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1104: instantiated from here
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h:97: error: no matching function for call to 'WebCore::ElementIterator<WebCore::HTMLLabelElement>::ElementIterator(std::nullptr_t&, WebCore::HTMLLabelElement*&)'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:105: note: candidates are: WebCore::ElementIterator<ElementType>::ElementIterator(const WebCore::ContainerNode*, ElementType*) [with ElementType = WebCore::HTMLLabelElement]
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:94: note: WebCore::ElementIterator<ElementType>::ElementIterator(const WebCore::ContainerNode*) [with ElementType = WebCore::HTMLLabelElement]
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:38: note: WebCore::ElementIterator<WebCore::HTMLLabelElement>::ElementIterator(const WebCore::ElementIterator<WebCore::HTMLLabelElement>&)
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h: In constructor 'WebCore::ElementAncestorIterator<ElementType>::ElementAncestorIterator() [with ElementType = WebCore::HTMLLabelElement]':
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h:153: instantiated from 'WebCore::ElementAncestorIterator<ElementType> WebCore::ElementAncestorIteratorAdapter<ElementType>::end() [with ElementType = WebCore::HTMLLabelElement]'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1105: instantiated from here
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h:87: error: no matching function for call to 'WebCore::ElementIterator<WebCore::HTMLLabelElement>::ElementIterator(std::nullptr_t&)'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:105: note: candidates are: WebCore::ElementIterator<ElementType>::ElementIterator(const WebCore::ContainerNode*, ElementType*) [with ElementType = WebCore::HTMLLabelElement]
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:94: note: WebCore::ElementIterator<ElementType>::ElementIterator(const WebCore::ContainerNode*) [with ElementType = WebCore::HTMLLabelElement]
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:38: note: WebCore::ElementIterator<WebCore::HTMLLabelElement>::ElementIterator(const WebCore::ElementIterator<WebCore::HTMLLabelElement>&)
In file included from /usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:37:
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h: In constructor 'WebCore::ElementIterator<ElementType>::ElementIterator(const WebCore::ContainerNode*) [with ElementType = WebCore::Element]':
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementChildIterator.h:80: instantiated from 'WebCore::ElementChildIterator<ElementType>::ElementChildIterator(const WebCore::ContainerNode*) [with ElementType = WebCore::Element]'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementChildIterator.h:133: instantiated from 'WebCore::ElementChildIterator<ElementType> WebCore::ElementChildIteratorAdapter<ElementType>::end() [with ElementType = WebCore::Element]'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:426: instantiated from here
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:99: error: cannot convert 'std::nullptr_t' to 'WebCore::Element*' in initialization
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h: In function 'ElementTypeWithConst* WebCore::findElementAncestorOfType(const WebCore::Element&) [with ElementTypeWithConst = WebCore::Element]':
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:195: instantiated from 'WebCore::ElementIterator<ElementType>& WebCore::ElementIterator<ElementType>::traverseAncestor() [with ElementType = WebCore::Element]'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementAncestorIterator.h:105: instantiated from 'WebCore::ElementAncestorIterator<ElementType>& WebCore::ElementAncestorIterator<ElementType>::operator++() [with ElementType = WebCore::Element]'
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/accessibility/AccessibilityNodeObject.cpp:986: instantiated from here
/usr/local/amiga/odyssey-r155188-1.23/Source/WebCore/dom/ElementIterator.h:184: error: cannot convert 'std::nullptr_t' to 'WebCore::Element*' in return
So i had to replace nullptr in that file on NULL, as well as do the same replaces in the ElementAncestorIterator.h and ElementIterator.h. But while that can looks logical, its still wrong when it come to c++ and all that overloading of everything (see google, it can be ok for some cases, but still can't for another, expectually for c++ and overloading).
Another error come from Source/Webcor/dom/ConainerNode.cpp, and while a bit different, still about the same nullptr, and still i had to replace it on NULL too to make it compiles (which is also can be just wrong):
Quote:
ContainerNode.cpp:671: error: cannot convert 'std::nullptr_t' to 'WebCore::Element*' in initialization
ContainerNode.cpp:671: error: cannot convert 'std::nullptr_t' to 'WebCore::Element*' in initialization
In other words, in those fils i do that changes to make it compiles on my gcc (i.e. nullptr on null).
Source/Webcore/dom/ElementAncestorIterator.h
Source/Webcore/dom/ElementIterator.h
Source/Webcore/dom/ContainerNode.cpp:
Source/Webcore/dom/element.cpp
Source/Webcore/dom/spacesplitstring.cpp
Source/Webcore/history/cachedpage.cpp
Source/WebCore/html/HTMLFieldSetElement.cpp
Source/WebCore/html/HTMLFrameSetElement.cpp
Source/WebCore/html/HTMLLegendElement.cpp
Source/WebCore/style/StyleResolveTree.cpp
I use gcc 4.4.3, while fab use 4.4.5. I do not know why i have those errors, i assume because of gcc differences, dunno.. Strange thing, is that this "nullptr" used in all other parts of webcore, and dindn't bring any errors or warning. Webkit even have nullptr.h and nullptr.cpp files, where there is special defines of nullptr for compiler which do not have it, and while it works for all parts, as i say for those files which i quote it didn't , and to make it compiles i had to replace it like this. Maybe 4.4.5 gcc deal with it normally, dunno.
Going deep inside of c++ webkit code are of course mess, and i do not know a shit there. So only idea i have for now, its build latest version from adtools (is it 4.4.5 as well ?) and try to build it.
I of course think about chaing those nullptr on something like (void *)0 , so to make it "like nullptr" or making some things like done in the google by ppls who have same kind of problems (i.e. make template/class/etc for it), but just do not know if that right to make those hacks-shmaks, while all should just compiles as it.
Visually now, its all crashes with null-pointer once i start to works with pages (db-click on some forms, etc). Even can reproduce it in "About:" page, just by clicking on credits part : click on unfold them fine, then clicking to fold them back : crash is coming.
Crash looks like this:
Crash log for task "owb"
Generated by GrimReaper 53.16
Crash occured in module owb at address 0x7F860CB0
Type of crash: DSI (Data Storage Interrupt) exception
Register dump:
GPR (General Purpose Registers):
0: 00000000 64D5EB70 DEADBEEF 00000000 00000000 00000001 64D5EE3C 00000001
8: 00000000 64F8C2E0 6455D13C 64D5EC00 00000798 64F8A740 00000000 00000000
16: 00000000 00000226 00000156 00000000 64D5EC8C 64D5EDA8 64D5ECB4 64D5EE3C
24: 64D5EC9C 64D5EC58 64D5ECF4 64D5EC28 00000000 64D5EC2C 64E9774C 64D5EB70
FPR (Floating Point Registers, NaN = Not a Number):
0: nan 0 0 0
4: 0 0 1 -374
8: -524 550 1 551
12: 4.5036e+15 0 0 0
16: 0 0 0 0
20: 0 0 0 0
24: 0 0 0 0
28: 0 0 0 0
FPSCR (Floating Point Status and Control Register): 0xA2002100
SPRs (Special Purpose Registers):
Machine State (msr) : 0x0200F030
Condition (cr) : 0x85027002
Instruction Pointer (ip) : 0x7F860CB0
Xtended Exception (xer) : 0x0000FFFF
Count (ctr) : 0x63641710
Link (lr) : 0x6371FDA8
DSI Status (dsisr) : 0x636416E8
Data Address (dar) : 0x6360796C
Symbol info:
Instruction pointer 0x7F860CB0 belongs to module "owb" (PowerPC)
Symbol: _ZN6icu_4922RuleBasedBreakIterator9followingEi + 0x44 in section 1 offset 0x023AEC8C
Stack trace:
_ZN6icu_4922RuleBasedBreakIterator9followingEi()+0x44 (section 1 @ 0x23AEC8C)
ubrk_following_49()+0x38 (section 1 @ 0x23A863C)
_ZN7WebCore18textBreakFollowingEPNS_17TextBreakIteratorEi()+0x2c (section 1 @ 0xD76290)
_ZN7WebCore16findWordBoundaryEPKtiiPiS2_()+0x5c (section 1 @ 0xD754E4)
_ZN7WebCoreL17startWordBoundaryEPKtjjNS_33BoundarySearchContextAvailabilityERb()+0x78 (section 1 @ 0x3C8BD4)
_ZN7WebCoreL16previousBoundaryERKNS_15VisiblePositionEPFjPKtjjNS_33BoundarySearchContextAvailabilityERbE()+0x780 (section 1 @ 0x3D23E8)
_ZN7WebCore11startOfWordERKNS_15VisiblePositionENS_9EWordSideE()+0x148 (section 1 @ 0x3D2FFC)
_ZN7WebCore16VisibleSelection52setStartAndEndFromBaseAndExtentRespectingGranularityENS_15TextGranularityE()+0x51c (section 1 @ 0x3C4808)
_ZN7WebCore16VisibleSelection8validateENS_15TextGranularityE()+0x4c (section 1 @ 0x3C61F8)
_ZN7WebCore16VisibleSelection22expandUsingGranularityENS_15TextGranularityE()+0x3c (section 1 @ 0x3C724C)
_ZN7WebCore12EventHandler34selectClosestWordFromHitTestResultERKNS_13HitTestResultENS_24AppendTrailingWhitespaceE()+0x2f0 (section 1 @ 0x6E2DF4)
_ZN7WebCore12EventHandler31selectClosestWordFromMouseEventERKNS_28MouseEventWithHitTestResultsE()+0x58 (section 1 @ 0x6E32D4)
_ZN7WebCore12EventHandler32handleMousePressEventDoubleClickERKNS_28MouseEventWithHitTestResultsE()+0x50 (section 1 @ 0x6E336C)
_ZN7WebCore12EventHandler21handleMousePressEventERKNS_28MouseEventWithHitTestResultsE()+0x3e4 (section 1 @ 0x6E8FD4)
_ZN7WebCore12EventHandler21handleMousePressEventERKNS_18PlatformMouseEventE()+0x840 (section 1 @ 0x6EA74C)
_ZN14WebViewPrivate17onMouseButtonDownE12IntuiMessage()+0xb8 (section 1 @ 0xE0D08)
_ZN7WebView17onMouseButtonDownE12IntuiMessage()+0x124 (section 1 @ 0xB92E4)
_ZL22handleMUIM_HandleEventP6IClassPmP16MUIP_HandleEvent()+0xaf8 (section 1 @ 0x16CF8)
_ZL8dispatchP6IClassPmP4_Msg()+0x47c (section 1 @ 0x1DADC)
CustomClassDispatcher()+0xa0 (section 1 @ 0x41B4)
native kernel module intuition.library.kmod+0x0001824c
native kernel module intuition.library.kmod+0x00018470
native kernel module intuition.library.kmod+0x0000832c
native kernel module intuition.library.kmod+0x00007fe0
SendIMsgs()+0x378 (section 1 @ 0x76900)
m_Window_Input()+0x9f4 (section 1 @ 0x7B768)
m_Application_NewInput()+0x784 (section 1 @ 0x25228)
ApplicationDispatcher()+0x544 (section 1 @ 0x28ED8)
native kernel module intuition.library.kmod+0x0001824c
native kernel module intuition.library.kmod+0x00018470
native kernel module intuition.library.kmod+0x00008300
_ZL8dispatchP6IClassPmP4_Msg()+0x164 (section 1 @ 0xF248)
CustomClassDispatcher()+0xa0 (section 1 @ 0x41B4)
native kernel module intuition.library.kmod+0x0001824c
native kernel module intuition.library.kmod+0x00018470
native kernel module intuition.library.kmod+0x00008448
native kernel module intuition.library.kmod+0x00008088
_Z9main_loopv()+0x178 (section 1 @ 0x444)
main()+0x164 (section 1 @ 0x1148)
native kernel module newlib.library.kmod+0x000020a4
native kernel module newlib.library.kmod+0x00002d54
native kernel module newlib.library.kmod+0x00002ee8
_start()+0x170 (section 1 @ 0x16C)
native kernel module dos.library.kmod+0x00024cd0
native kernel module kernel+0x0006acd0
native kernel module kernel+0x0006ad50
PPC disassembly:
7f860ca8: 801f0028 lwz r0,40(r31)
7f860cac: 7c080378 mr r8,r0
*7f860cb0: 80080160 lwz r0,352(r8)
7f860cb4: 2f800000 cmpwi cr7,r0,0
7f860cb8: 419e0164 beq- cr7,0x7F860E1C
While crash point out on icu, i still think problem is with nullptr changes, as its all about changes in the ElementItterator.h (and crashes are in the TextBreakIterator function of webcore which then crasehs on same function in ICU itself) and related files which do not compiles as it.
Besides crashlog point out on null-pointer crash as well (r8=0x000000) which can mean exactly all that changes and that there is those situations when nullptr is must, and null can't be. I fear if i will made some replacements (like (void *)0), it still will have bad side-effects because of all those overloads and c++ crappos.
Damny damn ! Any ideas suggestion for fast fix so we can check youtube ?:)