From bug-octave-request at bevo dot che dot wisc dot edu Wed Oct 28 07:34:06 1998 Subject: 2.1.7 with egcs-1.1b From: Joao Cardoso To: bug-octave Date: Wed, 28 Oct 1998 07:33:59 -0600 (CST) This is a multi-part message in MIME format. --------------794B446B2781 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi, Thanks for your patches. The last one, regarding src/xdiv.cc produced .rej files, so I had to apply it by hand. I enclose the resulting diff. Now at the link stage, I got the following error: Undefined first referenced symbol in file set_new_handler ../src/liboctinterp.so This reference come from src/sighandlers.cc. Strangly enought, in libstdc++.so.2.9.0 it appears as: zorg:# nm -p /usr/local/lib/libstdc++.so.2.9.0 | fgrep set_new_handler 00043c38 T set_new_handler__FPFv_v zorg:# nm -pC /usr/local/lib/libstdc++.so.2.9.0 | fgrep set_new_handler 00043c38 T set_new_handler(void (*)(void)) while in libstdc++.so.2.8.0 it appear as: zorg:# nm -p /usr/local/lib/libstdc++.so.2.8.0 | fgrep set_new_handler 00042150 T set_new_handler zorg:# nm -pC /usr/local/lib/libstdc++.so.2.8.0 | fgrep set_new_handler 00042150 T set_new_handler It seems that in the new library the symbol is "mangled"??? If I link against libstdc++.so.2.8.0 I got no unresolved symbols. More strange, the symbol does not appear in any of the static libraries, be it 2.8.0 or 2.9.0! Do you think that this is something deserving an egcs bug report? gcc version egcs-2.91.57 19980901 (egcs-1.1 release) (on sco-3.2v5.0.4) I'am running `make check' with Octave linked against 2.8.0 (but compiled against headers of 2.9.0). Don't say nothing, look: # of expected passes 1246 ../src/octave version 2.1.7 (i586-pc-sco3.2v5.0.4) Shall I install or shall I not?! Thanks, Joao -- Joao Cardoso, INESC | e-mail: R. Jose Falcao 110 | tel: + 351 2 2094345 4050 Porto, Portugal | fax: + 351 2 2008487 --------------794B446B2781 Content-Type: text/plain; charset=us-ascii; name="xdiv.cc.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xdiv.cc.patch" *** xdiv.cc.org Tue Oct 27 23:02:46 1998 --- xdiv.cc Tue Oct 27 23:15:55 1998 *************** *** 53,59 **** template bool ! mx_leftdiv_conform (T1 a, T2 b) { int a_nr = a.rows (); int b_nr = b.rows (); --- 53,59 ---- template bool ! mx_leftdiv_conform (const T1& a, const T2& b) { int a_nr = a.rows (); int b_nr = b.rows (); *************** *** 69,83 **** return true; } ! ! template bool mx_leftdiv_conform (const Matrix&, const Matrix&); ! template bool mx_leftdiv_conform (const Matrix&, const ComplexMatrix&); ! template bool mx_leftdiv_conform (const ComplexMatrix&, const ComplexMatrix&); ! template bool mx_leftdiv_conform (const ComplexMatrix&, const Matrix&); template bool ! mx_div_conform (T1 a, T2 b) { int a_nc = a.cols (); int b_nc = b.cols (); --- 69,86 ---- return true; } ! ! #define INSTANTIATE_MX_LEFTDIV_CONFORM(T1, T2) \ ! template bool mx_leftdiv_conform (const T1&, const T2&) ! ! INSTANTIATE_MX_LEFTDIV_CONFORM (Matrix, Matrix); ! INSTANTIATE_MX_LEFTDIV_CONFORM (Matrix, ComplexMatrix); ! INSTANTIATE_MX_LEFTDIV_CONFORM (ComplexMatrix, Matrix); ! INSTANTIATE_MX_LEFTDIV_CONFORM (ComplexMatrix, ComplexMatrix); template bool ! mx_div_conform (const T1& a, const T2& b) { int a_nc = a.cols (); int b_nc = b.cols (); *************** *** 94,103 **** return true; } ! template bool mx_div_conform (const Matrix&, const Matrix&); ! template bool mx_div_conform (const Matrix&, const ComplexMatrix&); ! template bool mx_div_conform (const ComplexMatrix&, const ComplexMatrix&); ! template bool mx_div_conform (const ComplexMatrix&, const Matrix&); // Right division functions. // --- 97,109 ---- return true; } ! #define INSTANTIATE_MX_DIV_CONFORM(T1, T2) \ ! template bool mx_div_conform (const T1&, const T2&) ! ! INSTANTIATE_MX_DIV_CONFORM (Matrix, Matrix); ! INSTANTIATE_MX_DIV_CONFORM (Matrix, ComplexMatrix); ! INSTANTIATE_MX_DIV_CONFORM (ComplexMatrix, Matrix); ! INSTANTIATE_MX_DIV_CONFORM (ComplexMatrix, ComplexMatrix); // Right division functions. // --------------794B446B2781--