[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r10319 - in /trunk: libc/ libc/elf/ libc/po/ libc/stdio-common/ libc/string/ libc/sysdeps/i386/ libc/sysdeps/i386/i686/multi...



Author: joseph
Date: Mon Apr 26 13:32:32 2010
New Revision: 10319

Log:
Merge changes between r10245 and r10318 from /fsf/trunk.

Added:
    trunk/libc/sysdeps/i386/i686/multiarch/Versions
      - copied unchanged from r10318, fsf/trunk/libc/sysdeps/i386/i686/multiarch/Versions
    trunk/libc/sysdeps/i386/i686/multiarch/s_fma-fma.c
      - copied unchanged from r10318, fsf/trunk/libc/sysdeps/i386/i686/multiarch/s_fma-fma.c
    trunk/libc/sysdeps/i386/i686/multiarch/s_fma.c
      - copied unchanged from r10318, fsf/trunk/libc/sysdeps/i386/i686/multiarch/s_fma.c
    trunk/libc/sysdeps/i386/i686/multiarch/s_fmaf-fma.c
      - copied unchanged from r10318, fsf/trunk/libc/sysdeps/i386/i686/multiarch/s_fmaf-fma.c
    trunk/libc/sysdeps/i386/i686/multiarch/s_fmaf.c
      - copied unchanged from r10318, fsf/trunk/libc/sysdeps/i386/i686/multiarch/s_fmaf.c
    trunk/libc/sysdeps/x86_64/multiarch/memcmp-sse4.S
      - copied unchanged from r10318, fsf/trunk/libc/sysdeps/x86_64/multiarch/memcmp-sse4.S
    trunk/libc/sysdeps/x86_64/multiarch/memcmp.S
      - copied unchanged from r10318, fsf/trunk/libc/sysdeps/x86_64/multiarch/memcmp.S
    trunk/libc/sysdeps/x86_64/multiarch/rtld-memcmp.c
      - copied unchanged from r10318, fsf/trunk/libc/sysdeps/x86_64/multiarch/rtld-memcmp.c
    trunk/ports/sysdeps/unix/sysv/linux/mips/libc-abis
      - copied unchanged from r10318, fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/libc-abis
Removed:
    trunk/ports/libc-abis
Modified:
    trunk/libc/ChangeLog
    trunk/libc/Makeconfig
    trunk/libc/elf/Makefile
    trunk/libc/elf/dl-version.c
    trunk/libc/po/bg.po
    trunk/libc/po/vi.po
    trunk/libc/stdio-common/tst-fmemopen.c
    trunk/libc/string/test-strncmp.c
    trunk/libc/sysdeps/i386/configure
    trunk/libc/sysdeps/i386/configure.in
    trunk/libc/sysdeps/i386/i686/multiarch/Makefile
    trunk/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
    trunk/libc/sysdeps/x86_64/elf/configure
    trunk/libc/sysdeps/x86_64/elf/configure.in
    trunk/libc/sysdeps/x86_64/multiarch/Makefile
    trunk/ports/ChangeLog
    trunk/ports/ChangeLog.mips

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Mon Apr 26 13:32:32 2010
@@ -1,3 +1,66 @@
+2010-04-22  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* po/vi.po: Update from translation team.
+
+2010-04-21  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* po/bg.po: Update from translation team.
+
+2010-04-19  Roland McGrath  <roland@xxxxxxxxxx>
+
+	* elf/Makefile ($(objpfx)noload): Depend on libdl.so.
+
+	* Makeconfig (as-needed, no-as-needed): New variables.
+	(link-libc): Add ld.so inside --as-needed.
+
+	* stdio-common/tst-fmemopen.c (TEST_FILE): Macro removed.
+	(main): Take arguments.  Construct test file name from ARGV[0].
+
+2010-04-15  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* string/test-strncmp.c (check_result): New function.
+	(do_one_test): Use it.
+	(check1): New function.
+	(test_main): Use it.
+	* sysdeps/i386/i686/multiarch/strcmp-sse4.S (crosspage): Properly
+	update source and destination.
+	* sysdeps/i386/i686/multiarch/strcmp-ssse3.S (gobble_ashr_12):
+	Properly check and update counter.
+
+2010-04-14  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/x86_64/elf/configure.in: Move AVX test to ....
+	* sysdeps/i386/configure.in: ...here.
+	* sysdeps/i386/i686/multiarch/Makefile (libm-sysdep_routines): Define.
+	(CFLAGS-s_fma-fma.c): Define.
+	(CFLAGS-s_fmaf-fma.c): Define.
+	* sysdeps/i386/i686/multiarch/Versions: New file.
+	* sysdeps/i386/i686/multiarch/s_fma-fma.c: New file.
+	* sysdeps/i386/i686/multiarch/s_fma.c: New file.
+	* sysdeps/i386/i686/multiarch/s_fmaf-fma.c: New file.
+	* sysdeps/i386/i686/multiarch/s_fmaf.c: New file.
+
+	* sysdeps/x86_64/multiarch/memcmp-sse4.S: Check
+	DATA_CACHE_SIZE_HALF instead of SHARED_CACHE_SIZE_HALF.
+
+2010-04-14  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* elf/dl-version.c (_dl_check_map_versions): Avoid index overflow
+	when dependencies are missing.
+
+2010-04-14  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/x86_64/multiarch/memcmp-sse4.S: Optimized for unaligned
+	data.
+
+2010-04-12  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
+	memcmp-sse4.
+	* sysdeps/x86_64/multiarch/memcmp-sse4.S: New file.
+	* sysdeps/x86_64/multiarch/memcmp.S: New file.
+	* sysdeps/x86_64/multiarch/rtld-memcmp.c: New file.
+
 2010-04-13  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	* sysdeps/x86_64/multiarch/init-arch.h: Pretty printing.

Modified: trunk/libc/Makeconfig
==============================================================================
--- trunk/libc/Makeconfig (original)
+++ trunk/libc/Makeconfig Mon Apr 26 13:32:32 2010
@@ -387,6 +387,14 @@
 have-initfini = yes
 endif
 
+ifeq ($(have-as-needed),yes)
+as-needed := -Wl,--as-needed
+no-as-needed := -Wl,--no-as-needed
+else
+as-needed :=
+no-as-needed :=
+endif
+
 # Installed name of the startup code.
 ifneq ($(have-initfini),yes)
 # When not having init/fini, there is just one startfile, called crt0.o.
@@ -484,7 +492,8 @@
 # run the linked programs.
 link-libc = -Wl,-rpath-link=$(rpath-link) \
 	    $(common-objpfx)libc.so$(libc.so-version) \
-	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
+	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) \
+	    $(as-needed) $(common-objpfx)elf/ld.so $(no-as-needed) $(gnulib)
 # This is how to find at build-time things that will be installed there.
 rpath-dirs = math elf dlfcn nss nis rt resolv crypt
 endif

Modified: trunk/libc/elf/Makefile
==============================================================================
--- trunk/libc/elf/Makefile (original)
+++ trunk/libc/elf/Makefile Mon Apr 26 13:32:32 2010
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2007, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1995-2007,2008,2009,2010 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
@@ -660,7 +660,7 @@
 vismain-ENV = EGLIBC_TEST_LD_PRELOAD=$(addprefix $(objpfx),vismod3.so)
 vismain-WRAPPER = $(..)scripts/run-with-env.sh
 
-$(objpfx)noload: $(objpfx)testobj1.so
+$(objpfx)noload: $(objpfx)testobj1.so $(common-objpfx)dlfcn/libdl.so
 LDFLAGS-noload = -rdynamic
 $(objpfx)noload.out: $(objpfx)testobj5.so
 

Modified: trunk/libc/elf/dl-version.c
==============================================================================
--- trunk/libc/elf/dl-version.c (original)
+++ trunk/libc/elf/dl-version.c Mon Apr 26 13:32:32 2010
@@ -322,10 +322,14 @@
 	      while (1)
 		{
 		  ElfW(Half) ndx = aux->vna_other & 0x7fff;
-		  map->l_versions[ndx].hash = aux->vna_hash;
-		  map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
-		  map->l_versions[ndx].name = &strtab[aux->vna_name];
-		  map->l_versions[ndx].filename = &strtab[ent->vn_file];
+		  /* In trace mode, dependencies may be missing.  */
+		  if (__builtin_expect (ndx < map->l_nversions, 1))
+		    {
+		      map->l_versions[ndx].hash = aux->vna_hash;
+		      map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
+		      map->l_versions[ndx].name = &strtab[aux->vna_name];
+		      map->l_versions[ndx].filename = &strtab[ent->vn_file];
+		    }
 
 		  if (aux->vna_next == 0)
 		    /* No more symbols.  */

Modified: trunk/libc/po/bg.po
==============================================================================
--- trunk/libc/po/bg.po (original)
+++ trunk/libc/po/bg.po Mon Apr 26 13:32:32 2010
@@ -6,9 +6,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: libc 2.10.1\n"
+"Project-Id-Version: libc 2.11.1\n"
 "POT-Creation-Date: 2009-02-06 12:40-0800\n"
-"PO-Revision-Date: 2009-06-23 01:27+0300\n"
+"PO-Revision-Date: 2010-04-21 22:47+0300\n"
 "Last-Translator: Roumen Petrov <transl@xxxxxxxxxxxxxxxxx>\n"
 "Language-Team: Bulgarian <dict@xxxxxxxxxx>\n"
 "MIME-Version: 1.0\n"
@@ -1467,7 +1467,7 @@
 #: locale/programs/charmap.c:258
 #, c-format
 msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
-msgstr "изображението на знаците \"%s\" не е съвместимо с ASCII, локалът не е съобразно ISO C\n"
+msgstr "изображението на знаците \"%s\" не е съвместимо с ASCII, езиковата настройка не е съобразно ИСО Си\n"
 
 #: locale/programs/charmap.c:337
 #, c-format
@@ -2185,7 +2185,7 @@
 #: locale/programs/ld-ctype.c:3780
 #, c-format
 msgid "%s: transliteration data from locale `%s' not available"
-msgstr "%s: не са налични данни за транслитерация от локал \"%s\""
+msgstr "%s: не са налични данни за транслитерация от езикова настройка \"%s\""
 
 #: locale/programs/ld-ctype.c:3881
 #, c-format
@@ -2363,7 +2363,7 @@
 
 #: locale/programs/linereader.c:410
 msgid "garbage at end of character code specification"
-msgstr "боклук в края при уточняване на кода на знака"
+msgstr "боклук в края, при уточняване на кода на знака"
 
 #: locale/programs/linereader.c:496
 msgid "unterminated symbolic name"
@@ -2397,7 +2397,7 @@
 
 #: locale/programs/locale.c:76
 msgid "Write names of available locales"
-msgstr "Извеждане на имената на наличните локали"
+msgstr "Извеждане на имената на наличните езикови настройки"
 
 #: locale/programs/locale.c:78
 msgid "Write names of available charmaps"
@@ -2421,7 +2421,7 @@
 
 #: locale/programs/locale.c:87
 msgid "Get locale-specific information."
-msgstr "Получаване на информация специфична за локала."
+msgstr "Получаване на информация характерна за езикова настройка."
 
 #: locale/programs/locale.c:90
 msgid ""
@@ -2434,22 +2434,22 @@
 #: locale/programs/locale.c:194
 #, c-format
 msgid "Cannot set LC_CTYPE to default locale"
-msgstr "За LC_CTYPE не може да се зададе локал по подразбиране"
+msgstr "За LC_CTYPE не може да се зададе езикова настройка по подразбиране"
 
 #: locale/programs/locale.c:196
 #, c-format
 msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "За LC_MESSAGES не може да се зададе локал по подразбиране"
+msgstr "За LC_MESSAGES не може да се зададе езикова настройка по подразбиране"
 
 #: locale/programs/locale.c:209
 #, c-format
 msgid "Cannot set LC_COLLATE to default locale"
-msgstr "За LC_COLLATE не може да се зададе локал по подразбиране"
+msgstr "За LC_COLLATE не може да се зададе езикова настройка по подразбиране"
 
 #: locale/programs/locale.c:225
 #, c-format
 msgid "Cannot set LC_ALL to default locale"
-msgstr "За LC_ALL не може да се зададе локал по подразбиране"
+msgstr "За LC_ALL не може да се зададе езикова настройка по подразбиране"
 
 #: locale/programs/locale.c:518
 #, c-format
@@ -2506,7 +2506,7 @@
 
 #: locale/programs/localedef.c:140
 msgid "Add locales named by parameters to archive"
-msgstr "Добавяне на локалите, указани от параметрите, към архива"
+msgstr "Добавяне, към архива, на езиковите настройки указани от параметрите"
 
 #: locale/programs/localedef.c:141
 msgid "Replace existing archive content"
@@ -2514,7 +2514,7 @@
 
 #: locale/programs/localedef.c:143
 msgid "Remove locales named by parameters from archive"
-msgstr "Премахване на локалите, указани от параметрите, от архива"
+msgstr "Премахване, от архива, на езиковите настройки указани от параметрите"
 
 #: locale/programs/localedef.c:144
 msgid "List content of archive"
@@ -2526,7 +2526,7 @@
 
 #: locale/programs/localedef.c:151
 msgid "Compile locale specification"
-msgstr "Компилира спецификация за локал"
+msgstr "Компилира указания за езикова настройка"
 
 #: locale/programs/localedef.c:154
 msgid ""
@@ -2552,7 +2552,7 @@
 #: locale/programs/localedef.c:599 locale/programs/localedef.c:619
 #, c-format
 msgid "cannot open locale definition file `%s'"
-msgstr "не е възможно да се отвори файл \"%s\" с определения за локал"
+msgstr "не е възможно да се отвори файл \"%s\" с определения за езикова настройка"
 
 #: locale/programs/localedef.c:285
 #, c-format
@@ -2569,18 +2569,18 @@
 msgstr ""
 "Системна директория за изображения на знаци: %s\n"
 "                       изображения на набор: %s\n"
-"                       път за локал        : %s\n"
+"                       път за език. настр. : %s\n"
 "%s"
 
 #: locale/programs/localedef.c:567
 #, c-format
 msgid "circular dependencies between locale definitions"
-msgstr "циклични зависимости между определения за локал"
+msgstr "циклични зависимости между определения за езикова настройка"
 
 #: locale/programs/localedef.c:573
 #, c-format
 msgid "cannot add already read locale `%s' a second time"
-msgstr "не може да се добави, повторно, вече прочетения локал\"%s\""
+msgstr "не може да се добави, повторно, вече прочетена езикова настройка\"%s\""
 
 #: locale/programs/locarchive.c:88 locale/programs/locarchive.c:261
 #, c-format
@@ -2606,7 +2606,7 @@
 #: locale/programs/locarchive.c:156
 #, c-format
 msgid "failed to create new locale archive"
-msgstr "пропадна създаването на нов архив за локал"
+msgstr "пропадна създаването на нов архив за езикова настройка"
 
 #: locale/programs/locarchive.c:168
 #, c-format
@@ -2616,7 +2616,7 @@
 #: locale/programs/locarchive.c:255
 #, c-format
 msgid "cannot map locale archive file"
-msgstr "не може да се изобрази(в паметта) архивния файл за локал"
+msgstr "не може да се изобрази(в паметта) архивния файл за езикова настройка"
 
 #: locale/programs/locarchive.c:331
 #, c-format
@@ -2626,12 +2626,12 @@
 #: locale/programs/locarchive.c:396
 #, c-format
 msgid "cannot extend locale archive file"
-msgstr "не е възможно да се разшири архивния файл за локал"
+msgstr "не е възможно да се разшири архивния файл за езикова настройка"
 
 #: locale/programs/locarchive.c:405
 #, c-format
 msgid "cannot change mode of resized locale archive"
-msgstr "не може да се променят правата за достъп на преоразмерения архивен файл за локал"
+msgstr "не може да се променят правата за достъп на преоразмерения архивен файл за езикова настройка"
 
 #: locale/programs/locarchive.c:413
 #, c-format
@@ -2641,17 +2641,17 @@
 #: locale/programs/locarchive.c:466
 #, c-format
 msgid "cannot open locale archive \"%s\""
-msgstr "не може да се отвори архива за локал \"%s\""
+msgstr "не може да се отвори архива за езикова настройка \"%s\""
 
 #: locale/programs/locarchive.c:471
 #, c-format
 msgid "cannot stat locale archive \"%s\""
-msgstr "не може да се определят атрибутите на архива за локал \"%s\""
+msgstr "не може да се определят атрибутите на архива за езикова настройка \"%s\""
 
 #: locale/programs/locarchive.c:490
 #, c-format
 msgid "cannot lock locale archive \"%s\""
-msgstr "не може да се заключи архива за локал \"%s\""
+msgstr "не може да се заключи архива за езикова настройка \"%s\""
 
 #: locale/programs/locarchive.c:513
 #, c-format
@@ -2661,19 +2661,19 @@
 #: locale/programs/locarchive.c:573
 #, c-format
 msgid "locale '%s' already exists"
-msgstr "локалът \"%s\" вече съществува"
+msgstr "езиковата настройка \"%s\" вече съществува"
 
 #: locale/programs/locarchive.c:804 locale/programs/locarchive.c:819
 #: locale/programs/locarchive.c:831 locale/programs/locarchive.c:843
 #: locale/programs/locfile.c:344
 #, c-format
 msgid "cannot add to locale archive"
-msgstr "не може да се добави към архива за локал"
+msgstr "не може да се добави към архива за езикова настройка"
 
 #: locale/programs/locarchive.c:998
 #, c-format
 msgid "locale alias file `%s' not found"
-msgstr "не е намерен файлът с псевдоними за локал \"%s\""
+msgstr "не е намерен файлът с псевдоними за езикови настройки \"%s\""
 
 #: locale/programs/locarchive.c:1142
 #, c-format
@@ -2698,7 +2698,7 @@
 #: locale/programs/locarchive.c:1233
 #, c-format
 msgid "incomplete set of locale files in \"%s\""
-msgstr "непълно множество от файлове за локал в \"%s\""
+msgstr "непълно множество от файлове за езикови настройки в \"%s\""
 
 #: locale/programs/locarchive.c:1297
 #, c-format
@@ -2708,7 +2708,7 @@
 #: locale/programs/locarchive.c:1367
 #, c-format
 msgid "locale \"%s\" not in archive"
-msgstr "локалът \"%s\" не е в архива"
+msgstr "езиковата настройка \"%s\" не е в архива"
 
 #: locale/programs/locfile.c:132
 #, c-format
@@ -2717,7 +2717,7 @@
 
 #: locale/programs/locfile.c:252
 msgid "syntax error: not inside a locale definition section"
-msgstr "синтактична грешка: извън секция за определяне на локал"
+msgstr "синтактична грешка: извън секция за определяне на езикова настройка"
 
 #: locale/programs/locfile.c:626
 #, c-format
@@ -2740,7 +2740,7 @@
 
 #: locale/programs/locfile.c:786
 msgid "locale name should consist only of portable characters"
-msgstr "името на локал трябва да съдържа само преносими знаци"
+msgstr "името на езикова настройка трябва да съдържа само преносими знаци"
 
 #: locale/programs/locfile.c:805
 msgid "no other keyword shall be specified when `copy' is used"
@@ -6356,7 +6356,7 @@
 "%s: usage is %s [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
 "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
 msgstr ""
-"%s: употребата е %s [ --version ] [ -v ] [ -l локалновреме ] [ -p posix_правило ] \\\n"
+"%s: употребата е %s [ --version ] [ -v ] [ -l местновреме ] [ -p posix_правило ] \\\n"
 "\t[ -d директория ] [ -L високоснисекунди ] [ -y типнагодина ] [ именафайл ... ]\n"
 
 #: timezone/zic.c:494
@@ -6627,7 +6627,7 @@
 
 #: timezone/zic.c:2264
 msgid "too many local time types"
-msgstr "твърде много типове за локално време"
+msgstr "твърде много типове за местно време"
 
 #: timezone/zic.c:2268
 msgid "UTC offset out of range"

Modified: trunk/libc/po/vi.po
==============================================================================
--- trunk/libc/po/vi.po (original)
+++ trunk/libc/po/vi.po Mon Apr 26 13:32:32 2010
@@ -1,14 +1,14 @@
 # Vietnamese translation for LibC.
-# Copyright © 2009 Free Software Foundation, Inc.
+# Copyright © 2010 Free Software Foundation, Inc.
 # This file is distributed under the same license as the glibc package.
-# Clytie Siddall <clytie@xxxxxxxxxxxxxxxx>, 2008-2009.
+# Clytie Siddall <clytie@xxxxxxxxxxxxxxxx>, 2008-2010.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: libc 2.10.1\n"
+"Project-Id-Version: libc 2.11.1\n"
 "Report-Msgid-Bugs-To: http://www.gnu.org/software/libc/bugs.html\n";
 "POT-Creation-Date: 2009-02-06 12:40-0800\n"
-"PO-Revision-Date: 2009-09-19 18:50+0930\n"
+"PO-Revision-Date: 2010-04-22 23:22+0930\n"
 "Last-Translator: Clytie Siddall <clytie@xxxxxxxxxxxxxxxx>\n"
 "Language-Team: Vietnamese <vi-VN@xxxxxxxxxxxxxxxx>\n"
 "MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
 #: argp/argp-help.c:228
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
-msgstr "%.*s: tham số « ARGP_HELP_FMT » cần thiết giá trị"
+msgstr "%.*s: tham số « ARGP_HELP_FMT » yêu cầu một giá trị"
 
 #: argp/argp-help.c:238
 #, c-format

Modified: trunk/libc/stdio-common/tst-fmemopen.c
==============================================================================
--- trunk/libc/stdio-common/tst-fmemopen.c (original)
+++ trunk/libc/stdio-common/tst-fmemopen.c Mon Apr 26 13:32:32 2010
@@ -8,11 +8,10 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 
-#define TEST_FILE "test-1"
-
 int
-main (void)
+main (int argc, char **argv)
 {
+  const char *test_file;
   const char blah[] = "BLAH";
   FILE *fp;
   char *mmap_data;
@@ -20,8 +19,14 @@
   struct stat fs;
   const char *cp;
 
+  /* Construct the test file name based on ARGV[0], which will be
+     an absolute file name in the build directory.  Don't touch the
+     source directory, which might be read-only.  */
+  if (argc != 1 || asprintf (&test_file, "%s.test", argv[0]) < 0)
+    exit (99);
+
   /* setup the physical file, and use it */
-  if ((fp = fopen (TEST_FILE, "w+")) == NULL)
+  if ((fp = fopen (test_file, "w+")) == NULL)
     exit (1);
   if (fwrite (blah, 1, strlen (blah), fp) != strlen (blah))
     exit (2);
@@ -56,7 +61,7 @@
   fclose (fp);
 
   /* Now, mmap the file into a buffer, and do that too */
-  if ((fd = open (TEST_FILE, O_RDONLY)) == -1)
+  if ((fd = open (test_file, O_RDONLY)) == -1)
     exit (3);
   if (fstat (fd, &fs) == -1)
     exit (4);
@@ -105,7 +110,8 @@
 
   munmap (mmap_data, fs.st_size);
 
-  unlink (TEST_FILE);
+  unlink (test_file);
+  free (test_file);
 
   return 0;
 }

Modified: trunk/libc/string/test-strncmp.c
==============================================================================
--- trunk/libc/string/test-strncmp.c (original)
+++ trunk/libc/string/test-strncmp.c Mon Apr 26 13:32:32 2010
@@ -1,5 +1,5 @@
 /* Test and measure strncmp functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@xxxxxxxxxx>, 1999.
 
@@ -51,8 +51,8 @@
   return ret;
 }
 
-static void
-do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n,
+static int
+check_result (impl_t *impl, const char *s1, const char *s2, size_t n,
 	     int exp_result)
 {
   int result = CALL (impl, s1, s2, n);
@@ -63,8 +63,18 @@
       error (0, 0, "Wrong result in function %s %d %d", impl->name,
 	     result, exp_result);
       ret = 1;
-      return;
-    }
+      return -1;
+    }
+
+  return 0;
+}
+
+static void
+do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n,
+	     int exp_result)
+{
+  if (check_result (impl, s1, s2, n, exp_result) < 0)
+    return;
 
   if (HP_TIMING_AVAIL)
     {
@@ -283,12 +293,33 @@
     }
 }
 
+static void
+check1 (void)
+{
+  char *s1 = (char *)(buf1 + 0xb2c);
+  char *s2 = (char *)(buf1 + 0xfd8);
+  size_t i;
+  int exp_result;
+
+  strcpy(s1, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs");
+  strcpy(s2, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkLMNOPQRSTUV");
+
+  for (i = 0; i < 80; i++)
+    {
+      exp_result = simple_strncmp (s1, s2, i);
+      FOR_EACH_IMPL (impl, 0)
+	 check_result (impl, s1, s2, i, exp_result);
+    }
+}
+
 int
 test_main (void)
 {
   size_t i;
 
   test_init ();
+
+  check1 ();
 
   printf ("%23s", "");
   FOR_EACH_IMPL (impl, 0)

Modified: trunk/libc/sysdeps/i386/configure
==============================================================================
--- trunk/libc/sysdeps/i386/configure (original)
+++ trunk/libc/sysdeps/i386/configure Mon Apr 26 13:32:32 2010
@@ -656,3 +656,28 @@
 fi
 { $as_echo "$as_me:$LINENO: result: $libc_cv_as_i686" >&5
 $as_echo "$libc_cv_as_i686" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking for AVX support" >&5
+$as_echo_n "checking for AVX support... " >&6; }
+if test "${libc_cv_cc_avx+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if { ac_try='${CC-cc} -mavx -xc /dev/null -S -o /dev/null'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  libc_cv_cc_avx=yes
+else
+  libc_cv_cc_avx=no
+fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_cc_avx" >&5
+$as_echo "$libc_cv_cc_avx" >&6; }
+if test $libc_cv_cc_avx = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_AVX_SUPPORT 1
+_ACEOF
+
+fi

Modified: trunk/libc/sysdeps/i386/configure.in
==============================================================================
--- trunk/libc/sysdeps/i386/configure.in (original)
+++ trunk/libc/sysdeps/i386/configure.in Mon Apr 26 13:32:32 2010
@@ -55,3 +55,14 @@
 else
   libc_cv_as_i686=no
 fi])
+
+dnl Check if -mavx works.
+AC_CACHE_CHECK(for AVX support, libc_cv_cc_avx, [dnl
+if AC_TRY_COMMAND([${CC-cc} -mavx -xc /dev/null -S -o /dev/null]); then
+  libc_cv_cc_avx=yes
+else
+  libc_cv_cc_avx=no
+fi])
+if test $libc_cv_cc_avx = yes; then
+  AC_DEFINE(HAVE_AVX_SUPPORT)
+fi

Modified: trunk/libc/sysdeps/i386/i686/multiarch/Makefile
==============================================================================
--- trunk/libc/sysdeps/i386/i686/multiarch/Makefile (original)
+++ trunk/libc/sysdeps/i386/i686/multiarch/Makefile Mon Apr 26 13:32:32 2010
@@ -19,3 +19,9 @@
 CFLAGS-strcasestr.c += -msse4
 endif
 endif
+
+ifeq (mathyes,$(subdir)$(config-cflags-avx))
+libm-sysdep_routines += s_fma-fma s_fmaf-fma
+CFLAGS-s_fma-fma.c += -mavx -mfpmath=sse
+CFLAGS-s_fmaf-fma.c += -mavx -mfpmath=sse
+endif

Modified: trunk/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S
==============================================================================
--- trunk/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S (original)
+++ trunk/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S Mon Apr 26 13:32:32 2010
@@ -223,8 +223,8 @@
 	inc	%edx
 	cmp	$15, %edx
 	jle	L(crosspage)
-	add	$16, %edi
-	add	$16, %esi
+	add	%edx, %edi
+	add	%edx, %esi
 	jmp	L(check_offset)
 
 	.p2align 4

Modified: trunk/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
==============================================================================
--- trunk/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S (original)
+++ trunk/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S Mon Apr 26 13:32:32 2010
@@ -1484,17 +1484,18 @@
 	sub	$0xffff, %esi
 	jnz	L(exit)
 
+#ifdef USE_AS_STRNCMP
+	cmp	$16, %ebp
+	lea	-16(%ebp), %ebp
+	jbe	L(more8byteseq)
+#endif
+
 	add	$16, %ecx
 	movdqa	%xmm4, %xmm3
 
 	add	$16, %edi
 	jg	L(nibble_ashr_12)
 
-#ifdef USE_AS_STRNCMP
-	cmp	$16, %ebp
-	lea	-16(%ebp), %ebp
-	jbe	L(more8byteseq)
-#endif
 	movdqa	(%eax, %ecx), %xmm1
 	movdqa	(%edx, %ecx), %xmm2
 	movdqa	%xmm2, %xmm4

Modified: trunk/libc/sysdeps/x86_64/elf/configure
==============================================================================
--- trunk/libc/sysdeps/x86_64/elf/configure (original)
+++ trunk/libc/sysdeps/x86_64/elf/configure Mon Apr 26 13:32:32 2010
@@ -46,29 +46,3 @@
 cat >>confdefs.h <<\_ACEOF
 #define PI_STATIC_AND_HIDDEN 1
 _ACEOF
-
-
-{ $as_echo "$as_me:$LINENO: checking for AVX support" >&5
-$as_echo_n "checking for AVX support... " >&6; }
-if test "${libc_cv_cc_avx+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if { ac_try='${CC-cc} -mavx -xc /dev/null -S -o /dev/null'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  libc_cv_cc_avx=yes
-else
-  libc_cv_cc_avx=no
-fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $libc_cv_cc_avx" >&5
-$as_echo "$libc_cv_cc_avx" >&6; }
-if test $libc_cv_cc_avx = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_AVX_SUPPORT 1
-_ACEOF
-
-fi

Modified: trunk/libc/sysdeps/x86_64/elf/configure.in
==============================================================================
--- trunk/libc/sysdeps/x86_64/elf/configure.in (original)
+++ trunk/libc/sysdeps/x86_64/elf/configure.in Mon Apr 26 13:32:32 2010
@@ -32,14 +32,3 @@
 dnl It is always possible to access static and hidden symbols in an
 dnl position independent way.
 AC_DEFINE(PI_STATIC_AND_HIDDEN)
-
-dnl Check if -mavx works.
-AC_CACHE_CHECK(for AVX support, libc_cv_cc_avx, [dnl
-if AC_TRY_COMMAND([${CC-cc} -mavx -xc /dev/null -S -o /dev/null]); then
-  libc_cv_cc_avx=yes
-else
-  libc_cv_cc_avx=no
-fi])
-if test $libc_cv_cc_avx = yes; then
-  AC_DEFINE(HAVE_AVX_SUPPORT)
-fi

Modified: trunk/libc/sysdeps/x86_64/multiarch/Makefile
==============================================================================
--- trunk/libc/sysdeps/x86_64/multiarch/Makefile (original)
+++ trunk/libc/sysdeps/x86_64/multiarch/Makefile Mon Apr 26 13:32:32 2010
@@ -5,7 +5,7 @@
 
 ifeq ($(subdir),string)
 sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
-		   strend-sse4
+		   strend-sse4 memcmp-sse4
 ifeq (yes,$(config-cflags-sse4))
 sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
 CFLAGS-strcspn-c.c += -msse4

Modified: trunk/ports/ChangeLog
==============================================================================
--- trunk/ports/ChangeLog (original)
+++ trunk/ports/ChangeLog Mon Apr 26 13:32:32 2010
@@ -1,3 +1,7 @@
+2010-04-14  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* libc-abis: Remove.
+
 2010-04-06  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* libc-abis: New.

Modified: trunk/ports/ChangeLog.mips
==============================================================================
--- trunk/ports/ChangeLog.mips (original)
+++ trunk/ports/ChangeLog.mips Mon Apr 26 13:32:32 2010
@@ -1,3 +1,7 @@
+2010-04-14  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/mips/libc-abis: New.
+
 2010-04-06  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/mips/dl-machine.h (VALID_ELF_ABIVERSION,