This is the mail archive of the libstdc++@sources.redhat.com mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: V3 PATCH: IRIX configuration



> 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]