diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-09-15 22:35:27 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-09-15 22:35:27 +0000 |
commit | 3a50811c2fd1aff15552c0448fff66039488fee5 (patch) | |
tree | 12f1cfa79605ef77c16777222c5fbfbb4e6538cb /misc | |
parent | 9bdfff60008403ff693ccc71da5957a4e57bfc25 (diff) | |
download | glibc-3a50811c2fd1aff15552c0448fff66039488fee5.tar.gz |
* rt/Versions (librt): Export __mq_open_2@@GLIBC_2.7.
* rt/Makefile (headers): Add bits/mqueue2.h.
* rt/mqueue.h: Include bits/mqueue2.h if -D_FORTIFY_SOURCE=2,
optimizing with GCC and __va_arg_pack_len is defined.
* rt/bits/mqueue2.h: New file.
* rt/mq_open.c (__mq_open): Renamed from mq_open.
(mq_open): New strong_alias.
(__mq_open_2): New function.
* sysdeps/unix/sysv/linux/mq_open.c (__mq_open): Renamed from mq_open.
(mq_open): New strong_alias.
(__mq_open_2): New function.
* debug/Versions (libc): Export __fortify_fail@@GLIBC_PRIVATE.
* Versions.def (librt): Add GLIBC_2.7 version.
* debug/fortify_fail.c (__fortify_fail): Add libc_hidden_def.
* include/stdio.h (__fortify_fail): Add libc_hidden_proto.
* misc/sys/cdefs.h (__errordecl, __va_arg_pack_len): Define.
* io/fcntl.h: Include bits/fcntl2.h when __va_arg_pack_len
is defined rather than when not C++.
* io/bits/fcntl2.h (__open_alias, __open64_alias, __openat_alias,
__openat64_alias): New redirects.
(__open_too_many_args, __open_missing_mode, __open64_too_many_args,
__open64_missing_mode, __openat_too_many_args, __openat_missing_mode,
__openat64_too_many_args, __openat64_missing_mode): New __errordecls.
(open, open64, openat, openat64): Rewrite as __extern_always_inline
functions instead of function-like macros.
Diffstat (limited to 'misc')
-rw-r--r-- | misc/sys/cdefs.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h index bacfe2f63f..6b2a4fd881 100644 --- a/misc/sys/cdefs.h +++ b/misc/sys/cdefs.h @@ -132,6 +132,7 @@ #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) #define __bos0(ptr) __builtin_object_size (ptr, 0) #define __warndecl(name, msg) extern void name (void) +#define __errordecl(name, msg) extern void name (void) /* Support for flexible arrays. */ @@ -281,7 +282,10 @@ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. */ -#if !defined __cplusplus || __GNUC_PREREQ (4,3) +#if !defined __cplusplus || __GNUC_PREREQ (4,3) \ + || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ + && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ + && __GNUC_RH_RELEASE__ >= 23) # if defined __GNUC_STDC_INLINE__ || defined __cplusplus # define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) # define __extern_always_inline \ @@ -294,8 +298,12 @@ /* GCC 4.3 and above allow passing all anonymous arguments of an __extern_always_inline function to some other vararg function. */ -#if __GNUC_PREREQ (4,3) +#if __GNUC_PREREQ (4,3) \ + || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ + && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ + && __GNUC_RH_RELEASE__ >= 23) # define __va_arg_pack() __builtin_va_arg_pack () +# define __va_arg_pack_len() __builtin_va_arg_pack_len () #endif /* It is possible to compile containing GCC extensions even if GCC is |