mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 13:00:06 +00:00
Update.
2004-01-13 Ulrich Drepper <drepper@redhat.com> * posix/regex.c: Support crappy compilers and platforms which have problems with alloca. * posix/regex_internal.h: Likewise. Patch by Paolo Bonzini.
This commit is contained in:
parent
10677727e2
commit
82e2ba9a03
@ -1,3 +1,10 @@
|
||||
2004-01-13 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* posix/regex.c: Support crappy compilers and platforms which have
|
||||
problems with alloca.
|
||||
* posix/regex_internal.h: Likewise.
|
||||
Patch by Paolo Bonzini.
|
||||
|
||||
2004-01-12 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* posix/regcomp.c [_LIBC && !RE_ENABLE_I18N]:
|
||||
|
@ -86,13 +86,41 @@
|
||||
# define CDISABLE bl JUMPTARGET(__librt_disable_asynccancel)
|
||||
# endif
|
||||
|
||||
# ifndef __ASSEMBLER__
|
||||
# define SINGLE_THREAD_P \
|
||||
# ifdef HAVE_TLS_SUPPORT
|
||||
# ifndef __ASSEMBLER__
|
||||
# define SINGLE_THREAD_P \
|
||||
__builtin_expect (THREAD_GETMEM (THREAD_SELF, p_multiple_threads) == 0, 1)
|
||||
# else
|
||||
# define SINGLE_THREAD_P \
|
||||
# else
|
||||
# define SINGLE_THREAD_P \
|
||||
lwz 10,MULTIPLE_THREADS_OFFSET(2); \
|
||||
cmpwi 10,0
|
||||
# endif
|
||||
# else
|
||||
# if !defined NOT_IN_libc
|
||||
# define __local_multiple_threads __libc_multiple_threads
|
||||
# else
|
||||
# define __local_multiple_threads __librt_multiple_threads
|
||||
# endif
|
||||
# ifndef __ASSEMBLER__
|
||||
extern int __local_multiple_threads attribute_hidden;
|
||||
# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
|
||||
# else
|
||||
# if !defined PIC
|
||||
# define SINGLE_THREAD_P \
|
||||
lis 10,__local_multiple_threads@ha; \
|
||||
lwz 10,__local_multiple_threads@l(10); \
|
||||
cmpwi 10,0
|
||||
# else
|
||||
# define SINGLE_THREAD_P \
|
||||
mflr 9; \
|
||||
bl _GLOBAL_OFFSET_TABLE_@local-4; \
|
||||
mflr 10; \
|
||||
mtlr 9; \
|
||||
lwz 10,__local_multiple_threads@got(10); \
|
||||
lwz 10,0(10); \
|
||||
cmpwi 10,0
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#elif !defined __ASSEMBLER__
|
||||
|
@ -89,13 +89,34 @@
|
||||
# define __local_multiple_threads __librt_multiple_threads
|
||||
# endif
|
||||
|
||||
# ifndef __ASSEMBLER__
|
||||
# define SINGLE_THREAD_P \
|
||||
# ifdef HAVE_TLS_SUPPORT
|
||||
# ifndef __ASSEMBLER__
|
||||
# define SINGLE_THREAD_P \
|
||||
__builtin_expect (THREAD_GETMEM (THREAD_SELF, p_multiple_threads) == 0, 1)
|
||||
# else
|
||||
# define SINGLE_THREAD_P \
|
||||
# else
|
||||
# define SINGLE_THREAD_P \
|
||||
lwz 10,MULTIPLE_THREADS_OFFSET(13); \
|
||||
cmpwi 10,0
|
||||
# endif
|
||||
# else /* !HAVE_TLS_SUPPORT */
|
||||
# ifndef __ASSEMBLER__
|
||||
extern int __local_multiple_threads
|
||||
# if !defined NOT_IN_libc || defined IS_IN_libpthread
|
||||
attribute_hidden;
|
||||
# else
|
||||
;
|
||||
# endif
|
||||
# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
|
||||
# else
|
||||
# define SINGLE_THREAD_P \
|
||||
.section ".toc","aw"; \
|
||||
.LC__local_multiple_threads:; \
|
||||
.tc __local_multiple_threads[TC],__local_multiple_threads; \
|
||||
.previous; \
|
||||
ld 10,.LC__local_multiple_threads@toc(2); \
|
||||
lwz 10,0(10); \
|
||||
cmpwi 10,0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#elif !defined __ASSEMBLER__
|
||||
|
@ -18,6 +18,34 @@
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#ifdef _AIX
|
||||
#pragma alloca
|
||||
#else
|
||||
# ifndef allocax /* predefined by HP cc +Olibcalls */
|
||||
# ifdef __GNUC__
|
||||
# define alloca(size) __builtin_alloca (size)
|
||||
# else
|
||||
# if HAVE_ALLOCA_H
|
||||
# include <alloca.h>
|
||||
# else
|
||||
# ifdef __hpux
|
||||
void *alloca ();
|
||||
# else
|
||||
# if !defined __OS2__ && !defined WIN32
|
||||
char *alloca ();
|
||||
# else
|
||||
# include <malloc.h> /* OS/2 defines alloca in here */
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _LIBC
|
||||
/* We have to keep the namespace clean. */
|
||||
# define regfree(preg) __regfree (preg)
|
||||
|
@ -21,10 +21,6 @@
|
||||
#ifndef _REGEX_INTERNAL_H
|
||||
#define _REGEX_INTERNAL_H 1
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <limits.h>
|
||||
|
Loading…
Reference in New Issue
Block a user