Netsurf 3.1

IRIX/Nekoware development, porting and related topics.
Forum rules
Any posts concerning pirated software or offering to buy/sell/trade commercial software are subject to removal.
User avatar
foetz
Moderator
Moderator
Posts: 6483
Joined: Mon Apr 14, 2003 4:34 am
Contact:

Re: Netsurf 3.1

Unread postby foetz » Thu Aug 07, 2014 8:24 am

niice work jpstewart but being gtk2 based and coming with gcc specials do you think that it's a big difference compared to firefox?
don't get me wrong it's great to see any sort of irix effort however i wonder if that effort wouldn't be better spent on dillo

User avatar
Trippynet
Donor
Donor
Posts: 702
Joined: Thu Aug 15, 2013 6:22 am
Location: Aberdeen, Scotland, UK

Re: Netsurf 3.1

Unread postby Trippynet » Thu Aug 07, 2014 9:27 am

Out of interest, what libraries does SeaMonkey use these days? I know that the interface of the current IRIX port is far more responsive than Firefox's interface, and of course current SeaMonkey uses up-to-date versions of Gecko and SpiderMonkey. Wondering if it might be more feasible to port than recent versions of Firefox - which I seem to remember were just a bridge too far for IRIX.
Systems in use:
:Indigo2IMP: - Nitrogen: R10000 195MHz CPU, 384MB RAM, SolidIMPACT Graphics, 36GB 15k HDD & 300GB 10k HDD, 100Mb/s NIC, New/quiet fans, IRIX 6.5.22
:Fuel: - Lithium: R14000 600MHz CPU, 4GB RAM, V10 Graphics, 72GB 15k HDD & 300GB 10k HDD, 1Gb/s NIC, New/quiet fans, IRIX 6.5.30
Other system in storage: :O2: R5000 200MHz, 224MB RAM, 72GB 15k HDD, PSU fan mod, IRIX 6.5.30

User avatar
ClassicHasClass
Donor
Donor
Posts: 1955
Joined: Wed Jul 25, 2012 7:12 pm
Location: Sunny So Cal
Contact:

Re: Netsurf 3.1

Unread postby ClassicHasClass » Thu Aug 07, 2014 9:38 am

As the resident Mozilla Tier 3 porter, I think you'll find most of the same problems porting SeaMonkey that you would with Firefox. While there are some widget differences, they are ultimately both XUL-based. Ditto for Songbird or T-bird.
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...

jpstewart
Donor
Donor
Posts: 419
Joined: Tue Sep 21, 2010 3:31 pm
Location: Southwestern Ontario, Canada

Re: Netsurf 3.1

Unread postby jpstewart » Thu Aug 07, 2014 4:11 pm

foetz wrote:niice work jpstewart but being gtk2 based and coming with gcc specials do you think that it's a big difference compared to firefox?
don't get me wrong it's great to see any sort of irix effort however i wonder if that effort wouldn't be better spent on dillo

Frankly, I have no idea. My involvement here is basically just a quirk of timing. I saw TeamBlackFox's post on the Saturday morning of a long weekend and thought to myself, "that sounds like something fun to work on this weekend". That was pretty much the entirety of my thought process. :lol: I certainly never considered any of the questions you're asking and I personally am probably not in a position to answer them even if I had thought about them!

Once I got into the build process, I discovered that the Makefiles add lots of GCC options to the command line, so I figured I'd try building with GCC as first step to ease the porting process. (I.e., first worry about operating system portability issues, then worry about compiler portability problems.) But now that I've built it with GCC and it's not working, I'm not so sure that was good idea. I (re-)discovered this in the IRIX c99 manpage today:
cc(1) wrote:The gcc compiler does not correctly pass/return structures that are smaller than 16 bytes and which are not 8 bytes. gcc is consistent with itself, but not consistent with the MIPSpro C compiler, so the only failures that can happen are when mixing code compiled with the two compilers.

That same issue is also mentioned (although not specifically about SGI) in the "Incompatibilites" section of the GCC documentation, too. NetSurf passes a lot of structs back and forth with GTK. I can't help but wonder if that's (part of) the problem with my GCC build. AFAIK, the neko_gtk package was compiled with MIPSpro.

I'm hoping to get a chance to try again to build with MIPSpro this coming weekend. Unless, of course, somebody else gets its working first.
:Indigo2IMP: :Octane: :Indigo: :O3x0:
Sun SPARCstation 20, Blade 2500, T5240
HP C8000

User avatar
hamei
Posts: 10427
Joined: Tue Feb 24, 2004 4:10 pm
Location: over the rainbow

Re: Netsurf 3.1

Unread postby hamei » Thu Aug 07, 2014 6:55 pm

jpstewart wrote:[ NetSurf passes a lot of structs back and forth with GTK. I can't help but wonder if that's (part of) the problem with my GCC build. AFAIK, the neko_gtk package was compiled with MIPSpro.

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.
dipshit's a dirty bird .... hamei's not grungy, he's bitchin'

diegel
Donor
Donor
Posts: 343
Joined: Tue Nov 17, 2009 2:08 am
Location: Hamburg, Germany

Re: Netsurf 3.1

Unread postby diegel » Fri Aug 08, 2014 12:52 am

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:

ajw99uk
Posts: 247
Joined: Tue Apr 19, 2011 4:59 am
Location: Yorkshire, UK

Re: Netsurf 3.1

Unread postby ajw99uk » Fri Aug 08, 2014 5:07 am

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/448MB/RISCOS4.39; RPi B RISCOS5.23; Rpi2 Raspbian-stretch; A5000/33MHz/FPA11/8MB/RISCOS3.11; A540/25MHz/FPA10/16MB/RISCOS3.11 or RISCiX1.21

jpstewart
Donor
Donor
Posts: 419
Joined: Tue Sep 21, 2010 3:31 pm
Location: Southwestern Ontario, Canada

Re: Netsurf 3.1

Unread postby jpstewart » Fri Aug 08, 2014 7:30 am

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, T5240
HP C8000

User avatar
vishnu
Donor
Donor
Posts: 3064
Joined: Sun Mar 18, 2007 3:25 pm
Location: Minneapolis, Minnesota USA

Re: Netsurf 3.1

Unread postby vishnu » Sun Aug 10, 2014 9:28 am

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...

:Tezro: :Octane2:

User avatar
canavan
Posts: 754
Joined: Mon Jul 21, 2003 6:19 am

Re: Netsurf 3.1

Unread postby canavan » Sun Aug 10, 2014 1:07 pm

There's still the problem that you can't mix C++ code generated by g++ and CC, since they use different name mangling algorithms.

User avatar
commodorejohn
Posts: 600
Joined: Tue Oct 02, 2012 1:22 pm
Contact:

Re: Netsurf 3.1

Unread postby commodorejohn » Sun Aug 10, 2014 7:02 pm

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/SH-09/HS-80/MT-32/D-50, Yamaha DX7-II/V50/TX7/TG33/FB-01, Korg MS-20 Mini/ARP Odyssey/DW-8000/M1, Ensoniq SQ-80, E-mu Emax HD/Proteus-2, Casio CZ-5000, Moog Satellite, Sequential Circuits Prophet-600

User avatar
foetz
Moderator
Moderator
Posts: 6483
Joined: Mon Apr 14, 2003 4:34 am
Contact:

Re: Netsurf 3.1

Unread postby foetz » Mon Aug 11, 2014 8:43 am

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:

User avatar
vishnu
Donor
Donor
Posts: 3064
Joined: Sun Mar 18, 2007 3:25 pm
Location: Minneapolis, Minnesota USA

Re: Netsurf 3.1

Unread postby vishnu » Mon Aug 11, 2014 12:00 pm

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...

:Tezro: :Octane2:

jpstewart
Donor
Donor
Posts: 419
Joined: Tue Sep 21, 2010 3:31 pm
Location: Southwestern Ontario, Canada

Re: Netsurf 3.1

Unread postby jpstewart » Mon Aug 11, 2014 1:06 pm

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, T5240
HP C8000

User avatar
vishnu
Donor
Donor
Posts: 3064
Joined: Sun Mar 18, 2007 3:25 pm
Location: Minneapolis, Minnesota USA

Re: Netsurf 3.1

Unread postby vishnu » Tue Aug 12, 2014 12:13 am

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...

:Tezro: :Octane2:


Return to “SGI: Development”

Who is online

Users browsing this forum: No registered users and 2 guests