Skip to content

Commit

Permalink
2.6-3
Browse files Browse the repository at this point in the history
  • Loading branch information
Jakub Jelinek committed May 24, 2007
1 parent 75831cc commit 619b791
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 6 deletions.
6 changes: 6 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
2007-01-15 Jakub Jelinek <jakub@redhat.com>

* elf/dl-open.c (add_to_global): If the main searchlist is 256
entries or more, on each reallocation at least double the size
of the search list rather than growing it linearly.

2007-05-21 Ulrich Drepper <drepper@redhat.com>

* sysdeps/unix/sysv/linux/i386/epoll_pwait.S: New file.
Expand Down
10 changes: 7 additions & 3 deletions elf/dl-open.c
Original file line number Diff line number Diff line change
Expand Up @@ -125,14 +125,18 @@ add_to_global (struct link_map *new)
{
/* We have to extend the existing array of link maps in the
main map. */
size_t new_size = ns->_ns_global_scope_alloc;
if (new_size >= 256 && new_size > to_add + 8)
new_size *= 2;
else
new_size += to_add + 8;
new_global = (struct link_map **)
realloc (ns->_ns_main_searchlist->r_list,
((ns->_ns_global_scope_alloc + to_add + 8)
* sizeof (struct link_map *)));
new_size * sizeof (struct link_map *));
if (new_global == NULL)
goto nomem;

ns->_ns_global_scope_alloc += to_add + 8;
ns->_ns_global_scope_alloc = new_size;
ns->_ns_main_searchlist->r_list = new_global;
}

Expand Down
2 changes: 1 addition & 1 deletion fedora/build-locale-archive.c
Original file line number Diff line number Diff line change
Expand Up @@ -618,7 +618,7 @@ int main ()
closedir (dirp);
fill_archive (&tmpl_ah, cnt, list, primary);
close_archive (&tmpl_ah);
unlink (tmpl_file);
truncate (tmpl_file, 0);
char *argv[] = { "/usr/sbin/tzdata-update", NULL };
execve (argv[0], (char *const *)argv, (char *const *)&argv[1]);
exit (0);
Expand Down
10 changes: 8 additions & 2 deletions fedora/glibc.spec.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
%define glibcrelease 2
%define glibcrelease 3
%define auxarches i586 i686 athlon sparcv9 alphaev6
%define xenarches i686 athlon
%ifarch %{xenarches}
Expand Down Expand Up @@ -1506,7 +1506,7 @@ rm -f *.filelist*
%files -f common.filelist common
%defattr(-,root,root)
%dir %{_prefix}/lib/locale
%attr(0644,root,root) %config(missingok) %{_prefix}/lib/locale/locale-archive.tmpl
%attr(0644,root,root) %verify(not md5 size mtime) %{_prefix}/lib/locale/locale-archive.tmpl
%attr(0644,root,root) %verify(not md5 size mtime mode) %ghost %config(missingok,noreplace) %{_prefix}/lib/locale/locale-archive
%dir %attr(755,root,root) /etc/default
%verify(not md5 size mtime) %config(noreplace) /etc/default/nss
Expand Down Expand Up @@ -1561,6 +1561,12 @@ rm -f *.filelist*
%endif

%changelog
* Thu May 24 2007 Jakub Jelinek <jakub@redhat.com> 2.6-3
- don't use %%config(missingok) for locale-archive.tmpl,
instead of removing it altogether truncate it to zero
size (#240697)
- add a workaround for #210748

* Mon May 21 2007 Jakub Jelinek <jakub@redhat.com> 2.6-2
- restore malloc_set_state backwards compatibility (#239344)
- fix epoll_pwait (BZ#4525)
Expand Down
6 changes: 6 additions & 0 deletions nptl/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
2007-01-15 Jakub Jelinek <jakub@redhat.com>

* pthread_create.c (__pthread_create_2_1): On the first pthread_create
in a process make sure main search list can store at least 256
entries.

2007-05-17 Ulrich Drepper <drepper@redhat.com>

[BZ #4512]
Expand Down
24 changes: 24 additions & 0 deletions nptl/pthread_create.c
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,30 @@ __pthread_create_2_1 (newthread, attr, start_routine, arg)
pd->flags = ((iattr->flags & ~(ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET))
| (self->flags & (ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET)));

/* Hack: realloc the main search list on the first pthread_create call
to minimize the number of global search scope reallocations.
Wastes at most 1KB on 32-bit and 2KB on 64-bit per process
which calls pthread_create. */
if (__builtin_expect (self->header.multiple_threads == 0, 0)
&& GL(dl_ns)[0]._ns_main_searchlist
&& GL(dl_ns)[0]._ns_main_searchlist->r_nlist < 256
&& GL(dl_ns)[0]._ns_global_scope_alloc < 256)
{
struct link_map **new_global = (struct link_map **)
realloc (GL(dl_ns)[0]._ns_global_scope_alloc == 0
? NULL : GL(dl_ns)[0]._ns_main_searchlist->r_list,
256 * sizeof (struct link_map *));
if (new_global != NULL)
{
if (GL(dl_ns)[0]._ns_global_scope_alloc == 0)
memcpy (new_global, GL(dl_ns)[0]._ns_main_searchlist->r_list,
GL(dl_ns)[0]._ns_main_searchlist->r_nlist
* sizeof (struct link_map *));
GL(dl_ns)[0]._ns_global_scope_alloc = 256;
GL(dl_ns)[0]._ns_main_searchlist->r_list = new_global;
}
}

/* Initialize the field for the ID of the thread which is waiting
for us. This is a self-reference in case the thread is created
detached. */
Expand Down

0 comments on commit 619b791

Please sign in to comment.