This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Results for g++ 3.1 application testing on i686-pc-linux-gnu
- From: Benjamin Kosnik <bkoz at redhat dot com>
- To: Peter Schmid <schmid at snake dot iap dot physik dot tu-darmstadt dot de>
- Cc: gcc at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Date: Thu, 7 Mar 2002 23:24:36 -0800 (PST)
- Subject: Re: Results for g++ 3.1 application testing on i686-pc-linux-gnu
> Following Benjamins request I upgraded binutils and rerun the test
> with symbol versioning enabled. Surprisingly, this time
> 22_locale/collate_byname.cc from the libstdc++ testsuite fails which
> passed on the last run when gcc 20020302 was employed. Could you
> please take a look at 22_locale/collate_members_char.cc, which does
> not pass either.
These work for the generic code. For the linux codepath, it looks like
there are some problems with glibc2.2.x and the following:
#define _GNU_SOURCE 1
#include <locale.h>
#include <string.h>
#include <stddef.h>
#define __c_locale __locale_t
int
_M_transform_helper(char* __o, const char* __t, size_t __n, __c_locale __loc)
{ return __strxfrm_l(__o, __t, __n, __loc); }
int main()
{
__c_locale loc;
__c_locale loc_dup;
const char* __s = "de_DE";
const char* __one = "Äuglein Augmen";
const char* __two = "Äuglein";
int i;
int j;
size_t __n1;
size_t __n2;
char* __c1;
char* __c2;
loc = __newlocale(1 << LC_ALL, __s, 0);
loc_dup = __duplocale(loc);
__n1 = strlen(__one);
__n2 = strlen(__two);
__c1 = __builtin_alloca(__n1);
__c2 = __builtin_alloca(__n2);
i = _M_transform_helper(__c1, __one, __n1, loc);
j = _M_transform_helper(__c2, __two, __n2, loc_dup);
return 0;
}
At some point (2.2.6?) this will be fixed.
best,
-benjamin