summaryrefslogtreecommitdiff
path: root/libc/string
AgeCommit message (Collapse)Author
2008-09-15- commentary typo fixBernhard Reutner-Fischer
2008-09-13xtensa: The Xtensa-specific strcmp.S file is testing the ↵Chris Zankel
__UCLIBC_HAS_LOCALE__ macro but it does not include <features.h>, so that macro is never defined. This causes problems with strcoll when locale support is enabled.
2008-09-09Add optimized memcpy implementation for sh4 (from Stuart Menefy ↵Carmelo Amoroso
@STMicroelectronics). This implementation is based on 'backward copying'. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2008-09-09Fix some locale multibyte tests failures ad below:Carmelo Amoroso
libc/stdlib/_strtod.c -> tst_wcstod; libc/stdlib/stdlib.c -> tst_mblen, tst_mbtowc, tst_wctomb; libc/stdio/_scanf.c -> tst_swscanf; libc/string/strncmp.c -> tst_wcsncmp; libc/misc/wchar/wchar.c -> tst_mbrlen, tst_mbrtowc, tst_wcswidth. Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2008-07-23- trim any trailing whitespaceBernhard Reutner-Fischer
2008-07-23- fix inline keywordBernhard Reutner-Fischer
2008-06-11Fix two more cases where a libc_hidden_proto was added to string.h whileBernd Schmidt
no libc_hidden_def exists for the function.
2008-06-04This fixes a problem with the move of libc_hidden_proto to string.h.Bernd Schmidt
The obsolete functions bcopy, index, etc. are not supposed to be used within uClibc itself. Hence, there is no libc_hidden_def for them, but the previous patch did not just move libc_hidden_protos, it also added new ones for the legacy functions. As a result, programs which use these functions can no longer link with uClibc. This fixes it by removing the unnecessary libc_hidden_protos. I've also removed all inclusions of <strings.h> from uClibc source files: since we define _GNU_SOURCE, it is sufficient to include <string.h>. We then do not need to duplicate the libc_hidden_proto block in <strings.h>.
2008-06-02fix fallout from libc_hidden_proto removalDenis Vlasenko
2008-06-01fix compile breakage in libc/string/wcscasecmp.cDenis Vlasenko
by adding include <wchar.h> in strcasecmp.c
2008-05-31fix fallout from string.h libc_hidden_proto removalDenis Vlasenko
2008-05-30- cannot really guarantee proper order, so play safe and compile the problematicBernhard Reutner-Fischer
sources separately for now.
2008-05-30- Avoid warning about undefined preprocessor token. No obj-code changes.Bernhard Reutner-Fischer
2008-05-30- Avoid warning about undefined preprocessor token. No obj-code changes.Bernhard Reutner-Fischer
2008-05-23arm memcpy: fix the case when src=dstDenis Vlasenko
2008-05-20- remove old-style definitions. No object-code changes.Bernhard Reutner-Fischer
2008-05-19Moving libc_hidden_proto's into #ifdef UCLIBC_INTERNAL blockDenis Vlasenko
in string.h and strings.h. This caught unguarded string ops in libc/inet/ethers.c __ether_line_w() function. I will wait for fallout reports for a week or so, then continue converting more libc_hidden_proto's.
2008-04-24- fixup asm. No object-code changesBernhard Reutner-Fischer
2008-04-24Fix indentation of comment in AVR32 memmove assembler optimization file.Hans-Christian Egtvedt
2008-04-16Fix whitespace damage in AVR32 string assembler optimized functions.Hans-Christian Egtvedt
2008-04-15amd64 string ops: use alignment more carefully, and comment it.Denis Vlasenko
By capping max padding to not be bigger than three next insns, we avoid having ridiculously big NOPs like this one: 53:66 66 66 66 2e 0f 1f nopw %cs:0x0(%rax,%rax,1) 5a:84 00 00 00 00 00 which was bigger than next three insns combined! Size changes: text data bss dec hex filename 102 0 0 102 66 x86_64/memcpy.o 102 0 0 102 66 x86_64.old/memcpy.o 90 0 0 90 5a x86_64/mempcpy.o 102 0 0 102 66 x86_64.old/mempcpy.o 210 0 0 210 d2 x86_64/memset.o 242 0 0 242 f2 x86_64.old/memset.o 213 0 0 213 d5 x86_64/stpcpy.o 220 0 0 220 dc x86_64.old/stpcpy.o 428 0 0 428 1ac x86_64/strcat.o 444 0 0 444 1bc x86_64.old/strcat.o 417 0 0 417 1a1 x86_64/strchr.o 418 0 0 418 1a2 x86_64.old/strchr.o 33 0 0 33 21 x86_64/strcmp.o 33 0 0 33 21 x86_64.old/strcmp.o 213 0 0 213 d5 x86_64/strcpy.o 220 0 0 220 dc x86_64.old/strcpy.o 135 0 0 135 87 x86_64/strcspn.o 151 0 0 151 97 x86_64.old/strcspn.o 225 0 0 225 e1 x86_64/strlen.o 233 0 0 233 e9 x86_64.old/strlen.o 140 0 0 140 8c x86_64/strpbrk.o 156 0 0 156 9c x86_64.old/strpbrk.o 135 0 0 135 87 x86_64/strspn.o 151 0 0 151 97 x86_64.old/strspn.o Also, a few files got their .text alignment relaxed from 16 to 8 bytes, which reduces padding at link time.
2008-04-15amd64 string ops: replace some instructions by smaller ones,Denis Vlasenko
e.g. testb $0xff, %cl -> testb %cl, %cl
2008-03-26Paul Brook writes:Bernhard Reutner-Fischer
The attached patch adds support for compiling arm uClibc as pure Thumb code. This is needed because some recent ARM codes do not implement traditional ARM mode. Specifically: * Cortex-M1 - An extremely minimal FPGA based core that only implements Thumb-1 (aka ARMv6-M). * Cortex-M3 - A Thumb-2 only ARMv7-M core. Most of uClibc already builds in Thumb mode, all that is left are a handful of assembly bits. Tested on arm-uclinuxeabi.
2008-03-13avr32: Use HIDDEN_JUMPTARGET() macro in bzero.SHaavard Skinnemoen
Also, remove the hidden __memset symbol from memset.S
2008-03-13From: Geoffrey Wossum <geoffrey@pager.net>Haavard Skinnemoen
Found a problem with the AVR32 optimized bzero() code. Due to a missing #include, it actually generated no code.
2008-02-20Use HIDDEN_JUMPTARGET define instead of __GI_ directly in AVR32 filesHans-Christian Egtvedt
This patch uses the HIDDEN_JUMPTARGET instead of the __GI_ prefix in AVR32 assembler files. This is done to follow the code style in uClibc. Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
2008-01-09add workaround for gcc-3.4.6 with mipsMike Frysinger
2008-01-05Chris Zankel writes:Mike Frysinger
The following patches add support for the Xtensa processor architecture to uClibc. They are based on a recent SVN checkout (12/05/2007). The first patch (attached to this post) adds Xtensa support to various shared configuration and make files. The following patches then include the Xtensa specific files and directories. I welcome any feedback and would appreciate it if you could include the patches into the mainline tree. I am certainly committed to maintain the port. Bob Wilson was kind enough to review the patches. Some notes about the architecture: Xtensa is a configurable and extensible processor architecture developed by Tensilica. For more information, please visit: www.linux-xtensa.org.
2007-12-22mark a bunch of public mem/str functions as weak so that people who insist ↵Mike Frysinger
on their own local copies while static linking dont hit link failures when other uClibc code force the libc.a objects to be pulled in via the hidden alias symbols
2007-11-21Added optimized versions of strcpy() and strncpy() for CRIS/CRISv32.Peter Kjellerstedt
2007-11-16Added AVR32 support to uClibc. Signed-off-by: Hans-Christian Egtvedt ↵Carmelo Amoroso
<hcegtvedt@atmel.com>
2007-11-12CRIS/CRISv32 architecture specific memcpy, memmove and memset.Ricard Wanderlof
2007-09-15pull from Blackfin repo: cleanup string funcsMike Frysinger
2007-09-15Blue Swirl writes:Mike Frysinger
I got the library to compile with the attached patches, though dynamic loader crashes early. In buildroot I changed the architecture name by hand from sparc to sparc64, otherwise the compiler produced 32-bit files with V9 (64-bit) instructions. This configuration is not supported by QEMU, so I aimed for pure 64-bit. I think Sparc64 option needs to be added to buildroot. The _Qp_ ops seem to be required by the ABI. This and setjmp patches are just hacks to get the compilation further. The _Qp_ ops can be found in glibc, would it be OK to use those? V9 assembler requires declarations for global register use. The mem* functions in sparc32 directory did not work. They are actually used only by the hybrid 32-bit + V9 CPU configuration.
2007-09-15add strerror_r symbol alias as some autotool based packages simply use ↵Mike Frysinger
AC_CHECK_LIB() to see if a function exists rather than checking the headers
2007-07-29Remove stray code alignment (.align 16 and .align 4 directives)Denis Vlasenko
from i386 and x86_64.
2007-03-11Patch from Al Stone to fix ia64:Rob Landley
The attached patch works around some compilation failures on ia64 caused by the use of the C preprocessor ## operator, and allows the ia64 default configuration to build again -- or, at least get as far as an x86 build does (the current source tree has some problems compiling because of conflicting type declarations for __kernel_dev_t).
2007-02-08pull in features.h so we have access to config definesMike Frysinger
2006-11-04mips64 patch from Atsushi Nemoto:Eric Andersen
Import mips64 version of memset, memcpy from glibc.
2006-10-19Make strdup() use memcpy() rather than strcpy() to duplicate the string. Peter Kjellerstedt
The rationale is that we already have the length of the string to duplicate (from doing the malloc()), and memcpy() should then always be faster than strcpy() (or at least as fast).
2006-06-27revert previous nops in strcmp as they are not needed hereMike Frysinger
2006-06-27blackfin needs NOPs after the loop end when the last statement in the loop ↵Mike Frysinger
is an if/jump
2006-05-30Qunying Pan writes: Make strncmp weak hidden to fix link failures in ↵Mike Frysinger
building gdb and binutils statically
2006-05-30import some optimized functions from blackfin cvsMike Frysinger
2006-05-26Amir Shalem writes:Mike Frysinger
there is a missing include for <bits/uClibc_uintmaxtostr.h> in libc/string/_syserrmsg.h, where _syserrmsg.h uses __UIM_BUFLEN_INT
2006-05-15fix signed warningsMike Frysinger
2006-03-24Correct build failure introduced by SUSV3_LEGACY optionPeter S. Mazinger
2006-03-23Add new option for SuSv3 legacy functions and use it for ↵Peter S. Mazinger
bcopy/bzero/bcmp/index/rindex
2006-03-23Mark some functions as BSD onlyPeter S. Mazinger
2006-03-23select needs sys/select.h, str[n]casecmp/ffs needs strings.h, if BSD is not ↵Peter S. Mazinger
defined, gettimeofday has other prototype and tm_gmtoff/tm_zone do not exist