Hello Richard,

> >> Does it still work with those changes, as below?  If so, I'll check it in.
> >
> > I tested it. It is still working. So the patch is OK, please check it in.
>
> OK, I've applied this and the config.gcc patch.

Thanks.

In the native PS2SDK (i.e. no Linux) I detected that there are undefined 
references to `__fixtfsi', `__floatsitf', `__subtf3', `__multf3', 
`__extenddftf2', `__lttf2' and `__gttf2'. These are the functions for handling 
"long double".
There is a fix needed for this in libgcc. I attached 2 patches to this e-mail. 
There should be only one of the patches used to fix this.
The first one fixes the problem for all mips systems. The second one fixes this 
only for r5900. I think it is a general problem. I assume the undefined 
references could appear on all mips64 systems which are not Linux. So the first 
patch should be applied.
Checking for "ac_cv_sizeof_long_double" should work on all mips systems, but I 
don't know why the check was only in the mips*-linux part of the file 
libgcc/config.host.

Best regards
Jürgen
Index: libgcc/config.host
===================================================================
--- libgcc/config.host	(Revision 200155)
+++ libgcc/config.host	(Arbeitskopie)
@@ -136,6 +136,9 @@
 mips*-*-*)
 	cpu_type=mips
 	tmake_file=mips/t-mips
+	if test "${ac_cv_sizeof_long_double}" = 16; then
+		tmake_file="${tmake_file} mips/t-tpbit"
+	fi
 	;;
 powerpc*-*-*)
 	cpu_type=rs6000
@@ -751,9 +754,6 @@
 			;;
 	esac
 	md_unwind_header=mips/linux-unwind.h
-	if test "${ac_cv_sizeof_long_double}" = 16; then
-		tmake_file="${tmake_file} mips/t-tpbit"
-	fi
 	;;
 mips*-sde-elf*)
 	tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
Index: libgcc/config.host
===================================================================
--- libgcc/config.host	(Revision 200155)
+++ libgcc/config.host	(Arbeitskopie)
@@ -798,6 +798,9 @@
 mips64r5900-*-elf* | mips64r5900el-*-elf*)
 	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff"
 	extra_parts="$extra_parts crti.o crtn.o"
+	if test "${ac_cv_sizeof_long_double}" = 16; then
+		tmake_file="${tmake_file} mips/t-tpbit"
+	fi
 	;;
 mips64vr-*-elf* | mips64vrel-*-elf*)
 	tmake_file="$tmake_file mips/t-elf mips/t-vr mips/t-crtstuff"

Reply via email to