(slang-1.4.9-r2 installed correctly) make[1]: Entering directory `/usr/opt/portage/var/tmp/portage/sys-libs/slang-2.1.3-r1/work/slang-2.1.3/slsh' cp ../src/config.h . cc -c -c99 -O2 -n32 -mips4 -r14000 -float_const -use_readonly_const -TARG:isa=mips4:platform=ip35:processor=r14000 -TENV:zeroinit_in_bss=ON -OPT:fast_io=ON:Olimit=8192:reorg_common=ON:swp=ON -LNO:auto_dist=ON:fusion_peeling_limit=8:gather_scatter=2 -diag_error 1035 -woff 1174,1183,1185,1552,3968,3970 -I/usr/opt/portage/var/tmp/portage/sys-libs/slang-2.1.3-r1/work/slang-2.1.3/src -DSLSH_CONF_DIR='"/opt/portage/etc"' -DSLSH_PATH='"/opt/portage/usr/share/slsh"' -DSLSH_CONF_DIR_ENV='"SLSH_CONF_DIR"' -DSLSH_LIB_DIR_ENV='"SLSH_LIB_DIR"' -DSLSH_PATH_ENV='"SLSH_PATH"' slsh.c cc-1196 cc: WARNING File = slsh.c, Line = 195 The indicated function is declared implicitly. if (SLang_get_error () == 0) ^ cc-1196 cc: WARNING File = slsh.c, Line = 202 The indicated function is declared implicitly. if (SLang_get_error ()) ^ cc-1196 cc: WARNING File = slsh.c, Line = 214 The indicated function is declared implicitly. else if (-1 == SLang_pop_int (&status)) ^ cc-1196 cc: WARNING File = slsh.c, Line = 496 The indicated function is declared implicitly. (void) SLutf8_enable (-1); ^ cc-1020 cc: ERROR File = slsh.c, Line = 564 The identifier "SL_TB_FULL" is undefined. SLang_Traceback = SL_TB_FULL; ^ cc-1196 cc: WARNING File = slsh.c, Line = 661 The indicated function is declared implicitly. return SLang_get_error (); ^ cc-1196 cc: WARNING File = slsh.c, Line = 671 The indicated function is declared implicitly. return SLang_get_error (); ^ cc-1020 cc: ERROR File = slsh.c, Line = 693 The identifier "SL_TB_FULL" is undefined. if (SLang_Traceback != SL_TB_FULL) ^ cc-1020 cc: ERROR File = slsh.c, Line = 694 The identifier "SL_TB_NONE" is undefined. SLang_Traceback = SL_TB_NONE; ^ cc-1196 cc: WARNING File = slsh.c, Line = 699 The indicated function is declared implicitly. exit_val = SLang_get_error (); ^ 3 errors detected in the compilation of "slsh.c". make[1]: *** [slsh.o] Error 2 make[1]: Leaving directory `/usr/opt/portage/var/tmp/portage/sys-libs/slang-2.1.3-r1/work/slang-2.1.3/slsh' make: *** [elf] Error 2 * ERROR: sys-libs/slang-2.1.3-r1 failed: * emake elf static failed. * * Call stack: * ebuild.sh: 46: <call src_compile> * environment:2058: emake -j1 elf static || die "emake elf static failed.";
Ah, actually this was my fault <embarrassed> My wrapper for the MIPSpro compilers was incorrectly munging the command-line and placing system include directories before those specified by the build itself - so it was finding an older slang.h rather than the slang.h for the code being built. (Oh, and src/slutty.c should #include unistd.h and fcntl.h) With this corrected I now get the following errors: ld32: ERROR 33 : Unresolved text symbol "tputs" -- 1st referenced by /opt/portage/usr/lib/libreadline.a(display.o). ld32: ERROR 33 : Unresolved text symbol "tgoto" -- 1st referenced by /opt/portage/usr/lib/libreadline.a(display.o). ld32: ERROR 33 : Unresolved text symbol "tgetnum" -- 1st referenced by /opt/portage/usr/lib/libreadline.a(terminal.o). ld32: ERROR 33 : Unresolved text symbol "tgetstr" -- 1st referenced by /opt/portage/usr/lib/libreadline.a(terminal.o). ld32: ERROR 33 : Unresolved text symbol "tgetent" -- 1st referenced by /opt/portage/usr/lib/libreadline.a(terminal.o). ld32: ERROR 33 : Unresolved text symbol "tgetflag" -- 1st referenced by /opt/portage/usr/lib/libreadline.a(terminal.o). ... so I'll investigate this next
my first guess is that it isn't linked correctly to ncurses or something, e.g. missing rpath.
I've just rebuilt readline, and the final-stage link error has changed to: ld32: ERROR 33 : Unresolved text symbol "SLang_get_error" -- 1st referenced by slsh.o. ld32: ERROR 33 : Unresolved text symbol "SLang_pop_int" -- 1st referenced by slsh.o. ld32: ERROR 33 : Unresolved text symbol "SLutf8_enable" -- 1st referenced by slsh.o. ld32: ERROR 33 : Unresolved text symbol "SLang_handle_interrupt" -- 1st referenced by readline.o. ld32: ERROR 33 : Unresolved text symbol "SLang_push_function" -- 1st referenced by readline.o. ld32: ERROR 33 : Unresolved text symbol "SLang_push_int" -- 1st referenced by readline.o. ld32: ERROR 33 : Unresolved text symbol "SLrline_open2" -- 1st referenced by readline.o. ld32: ERROR 33 : Unresolved text symbol "SLrline_close" -- 1st referenced by readline.o. ld32: ERROR 33 : Unresolved data symbol "SL_RunTime_Error" -- 1st referenced by readline.o. ... so I think that my readline was broken previously, and this could potentially be a DSO ordering issue (as these symbols are UNDEF according to nm in readline.o
Argh - my fault again! I had a '-L' option set in $LDFLAGS (which I'd forgotten about), meaning that it was trying to link against the old slang-1.4.9-r2 library rather than the newly built library. On the plus side, the IRIX wrapper has greatly improved. Sorry for wasting your time...