Cleanup of configuration options

Make several tool features mandatory and simplify the code.
This commit is contained in:
Ulrich Drepper 2011-09-10 14:34:15 -04:00
parent 1248c1c415
commit 3ce1f29594
84 changed files with 468 additions and 797 deletions

View File

@ -1,3 +1,83 @@
2011-09-10 Ulrich Drepper <drepper@gmail.com>
* configure.in: Remove --with-__thread option. Make tests for
--no-whole-archive, __builtin_expect, symbol redirection, __thread,
tls_model attribute fail if no support is available. Remove
USE_IN_LIBIO.
* Makeconfig: Adjust for dropped configure option. All features are
now mandatory.
* Makerules: Likewise.
* Versions.def: Likewise.
* argp/argp-fmtstream.c: Likewise.
* argp/argp-fmtstream.h: Likewise.
* argp/argp-help.c: Likewise.
* assert/assert.c: Likewise.
* config.h.in: Likewise.
* config.make.in: Likewise.
* configure: Likewise.
* configure.in: Likewise.
* csu/Versions: Likewise.
* csu/init.c: Likewise.
* elf/tst-audit2.c: Likewise.
* elf/tst-tls10.c: Likewise.
* elf/tst-tls10.h: Likewise.
* elf/tst-tls11.c: Likewise.
* elf/tst-tls12.c: Likewise.
* elf/tst-tls14.c: Likewise.
* elf/tst-tlsmod11.c: Likewise.
* elf/tst-tlsmod12.c: Likewise.
* elf/tst-tlsmod13.c: Likewise.
* elf/tst-tlsmod13a.c: Likewise.
* elf/tst-tlsmod14a.c: Likewise.
* elf/tst-tlsmod15b.c: Likewise.
* elf/tst-tlsmod16a.c: Likewise.
* elf/tst-tlsmod16b.c: Likewise.
* elf/tst-tlsmod7.c: Likewise.
* elf/tst-tlsmod8.c: Likewise.
* elf/tst-tlsmod9.c: Likewise.
* gmon/gmon.c: Likewise.
* grp/fgetgrent_r.c: Likewise.
* grp/putgrent.c: Likewise.
* hurd/fopenport.c: Likewise.
* include/libc-symbols.h: Likewise.
* include/tls.h: Likewise.
* intl/gettextP.h: Likewise.
* intl/loadinfo.h: Likewise.
* locale/global-locale.c: Likewise.
* locale/localeinfo.h: Likewise.
* mach/devstream.c: Likewise.
* malloc/arena.c: Likewise.
* malloc/set-freeres.c: Likewise.
* misc/err.c: Likewise.
* misc/getttyent.c: Likewise.
* misc/mntent_r.c: Likewise.
* posix/getopt.c: Likewise.
* posix/wordexp.c: Likewise.
* pwd/fgetpwent_r.c: Likewise.
* resolv/Versions: Likewise.
* resolv/res_hconf.c: Likewise.
* shadow/fgetspent_r.c: Likewise.
* shadow/putspent.c: Likewise.
* stdio-common/printf_fphex.c: Likewise.
* stdio-common/tmpfile.c: Likewise.
* stdlib/abort.c: Likewise.
* stdlib/fmtmsg.c: Likewise.
* sunrpc/auth_unix.c: Likewise.
* sunrpc/clnt_perr.c: Likewise.
* sunrpc/clnt_tcp.c: Likewise.
* sunrpc/clnt_udp.c: Likewise.
* sunrpc/clnt_unix.c: Likewise.
* sunrpc/openchild.c: Likewise.
* sunrpc/svc_simple.c: Likewise.
* sunrpc/svc_tcp.c: Likewise.
* sunrpc/svc_udp.c: Likewise.
* sunrpc/svc_unix.c: Likewise.
* sunrpc/xdr.c: Likewise.
* sunrpc/xdr_array.c: Likewise.
* sunrpc/xdr_rec.c: Likewise.
* sunrpc/xdr_ref.c: Likewise.
* sunrpc/xdr_stdio.c: Likewise.
2011-09-09 Ulrich Drepper <drepper@gmail.com>
* sysdeps/i386/fpu/libm-test-ulps: Adjust ULPs for jn tests.

View File

@ -407,6 +407,10 @@ as-needed :=
no-as-needed :=
endif
# Must be supported by the linker.
no-whole-archive = -Wl,--no-whole-archive
whole-archive = -Wl,--whole-archive
# Installed name of the startup code.
ifneq ($(have-initfini),yes)
# When not having init/fini, there is just one startfile, called crt0.o.

View File

@ -595,7 +595,6 @@ endif
build-module-helper-objlist = \
$(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\
$(filter-out %.lds $(map-file) $(+preinit) $(+postinit),$^))
whole-archive := -Wl,--whole-archive
build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so)
build-shlib-objlist = $(build-module-helper-objlist) \
@ -621,7 +620,7 @@ endif
ifeq ($(elf),yes)
$(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a
$(LINK.o) -nostdlib -nostartfiles -r -o $@ \
$(LDFLAGS-c_pic.os) -Wl,-d -Wl,--whole-archive $^ -o $@
$(LDFLAGS-c_pic.os) -Wl,-d $(whole-archive) $^ -o $@
ifeq (,$(strip $(shlib-lds-flags)))
# Generate a list of -R options to excise .gnu.glibc-stub.* sections.

View File

@ -32,9 +32,7 @@ libc {
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
%ifdef USE_IN_LIBIO
HURD_CTHREADS_0.3
%endif
%ifdef EXPORT_UNWIND_FIND_FDE
GCC_3.0
%endif

View File

@ -1,5 +1,5 @@
/* Word-wrapping and line-truncating streams
Copyright (C) 1997-1999,2001,2002,2003,2005 Free Software Foundation, Inc.
Copyright (C) 1997-1999,2001-2003,2005,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@ -40,7 +40,7 @@
#define isblank(ch) ((ch)==' ' || (ch)=='\t')
#endif
#if defined _LIBC && defined USE_IN_LIBIO
#ifdef _LIBC
# include <wchar.h>
# include <libio/libioP.h>
# define __vsnprintf(s, l, f, a) _IO_vsnprintf (s, l, f, a)
@ -101,11 +101,7 @@ __argp_fmtstream_free (argp_fmtstream_t fs)
__argp_fmtstream_update (fs);
if (fs->p > fs->buf)
{
#ifdef USE_IN_LIBIO
__fxprintf (fs->stream, "%.*s", (int) (fs->p - fs->buf), fs->buf);
#else
fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream);
#endif
}
free (fs->buf);
free (fs);
@ -150,11 +146,9 @@ __argp_fmtstream_update (argp_fmtstream_t fs)
size_t i;
for (i = 0; i < pad; i++)
{
#ifdef USE_IN_LIBIO
if (_IO_fwide (fs->stream, 0) > 0)
putwc_unlocked (L' ', fs->stream);
else
#endif
putc_unlocked (' ', fs->stream);
}
}
@ -315,11 +309,9 @@ __argp_fmtstream_update (argp_fmtstream_t fs)
*nl++ = ' ';
else
for (i = 0; i < fs->wmargin; ++i)
#ifdef USE_IN_LIBIO
if (_IO_fwide (fs->stream, 0) > 0)
putwc_unlocked (L' ', fs->stream);
else
#endif
putc_unlocked (' ', fs->stream);
/* Copy the tail of the original buffer into the current buffer

View File

@ -1,5 +1,5 @@
/* Word-wrapping and line-truncating streams.
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@ -43,8 +43,7 @@
# endif
#endif
#if (_LIBC - 0 && !defined (USE_IN_LIBIO)) \
|| (defined (__GNU_LIBRARY__) && defined (HAVE_LINEWRAP_H))
#if defined (__GNU_LIBRARY__) && defined (HAVE_LINEWRAP_H)
/* line_wrap_stream is available, so use that. */
#define ARGP_FMTSTREAM_USE_LINEWRAP
#endif

View File

@ -1,6 +1,5 @@
/* Hierarchial argument parsing help output
Copyright (C) 1995-2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
Copyright (C) 1995-2007, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@ -312,13 +311,13 @@ fill_in_uparams (const struct argp_state *state)
{"no-parent", 'P', 0, 0, "Include processes without parents"},
{0, 'x', 0, OPTION_ALIAS},
{"all-fields",'Q', 0, 0, "Don't elide unusable fields (normally"
" if there's some reason ps can't"
" if there's some reason ps can't"
" print a field for any process, it's"
" removed from the output entirely)" },
" removed from the output entirely)" },
{"reverse", 'r', 0, 0, "Reverse the order of any sort"},
{"gratuitously-long-reverse-option", 0, 0, OPTION_ALIAS},
{"session", OPT_SESS, "SID", OPTION_ARG_OPTIONAL,
"Add the processes from the session"
"Add the processes from the session"
" SID (which defaults to the sid of"
" the current process)" },
@ -1874,11 +1873,9 @@ __argp_failure (const struct argp_state *state, int status, int errnum,
#endif
}
#ifdef USE_IN_LIBIO
if (_IO_fwide (stream, 0) > 0)
putwc_unlocked (L'\n', stream);
else
#endif
putc_unlocked ('\n', stream);
#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)

View File

@ -30,11 +30,9 @@
extern const char *__progname;
#ifdef USE_IN_LIBIO
# include <wchar.h>
# include <libio/iolibio.h>
# define fflush(s) INTUSE(_IO_fflush) (s)
#endif
#include <wchar.h>
#include <libio/iolibio.h>
#define fflush(s) INTUSE(_IO_fflush) (s)
/* This function, when passed a string containing an asserted
expression, a filename, and a line number, prints a message

View File

@ -74,10 +74,6 @@
/* Define if _Unwind_Find_FDE should be exported from glibc. */
#undef EXPORT_UNWIND_FIND_FDE
/* Define to use GNU libio instead of GNU stdio.
This is defined by configure under --enable-libio. */
#undef USE_IN_LIBIO
/* Define if using ELF and the assembler supports the `.previous'
directive. */
#undef HAVE_ASM_PREVIOUS_DIRECTIVE
@ -95,22 +91,9 @@
/* Define if static NSS modules are wanted. */
#undef DO_STATIC_NSS
/* Define if the compiler supports __builtin_expect. */
#undef HAVE_BUILTIN_EXPECT
/* Define if the compiler supports __builtin_memset. */
#undef HAVE_BUILTIN_MEMSET
/* Define if __asm () on built-in function's prototype causes redirection of
the builtin. */
#undef HAVE_BUILTIN_REDIRECTION
/* Define if the __thread keyword is supported. */
#undef HAVE___THREAD
/* Define if the compiler supports __attribute__((tls_model(""))). */
#undef HAVE_TLS_MODEL_ATTRIBUTE
/* Define if the regparm attribute shall be used for local functions
(gcc on ix86 only). */
#undef USE_REGPARMS

View File

@ -75,7 +75,6 @@ static-libgcc = @libc_cv_gcc_static_libgcc@
versioning = @VERSIONING@
oldest-abi = @oldest_abi@
no-whole-archive = @no_whole_archive@
exceptions = @exceptions@
multi-arch = @multi_arch@

421
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -194,12 +194,6 @@ AC_ARG_WITH([tls],
[usetls=$withval],
[usetls=yes])
AC_ARG_WITH([__thread],
AC_HELP_STRING([--without-__thread],
[do not use TLS features even when supporting them]),
[use__thread=$withval],
[use__thread=yes])
AC_ARG_ENABLE([hidden-plt],
AC_HELP_STRING([--disable-hidden-plt],
[do not hide internal function calls to avoid PLT]),
@ -2078,10 +2072,9 @@ else
libc_cv_ld_no_whole_archive=no
fi
rm -f conftest*])
if test $libc_cv_ld_no_whole_archive = yes; then
no_whole_archive=-Wl,--no-whole-archive
if test $libc_cv_ld_no_whole_archive = no; then
AC_MSG_ERROR([support for --no-whole-archive is needed])
fi
AC_SUBST(no_whole_archive)dnl
AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
cat > conftest.c <<\EOF
@ -2133,8 +2126,8 @@ else
libc_cv_gcc_builtin_expect=no
fi
rm -f conftest*])
if test "$libc_cv_gcc_builtin_expect" = yes; then
AC_DEFINE(HAVE_BUILTIN_EXPECT)
if test "$libc_cv_gcc_builtin_expect" = no; then
AC_MSG_ERROR([support for __builtin_expect needed])
fi
AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
@ -2172,44 +2165,38 @@ else
libc_cv_gcc_builtin_redirection=no
fi
rm -f conftest* ])
if test "$libc_cv_gcc_builtin_redirection" = yes ; then
AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
if test "$libc_cv_gcc_builtin_redirection" = no; then
AC_MSG_ERROR([support for the symbol redirection needed])
fi
dnl Check whether the compiler supports the __thread keyword.
if test "x$use__thread" != xno; then
AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
[cat > conftest.c <<\EOF
AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
[cat > conftest.c <<\EOF
__thread int a = 42;
EOF
if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
libc_cv_gcc___thread=yes
else
libc_cv_gcc___thread=no
fi
rm -f conftest*])
if test "$libc_cv_gcc___thread" = yes; then
AC_DEFINE(HAVE___THREAD)
fi
if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
libc_cv_gcc___thread=yes
else
libc_cv_gcc___thread=no
fi
rm -f conftest*])
if test "$libc_cv_gcc___thread" = no; then
AC_MSG_ERROR([support for the __thread keyword is required])
fi
if test "$libc_cv_gcc___thread" = yes; then
dnl Check whether the compiler supports the tls_model attribute.
AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
cat > conftest.c <<\EOF
dnl Check whether the compiler supports the tls_model attribute.
AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
cat > conftest.c <<\EOF
extern __thread int a __attribute__((tls_model ("initial-exec")));
EOF
if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
libc_cv_gcc_tls_model_attr=yes
else
libc_cv_gcc_tls_model_attr=no
fi
rm -f conftest*])
if test "$libc_cv_gcc_tls_model_attr" = yes; then
AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
fi
if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
libc_cv_gcc_tls_model_attr=yes
else
libc_cv_gcc_tls_model_attr=no
fi
rm -f conftest*])
if test "$libc_cv_gcc_tls_model_attr" = no; then
AC_MSG_ERROR([support for the tls_model attribute is required])
fi
if test -n "$submachine"; then
@ -2327,9 +2314,6 @@ if test x$libc_cv_gcc_unwind_find_fde = xyes; then
fi
AC_SUBST(libc_cv_gcc_unwind_find_fde)
dnl This is tested by existing code and it's simpler to avoid changing it.
AC_DEFINE(USE_IN_LIBIO)
# Test for old glibc 2.0.x headers so that they can be removed properly
# Search only in includedir.
AC_MSG_CHECKING(for old glibc 2.0.x headers)

View File

@ -4,23 +4,12 @@ libc {
GLIBC_2.0 {
# helper functions
__libc_init_first; __libc_start_main;
%if !HAVE___THREAD
# global variables
_errno;
# variables in normal name space
errno;
%endif
}
GLIBC_2.1 {
# New special glibc functions.
gnu_get_libc_release; gnu_get_libc_version;
}
GLIBC_PRIVATE {
%if HAVE___THREAD
# This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
errno;
%endif
}
}

View File

@ -1,5 +1,5 @@
/* Special startup support.
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -17,7 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#if defined USE_IN_LIBIO && defined __GNUC__ && __GNUC__ >= 2
#if defined __GNUC__ && __GNUC__ >= 2
#include <_G_config.h>

View File

@ -4,11 +4,9 @@
#include <stdlib.h>
#include <string.h>
#if HAVE___THREAD
# define MAGIC1 0xabcdef72
# define MAGIC2 0xd8675309
#define MAGIC1 0xabcdef72
#define MAGIC2 0xd8675309
static __thread unsigned int magic[] = { MAGIC1, MAGIC2 };
#endif
#undef calloc
@ -18,7 +16,6 @@ static __thread unsigned int magic[] = { MAGIC1, MAGIC2 };
void *
calloc (size_t n, size_t m)
{
#if HAVE___THREAD
if (magic[0] != MAGIC1 || magic[1] != MAGIC2)
{
printf ("{%x, %x} != {%x, %x}\n", magic[0], magic[1], MAGIC1, MAGIC2);
@ -26,7 +23,6 @@ calloc (size_t n, size_t m)
}
magic[0] = MAGIC2;
magic[1] = MAGIC1;
#endif
n *= m;
void *ptr = malloc (n);
@ -38,13 +34,11 @@ calloc (size_t n, size_t m)
int
main (void)
{
#if HAVE___THREAD
if (magic[1] != MAGIC1 || magic[0] != MAGIC2)
{
printf ("{%x, %x} != {%x, %x}\n", magic[0], magic[1], MAGIC2, MAGIC1);
return 1;
}
#endif
return 0;
}

View File

@ -1,9 +1,7 @@
#include "tst-tls10.h"
#ifdef USE_TLS__THREAD
__thread int dummy __attribute__((visibility ("hidden"))) = 12;
__thread struct A local = { 1, 2, 3 };
#endif
#define CHECK(N, S) \
p = f##N##a (); \
@ -13,7 +11,6 @@ __thread struct A local = { 1, 2, 3 };
int
main (void)
{
#ifdef USE_TLS__THREAD
struct A *p;
if (local.a != 1 || local.b != 2 || local.c != 3)
abort ();
@ -35,6 +32,6 @@ main (void)
abort ();
CHECK (9, 28);
CHECK (10, 31);
#endif
exit (0);
}

View File

@ -1,9 +1,6 @@
#include <tls.h>
#include <stdlib.h>
#if defined HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
# define USE_TLS__THREAD
struct A
{
char a;
@ -34,4 +31,3 @@ extern int f9b (void);
extern int f10b (void);
extern void check1 (void);
extern void check2 (void);
#endif

View File

@ -8,7 +8,6 @@
int
main (void)
{
#ifdef USE_TLS__THREAD
struct A *p;
check1 ();
check2 ();
@ -22,6 +21,6 @@ main (void)
CHECK (8, 25);
CHECK (9, 28);
CHECK (10, 31);
#endif
exit (0);
}

View File

@ -8,11 +8,10 @@
int
main (void)
{
#ifdef USE_TLS__THREAD
struct A *p;
check1 ();
CHECK (1, 4);
CHECK (2, 7);
#endif
exit (0);
}

View File

@ -6,9 +6,7 @@
#include <tls.h>
#if HAVE___THREAD
# define AL 4096
#define AL 4096
struct foo
{
int i;
@ -55,12 +53,5 @@ do_test (void)
return result;
}
# define TEST_FUNCTION do_test ()
#else
# define TEST_FUNCTION 0
#endif
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"

View File

@ -1,6 +1,4 @@
#include "tst-tls10.h"
#ifdef USE_TLS__THREAD
__thread struct A a1 = { 4, 5, 6 };
__thread struct A a2 = { 7, 8, 9 };
#endif

View File

@ -1,6 +1,5 @@
#include "tst-tls10.h"
#ifdef USE_TLS__THREAD
extern __thread struct A a2 __attribute__((tls_model("initial-exec")));
void
@ -11,4 +10,3 @@ check1 (void)
if (a2.a != 7 || a2.b != 8 || a2.c != 9)
abort ();
}
#endif

View File

@ -1,10 +1,6 @@
#include <tls.h>
#if defined HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
__thread int a[2] __attribute__ ((tls_model ("initial-exec")));
#else
int a[2];
#endif
int
foo (void)

View File

@ -1,10 +1,6 @@
#include <tls.h>
#if defined HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
__thread int b[2] __attribute__ ((tls_model ("initial-exec")));
#else
int b[2];
#endif
extern int foo (void);

View File

@ -3,9 +3,7 @@
#include <tls.h>
#if HAVE___THREAD
# define AL 4096
#define AL 4096
struct foo
{
int i;
@ -15,9 +13,9 @@ static __thread struct foo f;
static struct foo g;
# ifndef FCT
# define FCT in_dso1
# endif
#ifndef FCT
# define FCT in_dso1
#endif
int
@ -37,5 +35,3 @@ FCT (void)
return result;
}
#endif

View File

@ -1,6 +1,5 @@
#include "tst-tls10.h"
#ifdef USE_TLS__THREAD
__thread int mod15b_var __attribute__((tls_model("initial-exec")));
int
@ -8,10 +7,3 @@ in_dso (void)
{
return mod15b_var;
}
#else
int
in_dso (void)
{
return 0;
}
#endif

View File

@ -1,7 +1,3 @@
#include <tls.h>
#if defined HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
int __thread tlsvar;
#else
int tlsvar;
#endif

View File

@ -1,10 +1,6 @@
#include <tls.h>
#if defined HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
extern __thread int tlsvar __attribute__((tls_model("initial-exec")));
#else
extern int tlsvar;
#endif
void *
in_dso (void)

View File

@ -1,6 +1,5 @@
#include "tst-tls10.h"
#ifdef USE_TLS__THREAD
__thread int dummy __attribute__((visibility ("hidden"))) = 12;
__thread struct A a1 = { 4, 5, 6 };
__thread struct A a2 = { 7, 8, 9 };
@ -100,4 +99,3 @@ f6b (void)
{
return local2.c;
}
#endif

View File

@ -1,6 +1,5 @@
#include "tst-tls10.h"
#ifdef USE_TLS__THREAD
__thread long long dummy __attribute__((visibility ("hidden"))) = 12;
__thread struct A a2 = { 22, 23, 24 };
__thread struct A a4 __attribute__((tls_model("initial-exec")))
@ -69,4 +68,3 @@ f10b (void)
{
return local2.c;
}
#endif

View File

@ -1,6 +1,5 @@
#include "tst-tls10.h"
#ifdef USE_TLS__THREAD
__thread int dummy __attribute__((visibility ("hidden"))) = 12;
__thread struct A a1 = { 4, 5, 6 };
__thread struct A a3 __attribute__((tls_model("initial-exec")))
@ -98,4 +97,3 @@ f6b (void)
{
return local2.c;
}
#endif

View File

@ -1,5 +1,5 @@
/*-
* Copyright (c) 1983, 1992, 1993
* Copyright (c) 1983, 1992, 1993, 2011
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -36,6 +36,7 @@
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <wchar.h>
#include <stdio.h>
#include <stdlib.h>
@ -45,9 +46,6 @@
#include <libc-internal.h>
#include <not-cancel.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
/* Head of basic-block list or NULL. */
struct __bb *__bb_head attribute_hidden;
@ -194,7 +192,7 @@ write_hist (fd)
char dimen_abbrev;
} thdr;
struct iovec iov[3] =
{
{
{ &tag, sizeof (tag) },
{ &thdr, sizeof (struct gmon_hist_hdr) },
{ _gmonparam.kcount, _gmonparam.kcountsize }

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1996-1999, 2000 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1996-1999, 2000, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -21,11 +21,9 @@
#include <grp.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
# define flockfile(s) _IO_flockfile (s)
# define funlockfile(s) _IO_funlockfile (s)
#endif
#include <libio/iolibio.h>
#define flockfile(s) _IO_flockfile (s)
#define funlockfile(s) _IO_funlockfile (s)
/* Define a line parsing function using the common code
used in the nss_files module. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,92,96,98,99,2000,2005 Free Software Foundation, Inc.
/* Copyright (C) 1991,92,96,98,99,2000,2005,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -20,10 +20,8 @@
#include <stdio.h>
#include <grp.h>
#ifdef USE_IN_LIBIO
# define flockfile(s) _IO_flockfile (s)
# define funlockfile(s) _IO_funlockfile (s)
#endif
#define flockfile(s) _IO_flockfile (s)
#define funlockfile(s) _IO_funlockfile (s)
#define _S(x) x ? x : ""

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1994,95,97,2000,01,02 Free Software Foundation, Inc.
/* Copyright (C) 1994,1995,1997,2000-2002,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -63,11 +63,7 @@ writeio (void *cookie, const char *buf, size_t n)
Returns zero if successful, nonzero if not. */
static int
seekio (void *cookie,
#ifdef USE_IN_LIBIO
_IO_off64_t *pos,
#else
fpos_t *pos,
#endif
int whence)
{
error_t err = __io_seek ((file_t) cookie, *pos, whence, pos);
@ -86,12 +82,8 @@ closeio (void *cookie)
return 0;
}
#ifdef USE_IN_LIBIO
#include "../libio/libioP.h"
#define fopencookie _IO_fopencookie
#else
#define cookie_io_functions_t __io_functions
#endif
static const cookie_io_functions_t funcsio =
{ readio, writeio, seekio, closeio };

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,94,97,2000,01 Free Software Foundation, Inc.
/* Copyright (C) 1991,94,97,2000,01,11 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -21,9 +21,7 @@
#include <string.h>
#include <hurd.h>
#ifdef USE_IN_LIBIO
# include <libioP.h>
#endif
#include <libioP.h>
static ssize_t
do_write (void *cookie, const char *buf, size_t n)
@ -42,8 +40,6 @@ vpprintf (io_t port, const char *format, va_list arg)
{
int done;
#ifdef USE_IN_LIBIO
struct locked_FILE
{
struct _IO_cookie_file cfile;
@ -60,24 +56,5 @@ vpprintf (io_t port, const char *format, va_list arg)
done = _IO_vfprintf (&temp_f.cfile.__fp.file, format, arg);
#else
FILE f;
/* Create an unbuffered stream talking to PORT on the stack. */
memset ((void *) &f, 0, sizeof (f));
f.__magic = _IOMAGIC;
f.__mode.__write = 1;
f.__cookie = (void *) port;
f.__room_funcs = __default_room_functions;
f.__io_funcs.__write = do_write;
f.__seen = 1;
f.__userbuf = 1;
/* vfprintf will use a buffer on the stack for the life of the call. */
done = vfprintf (&f, format, arg);
#endif
return done;
}

View File

@ -1,5 +1,5 @@
/* Handle configuration data.
Copyright (C) 1997-2003, 2005, 2006 Free Software Foundation, Inc.
Copyright (C) 1997-2003, 2005, 2006, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -90,10 +90,8 @@ static const char builtin_aliases[] =
#undef BUILTIN_ALIAS
};
#ifdef USE_IN_LIBIO
# include <libio/libioP.h>
# define __getdelim(line, len, c, fp) _IO_getdelim (line, len, c, fp)
#endif
#include <libio/libioP.h>
#define __getdelim(line, len, c, fp) _IO_getdelim (line, len, c, fp)
/* Value of the GCONV_PATH environment variable. */

View File

@ -216,11 +216,6 @@
# define internal_function /* empty */
#endif
/* Prepare for the case that `__builtin_expect' is not available. */
#ifndef HAVE_BUILTIN_EXPECT
# define __builtin_expect(expr, val) (expr)
#endif
/* Determine the return address. */
#define RETURN_ADDRESS(nr) \
__builtin_extract_return_addr (__builtin_return_address (nr))
@ -460,11 +455,7 @@ for linking")
# define attribute_hidden
#endif
#ifdef HAVE_TLS_MODEL_ATTRIBUTE
# define attribute_tls_model_ie __attribute__ ((tls_model ("initial-exec")))
#else
# define attribute_tls_model_ie
#endif
#define attribute_tls_model_ie __attribute__ ((tls_model ("initial-exec")))
#define attribute_relro __attribute__ ((section (".data.rel.ro")))
@ -794,22 +785,12 @@ for linking")
# define libnss_nisplus_hidden_data_ver(local, name)
#endif
#ifdef HAVE_BUILTIN_REDIRECTION
# define libc_hidden_builtin_proto(name, attrs...) libc_hidden_proto (name, ##attrs)
# define libc_hidden_builtin_def(name) libc_hidden_def (name)
# define libc_hidden_builtin_weak(name) libc_hidden_weak (name)
# define libc_hidden_builtin_ver(local, name) libc_hidden_ver (local, name)
# ifdef __ASSEMBLER__
# define HIDDEN_BUILTIN_JUMPTARGET(name) HIDDEN_JUMPTARGET(name)
# endif
#else
# define libc_hidden_builtin_proto(name, attrs...)
# define libc_hidden_builtin_def(name)
# define libc_hidden_builtin_weak(name)
# define libc_hidden_builtin_ver(local, name)
# ifdef __ASSEMBLER__
# define HIDDEN_BUILTIN_JUMPTARGET(name) JUMPTARGET(name)
# endif
#define libc_hidden_builtin_proto(name, attrs...) libc_hidden_proto (name, ##attrs)
#define libc_hidden_builtin_def(name) libc_hidden_def (name)
#define libc_hidden_builtin_weak(name) libc_hidden_weak (name)
#define libc_hidden_builtin_ver(local, name) libc_hidden_ver (local, name)
#ifdef __ASSEMBLER__
# define HIDDEN_BUILTIN_JUMPTARGET(name) HIDDEN_JUMPTARGET(name)
#endif
#if defined NOT_IN_libc && defined IS_IN_libutil

View File

@ -5,7 +5,7 @@
#include_next <tls.h>
#if HAVE___THREAD && (!defined NOT_IN_libc || defined IS_IN_libpthread)
#if !defined NOT_IN_libc || defined IS_IN_libpthread
# define USE___THREAD 1

View File

@ -1,5 +1,5 @@
/* Header describing internals of libintl library.
Copyright (C) 1995-1999, 2000, 2001, 2004-2005, 2007
Copyright (C) 1995-1999, 2000, 2001, 2004-2005, 2007, 2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
@ -54,12 +54,6 @@
# define attribute_hidden
#endif
/* Tell the compiler when a conditional or integer expression is
almost always true or almost always false. */
#ifndef HAVE_BUILTIN_EXPECT
# define __builtin_expect(expr, val) (expr)
#endif
#ifndef W
# define W(flag, data) ((flag) ? SWAP (data) : (data))
#endif

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996-2000, 2002, 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1996-2000, 2002-2004, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -44,12 +44,6 @@
# define internal_function
#endif
/* Tell the compiler when a conditional or integer expression is
almost always true or almost always false. */
#ifndef HAVE_BUILTIN_EXPECT
# define __builtin_expect(expr, val) (expr)
#endif
/* Encoding of locale name parts. */
#define XPG_NORM_CODESET 1
#define XPG_CODESET 2

View File

@ -1,5 +1,5 @@
/* Locale object representing the global locale controlled by setlocale.
Copyright (C) 2002, 2006, 2008, 2010 Free Software Foundation, Inc.
Copyright (C) 2002, 2006, 2008, 2010, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -60,16 +60,6 @@ struct __locale_struct _nl_global_locale attribute_hidden =
};
#include <tls.h>
#if HAVE___THREAD
/* The tsd macros don't permit an initializer. */
__thread __locale_t __libc_tsd_LOCALE = &_nl_global_locale;
#else
__libc_tsd_define (, __locale_t, LOCALE)
/* This is a bad kludge presuming the variable name used by the macros.
Using typeof makes sure to barf if we do not match the macro definition.
This ifndef is a further bad kludge for Hurd, where there is an explicit
initialization. */
# ifndef _HURD_THREADVAR_H
__typeof (__libc_tsd_LOCALE_data) __libc_tsd_LOCALE_data = &_nl_global_locale;
# endif
#endif

View File

@ -1,5 +1,5 @@
/* Declarations for internal libc locale interfaces
Copyright (C) 1995-2003, 2005, 2006, 2007, 2008, 2009, 2010
Copyright (C) 1995-2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -216,7 +216,7 @@ __libc_tsd_define (extern, __locale_t, LOCALE)
unused. We can manage this playing some tricks with weak references.
But with thread-local locale settings, it becomes quite ungainly unless
we can use __thread variables. So only in that case do we attempt this. */
#if !defined SHARED && defined HAVE___THREAD && defined HAVE_WEAK_SYMBOLS
#if !defined SHARED && defined HAVE_WEAK_SYMBOLS
# include <tls.h>
# define NL_CURRENT_INDIRECT 1
#endif

View File

@ -1,6 +1,6 @@
/* stdio on a Mach device port.
Translates \n to \r\n on output, echos and translates \r to \n on input.
Copyright (C) 1992,93,94,96,97,2000 Free Software Foundation, Inc.
Copyright (C) 1992,93,94,96,97,2000,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -120,12 +120,10 @@ dealloc_ref (void *cookie)
return 0;
}
#ifndef USE_IN_LIBIO
#define cookie_io_functions_t __io_functions
#define write __write
#define read __read
#define close __close
#endif
FILE *
mach_open_devstream (mach_port_t dev, const char *mode)

View File

@ -1,5 +1,5 @@
/* Malloc implementation for multiple threads without lock contention.
Copyright (C) 2001,2002,2003,2004,2005,2006,2007,2009,2010
Copyright (C) 2001,2002,2003,2004,2005,2006,2007,2009,2010,2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Wolfram Gloger <wg@malloc.de>, 2001.
@ -484,29 +484,6 @@ ptmalloc_init (void)
#endif
ptmalloc_init_minimal();
#ifndef NO_THREADS
# if defined _LIBC
/* We know __pthread_initialize_minimal has already been called,
and that is enough. */
# define NO_STARTER
# endif
# ifndef NO_STARTER
/* With some threads implementations, creating thread-specific data
or initializing a mutex may call malloc() itself. Provide a
simple starter version (realloc() won't work). */
save_malloc_hook = __malloc_hook;
save_memalign_hook = __memalign_hook;
save_free_hook = __free_hook;
__malloc_hook = malloc_starter;
__memalign_hook = memalign_starter;
__free_hook = free_starter;
# ifdef _LIBC
/* Initialize the pthreads interface. */
if (__pthread_initialize != NULL)
__pthread_initialize();
# endif /* !defined _LIBC */
# endif /* !defined NO_STARTER */
#endif /* !defined NO_THREADS */
mutex_init(&main_arena.mutex);
main_arena.next = &main_arena;
@ -526,15 +503,6 @@ ptmalloc_init (void)
tsd_key_create(&arena_key, NULL);
tsd_setspecific(arena_key, (Void_t *)&main_arena);
thread_atfork(ptmalloc_lock_all, ptmalloc_unlock_all, ptmalloc_unlock_all2);
#ifndef NO_THREADS
# ifndef NO_STARTER
__malloc_hook = save_malloc_hook;
__memalign_hook = save_memalign_hook;
__free_hook = save_free_hook;
# else
# undef NO_STARTER
# endif
#endif
#ifdef _LIBC
secure = __libc_enable_secure;
s = NULL;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
/* Copyright (C) 1997,1999-2003,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -21,9 +21,7 @@
#include <set-hooks.h>
#include <libc-internal.h>
#ifdef USE_IN_LIBIO
# include "../libio/libioP.h"
#endif
#include "../libio/libioP.h"
DEFINE_HOOK (__libc_subfreeres, (void));
@ -40,9 +38,7 @@ __libc_freeres (void)
{
void * const *p;
#ifdef USE_IN_LIBIO
_IO_cleanup ();
#endif
RUN_HOOK (__libc_subfreeres, ());

View File

@ -1,5 +1,5 @@
/* 4.4BSD utility functions for error messages.
Copyright (C) 1995,96,98,2001,02 Free Software Foundation, Inc.
Copyright (C) 1995,1996,1998,2001,2002,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -24,11 +24,9 @@
#include <string.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
# define flockfile(s) _IO_flockfile (s)
# define funlockfile(s) _IO_funlockfile (s)
#endif
#include <wchar.h>
#define flockfile(s) _IO_flockfile (s)
#define funlockfile(s) _IO_funlockfile (s)
extern char *__progname;
@ -40,11 +38,10 @@ extern char *__progname;
va_end (ap); \
}
#ifdef USE_IN_LIBIO
static void
convert_and_print (const char *format, __gnuc_va_list ap)
{
# define ALLOCA_LIMIT 2000
#define ALLOCA_LIMIT 2000
size_t len;
wchar_t *wformat = NULL;
mbstate_t st;
@ -85,13 +82,11 @@ convert_and_print (const char *format, __gnuc_va_list ap)
__vfwprintf (stderr, wformat, ap);
}
#endif
void
vwarnx (const char *format, __gnuc_va_list ap)
{
flockfile (stderr);
#ifdef USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
{
__fwprintf (stderr, L"%s: ", __progname);
@ -99,7 +94,6 @@ vwarnx (const char *format, __gnuc_va_list ap)
putwc_unlocked (L'\n', stderr);
}
else
#endif
{
fprintf (stderr, "%s: ", __progname);
if (format)
@ -116,7 +110,6 @@ vwarn (const char *format, __gnuc_va_list ap)
int error = errno;
flockfile (stderr);
#ifdef USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
{
__fwprintf (stderr, L"%s: ", __progname);
@ -129,7 +122,6 @@ vwarn (const char *format, __gnuc_va_list ap)
__fwprintf (stderr, L"%m\n");
}
else
#endif
{
fprintf (stderr, "%s: ", __progname);
if (format)

View File

@ -37,10 +37,8 @@ static char sccsid[] = "@(#)getttyent.c 8.1 (Berkeley) 6/4/93";
#include <ctype.h>
#include <string.h>
#ifdef USE_IN_LIBIO
# define flockfile(s) _IO_flockfile (s)
# define funlockfile(s) _IO_funlockfile (s)
#endif
#define flockfile(s) _IO_flockfile (s)
#define funlockfile(s) _IO_funlockfile (s)
static char zapchar;
static FILE *tf;

View File

@ -25,10 +25,8 @@
#include <string.h>
#include <sys/types.h>
#ifdef USE_IN_LIBIO
# define flockfile(s) _IO_flockfile (s)
# define funlockfile(s) _IO_funlockfile (s)
#endif
#define flockfile(s) _IO_flockfile (s)
#define funlockfile(s) _IO_funlockfile (s)
#undef __setmntent
#undef __endmntent

View File

@ -1,3 +1,14 @@
2011-09-10 Ulrich Drepper <drepper@gmail.com>
* tst-tls1.c: Support for __thread is now mandatory.
* tst-tls2.c: Likewise.
* tst-tls3.c: Likewise.
* tst-tls3mod.c: Likewise.
* tst-tls4.c: Likewise.
* tst-tls4moda.c: Likewise.
* tst-tls4modb.c: Likewise.
* tst-tls5.h: Likewise.
2011-09-08 Ulrich Drepper <drepper@gmail.com>
[BZ #12403]

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@ -22,7 +22,6 @@
#include <stdlib.h>
#if HAVE___THREAD
struct test_s
{
int a;
@ -52,19 +51,11 @@ tf (void *arg)
return NULL;
}
#endif
int
do_test (void)
{
#if !HAVE___THREAD
puts ("No __thread support in compiler, test skipped.");
return 0;
#else
if (s.a != INIT_A || s.b != INIT_B)
{
puts ("initial value of s in main thread wrong");
@ -114,7 +105,6 @@ do_test (void)
}
return 0;
#endif
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@ -25,7 +25,6 @@
#include <stdlib.h>
#include <unistd.h>
#if HAVE___THREAD
#define N 10
static pthread_t th[N];
@ -106,18 +105,11 @@ tf (void *arg)
return NULL;
}
#endif
int
do_test (void)
{
#if !HAVE___THREAD
puts ("No __thread support in compiler, test skipped.");
return 0;
#else
if (pthread_barrier_init (&b, NULL, N + 1) != 0)
{
puts ("barrier_init failed");
@ -207,7 +199,6 @@ do_test (void)
}
return 0;
#endif
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@ -73,13 +73,6 @@ int nsigs;
int
do_test (void)
{
#if !HAVE___THREAD
puts ("No __thread support in compiler, test skipped.");
return 0;
#else
if ((uintptr_t) pthread_self () & (TCB_ALIGNMENT - 1))
{
puts ("initial thread's struct pthread not aligned enough");
@ -206,7 +199,6 @@ do_test (void)
}
return 0;
#endif
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@ -26,7 +26,6 @@
#include <unistd.h>
#include <pthreaddef.h>
#if HAVE___THREAD
extern pthread_barrier_t b;
@ -88,5 +87,3 @@ tf (void *arg)
return NULL;
}
#endif

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
@ -25,7 +25,6 @@
#include <unistd.h>
#include <tls.h>
#if HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
#define N 3
@ -181,11 +180,4 @@ do_test (void)
#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#else
#define TEST_FUNCTION 0
#endif
#include "../test-skeleton.c"

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
@ -22,7 +22,6 @@
#include <unistd.h>
#include <tls.h>
#if HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
static __thread unsigned char foo [32]
__attribute__ ((tls_model ("initial-exec"), aligned (sizeof (void *))));
@ -35,7 +34,7 @@ test1 (void)
for (s = 0; s < sizeof (foo); ++s)
{
if (foo [s])
abort ();
abort ();
foo [s] = s;
}
}
@ -48,9 +47,7 @@ test2 (void)
for (s = 0; s < sizeof (foo); ++s)
{
if (foo [s] != s)
abort ();
abort ();
foo [s] = sizeof (foo) - s;
}
}
#endif

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
@ -22,7 +22,6 @@
#include <unistd.h>
#include <tls.h>
#if HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
static int i;
int bar;
@ -44,7 +43,7 @@ test1 (void)
for (s = 0; s < sizeof (foo) / sizeof (void *); ++s)
{
if (foo [s])
abort ();
abort ();
foo [s] = &foo[s];
}
}
@ -57,9 +56,7 @@ test2 (void)
for (s = 0; s < sizeof (foo) / sizeof (void *); ++s)
{
if (foo [s] != &foo [s])
abort ();
abort ();
foo [s] = &foo [s ^ 1];
}
}
#endif

View File

@ -2,7 +2,6 @@
#include <stdlib.h>
#include <tls.h>
#if HAVE___THREAD
struct tls_obj
{
@ -24,5 +23,3 @@ tls_register_##x (void) \
tls_registry[i].size = sizeof (x); \
tls_registry[i].align = __alignof__ (x); \
}
#endif

View File

@ -74,7 +74,7 @@
# define _(msgid) gettext (msgid)
#endif
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
# include <wchar.h>
#endif
@ -583,7 +583,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
first.next = ambig_list;
ambig_list = &first;
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
char *buf = NULL;
size_t buflen = 0;
@ -652,7 +652,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
char *buf;
int n;
#endif
@ -660,7 +660,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
if (argv[d->optind - 1][1] == '-')
{
/* --option */
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
n = __asprintf (&buf, _("\
%s: option '--%s' doesn't allow an argument\n"),
argv[0], pfound->name);
@ -673,7 +673,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
else
{
/* +option or -option */
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
n = __asprintf (&buf, _("\
%s: option '%c%s' doesn't allow an argument\n"),
argv[0], argv[d->optind - 1][0],
@ -686,7 +686,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
#endif
}
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
if (n >= 0)
{
_IO_flockfile (stderr);
@ -719,7 +719,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
char *buf;
if (__asprintf (&buf, _("\
@ -770,7 +770,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
char *buf;
int n;
#endif
@ -778,7 +778,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
if (argv[d->optind][1] == '-')
{
/* --option */
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
n = __asprintf (&buf, _("%s: unrecognized option '--%s'\n"),
argv[0], d->__nextchar);
#else
@ -789,7 +789,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
else
{
/* +option or -option */
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
n = __asprintf (&buf, _("%s: unrecognized option '%c%s'\n"),
argv[0], argv[d->optind][0], d->__nextchar);
#else
@ -798,7 +798,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
#endif
}
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
if (n >= 0)
{
_IO_flockfile (stderr);
@ -836,19 +836,19 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
char *buf;
int n;
#endif
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
n = __asprintf (&buf, _("%s: invalid option -- '%c'\n"),
argv[0], c);
#else
fprintf (stderr, _("%s: invalid option -- '%c'\n"), argv[0], c);
#endif
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
if (n >= 0)
{
_IO_flockfile (stderr);
@ -894,7 +894,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
char *buf;
if (__asprintf (&buf,
@ -968,7 +968,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
char *buf;
if (__asprintf (&buf, _("%s: option '-W %s' is ambiguous\n"),
@ -1008,7 +1008,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
char *buf;
if (__asprintf (&buf, _("\
@ -1047,7 +1047,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
char *buf;
if (__asprintf (&buf, _("\
@ -1122,7 +1122,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
#if defined _LIBC
char *buf;
if (__asprintf (&buf, _("\

View File

@ -1,5 +1,5 @@
/* POSIX.2 wordexp implementation.
Copyright (C) 1997-2003, 2005, 2006, 2008 Free Software Foundation, Inc.
Copyright (C) 1997-2003,2005,2006,2008,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Tim Waugh <tim@cyberelk.demon.co.uk>.
@ -38,9 +38,7 @@
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
#include <wchar.h>
#include <wordexp.h>
#include <kernel-features.h>
@ -854,7 +852,7 @@ exec_comm_child (char *comm, int *fildes, int showerr, int noexec)
__close (fd);
}
/* Be paranoid. Check that we actually opened the /dev/null
device. */
device. */
if (__builtin_expect (__fxstat64 (_STAT_VER, STDERR_FILENO, &st), 0) != 0
|| __builtin_expect (S_ISCHR (st.st_mode), 1) == 0
#if defined DEV_NULL_MAJOR && defined DEV_NULL_MINOR
@ -862,8 +860,8 @@ exec_comm_child (char *comm, int *fildes, int showerr, int noexec)
#endif
)
/* It's not the /dev/null device. Stop right here. The
problem is: how do we stop? We use _exit() with an
hopefully unusual exit code. */
problem is: how do we stop? We use _exit() with an
hopefully unusual exit code. */
_exit (90);
}
@ -1062,7 +1060,7 @@ exec_comm (char *comm, char **word, size_t *word_length, size_t *max_length,
if (copying == 3)
{
/* Nothing but (IFS) newlines since the last field,
so delimit it here before starting new word */
so delimit it here before starting new word */
if (w_addword (pwordexp, *word) == WRDE_NOSPACE)
goto no_space;
@ -1089,7 +1087,7 @@ exec_comm (char *comm, char **word, size_t *word_length, size_t *max_length,
/* Ensure we don't go back further than the beginning of the
substitution (i.e. remove maxnewlines bytes at most) */
while (maxnewlines-- != 0 &&
*word_length > 0 && (*word)[*word_length - 1] == '\n')
*word_length > 0 && (*word)[*word_length - 1] == '\n')
{
(*word)[--*word_length] = '\0';
@ -1577,7 +1575,7 @@ envsubst:
if (expand_pattern)
{
/* We need to perform tilde expansion, parameter expansion,
command substitution, and arithmetic expansion. We also
command substitution, and arithmetic expansion. We also
have to be a bit careful with wildcard characters, as
pattern might be given to fnmatch soon. To do this, we
convert quotes to escapes. */
@ -1982,7 +1980,7 @@ envsubst:
field_end = field_begin + strcspn (field_begin, ifs);
/* Set up pointer to the character after end of field and
skip whitespace IFS after it. */
skip whitespace IFS after it. */
next_field = field_end + strspn (field_end, ifs_white);
/* Skip at most one non-whitespace IFS character after the field */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1996-1999, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -21,10 +21,8 @@
#include <stdio.h>
#include <pwd.h>
#ifdef USE_IN_LIBIO
# define flockfile(s) _IO_flockfile (s)
# define funlockfile(s) _IO_funlockfile (s)
#endif
#define flockfile(s) _IO_flockfile (s)
#define funlockfile(s) _IO_funlockfile (s)
/* Define a line parsing function using the common code
used in the nss_files module. */

View File

@ -2,11 +2,6 @@
libc {
GLIBC_2.0 {
%if !HAVE___THREAD
# global variables
_h_errno;
%endif
_res;
# helper functions
@ -17,9 +12,6 @@ libc {
# variables in normal name space
h_errlist; h_nerr;
%if !HAVE___THREAD
h_errno;
%endif
# h*
herror; hstrerror;
@ -34,10 +26,7 @@ libc {
GLIBC_PRIVATE {
__gai_sigqueue;
%if HAVE___THREAD
# This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
h_errno; __resp;
%endif
__res_maybe_init; __res_iclose;
}

View File

@ -46,9 +46,7 @@
#include <bits/libc-lock.h>
#include "ifreq.h"
#include "res_hconf.h"
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
#include <wchar.h>
#define _PATH_HOSTCONF "/etc/host.conf"

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998, 1999, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -21,10 +21,8 @@
#include <shadow.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# define flockfile(s) _IO_flockfile (s)
# define funlockfile(s) _IO_funlockfile (s)
#endif
#define flockfile(s) _IO_flockfile (s)
#define funlockfile(s) _IO_funlockfile (s)
/* Define a line parsing function using the common code
used in the nss_files module. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1996, 1997, 1998 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992, 1996-1998, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -19,10 +19,8 @@
#include <stdio.h>
#include <shadow.h>
#ifdef USE_IN_LIBIO
# define flockfile(s) _IO_flockfile (s)
# define funlockfile(s) _IO_funlockfile (s)
#endif
#define flockfile(s) _IO_flockfile (s)
#define funlockfile(s) _IO_funlockfile (s)
#define _S(x) x ? x : ""

View File

@ -1,5 +1,5 @@
/* Print floating point number in hexadecimal notation according to ISO C99.
Copyright (C) 1997-2002,2004,2006 Free Software Foundation, Inc.
Copyright (C) 1997-2002,2004,2006,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -35,22 +35,16 @@
/* This defines make it possible to use the same code for GNU C library and
the GNU I/O library. */
#ifdef USE_IN_LIBIO
# include <libioP.h>
# define PUT(f, s, n) _IO_sputn (f, s, n)
# define PAD(f, c, n) (wide ? _IO_wpadn (f, c, n) : INTUSE(_IO_padn) (f, c, n))
#include <libioP.h>
#define PUT(f, s, n) _IO_sputn (f, s, n)
#define PAD(f, c, n) (wide ? _IO_wpadn (f, c, n) : INTUSE(_IO_padn) (f, c, n))
/* We use this file GNU C library and GNU I/O library. So make
names equal. */
# undef putc
# define putc(c, f) (wide \
#undef putc
#define putc(c, f) (wide \
? (int)_IO_putwc_unlocked (c, f) : _IO_putc_unlocked (c, f))
# define size_t _IO_size_t
# define FILE _IO_FILE
#else /* ! USE_IN_LIBIO */
# define PUT(f, s, n) fwrite (s, 1, n, f)
# define PAD(f, c, n) __printf_pad (f, c, n)
ssize_t __printf_pad (FILE *, char pad, int n) __THROW; /* In vfprintf.c. */
#endif /* USE_IN_LIBIO */
#define size_t _IO_size_t
#define FILE _IO_FILE
/* Macros for doing the actual output. */

View File

@ -1,5 +1,5 @@
/* Open a stdio stream on an anonymous temporary file. Generic/POSIX version.
Copyright (C) 1991,1993,1996-2000,2002,2003,2007,2009
Copyright (C) 1991,1993,1996-2000,2002,2003,2007,2009,2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -22,12 +22,10 @@
#include <stdio.h>
#include <unistd.h>
#ifdef USE_IN_LIBIO
# include <iolibio.h>
# define __fdopen INTUSE(_IO_fdopen)
# ifndef tmpfile
# define tmpfile __new_tmpfile
# endif
#include <iolibio.h>
#define __fdopen INTUSE(_IO_fdopen)
#ifndef tmpfile
# define tmpfile __new_tmpfile
#endif
@ -62,7 +60,7 @@ tmpfile (void)
return f;
}
#if defined USE_IN_LIBIO && !defined FLAGS /* Not for tmpfile64. */
#ifndef FLAGS /* Not for tmpfile64. */
# undef tmpfile
# include <shlib-compat.h>
versioned_symbol (libc, __new_tmpfile, tmpfile, GLIBC_2_1);

View File

@ -32,10 +32,8 @@
# define ABORT_INSTRUCTION
#endif
#ifdef USE_IN_LIBIO
# include <libio/libioP.h>
# define fflush(s) _IO_flush_all_lockp (0)
#endif
#include <libio/libioP.h>
#define fflush(s) _IO_flush_all_lockp (0)
/* Exported variable to locate abort message in core files etc. */
struct abort_msg_s *__abort_msg __attribute__ ((nocommon));

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997,1999,2000-2003,2005, 2006 Free Software Foundation, Inc.
/* Copyright (C) 1997,1999-2003,2005,2006,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -23,9 +23,7 @@
#include <stdlib.h>
#include <string.h>
#include <sys/syslog.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
#include <wchar.h>
/* We have global data, protect the modification. */

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2010, Oracle America, Inc.
* Copyright (c) 2010, 2011, Oracle America, Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@ -45,15 +45,13 @@
#include <unistd.h>
#include <libintl.h>
#include <sys/param.h>
#include <wchar.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
#include <rpc/auth.h>
#include <rpc/auth_unix.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
/*
* Unix authenticator operations vector

View File

@ -1,7 +1,7 @@
/*
* clnt_perror.c
*
* Copyright (c) 2010, Oracle America, Inc.
* Copyright (c) 2010, 2011, Oracle America, Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@ -34,11 +34,8 @@
#include <string.h>
#include <libintl.h>
#include <rpc/rpc.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
# include <libio/iolibio.h>
#endif
#include <wchar.h>
#include <libio/iolibio.h>
static char *auth_errmsg (enum auth_stat stat) internal_function;

View File

@ -53,9 +53,7 @@
#include <sys/poll.h>
#include <sys/socket.h>
#include <rpc/pmap_clnt.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
#include <wchar.h>
extern u_long _create_xid (void);

View File

@ -45,9 +45,7 @@
#include <rpc/pmap_clnt.h>
#include <net/if.h>
#include <ifaddrs.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
#include <wchar.h>
#include <fcntl.h>
#ifdef IP_RECVERR

View File

@ -54,9 +54,7 @@
#include <sys/poll.h>
#include <sys/socket.h>
#include <rpc/pmap_clnt.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
#include <wchar.h>
extern u_long _create_xid (void);

View File

@ -41,11 +41,9 @@
#include <rpc/rpc.h>
#include <rpc/clnt.h>
#ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
# define fflush(s) INTUSE(_IO_fflush) (s)
# define __fdopen(fd,m) INTUSE(_IO_fdopen) (fd,m)
#endif
#include <libio/iolibio.h>
#define fflush(s) INTUSE(_IO_fflush) (s)
#define __fdopen(fd,m) INTUSE(_IO_fdopen) (fd,m)
/*
* returns pid, or -1 for failure

View File

@ -41,10 +41,8 @@
#include <sys/socket.h>
#include <netdb.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
# include <libio/iolibio.h>
#endif
#include <wchar.h>
#include <libio/iolibio.h>
struct proglst_
{

View File

@ -45,10 +45,8 @@
#include <errno.h>
#include <stdlib.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
# include <libio/iolibio.h>
#endif
#include <wchar.h>
#include <libio/iolibio.h>
/*
* Ops vector for TCP/IP based rpc service handle

View File

@ -45,10 +45,8 @@
#include <sys/uio.h>
#endif
#ifdef USE_IN_LIBIO
# include <wchar.h>
# include <libio/iolibio.h>
#endif
#include <wchar.h>
#include <libio/iolibio.h>
#define rpc_buffer(xprt) ((xprt)->xp_p1)
#ifndef MAX

View File

@ -46,10 +46,7 @@
#include <errno.h>
#include <stdlib.h>
#include <libintl.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
#include <wchar.h>
/*
* Ops vector for AF_UNIX based rpc service handle

View File

@ -39,13 +39,11 @@
#include <limits.h>
#include <string.h>
#include <libintl.h>
#include <wchar.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
/*
* constants specific to the xdr "protocol"

View File

@ -40,10 +40,7 @@
#include <rpc/xdr.h>
#include <libintl.h>
#include <limits.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
#endif
#include <wchar.h>
#define LASTUNSIGNED ((u_int)0-1)

View File

@ -47,11 +47,8 @@
#include <unistd.h>
#include <rpc/rpc.h>
#include <libintl.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
# include <libio/iolibio.h>
#endif
#include <wchar.h>
#include <libio/iolibio.h>
static bool_t xdrrec_getlong (XDR *, long *);
static bool_t xdrrec_putlong (XDR *, const long *);

View File

@ -39,11 +39,8 @@
#include <rpc/types.h>
#include <rpc/xdr.h>
#include <libintl.h>
#ifdef USE_IN_LIBIO
# include <wchar.h>
# include <libio/iolibio.h>
#endif
#include <wchar.h>
#include <libio/iolibio.h>
#define LASTUNSIGNED ((u_int)0-1)

View File

@ -39,13 +39,11 @@
#include <stdio.h>
#include <rpc/xdr.h>
#ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
# define fflush(s) INTUSE(_IO_fflush) (s)
# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
# define ftell(s) INTUSE(_IO_ftell) (s)
# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
#endif
#include <libio/iolibio.h>
#define fflush(s) INTUSE(_IO_fflush) (s)
#define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
#define ftell(s) INTUSE(_IO_ftell) (s)
#define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
static bool_t xdrstdio_getlong (XDR *, long *);
static bool_t xdrstdio_putlong (XDR *, const long *);