incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: Portability of built Standard Library
Date Thu, 12 Apr 2007 17:15:07 GMT
Patrick Happel wrote:
> Hi all,
>   I had a question come up that I wasn't sure about regarding the
> released versions of the library, and I'm hoping someone can answer it:
> Since the Standard Library doesn't build if an acceptable locale isn't
> installed, can a built version of the library (ie a .lib, .dll, or .a
> file) be used on a machine with different locales than the machine it
> was built on?

All you should need to build the old library on a platform with
no locales is the new config test. In fact, you don't even need
the test itself, you just need its output for the platform the
customer is using. You can compile and run the test on the same
platform that does have locales installed and get its output
that way.

You can also see the output of the latest test on the nightly
test results page here:
   http://people.apache.org/~sebor/stdcxx/results/

Scroll down to the row for the customer's platform (build type
shouldn't matter), and follow the (H) link to the config header.
For example, the config header for Solaris 10 obtained with Sun
C++ 5.8 is here:
http://people.apache.org/~sebor/stdcxx/results/solaris-10-sparcv9-sunpro-64b-5.8-15s-cfg-h.gz.txt

Scroll down to the the line with _RWSTD_NO_LOCALE_NAME_FMAT
on it. What follows (all the way to the line containing the
_RWSTD_NO_CONDENSED_NAME macro) is the rest of the output of
the test.

> I'd also like to verify that the newest version of the
> library does not require any locales to be installed in order to build.

Correct. I don't believe it does. It builds on Cygwin where
I don't think there is any libc support for localization at
all (unless that's changed in recent versions of Cygwin). I
also just successfully built it on Solaris after replacing
the libc setlocale() function with a dummy one in the test
that always fails (see line 29 of the latest test). When
the function fails (i.e., when the test fails to find any
named locales), it falls back on the formats hardcoded for
each platform. You can view the latest sources for the test
here:
http://svn.apache.org/repos/asf/incubator/stdcxx/trunk/etc/config/src/LOCALE_NAME_FMAT.cpp

The previous version (from stdcxx 4.1.3) is here:
http://svn.apache.org/repos/asf/incubator/stdcxx/branches/4.1.3/etc/config/src/LOCALE_NAME_FMAT.cpp

Martin

>  
> Thanks,
>  -Patrick Happel
>  
> Rogue Wave Software, 
> A QUOVADX(tm) division 
> Technical Support 
> Phone: 303-545-3205 -- 1-800-404-4767 
> E-mail: support@roguewave.com <blocked::mailto:support@roguewave.com> 
> Web: http://www.roguewave.com/support
> <blocked::http://www.roguewave.com/support> 
> 


Mime
View raw message