2003-02-04  Ulrich Drepper  <drepper@redhat.com>

	* iconvdata/Makefile: Add rules to build and run bug-iconv3.
	* iconvdata/bug-iconv3.c: New file.
This commit is contained in:
Ulrich Drepper 2003-02-05 00:03:02 +00:00
parent b33b0d0dfb
commit 6f1cff95e7
6 changed files with 74 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2003-02-04 Ulrich Drepper <drepper@redhat.com>
* iconvdata/Makefile: Add rules to build and run bug-iconv3.
* iconvdata/bug-iconv3.c: New file.
2003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com> 2003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/system.c: New file. * sysdeps/unix/sysv/linux/s390/system.c: New file.

View File

@ -58,7 +58,7 @@ modules.so := $(addsuffix .so, $(modules))
include ../Makeconfig include ../Makeconfig
ifeq (yes,$(build-shared)) ifeq (yes,$(build-shared))
tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv3
test-srcs := tst-table-from tst-table-to test-srcs := tst-table-from tst-table-to
endif endif
@ -321,6 +321,9 @@ $(objpfx)bug-iconv1.out: $(objpfx)gconv-modules \
$(addprefix $(objpfx),$(modules.so)) $(addprefix $(objpfx),$(modules.so))
$(objpfx)bug-iconv2.out: $(objpfx)gconv-modules \ $(objpfx)bug-iconv2.out: $(objpfx)gconv-modules \
$(addprefix $(objpfx),$(modules.so)) $(addprefix $(objpfx),$(modules.so))
$(objpfx)bug-iconv3: $(libdl)
$(objpfx)bug-iconv3.out: $(objpfx)gconv-modules \
$(addprefix $(objpfx),$(modules.so))
$(objpfx)tst-loading.out: $(objpfx)gconv-modules \ $(objpfx)tst-loading.out: $(objpfx)gconv-modules \
$(addprefix $(objpfx),$(modules.so)) $(addprefix $(objpfx),$(modules.so))
$(objpfx)tst-iconv4.out: $(objpfx)gconv-modules \ $(objpfx)tst-iconv4.out: $(objpfx)gconv-modules \

50
iconvdata/bug-iconv3.c Normal file
View File

@ -0,0 +1,50 @@
/* Copyright (C) 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <dlfcn.h>
#include <iconv.h>
#include <stdio.h>
#include <stdlib.h>
#include <gnu/lib-names.h>
static int
do_test (void)
{
/* Get the iconv machinery initialized. */
(void) iconv_open ("ISO-8859-1", "ISO-8859-2");
/* Dynamically load libpthread. */
if (dlopen (LIBPTHREAD_SO, RTLD_NOW) == NULL)
{
printf ("cannot load %s: %s\n", LIBPTHREAD_SO, dlerror ());
exit (1);
}
/* And load some more. This call hang for some configuration since
the internal locking necessary wasn't adequately written to
handle a dynamically loaded libpthread after the first call to
iconv_open. */
(void) iconv_open ("ISO-8859-2", "ISO-8859-3");
return 0;
}
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"

View File

@ -98,11 +98,11 @@ typedef struct
#else #else
#define NONTLS_INIT_TP \ # define NONTLS_INIT_TP \
do { \ do { \
static const tcbhead_t nontls_init_tp \ static const tcbhead_t nontls_init_tp \
= { .multiple_threads = 0 }; \ = { .multiple_threads = 0 }; \
__thread_self = (__typeof (__thread_self)) &nontls_init_tp; \ __thread_self = (__typeof (__thread_self)) &nontls_init_tp; \
} while (0) } while (0)
#endif /* USE_TLS */ #endif /* USE_TLS */

View File

@ -1,5 +1,14 @@
2003-02-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
thread library is available, use correct value to mark initialized
once variable.
2003-02-03 Ulrich Drepper <drepper@redhat.com> 2003-02-03 Ulrich Drepper <drepper@redhat.com>
* allocatestack.c (allocate_stack): Use __getpagesize instead of
__sysconf to determine pagesize.
* pthread_create.c: Include <atomic.h>. * pthread_create.c: Include <atomic.h>.
* allocatestack.c (allocate_stack): Implement coloring of the * allocatestack.c (allocate_stack): Implement coloring of the
allocated stack memory. Rename pagesize to pagesize_m1. It's the allocated stack memory. Rename pagesize to pagesize_m1. It's the

View File

@ -340,7 +340,7 @@ typedef pthread_key_t __libc_key_t;
PTF(__pthread_once) (&(ONCE_CONTROL), INIT_FUNCTION); \ PTF(__pthread_once) (&(ONCE_CONTROL), INIT_FUNCTION); \
else if ((ONCE_CONTROL) == PTHREAD_ONCE_INIT) { \ else if ((ONCE_CONTROL) == PTHREAD_ONCE_INIT) { \
INIT_FUNCTION (); \ INIT_FUNCTION (); \
(ONCE_CONTROL) = !PTHREAD_ONCE_INIT; \ (ONCE_CONTROL) |= 2; \
} \ } \
} while (0) } while (0)