This is the mail archive of the
libstdc++@sources.redhat.com
mailing list for the libstdc++ project.
Re: V3 PATCH: IRIX configuration
- To: Mark Mitchell <mark at codesourcery dot com>
- Subject: Re: V3 PATCH: IRIX configuration
- From: Benjamin Kosnik <bkoz at redhat dot com>
- Date: Sun, 29 Oct 2000 14:20:06 -0800 (PST)
- cc: gcc-patches at gcc dot gnu dot org, libstdc++ at sources dot redhat dot com, Gabriel Dos Reis <gdr at codesourcery dot com>
> I've now got V3 working on IRIX.
great! thanks.
> (It wasn't easy, largely thanks to the fact that all debugging had to
> be done at the assembly level. GDB doesn't work on IRIX, and dbx
> crashes on the debugging output produced by G++, and I don't know why.
> I got good at debugging stripped executables with the pre-stripped
> assembly sitting close by.)
Even with GDB, it's not a pleasant experience. I'm working with some of
the gdb folks to improve this...
> - IRIX doesn't support all the wide-character functionality
> required, so we need to turn off lots of little bits of libio
> and V3. This had been done historically, but looks to have
> rotted, presumably due to having being used only on more
> wide-character friendly systems.
right. Thanks for the cleanup
> BTW, the missing functionality here is wmemmove and friends.
> It might be possible to provide replacements, but I decided
> not to, partly so that we could figure out how to turn off
> this stuff in the library. IRIX will not be the only target
> without wide-character support.
right. please, lets not try to add the bits necessary to correctly
implement a conforming "C" library for the conforming "C++" library.
FYI we'd done this in the past and it was even more of a mess than the
current situation...
> - IRIX provides its own cabs, cabsf, and cabsl. Obviously,
> these do not take a `__complex__ float', or whatever, as
> arguments; they take a funny like IRIX-specific struct as
> input. For example:
>
> struct __cabsl_s { long double a,b; };
>
> extern long double cabsl( struct __cabsl_s );
>
> We get in trouble, since libmath tries to define these
> same functions. Since the layout of these things is exactly
> like `__complex__ double' it should work to use the IRIX
> versions, so I made that work.
ok.
> (Also, the implementation of `abs' for libstdc++ in
> src/complex.cc looked odd to me; it was:
>
> abs(const complex<FLT>& __x)
> { return cabs(__x._M_value); }
>
> But, since there's only one cabs (which takes doubles), we'll end
> up using double-precision even for `complex<float>' and
> `complex<double>'. In my patch, I changed this, but I'd
> appreciate commentary from Gaby, as numerics expert, and anyone
> else who knows for sure.
your patch seems sane but Gaby's the bottom line on numerics for libstdc++-v3
> (As a side-issue, using __complex__ in V3 is obviously non-potable
> to compilers other than GCC, which is maybe or maybe not something
> anyone cares about.)
not at the moment.
> 2000-10-29 Mark Mitchell <mark@codesourcery.com>
>
> * acinclue.m4 (GLIBCPP_ENABLE_ATOMICITY): Handle IRIX.
> * aclocal.m4: Regenerated.
> * configure: Likewise.
> * config/os/irix/bits/atomicity.h: New file.
> * config/os/irix/bits/os_defines.h (_POSIX_SOURCE): Undefine.
> (__off_t): Define.
> (__off64_t): Likewise.
> (__ssize_t): Likewise.
> (_G_USING_THUNKS): Define to zero.
just one thing.....
> *** /dev/null Tue May 5 13:32:27 1998
> --- atomicity.h Sun Oct 29 12:27:29 2000
> ***************
> *** 0 ****
> --- 1,42 ----
> + /* Low-level functions for atomic operations. IRIX version.
> + Copyright (C) 1997 Free Software Foundation, Inc.
this should be (C) 2000
other than that, thanks, and get this in!
-benjamin