mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
If we compile RPC thread safe, allow rpcgen to generate thread safe code.
This commit is contained in:
parent
28966366a2
commit
b982085b4d
@ -24,6 +24,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
|
#include <wctype.h>
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -386,6 +387,7 @@ run_test (const char *locname)
|
|||||||
CLASSTEST (upper);
|
CLASSTEST (upper);
|
||||||
CLASSTEST (xdigit);
|
CLASSTEST (xdigit);
|
||||||
|
|
||||||
|
/* Character mapping tests. */
|
||||||
#define MAPTEST(name) \
|
#define MAPTEST(name) \
|
||||||
if (to##name (c) != __to##name##_l (c, loc)) \
|
if (to##name (c) != __to##name##_l (c, loc)) \
|
||||||
{ \
|
{ \
|
||||||
@ -398,6 +400,46 @@ run_test (const char *locname)
|
|||||||
MAPTEST (upper);
|
MAPTEST (upper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Character class tests, this time for wide characters. Note that
|
||||||
|
this only works because we know that the internal encoding is
|
||||||
|
UCS4. */
|
||||||
|
for (c = 0; c < 128; ++c)
|
||||||
|
{
|
||||||
|
#define CLASSTEST(name) \
|
||||||
|
if (isw##name (c) != __isw##name##_l (c, loc)) \
|
||||||
|
{ \
|
||||||
|
printf ("isw%s('\\%o') != __isw%s_l('\\%o')\n", \
|
||||||
|
#name, c, #name, c); \
|
||||||
|
result = 1; \
|
||||||
|
}
|
||||||
|
CLASSTEST (alnum);
|
||||||
|
CLASSTEST (alpha);
|
||||||
|
CLASSTEST (blank);
|
||||||
|
CLASSTEST (cntrl);
|
||||||
|
CLASSTEST (digit);
|
||||||
|
CLASSTEST (lower);
|
||||||
|
CLASSTEST (graph);
|
||||||
|
CLASSTEST (print);
|
||||||
|
CLASSTEST (punct);
|
||||||
|
CLASSTEST (space);
|
||||||
|
CLASSTEST (upper);
|
||||||
|
CLASSTEST (xdigit);
|
||||||
|
|
||||||
|
/* Character mapping tests. Note that
|
||||||
|
this only works because we know that the internal encoding is
|
||||||
|
UCS4. */
|
||||||
|
#define MAPTEST(name) \
|
||||||
|
if (tow##name (c) != __tow##name##_l (c, loc)) \
|
||||||
|
{ \
|
||||||
|
printf ("tow%s('\\%o') != __tow%s_l('\\%o'): '\\%o' vs '\\%o'\n",\
|
||||||
|
#name, c, #name, c, \
|
||||||
|
tow##name (c), __tow##name##_l (c, loc)); \
|
||||||
|
result = 1; \
|
||||||
|
}
|
||||||
|
MAPTEST (lower);
|
||||||
|
MAPTEST (upper);
|
||||||
|
}
|
||||||
|
|
||||||
__freelocale (loc);
|
__freelocale (loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1357,6 +1357,7 @@ parseargs (int argc, const char *argv[], struct commandline *cmd)
|
|||||||
cmd->Scflag = flag['C'];
|
cmd->Scflag = flag['C'];
|
||||||
cmd->makefileflag = flag['M'];
|
cmd->makefileflag = flag['M'];
|
||||||
|
|
||||||
|
#ifndef _RPC_THREAD_SAFE_
|
||||||
if (mtflag || newstyle)
|
if (mtflag || newstyle)
|
||||||
{
|
{
|
||||||
/* glibc doesn't support these flags. */
|
/* glibc doesn't support these flags. */
|
||||||
@ -1364,6 +1365,7 @@ parseargs (int argc, const char *argv[], struct commandline *cmd)
|
|||||||
_("This implementation doesn't support newstyle or MT-safe code!\n"));
|
_("This implementation doesn't support newstyle or MT-safe code!\n"));
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
if (tirpcflag)
|
if (tirpcflag)
|
||||||
{
|
{
|
||||||
pmflag = inetdflag ? 0 : 1; /* pmflag or inetdflag is always TRUE */
|
pmflag = inetdflag ? 0 : 1; /* pmflag or inetdflag is always TRUE */
|
||||||
|
Loading…
Reference in New Issue
Block a user