From 45b96dd684f1bc25d3ba113dbe6795b1c4db57f5 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 1 Nov 2011 10:40:53 +0100 Subject: Properly set extra-objs in nscd makefile --- ChangeLog | 4 ++++ nscd/Makefile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b8bfd16..872d4a5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-11-01 Andreas Schwab + + * nscd/Makefile (extra-objs): Make recursively expanded. + 2011-11-01 Ulrich Drepper * posix/tst-rfc3484.c: Add missing __free_in6ai dummy function. diff --git a/nscd/Makefile b/nscd/Makefile index be0afed..284b4fc 100644 --- a/nscd/Makefile +++ b/nscd/Makefile @@ -43,7 +43,7 @@ others += nscd others-pie += nscd install-sbin := nscd -extra-objs := $(nscd-modules:=.o) +extra-objs = $(nscd-modules:=.o) endif -- cgit v1.1 From d91a8b93aaa8a3d2d9b5fd64e111c5a4eb24d2b9 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 1 Nov 2011 10:49:13 +0100 Subject: Ignore libaudit.h when checking for system header use --- ChangeLog | 2 ++ scripts/check-local-headers.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 872d4a5..c8bf9b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2011-11-01 Andreas Schwab + * scripts/check-local-headers.sh: Ignore libaudit.h. + * nscd/Makefile (extra-objs): Make recursively expanded. 2011-11-01 Ulrich Drepper diff --git a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh index b73078d..62831dd 100755 --- a/scripts/check-local-headers.sh +++ b/scripts/check-local-headers.sh @@ -29,7 +29,7 @@ exec ${AWK} -v includedir="$includedir" ' BEGIN { status = 0 exclude = "^" includedir \ - "/(asm[-/]|linux/|selinux/|gd|nss3/|sys/capability\\.h)" + "/(asm[-/]|linux/|selinux/|gd|nss3/|sys/capability\\.h|libaudit\\.h)" } /^[^ ]/ && $1 ~ /.*:/ { obj = $1 } { -- cgit v1.1 From 647776f663e8bb9ee365e0dbabd3702b8cb80bc3 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 1 Nov 2011 18:05:31 +0100 Subject: Account for alloca size rounding in extend_alloca --- ChangeLog | 6 ++++++ elf/dl-deps.c | 8 ++------ include/alloca.h | 10 +++++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index c8bf9b7..a70847e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2011-11-01 Andreas Schwab + * include/alloca.h (stackinfo_alloca_round): Define. + (extend_alloca): Use it. + [_STACK_GROWS_UP]: Correct check for adjacent allocation. + * elf/dl-deps.c (_dl_map_object_deps): Don't round alloca size + here. + * scripts/check-local-headers.sh: Ignore libaudit.h. * nscd/Makefile (extra-objs): Make recursively expanded. diff --git a/elf/dl-deps.c b/elf/dl-deps.c index a1ba3d1..565a339 100644 --- a/elf/dl-deps.c +++ b/elf/dl-deps.c @@ -221,15 +221,11 @@ _dl_map_object_deps (struct link_map *map, if (l->l_searchlist.r_list == NULL && l->l_initfini == NULL && l != map && l->l_ldnum > 0) { - /* 16-align so extend_alloca has a chance to re-use the space. - Note that extend_alloca is broken for recent versions of GCC - on x86: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50938 */ - size_t new_size - = (l->l_ldnum * sizeof (struct link_map *) + 15) & ~15; + size_t new_size = l->l_ldnum * sizeof (struct link_map *); if (new_size > needed_space_bytes) needed_space - = extend_alloca (needed_space, needed_space_bytes, new_size); + = extend_alloca (needed_space, needed_space_bytes, new_size); needed = needed_space; } diff --git a/include/alloca.h b/include/alloca.h index 8350413..f741d25 100644 --- a/include/alloca.h +++ b/include/alloca.h @@ -20,9 +20,13 @@ libc_hidden_proto (__libc_alloca_cutoff) #include +#ifndef stackinfo_alloca_round +# define stackinfo_alloca_round(l) (((l) + 15) & -16) +#endif + #if _STACK_GROWS_DOWN # define extend_alloca(buf, len, newlen) \ - (__typeof (buf)) ({ size_t __newlen = (newlen); \ + (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \ char *__newbuf = __alloca (__newlen); \ if (__newbuf + __newlen == (char *) buf) \ len += __newlen; \ @@ -31,10 +35,10 @@ libc_hidden_proto (__libc_alloca_cutoff) __newbuf; }) #elif _STACK_GROWS_UP # define extend_alloca(buf, len, newlen) \ - (__typeof (buf)) ({ size_t __newlen = (newlen); \ + (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \ char *__newbuf = __alloca (__newlen); \ char *__buf = (buf); \ - if (__buf + __newlen == __newbuf) \ + if (__buf + len == __newbuf) \ { \ len += __newlen; \ __newbuf = __buf; \ -- cgit v1.1