Skip to content

Commit

Permalink
Merge commit 'origin/master' into fedora/master
Browse files Browse the repository at this point in the history
  • Loading branch information
Andreas Schwab committed Aug 10, 2009
2 parents 9b26179 + efa0569 commit 8593003
Show file tree
Hide file tree
Showing 49 changed files with 2,735 additions and 493 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ stamp.*
*.tgz
*.bz2
=*
TAGS
TODO
AUTHORS
copyr-*
Expand Down
107 changes: 107 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,110 @@
2009-08-01 H.J. Lu <hongjiu.lu@intel.com>

* elf/Makefile (distribute): Add tst-audit6.c tst-auditmod6a.c
tst-auditmod6b.c tst-auditmod6c.c tst-audit7.c tst-auditmod7a.c
tst-auditmod7b.c.
(tests): Add tst-audit6 tst-audit7.
(modules-names): Add st-auditmod6a tst-auditmod6b tst-auditmod6c
tst-auditmod7a tst-auditmod7b.
($(objpfx)tst-audit6): New.
($(objpfx)tst-audit6.out): Likewise.
($(objpfx)tst-audit7): Likewise.
($(objpfx)tst-audit7.out): Likewise.
(tst-audit6-ENV): Likewise.
(tst-audit7-ENV): Likewise.
(CFLAGS-tst-auditmod6b.c): Likewise.
(CFLAGS-tst-auditmod6c.c): Likewise.
(CFLAGS-tst-auditmod7b.c): Likewise.
* elf/tst-audit6.c: New file.
* elf/tst-audit7.c: New file.
* elf/tst-auditmod6a.c: New file.
* elf/tst-auditmod6b.c: New file.
* elf/tst-auditmod6c.c: New file.
* elf/tst-auditmod7a.c: New file.
* elf/tst-auditmod7b.c: New file.
* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Move
saving and restoring SSE/AVX registers to ...
* sysdeps/x86_64/dl-trampoline.h: This. New file.

2009-08-07 H.J. Lu <hongjiu.lu@intel.com>

* sysdeps/i386/i686/multiarch/strcspn.S (STRCSPN): Use PIC
only if SHARED is defined.
* sysdeps/i386/i686/multiarch/strspn.S (strspn): Likewise.

2009-08-03 Jim Meyering <meyering@redhat.com>

* sysdeps/i386/configure.in: Use AC_HEADER_CHECK.

2009-08-08 Ulrich Drepper <drepper@redhat.com>

* sysdeps/x86_64/multiarch/strlen.S: Move SSE4.2 version into the same
section as the other functions for this architecture.
* sysdeps/x86_64/multiarch/rawmemchr.S: Likewise.

2009-08-07 Ulrich Drepper <drepper@redhat.com>

* sysdeps/x86_64/strcmp.S: Add support to compile with
USE_SSSE3. In this case palignr is used.
* sysdeps/x86_64/multiarch/strcmp.S (strcmp): If SSE4.3 is not
available but SSSE3 is, pick __str{,n}cmp_ssse3.
* sysdeps/x86_64/multiarch/Makefile [subdir=string] (sysdep_routines):
Add strcmp-ssse3 and strncmp-ssse3.
* sysdeps/x86_64/multiarch/strcmp-ssse3.S: New file.
* sysdeps/x86_64/multiarch/strncmp-ssse3.S: New file.

* sysdeps/x86_64/multiarch/strcspn-c.c (STRCSPN_SSE42): Avoid
warning through fake initialization.

2009-08-07 H.J. Lu <hongjiu.lu@intel.com>

* sysdeps/i386/i686/multiarch/strlen.S (ENTRY): Add the missing "; \".

2009-08-07 Andreas Schwab <schwab@redhat.com>

* elf/dl-lookup.c (do_lookup_x): Enter correct name into table of
unique symbols.

2009-08-05 H.J. Lu <hongjiu.lu@intel.com>

* sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Properly use
EBX from EAX = 1. Handle EAX = 11.

2009-08-07 Andreas Schwab <schwab@redhat.com>

* Makefile (TAGS): Use separate sed -e expressions to avoid \
inside ''.

2009-08-03 H.J. Lu <hongjiu.lu@intel.com>

* sysdeps/i386/i686/multiarch/strcspn.S: Add comments for no
hidden IFUNC functions.
* sysdeps/i386/i686/multiarch/strspn.S: Likewise.

* sysdeps/i386/i686/multiarch/strlen.S: New file.

* sysdeps/i386/i686/multiarch/Makefile [subdir=string]
(sysdep_routines): Add strcspn-c, strpbrk-c, strspn-c, strstr-c, and
strcasestr-c.
(CFLAGS-strcspn-c.c): Define.
(CFLAGS-strpbrk-c.c): Define.
(CFLAGS-strspn-c.c): Define.
(CFLAGS-strstr.c): Define.
(CFLAGS-strcasestr.c): Define.
* sysdeps/i386/i686/multiarch/strcspn-c.c: New file.
* sysdeps/i386/i686/multiarch/strcspn.S: New file.
* sysdeps/i386/i686/multiarch/strpbrk-c.c: New file.
* sysdeps/i386/i686/multiarch/strpbrk.S: New file.
* sysdeps/i386/i686/multiarch/strspn-c.c: New file.
* sysdeps/i386/i686/multiarch/strspn.S: New file.
* sysdeps/i386/i686/multiarch/strstr-c.c: New file.
* sysdeps/i386/i686/multiarch/strstr.c: New file.
* sysdeps/i386/i686/multiarch/strcasestr-c.c: New file.
* sysdeps/i386/i686/multiarch/strcasestr.c: New file.
* sysdeps/x86_64/multiarch/strcspn-c.c (STRCSPN_SSE42): Use
-16L instead of 0xfffffffffffffff0L.
* sysdeps/x86_64/multiarch/strspn-c.c (__strspn_sse42): Likewise.

2009-08-02 Ulrich Drepper <drepper@redhat.com>

* sysdeps/i386/configure.in: Add test for <cpuid.h>.
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -341,9 +341,9 @@ endif

.PHONY: TAGS
TAGS:
scripts/list-sources.sh | sed -n '/Makefile/p;\
scripts/list-sources.sh | sed -n -e '/Makefile/p' \
$(foreach S,[chsSyl] cxx sh bash pl,\
$(subst .,\.,/.$S\(.in\)*$$/p;))' \
$(subst .,\.,-e '/.$S\(.in\)*$$/p')) \
| $(ETAGS) -o $@ -

# Make the distribution tarfile.
Expand Down
24 changes: 21 additions & 3 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
GNU C Library NEWS -- history of user-visible changes. 2009-7-21
GNU C Library NEWS -- history of user-visible changes. 2009-8-8
Copyright (C) 1992-2008, 2009 Free Software Foundation, Inc.
See the end for copying conditions.

Expand All @@ -17,12 +17,20 @@ Version 2.11
Implemented by H.J. Lu.

* New optimized string functions for x86-64: strstr, strcasestr, memcmp,
strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp, strncmp.
strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp (SSE2, SSE4.2),
strncmp (SSE2, SSE4.2).
Contributed by H.J. Lu.

strlen, rawmemchr.
strlen, rawmemchr, strcmp (SSSE3), strncmp (SSSE3).
Implemented by Ulrich Drepper.

* New optimized string functions for x86: strlen, strcspn, strspn, strpbrk,
strstr, strcasestr.
Contributed by H.J. Lu.

* Support for fma instruction in AVX on x86-64.
Implemented by H.J. Lu and Ulrich Drepper.

* AVX support in x86-64 auditing support in ld.so.
Implemented by H.J. Lu.

Expand All @@ -37,6 +45,16 @@ Version 2.11
necessity is every process again.
Implemented by Ulrich Drepper.

* New resolver flag RES_USE_DNSSEC to enable use of verified lookup.
Implemented by Adam Tkac.

* Optimized iconv conversions for S390x.
Implemented by Andreas Krebbel.

* Using condvars with PI mutexes is now more efficient due to kernel
support for requeueing to PI futexes. NPTL support added for x86-64.
Implemented by Ulrich Drepper.


Version 2.10

Expand Down
21 changes: 19 additions & 2 deletions elf/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ distribute := rtld-Rules \
tst-auditmod1.c tst-auditmod3a.c tst-auditmod3b.c \
tst-auditmod4a.c tst-auditmod4b.c \
tst-audit5.c tst-auditmod5a.c tst-auditmod5b.c \
tst-audit6.c tst-auditmod6a.c tst-auditmod6b.c \
tst-auditmod6c.c \
tst-audit7.c tst-auditmod7a.c tst-auditmod7b.c \
order2mod1.c order2mod2.c order2mod3.c order2mod4.c \
tst-stackguard1.c tst-stackguard1-static.c \
tst-array5.c tst-array5-static.c tst-array5dep.c \
Expand Down Expand Up @@ -200,7 +203,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
test-srcs = tst-pathopt
tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog
ifeq (x86_64,$(config-machine))
tests += tst-audit3 tst-audit4 tst-audit5
tests += tst-audit3 tst-audit4 tst-audit5 tst-audit6 tst-audit7
endif
endif
ifeq (yesyes,$(have-fpie)$(build-shared))
Expand Down Expand Up @@ -255,7 +258,9 @@ endif
ifeq (x86_64,$(config-machine))
modules-names += tst-auditmod3a tst-auditmod3b \
tst-auditmod4a tst-auditmod4b \
tst-auditmod5a tst-auditmod5b
tst-auditmod5a tst-auditmod5b \
tst-auditmod6a tst-auditmod6b tst-auditmod6c \
tst-auditmod7a tst-auditmod7b
endif
modules-execstack-yes = tst-execstack-mod
extra-test-objs += $(addsuffix .os,$(strip $(modules-names)))
Expand Down Expand Up @@ -987,6 +992,15 @@ $(objpfx)tst-audit5: $(objpfx)tst-auditmod5a.so
$(objpfx)tst-audit5.out: $(objpfx)tst-auditmod5b.so
tst-audit5-ENV = LD_AUDIT=$(objpfx)tst-auditmod5b.so

$(objpfx)tst-audit6: $(objpfx)tst-auditmod6a.so
$(objpfx)tst-audit6.out: $(objpfx)tst-auditmod6b.so \
$(objpfx)tst-auditmod6c.so
tst-audit6-ENV = LD_AUDIT=$(objpfx)tst-auditmod6b.so:$(objpfx)tst-auditmod6c.so

$(objpfx)tst-audit7: $(objpfx)tst-auditmod7a.so
$(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so
tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so

$(objpfx)tst-global1: $(libdl)
$(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so

Expand Down Expand Up @@ -1134,4 +1148,7 @@ ifeq (yes,$(config-cflags-avx))
CFLAGS-tst-audit4.c += -mavx
CFLAGS-tst-auditmod4a.c += -mavx
CFLAGS-tst-auditmod4b.c += -mavx
CFLAGS-tst-auditmod6b.c += -mavx
CFLAGS-tst-auditmod6c.c += -mavx
CFLAGS-tst-auditmod7b.c += -mavx
endif
2 changes: 1 addition & 1 deletion elf/dl-lookup.c
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ do_lookup_x (const char *undef_name, uint_fast32_t new_hash,
if (table[idx].name == NULL)
{
table[idx].hashval = hash;
table[idx].name = strtab + sym->st_name;
table[idx].name = name;
if ((type_class & ELF_RTYPE_CLASS_COPY) != 0)
{
table[idx].sym = ref;
Expand Down
28 changes: 28 additions & 0 deletions elf/tst-audit6.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/* Test case for x86-64 preserved registers in dynamic linker. */

#include <stdlib.h>
#include <string.h>
#include <cpuid.h>
#include <emmintrin.h>

extern __m128i audit_test (__m128i, __m128i, __m128i, __m128i,
__m128i, __m128i, __m128i, __m128i);

int
main (void)
{
unsigned int eax, ebx, ecx, edx;

/* Run AVX test only if AVX is supported. */
if (__get_cpuid (1, &eax, &ebx, &ecx, &edx)
&& (ecx & bit_AVX))
{
__m128i xmm = _mm_setzero_si128 ();
__m128i ret = audit_test (xmm, xmm, xmm, xmm, xmm, xmm, xmm, xmm);

xmm = _mm_set1_epi32 (0x98abcdef);
if (memcmp (&xmm, &ret, sizeof (ret)))
abort ();
}
return 0;
}
1 change: 1 addition & 0 deletions elf/tst-audit7.c
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "tst-audit6.c"
46 changes: 46 additions & 0 deletions elf/tst-auditmod6a.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/* Test case for x86-64 preserved registers in dynamic linker. */

#include <stdlib.h>
#include <string.h>
#include <emmintrin.h>

__m128i
audit_test (__m128i x0, __m128i x1, __m128i x2, __m128i x3,
__m128i x4, __m128i x5, __m128i x6, __m128i x7)
{
__m128i xmm;

xmm = _mm_set1_epi32 (0x100);
if (memcmp (&xmm, &x0, sizeof (xmm)))
abort ();

xmm = _mm_set1_epi32 (0x101);
if (memcmp (&xmm, &x1, sizeof (xmm)))
abort ();

xmm = _mm_set1_epi32 (0x102);
if (memcmp (&xmm, &x2, sizeof (xmm)))
abort ();

xmm = _mm_set1_epi32 (0x103);
if (memcmp (&xmm, &x3, sizeof (xmm)))
abort ();

xmm = _mm_set1_epi32 (0x104);
if (memcmp (&xmm, &x4, sizeof (xmm)))
abort ();

xmm = _mm_set1_epi32 (0x105);
if (memcmp (&xmm, &x5, sizeof (xmm)))
abort ();

xmm = _mm_set1_epi32 (0x106);
if (memcmp (&xmm, &x6, sizeof (xmm)))
abort ();

xmm = _mm_set1_epi32 (0x107);
if (memcmp (&xmm, &x7, sizeof (xmm)))
abort ();

return _mm_setzero_si128 ();
}
Loading

0 comments on commit 8593003

Please sign in to comment.