The collected works of necron2600 - Page 3

Your sed command did it nicely!
<...>
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/gemrb/gemrb/build

Ill see how far this build goes now. (using cmake and gcc)
FYI, IRIX may be an old OS, but with our nekoware package distribution we still have relatively modern apps.. such as sed with -i. ;)
Thanks again for all your help, and being involved all this time trying to help!
man 3 strcasecmp
string(3C) string(3C)

NAME
string: strcat, strdup, strncat, strcmp, strncmp, strcpy, strncpy,
strlen, strchr, strrchr, strpbrk, strspn, strcspn, strtok, strstr
strcasecmp, strncasecmp, index, rindex, strtok_r - string operations

SYNOPSIS
#include <string.h>

I do not believe IRIX has stricmp.. however I will leave that answer to ones more knowledgeable. Googling seems to say IRIX does not and I couldn't find a manpage for it. Running a find/grep within /usr/include didn't find any stricmp either.
So taking the same source package that I had the mods indicated earlier (mostly includes).. but of course all the 'Makefile' mods I made are irrelevant when using cmake now.

Your cmake fix:
sed -i 's,\(FIND_PACKAGE.*\) MODULE,\1,' CMakeLists.txt

Build:
cd build
cmake -DDISABLE_WERROR=1 ..

It goes to 72% to where it wants to compile BIKPlayer.
GetBitContext.cpp:52:56: error: 'ldexpf' was not declared in this scope
Rather than debug that.. I assume it could be skipped?
I created a stump BIKPlayer.cpp file that does nothing but had the main function BIKPlayer::BIKPlayer(void)
{ }; and the last few lines in the file (GEMRB_PLUGIN(), END_PLUGIN(),etc..
I edited BIKPlayer's CMakeLists.txt so it only uses BIKPlayer.cpp and no the other cpp files in that dir

The butchered code above does let it continue building.
Then it complained of OpenAL. That one was far more simple just commenting out everything in the related plugin directory CMakeLists.txt (there is an IF Clause in there). I could have simply removed OpenAL libs and headers before running cmake.. maybe ill try that next. Is there another way to force it to not compile OpenAL?

I took BaldursGate1 content from a working Solaris10/SPARC environment and placed on IRIX: so the cfg file and content exist.
#Note, I did try with the -c test.cfg too.. same result

[octane]:~ $ gemrb -c /usr/local/etc/gemrb/GemRB.cfg.bg1
[Core]: GemRB Core Version v0.8.4-git Loading...
[Config]: attempting to initialize config with GemRB.cfg.bg1
[Core]: Initializing the Event Manager...
[Core]: Starting Plugin Manager...
[PluginMgr]: Loading Plugins from /usr/local/lib/gemrb/plugins
[PluginLoader]: Loaded plugin "2DA File Importer" (2DAImporter.so).
[PluginLoader]: Loaded plugin "ACM File Importer" (ACMReader.so).
[PluginLoader]: Loaded plugin "BAM File Importer" (BAMImporter.so).
[PluginLoader/ERROR]: Cannot Load "/usr/local/lib/gemrb/plugins/BIKPlayer.so", skipping...
[PluginLoader/DEBUG]: Error: 459017:gemrb: rld: Fatal Error: unresolvable symbol in /usr/local/lib/gemrb/plugins/BIKPlayer.so: _ZTVN5GemRB9BIKPlayerE
[PluginLoader]: Loaded plugin "BMP File Writer" (BMPWriter.so).
[PluginLoader]: Loaded plugin "CHU File Importer" (CHUImporter.so).
[PluginLoader]: Loaded plugin "DLG File Importer" (DLGImporter.so).
[PluginLoader]: Loaded plugin "EFF File Importer" (EFFImporter.so).
[PluginLoader]: Loaded plugin "GAM File Importer" (GAMImporter.so).
[PluginLoader]: Loaded plugin "INI File Importer" (INIImporter.so).
[PluginLoader]: Loaded plugin "Effect opcodes for the icewind branch of the games" (IWDOpcodes.so).
[PluginLoader]: Loaded plugin "MOS File Importer" (MOSImporter.so).
[PluginLoader]: Loaded plugin "MVE Video Player" (MVEPlayer.so).
[PluginLoader]: Loaded plugin "Null Sound Driver" (NullSound.so).
[PluginLoader]: Loaded plugin "OGG File Importer" (OGGReader.so).
[PluginLoader]: Loaded plugin "PNG File Importer" (PNGImporter.so).
[PluginLoader]: Loaded plugin "Effect opcodes for the torment branch of the games" (PSTOpcodes.so).
[PluginLoader]: Loaded plugin "SDL1 Video Driver" (SDLVideo.so).
[PluginLoader]: Loaded plugin "SPL File Importer" (SPLImporter.so).
[PluginLoader]: Loaded plugin "TIS File Importer" (TISImporter.so).
[PluginLoader]: Loaded plugin "TTF Font Importer" (TTFImporter.so).
[PluginLoader]: Loaded plugin "WED File Importer" (WEDImporter.so).
[PluginLoader]: Loaded plugin "ZLib Compression Manager" (ZLibManager.so).
[PluginLoader]: Loaded plugin "ARE File Importer" (AREImporter.so).
[PluginLoader]: Loaded plugin "BIF File Importer" (BIFImporter.so).
[PluginLoader]: Loaded plugin "BMP File Reader" (BMPImporter.so).
[PluginLoader]: Loaded plugin "CRE File Importer" (CREImporter.so).
[PluginLoader]: Loaded plugin "Directory Importer" (DirectoryImporter.so).
[PluginLoader]: Loaded plugin "Effect opcodes for core games" (FXOpcodes.so).
Bus error (core dumped)

I played with GDB a bit..
backtrace shows 2 frames..
(gdb) bt
#0 0x00000000 in ?? ()
#1 0x00000000 in ?? ()
Previous frame identical to this frame (corrupt stack?)
(gdb) frame 0
#0 0x00000000 in ?? ()
(gdb) list
82 InitializeLogging();
83
84 core = new Interface();
85 CFGConfig* config = new CFGConfig(argc, argv);
86 if (core->Init( config ) == GEM_ERROR) {
87 delete config;
88 delete( core );
89 Log(MESSAGE, "Main", "Press enter to continue...");
90 getc(stdin);
91 ShutdownLogging();
(gdb) frame 1
#1 0x00000000 in ?? ()
(gdb) list
72 // about shrinking the heap.
73 #ifdef HAVE_UNISTD_H
74 int pagesize = sysconf(_SC_PAGESIZE);
75 #else
76 int pagesize = 4*1024;
77 #endif
78 mallopt(M_TRIM_THRESHOLD, 5*pagesize);
79 #endif
80
81 Interface::SanityCheck(VERSION_GEMRB);

Anything I should look at?
strace output: (near the end of it)
write(1, "\33[1m\33[37;40m", 12) = 12
write(1, "[", 1[) = 1
write(1, "PluginLoader", 12PluginLoader) = 12
write(1, "\33[1m\33[37;40m", 12) = 12
write(1, "]: ", 3]: ) = 3
write(1, "\33[0m\33[37;40m", 12) = 12
write(1, "Loaded plugin \"Effect opcodes f"..., 61Loaded plugin "Effect opcodes for core games" (FXOpcodes.so).) = 61
write(1, "\n", 1
) = 1
access("/usr/local/lib/gemrb/plugins/GUIScript.so", R_OK) = 0
open("/usr/local/lib/gemrb/plugins/GUIScript.so", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
syssgi(SGI_ELFMAP, 0x3, 0x7ffeec80, 0x2, 0x3a208, 0x3a208) = 71417856
close(3) = 0
open("/usr/local/lib/gemrb/libpython2.7.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/nekoware/lib/libpython2.7.so", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
syssgi(SGI_ELFMAP, 0x3, 0x7ffed5e0, 0x2, 0x183248, 0x183248) = 71909376
close(3) = 0
open("/usr/local/lib/gemrb/libCsup.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/nekoware/lib/libCsup.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib32/libCsup.so", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
syssgi(SGI_ELFMAP, 0x3, 0x7ffecff0, 0x2, 0x5c8, 0x5c8) = 180355072
close(3) = 0
open("/usr/local/lib/gemrb/libC.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/nekoware/lib/libC.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib32/libC.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
syssgi(SGI_ELFMAP, 0x3, 0x7ffecfe0, 0x2, 0x50a18, 0x50a18) = 181207040
close(3) = 0
open("/usr/local/lib/gemrb/libCio.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/nekoware/lib/libCio.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib32/libCio.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
syssgi(SGI_ELFMAP, 0x3, 0x7ffecfd0, 0x2, 0xd3bc8, 0xd3bc8) = 182255616
close(3) = 0
fcntl(0, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(1, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(2, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(2, F_GETFL) = 0x2 (flags O_RDWR)
--- SIGBUS (Bus error) ---
Through process of elimination .. GUIScript.so plugin is what is causing the core dump.
There are 41 plugins.. if I have 40 there.. and remove GUIScript.so.. gemrb loads all and then says it needs GUIscript but no core dump. If I only have 1 plugin available.. and the other 40 removed, gemrb core dumps (and tried different combos).

I noted that Dexter1 has a few more mods left on stricmp change to strcasecmp within GUIScript.cpp .. I'm trying those now. Strange that GCC didnt complain on compiling with stricmp.
git diff is attached.
my apologies for it being messy. Its size is mainly due to deleting a large chuck of BIKPlayer.cpp to get it to compile but have it do nothing/dummy. Also GemRB.cpp shows up as modified.. but it really was not.. i was testing things around where gdb was saying it was crashing at.
I also started adding in Dexter's changes you had listed at http://sprunge.us/TPJi?diff but so far I see no difference regarding the GUIScript plugin core dump.
So I did a fresh clone from GIT.. still a few things to adjust/mod but nothing serious (same things mentioned before). My git clone didnt seem to have BIKPlayer removed yet, but it could just be my doing.

Compile works. I was using -O3 before.. but I just tried with the default -O2 optimziation for Gemrb and same thing.

Gemrb loading GUIscript Plugin has the IRIX OS itself terminate gemrb as identified in the IRIX console:

ALERT: Process [gemrb] 487180 generated trap, but has signal 10 held or ignored
epc 0x617f98 ra 0xace67b4 badvaddr 0xfffffffffffffffd
process has been terminated to prevent infinite loop

If I remove GUIScript plugin from the plugins dir.. things load up promisingly .. even an SDL window, and loading BG data files... just needs GUIScript in the end.

What I can do is try with SGI's native MIPSPro Compiler as Dexter did earlier. Just that compiler can be pretty picky. Other than that, im running out of options.
lynx.. dont use any diff files and info from this message to formally add to GemRB. I need more help on this one from Dexter or other more seasoned IRIX developers.

Ok. I am able to compile with MIPSPro Compiler. However the result is unresolvable symbols:

Code: Select all

[octane]:~ $ gemrb
559531:gemrb: rld: Error: unresolvable symbol in /usr/local/lib/gemrb/libgemrb_core.so.0.8.4-git: __dt__Q2_3std139_Deque_base__pt__119_Q3_5GemRB15GemMarkupParser14TextAttributesQ2_3std60allocator__pt__43_Q3_5GemRB15GemMarkupParser14TextAttributesXCUiL10Gv
559531:gemrb: rld: Error: unresolvable symbol in /usr/local/lib/gemrb/libgemrb_core.so.0.8.4-git: __dt__Q2_3std123_Deque_base__pt__103_Q3_5GemRB16ContentContainer6LayoutQ2_3std52allocator__pt__35_Q3_5GemRB16ContentContainer6LayoutXCUiL10Gv
559531:gemrb: rld: Error: unresolvable symbol in /usr/local/lib/gemrb/libgemrb_core.so.0.8.4-git: __dt__Q2_3std230_Deque_base__pt__210_Q2_3std78basic_string__pt__58_wQ2_3std20char_traits__pt__2_wQ2_3std18allocator__pt__2_wQ2_3std105allocator__pt__88_Q2_3std78basic_string__pt__58_wQ2_3std20char_traits__pt__2_wQ2_3std18allocator__pt__2_wXCUiL10Gv
559531:gemrb: rld: Fatal Error: this executable has unresolvable symbols
[octane]:~ $

I can find those symbols using 'nm' on libgemrb_core.so.0.8.4-git itself but they seem to be 000000 's? Maybe not built or linked right.

Below is more for Dexter.. when his holiday parties are over:
git clone git://github.com/gemrb/gemrb.git
apply patches from git-diff-mipspro.txt #see attached
Use cmake 2.8.6 or newer (the link to neko_cmake-2.8.6.tardist is earlier in this thread)
I created a custom inittypes.h for va_list:
diff -urp /usr/include/inttypes.h-ORIG /usr/include/intty
pes.h

Code: Select all

--- /usr/include/inttypes.h-ORIG        2016-01-07 18:44:31.626329680 -0500
+++ /usr/include/inttypes.h     2016-10-09 17:32:29.042193080 -0400
@@ -184,6 +184,12 @@ typedef unsigned long int  uintptr_t;
#include <stdarg.h>
#include <stdio.h>

+/* http://forums.nekochan.net/viewtopic.php?t=17626
+ * FIX FOR va_list not being defined when compiling
+ * this was done for doxbox .7x
+ */
+typedef char *va_list;
+
extern int i_fprintf  ( FILE *stream, const char *format, ... );
extern int i_vfprintf ( FILE *stream, const char *format, va_list va );
extern int i_printf   ( const char *format, ... );



MIPSPRO ENVIRONMENT

Code: Select all

export CC=c99
export CXX=cc
export CFLAGS="-O2 -mips4 -n32 -I/usr/nekoware/include"
export CXXFLAGS="-O2 -mips4 -n32 -I/usr/nekoware/include"
export CPPFLAGS="-O2 -mips4 -n32 -I/usr/nekoware/include"
export LDFLAGS="-L/usr/nekoware/lib"
export PERL=/usr/nekoware/bin/perl
export GNUMAKE=/usr/nekoware/bin/gmake
export SED=/usr/nekoware/bin/sed


cd gemrb
mkdir build
cmake -DHAVE_LDEXPF=0 -DDISABLE_WERROR=1 ..
# Note that OpenAL bits are commented out as detailed in the DIFF file
gmake VERBOSE=1 install

It will fail later on linking CXX executable gemrb

I worked around this (probably part of the problem):
RUN (its part of the failed command.. this creates the relink.txt):
cd /tmp/gemrb2/gemrb/build/gemrb && /usr/nekoware/bin/cmake -E cmake_link_script CMakeFiles/gemrb.dir/relink.txt --verbose=1

edit CMakeFiles/gemrb.dir/link.txt to add in /usr/lib32/c++init.o -lc -lC -lCio -lSgm after "-o gemrb"
/usr/bin/cc -O3 -mips4 -n32 -I/usr/nekoware/include -O2 -L/usr/nekoware/lib CMakeFiles/gemrb.dir/GemRB.cpp.o -o gemrb /usr/lib32/c++init.o -lc -lC -lCio -lSgm core/libgemrb_core.so.0.8.4-git -lpthread -Wl,-rpath,/tmp/gemrb2/gemrb/build/gemrb/core
##I found all the missing symbols from c++init.o and -lc -lC -lCio -lSgm .. maybe these are incorrect?

gmake VERBOSE=1 install

builds to 100% but then link error

RUN (its part of the failed command.. this creates the relink.txt): cd /tmp/gemrb2/gemrb/build/gemrb && /usr/nekoware/bin/cmake -E cmake_link_script CMakeFiles/gemrb.dir/relink.txt --verbose=1

edit CMakeFiles/gemrb.dir/relink.txt to add in /usr/lib32/c++init.o -lc -lC -lCio -lSgm after "-o gemrb"

gmake VERBOSE=1 install # as root, or use DESTDIR=/tmp/blah
DONE

Thats the best I can get with MIPSPro..
Now, the changes listed in this message/DIFF file.. seem to make GCC not compile now. I did feel a bit closer to the end with GCC ;)

git-diff-mipspro.txt
(4.93 KiB) Downloaded 20 times
Awesome Dexter!
I cant wait! hurry hurry! ;)
I know this plays decently on a 400mhz UltraSPARC (Solaris) so Im hoping the same with a >400mhz SGI..
FYI, performance is good.. very quick on a 600mhz Octane.

Segfaults seem to not be so random for me...

Using a saved game that started right at candlekeep inn in BG1.. very begining where you are right outside the candlekeep inn door.

If I talk to the guard moving around right outside candlekeep inn door.. it segfaults. Every time.

If I go to the building way on the north side of the map and enter.. where a guy in the building walks over and talks (if I remember correctly.. he attacks you too).. it segfaults every time before the dialog is initiated. .

However, I can go into the candlekeep inn building and talk to some people in that room just fine with dialogs (inn keepr's name is Winthrop) without fail. Other people in the far back it also seg faults every time consistently.
Where (or what CD?) can I find dbx in order to debug an app or core file? Right now I can only use gdb.. not sure if that works well with MIPSpro compiled code?

Your compiled version has working sound for me:
In the cfg file:
AudioDriver = sdlaudio
I did try with it set to none, but nothing changed as far as the seg faults.

Thanks to your latest diffs.. I can compile gemrb with MIPSPro without all the crazyness I was getting before.
My compiled version does not have sound though. But it still crashes in the same spots.
Regarding my compiling.. I am not sure how you are able to compile yours without the last diff I added to this thread?
In particular in the very begining:

[octane]:/storage/packaging-PENDING/gemrb-mipspro/gemrb-dexter/git-head/gemrb/build $ gmake
Scanning dependencies of target gemrb_core
[ 0%] Building CXX object gemrb/core/CMakeFiles/gemrb_core.dir/ActorMgr.cpp.o
[ 1%] Building CXX object gemrb/core/CMakeFiles/gemrb_core.dir/Ambient.cpp.o
cc-1293 CC: ERROR File = /storage/packaging-PENDING/gemrb-mipspro/gemrb-dexter/git-head/gemrb/gemrb/includes/Predicates.h, Line = 51
Pure specifier ("= 0") is allowed only on virtual functions.

bool operator()(PT param) const=0;

I have to add 'variable' before bool and it compiles.. however almost every compile item gives a WARNING:
function "GemRB::VoidCallback::operator()()" is hidden by
"GemRB::Callback<T>::operator()" -- virtual function override
intended?

virtual bool operator()(T target)=0;

So not sure on the impact of that...

I compiled with debugging enabled "-g" and also enabled DEBUG in gemrb:
Only output from gemrb when i click on the guard right in front of the inn.. my character moves over to him and then.. bam.. seg fault:
[GameScript]: Displaying string on: none
[ResourceManager]: Found 'watch.dlg' in 'chitin.key'.
[ResourceManager]: Found 'spell.ids' in 'chitin.key'.
Segmentation fault

Same with the guy in the house on top/north of the map. Guy comes over to me then bam.. seg fault:
[GameScript]: Displaying string on: none
[ResourceManager]: Found 'shank.dlg' in 'chitin.key'.
Segmentation fault

####
gdb on the core file (gemrb compiled with debug -g )
I am not sure if gdb can work properly with mipspro compiled code??

Code: Select all

ls from /usr/local/lib/gemrb/plugins/MOSImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/MOSImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/MUSImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/MUSImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/MVEPlayer.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/MVEPlayer.so
Reading symbols from /usr/local/lib/gemrb/plugins/NullSound.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/NullSound.so
Reading symbols from /usr/local/lib/gemrb/plugins/NullSource.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/NullSource.so
Reading symbols from /usr/local/lib/gemrb/plugins/OGGReader.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/OGGReader.so
Reading symbols from /usr/nekoware/lib/libvorbisfile.so.4...done.
Loaded symbols for /usr/nekoware/lib/libvorbisfile.so.4
Reading symbols from /usr/nekoware/lib/libvorbis.so.1...done.
Loaded symbols for /usr/nekoware/lib/libvorbis.so.1
Reading symbols from /usr/nekoware/lib/libogg.so.1...done.
Loaded symbols for /usr/nekoware/lib/libogg.so.1
Reading symbols from /usr/local/lib/gemrb/plugins/OpenALAudio.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/OpenALAudio.so
Reading symbols from /usr/nekoware/lib/libopenal.so.0...done.
Loaded symbols for /usr/nekoware/lib/libopenal.so.0
Reading symbols from /usr/nekoware/lib/libSDL-1.2.so.1...done.
Loaded symbols for /usr/nekoware/lib/libSDL-1.2.so.1
Reading symbols from /usr/lib32/libdl.so...done.
Loaded symbols for /usr/lib32/libdl.so
Reading symbols from /usr/lib32/libaudio.so...done.
Loaded symbols for /usr/lib32/libaudio.so
Reading symbols from /usr/nekoware/lib/libiconv.so.3...done.
Loaded symbols for /usr/nekoware/lib/libiconv.so.3
Reading symbols from /usr/lib32/libX11.so.1...done.
Loaded symbols for /usr/lib32/libX11.so.1
Reading symbols from /usr/lib32/libXext.so...done.
Loaded symbols for /usr/lib32/libXext.so
Reading symbols from /usr/local/lib/gemrb/plugins/PLTImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/PLTImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/PNGImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/PNGImporter.so
Reading symbols from /usr/nekoware/lib/libpng.so.3...done.
Loaded symbols for /usr/nekoware/lib/libpng.so.3
Reading symbols from /usr/nekoware/lib/libz.so.1...done.
Loaded symbols for /usr/nekoware/lib/libz.so.1
Reading symbols from /usr/nekoware/lib/libz.so...done.
Loaded symbols for /usr/nekoware/lib/libz.so
Reading symbols from /usr/local/lib/gemrb/plugins/PROImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/PROImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/PSTOpcodes.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/PSTOpcodes.so
Reading symbols from /usr/local/lib/gemrb/plugins/SAVImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/SAVImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/SDLVideo.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/SDLVideo.so
Reading symbols from /usr/local/lib/gemrb/plugins/SPLImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/SPLImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/STOImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/STOImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/TISImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/TISImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/TLKImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/TLKImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/TTFImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/TTFImporter.so
Reading symbols from /usr/nekoware/lib/libfreetype.so.7...done.
Loaded symbols for /usr/nekoware/lib/libfreetype.so.7
Reading symbols from /usr/local/lib/gemrb/plugins/WAVReader.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/WAVReader.so
Reading symbols from /usr/local/lib/gemrb/plugins/WEDImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/WEDImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/WMPImporter.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/WMPImporter.so
Reading symbols from /usr/local/lib/gemrb/plugins/ZLibManager.so...done.
Loaded symbols for /usr/local/lib/gemrb/plugins/ZLibManager.so

warning: wrong size gregset struct in core file
#0  0x00000000 in ?? ()
(gdb) bt
#0  0x00000000 in ?? ()
#1  0x00000000 in ?? ()
Previous frame identical to this frame (corrupt stack?)
(gdb) frame 0
#0  0x00000000 in ?? ()
(gdb) list
76      // about shrinking the heap.
77              #ifdef HAVE_UNISTD_H
78                      int pagesize = sysconf(_SC_PAGESIZE);
79              #else
80                      int pagesize = 4*1024;
81              #endif
82              mallopt(M_TRIM_THRESHOLD, 5*pagesize);
83      #endif
84
85              Interface::SanityCheck(VERSION_GEMRB);
(gdb)

thats about all I know about GDB ;)
I am not able to run gdb to execute gemrb.. give an unknown signal error early on loading a few plugins.

any help, or direction/hints to give?
Thanks
FYI.. on a linux node, Testing the same seg fault areas.. I grabbed their console output/log:

Guard outside inn:
[GameScript]: Displaying string on: none
[ResourceManager]: Searching for 'guarr02'...
[ResourceManager]: Found 'guarr02.wav' in 'chitin.key'.
[ResourceManager]: Found 'watch.dlg' in 'chitin.key'.
[ResourceManager]: Found 'spell.ids' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.
[ResourceManager]: Searching for 'guiwbtp3'...
[ResourceManager]: Found 'guiwbtp3.mos' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.
[ResourceManager]: Searching for 'guiwbtp1'...
[ResourceManager]: Found 'guiwbtp1.mos' in 'chitin.key'.
[ResourceManager]: Found 'clik2con.bam' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.

Man in house top of map (comes over to talk then attach):
[GameScript]: Displaying string on: none
[ResourceManager]: Searching for 'genmg14'...
[ResourceManager]: Found 'genmg14.wav' in 'chitin.key'.
[ResourceManager]: Found 'shank.dlg' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.
[ResourceManager]: Searching for 'guiwbtp3'...
[ResourceManager]: Found 'guiwbtp3.mos' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.
[ResourceManager]: Searching for 'guiwbtp1'...
[ResourceManager]: Found 'guiwbtp1.mos' in 'chitin.key'.
[ResourceManager]: Found 'GUIW.chu' in 'chitin.key'.

Noticing these are all within ResourceManager?
We are modding ResourceManager.h (as per our diffs) ..
in particular to include or not include ResourceSource.h for SGI due to no SFINAE

Also.. the Linux version seems to have "Searching for 'blah" yet SGI/IRIX does not show that yet. LInux has that right up front. I would imagine the segfault is occuring in this logic?

The text "Searching for .." is part of ResourceManager.cpp Maybe we could get someone to write more extended debug logic within ResourceManager.cpp ? I could just throw in lots of printf's but I am just hacking it. Or maybe Dexter could look more closely for anything that could cause IRIX/SGI to not work right?
Compiled hercules 3.07 with GCC 4.7
Not much had to be modified
I did try MIPSPro first.. it started to get hairy.

# Environment
export CC=gcc
export CXX=g++
export CXXFLAGS="-O3 -mabi=n32 -I/usr/nekoware/include -I/usr/include"
export CPPFLAGS="-O3 -mabi=n32 -I/usr/nekoware/include -I/usr/include"
export PATH="/usr/nekoware/bin:$PATH"
export MANPATH="/usr/nekoware/man:$MANPATH"
export CFLAGS="-O3 -mabi=n32 -I/usr/nekoware/include -I/usr/include"
export LDFLAGS="-L/usr/nekoware/lib -L/usr/lib32"
export LD_LIBRARY_PATH="/usr/nekoware/lib:/usr/lib32"
export PATH=/usr/nekoware/gcc-4.7/bin:$PATH

./configure --enable-getoptwrapper

Comment out.. or better yet add a !defined for SGI somehow.. I got lazy and commented out:
hercifc.h
//#if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__SOLARIS__)
// struct rtentry rtentry;
//#endif

Add:
#include "db.h"
to top of:
crypto/dyncrypt.c
crypto/sha1.c
crypto/sha256.c

then it compiles with no errors.
I only tested it by running it, then stopping it. I have no clue (yet) if it functions right. Just got happy and decided to post it first.. who needs testing right? ;)
Oh.. it installs in /usr/local. the tarball is a tar of usr (I ran gmake install DESTDIR=/tmp/somewhere to package it up in a tarball)
DEBUG!

####Talk to guard outside inn door:

Code: Select all

Process 86887:  Thread 0x10000: Stopped on signal SIGSEGV: Segmentation violation (default)
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::append(<stripped>) ["stl_alloc.h":372, 0x0ae151bc]
]


Here is stack:

Code: Select all

std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::append(<stripped>) ["stl_alloc.h":372]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(<stripped>) ["string":607]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=(this = 0x7fff26c0, __s = &0x7fff26d8) ["string":360]
GemRB::Font::RenderText(this = 0x1003cb60, string = &0x7fff2948, rgn = &0x7fff28e8, color = 0x12b13b88, alignment = '\000', point = 0x7fff288c, canvas = 0x0, grow = '\000') ["Font.cpp":254]
GemRB::Font::Print(this = 0x1003cb60, rgn = <class>, string = &0x7fff2948, color = 0x12b13b88, alignment = '\000', point = 0x0) ["Font.cpp":579]
GemRB::TextSpan::DrawContentsInRegions(this = 0x1084b0f0, rgns = &0x10677d3c, offset = &0x7fff2a10) ["TextContainer.cpp":284]
GemRB::ContentContainer::DrawContentsInRegions(this = 0x10626f58, rgns = &0x106964fc, offset = &0x7fff2ad0) ["TextContainer.cpp":544]
GemRB::ContentContainer::DrawContentsInRegions(this = 0x1069642c, rgns = &0x7fff2b50, offset = &0x7fff2b88) ["TextContainer.cpp":544]
GemRB::Content::Draw(this = 0x1069642c, p = <class>) ["TextContainer.cpp":69]
GemRB::TextArea::DrawInternal(this = 0x106963a8, clip = &0x7fff2be0) ["TextArea.cpp":141]
GemRB::Control::Draw(this = 0x106963a8, x = 64, y = 390) ["Control.cpp":110]
GemRB::Window::DrawWindow(this = 0x10678e18) ["Window.cpp":137]
GemRB::Interface::DrawWindows(this = 0x1000bbd0, allow_delete = '\001') ["Interface.cpp":3055]
GemRB::Interface::Main(this = 0x1000bbd0) ["Interface.cpp":997]
main(argc = 3, argv = 0x7fff2e94) ["GemRB.cpp":104]
__start(<stripped>) ["crt1text.s":177]


/usr/include/CC/stl_alloc.h:372

Code: Select all

return __r;
}
-->    *__my_free_list = __result -> _M_free_list_link;
return (__result);
};


/usr/include/CC/string:607

Code: Select all

__false_type) {
typedef typename iterator_traits<_InputIter>::iterator_category _Category;
-->    return append(__f, __l, _Category());
}


/usr/include/CC/string:360

Code: Select all

basic_string& operator=(const basic_string& __s) {
if (&__s != this)
-->      assign(__s.begin(), __s.end());
return *this;
}


/gemrb/gemrb/core/GUI/TextSystem/Font.cpp:254

Code: Select all

eolpos++; // convert from index
}
-->         line = string.substr(stringPos, eolpos - stringPos);
stringPos = eolpos;
}


/gemrb/gemrb/core/GUI/TextSystem/Font.cpp:579

Code: Select all

}

-->   size_t ret = RenderText(string, rgn, pal, alignment, &p);
if (point) {
*point = p;
}
return ret;
}


####Guy in north/top house who comes over to talk/attack

Code: Select all

std::__default_alloc_template<(__n = 32) ["stl_alloc.h":372]
std::simple_alloc<wchar_t,std::__default_alloc_template<(__n = 8) ["stl_alloc.h":199]
std::_String_alloc_base<wchar_t,std::allocator<wchar_t>,(this = 0x7fff26d8, __n = 8) ["string":135]
std::_String_base<wchar_t,std::allocator<wchar_t> >::_M_allocate_block(this = 0x7fff26d8, __n = 8) ["string":158]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_M_range_initialize(this = 0x7fff26d8, __f = 0x106e2b20, __l = 0x106e2b3c, <no name> = <class>) ["string":434]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_M_range_initialize(this = 0x7fff26d8, __f = 0x106e2b20, __l = 0x106e2b3c) ["string":441]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_M_initialize_dispatch(this = 0x7fff26d8, __f = 0x106e2b20, __l = 0x106e2b3c, <no name> = <no value>) ["string":453]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >(this = 0x7fff26d8, __f = 0x106e2b20, __l = 0x106e2b3c, __a = &0x7fff2674) ["string":345]
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::substr(this = 0x7fff2948, <no name> = 0x7fff26d8, __pos = 0, __n = 7) ["string":1033]
GemRB::Font::RenderText(this = 0x1003cc40, string = &0x7fff2948, rgn = &0x7fff28e8, color = 0x12d98628, alignment = '\000', point = 0x7fff288c, canvas = 0x0, grow = '\000') ["Font.cpp":254]
GemRB::Font::Print(this = 0x1003cc40, rgn = <class>, string = &0x7fff2948, color = 0x12d98628, alignment = '\000', point = 0x0) ["Font.cpp":579]
GemRB::TextSpan::DrawContentsInRegions(this = 0x106062c8, rgns = &0x107bcd14, offset = &0x7fff2a10) ["TextContainer.cpp":284]
GemRB::ContentContainer::DrawContentsInRegions(this = 0x106104c0, rgns = &0x1060fc14, offset = &0x7fff2ad0) ["TextContainer.cpp":544]
GemRB::ContentContainer::DrawContentsInRegions(this = 0x106103f4, rgns = &0x7fff2b50, offset = &0x7fff2b88) ["TextContainer.cpp":544]
GemRB::Content::Draw(this = 0x106103f4, p = <class>) ["TextContainer.cpp":69]
GemRB::TextArea::DrawInternal(this = 0x10610370, clip = &0x7fff2be0) ["TextArea.cpp":141]
GemRB::Control::Draw(this = 0x10610370, x = 64, y = 390) ["Control.cpp":110]
GemRB::Window::DrawWindow(this = 0x106101d8) ["Window.cpp":137]
GemRB::Interface::DrawWindows(this = 0x1000bbd0, allow_delete = '\001') ["Interface.cpp":3055]
GemRB::Interface::Main(this = 0x1000bbd0) ["Interface.cpp":997]
main(argc = 3, argv = 0x7fff2e94) ["GemRB.cpp":104]
__start(<stripped>) ["crt1text.s":177]


So it seems to seg violation at stl_alloc.h:372 stemming from Font.cpp line 254 and stack:
GemRB::Font::RenderText(this = 0x1003cb60, string = &0x7fff2948, rgn = &0x7fff28e8, color = 0x12b13b88, alignment = '\000', point = 0x7fff288c, canvas = 0x0, grow = '\000') ["Font.cpp":254]
or
GemRB::Font::RenderText(this = 0x1003cc40, string = &0x7fff2948, rgn = &0x7fff28e8, color = 0x12d98628, alignment = '\000', point = 0x7fff288c, canvas = 0x0, grow = '\000') ["Font.cpp":254]

There are some other problems of course.. but these stick out right away and core dump.
curses based 3270 term emulator compiled with GCC for mips4..
c3270-3.3.tar.gz
(291.13 KiB) Downloaded 14 times
Lynx.. any help with this?
Thank you
I have had good success with WRP (wrp11-qt.py).. however running on an Ubuntu system (have it running today on 14.04 LTS). Any other Linux flavor didnt seem to do so well when I did some very quick tests. I have complex, large sized, webpages loading quickly on old Mac Classics, SUN Sparcstations, Nextstations, etc.. Even browsing ebay (to buy more old stuff of course!) but since the pages are pre-rendered.. some input is hard to do on webpages (like putting in credit card info to buy that old stuff). Things like ebay, you can work with modifying the URL manually for certain searches and put those in as bookmarks to revisit them easily when using WRP. Once in awhile, WRP does crash but you can restart it again.

For relatively more modern hardware (SGI O2, Octane) sometimes it is just easier to display Chrome from a windows terminal server over RDP.. something like the following on a Windows Server 2003 with seamlessrdpshell installed:
/usr/nekoware/bin/rdesktop -u username -p password -r clipboard:PRIMARYCLIPBOARD -r disk:'Home'=$HOME -r sound:local -a 16 -z -A -s 'c:\\seamlessrdp\\seamlessrdpshell C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' win2003servernameorIP
The File-system directory concept approach could be changed to using an LDAP server (Lightweight Directory Access Protocol)... OpenLDAP runs on lots of platforms (and it has portable versions to run without an actual installation on windows, linux,etc.. ) and there is Apache Directory Studio for a good GUI/front-end.. as well as JXplorer.. java-based, that runs on all sorts of platforms (even IRIX with a version supporting Java 1.4)
Structure would be similar:
ou=computers, cn=intellistation, cn= dev, cn=scsi, cn=20gb-ibm-scsi-hd-serial_number
Then attributes for cn=40gb-ibm-scsi-hd-serial_number:
manufacturer=samsung
capacity=4GB
number_of_chips=8
chip_capacity=512MB
device_type=hard-drive
Cut/paste/copy from one to another cn or another.
Search/filter, etc..

Then you deal with an LDIF file for import/export.. backups and sharing
It may be more intuitive for inventory purposes than an Excel spreadsheet or a filesystem directory layout.

You could also do something with XML too...
LDAP and/or XML most likely have some PHP/web-based browsing software out there too that could work on IRIX and other platforms. Speaking of PHP.. phpmyinventory would work with PHP and MySQL even on IRIX (at least it seems like it should)

Just a fancy idea ;)
Lynx.. hope your year has been going well?
Any possibility for helping us with the crashes we are encountering? GemRB is unusable except to showcase moving a character around.
Thank you
Prices are aimed at anyone who will buy.. including hobbyists. I don't have a BeBox yet.. what are my choices if I did want one? Only today's high prices. Supply and Demand as jan-jaap said.
These are no longer just old PCs nobody wants. They are collectable items of value never to be recreated again.

Plus, the value of the 1$USD is not the same as it was last decade. (inflation). Last decade's 200$ NeXTstation is now the new 800$ NeXTstation (but I did buy mine from BlackHole last decade for 800$). Even my grocery bill was <100$ last decade and now doubled to 200$ (at least) today.

However, if the eBay seller has an inflated price but is open to offers you can usually get them for not-so-inflated pricing ;) Ebay does not seem to record the actual sale price but instead shows the inflated price as what it sold at.
Has anyone seen, or used, the older Real Sky Palomar Observatory Sky Survey (comes in 9 CD-ROMs) on IRIX? System reqs indicate UNIX platforms as well as OpenVMS. Would be neat to know this works on IRIX first before purchasing an older copy from fleabay.

-Kevin