SGI: Development

Netsurf 3.1 - Page 2

hamei wrote: Hate to splash cold water but if you are using the gtk2 that diegel recently built, pretty sure it is gcc. The release notes seemed to indicate that, anyhow.
That's correct current gtk2 and glib are both build with gcc 4.7. Possibly I will have the time to reproduce the netsurf build today.
:Tezro: :Fuel: :Octane2: :Octane: :Onyx2: :O2+: :O2: :Indy: :Indigo: :Cube:
Delighted to see this effort, having been using NS since its early RISC OS versions - but frustrated not to have relevant skills to assist (yet - but with the time available it's going to be a long haul up the learning curve!).

Yesterday evening I did try the "quick start" instructions (including env.sh) for the framebuffer version on an X86 machine - debian/jessie - and that fell over at one or two of the libraries so not plain sailing even in mainstream CPU/OS waters. Well, perhaps not quite a mainstream CPU these days - it's a VIA C3 lacking a 686 instruction, which may or may not be critical here.
Fuel ; Indigo2 ; RiscPC Kinetic-StrongARM/448MB/RISCOS4.39 or Debian-etch; EspressoPC ViaC3/900MHz/256MB/Debian-testing; RPi B RISCOS5.21 or Raspbian-jessie; A5000/33MHz/FPA11/8MB/RISCOS3.11; A540/25MHz/FPA10/16MB/RISCOS3.11 or RISCiX1.21; R140/35MHz/4MB/RISCOS3.11 or RISCiX1.21
diegel wrote:
hamei wrote: Hate to splash cold water but if you are using the gtk2 that diegel recently built, pretty sure it is gcc. The release notes seemed to indicate that, anyhow.
That's correct current gtk2 and glib are both build with gcc 4.7.

Thanks guys! I guess I should learn to read release notes, too. Anyway, your info prevents me from chasing down a false lead so hopefully that means I can spend more time looking for the actual problem.
:Indigo2IMP: :Octane: :Indigo: :O3x0:
Sun SPARCstation 20, Blade 2500
HP C8000
If ShadeOfBlue is right and GCC code generation for MIPS is really finally fixed maybe it's time to drop MIPSPro from the nekoware tardist FAQ in favor of GCC 4.7+ (heresy heresy!).
Project:
Temporarily lost at sea...
Plan:
World domination! Or something...
There's still the problem that you can't mix C++ code generated by g++ and CC, since they use different name mangling algorithms.
vishnu wrote: If ShadeOfBlue is right and GCC code generation for MIPS is really finally fixed maybe it's time to drop MIPSPro from the nekoware tardist FAQ in favor of GCC 4.7+ (heresy heresy!).

This is GNU. It's only "finally fixed" until some random loser's commit breaks it for stupid and probably stupidly ideological reasons and then it remains broken for another year and a half until someone finally submits a patch that fixes it but breaks something else.
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"'Legacy code' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
commodorejohn wrote: This is GNU. It's only "finally fixed" until some random loser's commit breaks it for stupid and probably stupidly ideological reasons and then it remains broken for another year and a half until someone finally submits a patch that fixes it but breaks something else.

quote of the month :lol:
jpstewart wrote: hopefully that means I can spend more time looking for the actual problem.
What's it do when you try to launch it, hanging or segfaulting? Because if it's hanging strace should show you where and if it's segfaulting the debugger should do likewise (provided you compiled it with -g passed to the compiler). Hmmmm, I just checked and neither strace or gdb are in nekoware! I'm sure Prodev Workshop has a tracer but I have extreme doubt about whether it will understand crap about gcc compiled code... :cry:
Project:
Temporarily lost at sea...
Plan:
World domination! Or something...
vishnu wrote: What's it do when you try to launch it, hanging or segfaulting? Because if it's hanging strace should show you where and if it's segfaulting the debugger should do likewise (provided you compiled it with -g passed to the compiler).

It's hanging, quite a ways into the initialization process. Running netsurf with it's '-v' option logs a lot of helpful messages to the terminal. Even without '-v' GTK/GLib are dumping some harmless warnings and a couple of "critical" errors to the terminal, but much earlier than the hang. From running 'netsurf -v':

Code: Select all

(1.943253) gtk/tabs.c nsgtk_tab_switch_page_after 160: sel 0

(netsurf:7988): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GObject'

(netsurf:7988): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed
(2.062671) content/fetchers/curl.c fetch_curl_setup 382: fetch 10431eb0, url 'http://www.google.com/favicon.ico'
(2.294803) gtk/scaffolding.c nsgtk_new_scaffolding 2108: creation complete
(2.310819) gtk/tabs.c nsgtk_tab_switch_page_after 160: sel 0

(netsurf:7988): GLib-GObject-WARNING **: invalid cast from `(null)' to `GObject'

(netsurf:7988): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed
(2.312713) desktop/browser.c browser_window_navigate 1810: bw 10404b30, url about:welcome

And much later it hangs with these:

Code: Select all

(6.352875) content/content.c content_convert 283: content file:///usr/people/jps/netsurf-all-3.1.gcc/workspace/inst/share/netsurf/favicon.png (1056b060)
(6.357992) image/image_cache.c image_cache_add 479: centry 10647dd8, content 1056b060, bitmap 10400740
(6.363513) gtk/window.c gui_window_set_icon 935: Using 10400740 bitmap

However my current hypothesis is that those earlier GTK/GLib messages are the root cause. I think it's failing to properly setup the tabs and then later hanging when trying to access that tab. I've tracked that problem to what appears to be a bad pointer in netsurf/gtk/tabs.c, line 162 where NetSurf's nsgtk_tab_switch_page_after callback function calls into GLib's g_object_get_data. Whether or not that's the actual cause of the problem remains to be seen. But there's definitely something wrong with the pointers going around there, and that's today's working theory. (But I've had a lot of other false leads. :( )

vishnu wrote: Hmmmm, I just checked and neither strace or gdb are in nekoware! I'm sure Prodev Workshop has a tracer but I have extreme doubt about whether it will understand crap about gcc compiled code.

Well, there are ancient versions of both strace and gdb in SGI's freeware if I get really desperate. (There's also /usr/sbin/strace but that's not the same strace!) Prodev Workshop has been on my "must learn" list for a while, but so far I have zero experience with it.

But the real problem is that I tend to get frustrated and angry when debugging other people's code. Screaming "why doesn't it work?" isn't exactly the best debugging process, but one that I employ a lot. :evil: That, and the fact that I can only work on it during evenings and weekends are slowing things down a bit.

BTW, for anyone interested: I did manage to remove the GCC-specific flags from the Makefiles and compile NetSurf with MIPSpro. That one fails even earlier in the launch process (no window ever appears, it just prints an error message and exits). Oh well.
:Indigo2IMP: :Octane: :Indigo: :O3x0:
Sun SPARCstation 20, Blade 2500
HP C8000
The Prodev debugger is awesome, and so much prettier than the eyesore that is xxgdb. Then again for gdb there's always ddd which looks pretty dang fancy as well...
Project:
Temporarily lost at sea...
Plan:
World domination! Or something...
jpstewart wrote: compile NetSurf with MIPSpro. That one fails even earlier in the launch process (no window ever appears, it just prints an error message and exits)

i remember that it's been mentioned that some libs required by netsurf were compiled with g++?
if so that's a likely reason
i remember that it's been mentioned that some libs required by netsurf were compiled with g++?
if so that's a likely reason
If that were the case, it would already fail when linking, and not produce an executable at all.
canavan wrote:
i remember that it's been mentioned that some libs required by netsurf were compiled with g++?
if so that's a likely reason
If that were the case, it would already fail when linking, and not produce an executable at all.

sure, assuming that nothing has been "updated" after
Resurrecting this a bit. Would be nice to have a working NetSurf 3.5 with JS enabled on IRIX.
Never having tried to build anything on IRIX, I don't think im the right person to try to make it work.

All I can do is encurage someone to do it. So come on, someone try building it! ;)

NetSurf is speedy and works terribly well for what it is on my Atari Falcon 060 running FreeMiNT, would be wonderful to have it running on IRIX.
:Octane: Dual 300mhz R12k - 256mb RAM - 146GB 15k RPM HD - V6 Graphics
ISTR having endian trouble getting it working on OS X/ppc (10.4, anyway). That was 3.0, however, so maybe it's fixed.
smit happens.

:Fuel: bigred , 900MHz R16K, 4GB RAM, V12 DCD, 6.5.30
:Indy: indy , 150MHz R4400SC, 256MB RAM, XL24, 6.5.10
:Indigo2IMP: purplehaze , 175MHz R10000, Solid IMPACT
probably posted from Image bruce , Quad 2.5GHz PowerPC 970MP, 16GB RAM, Mac OS X 10.4.11
plus IBM POWER6 p520 * Apple Network Server 500 * RDI PrecisionBook * BeBox * Solbourne S3000 * Commodore 128 * many more...
Any progress made on this? Like some others here, I don't really have the knowledge required to make it work, but if anyone else has made progress I would love to know.
:Onyx: :O2000: :Fuel: :Octane: :Octane: :Octane: :O2: :O2: :Indigo2: :Indigo2: :Indy: :Indy:
and a small army of Image