summaryrefslogtreecommitdiffstats
path: root/newlib
Commit message (Collapse)AuthorAgeFilesLines
* Add rpmatch(3)Yaakov Selkowitz2015-11-176-2/+113
| | | | | | | | | | | 2015-11-17 Yaakov Selkowitz <yselkowi@redhat.com> * libc/include/stdlib.h (rpmatch): Declare. * libc/stdlib/Makefile.am (ELIX_4_SOURCES): Add rpmatch.c. (CHEWOUT_FILES): Add rpmatch.def. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/rpmatch.c: New file. * libc/stdlib/stdlib.tex: Add references to rpmatch.
* [ARM] Factor out the thumb1 -Os implementation.cygwin-2_3_1-releasecygwin-2_3_1-relaseMarcus Shawcroft2015-11-134-15/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch moves the inline ASM thumb1 -O2 implementation out into its own .S file. Tested by building newlib and comparing libc.a binaries before and after for all permutations of: Architectures: armv4 armv4t armv5 armv5t armv5te armv6 armv6j armv6k armv6z armv6kz armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a iwmmxt iwmmxt2 ISAs: thumb arm Optimization Levels: Os O2 Excluding: armv6s-m -mthumb armv6-m -mthumb armv6zk -mthumb armv6z -mthumb armv6k -mthumb armv6j -mthumb
* [ARM] Adding strlen.SMarcus Shawcroft2015-11-136-29/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch adds strlen.S to contain the complementary preprocessor logic to strlen-stub.c intended to provide #inclusion of alternative .S implementations. Initially we just include the existing strlen-armv7.S implementation. We rewrite _ISA_ARMV7 in both strlen.S and strlen-stub.c to use the underlying existing underlying defintion from arm_asm.h in order to avoide including that file, this is in effect the first step towards a move to ACLE predefines only. Tested by building newlib and comparing libc.a binaries before and after for all permutations of: Architectures: armv4 armv4t armv5 armv5t armv5te armv6 armv6j armv6k armv6z armv6kz armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a iwmmxt iwmmxt2 ISAs: thumb arm Optimization Levels: Os O2 Excluding: armv6s-m -mthumb armv6-m -mthumb armv6zk -mthumb armv6z -mthumb armv6k -mthumb armv6j -mthumb
* [ARM] Rename strlen to strlen-stub.cMarcus Shawcroft2015-11-134-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to maintain consistency both within machine/arm and between machine/arm and machine/aarch64, rename the 'c' stub to -stub.c. Tested by building newlib and comparing libc.a binaries before and after for all permutations of: Architectures: armv4 armv4t armv5 armv5t armv5te armv6 armv6j armv6k armv6z armv6kz armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a iwmmxt iwmmxt2 ISAs: thumb arm Optimization Levels: Os O2 Excluding: armv6s-m -mthumb armv6-m -mthumb armv6zk -mthumb armv6z -mthumb armv6k -mthumb armv6j -mthumb
* [ARM] Reorganize strlen selection.Marcus Shawcroft2015-11-136-190/+25
| | | | | Remove automake and autoconf selection of strchr implementation in favour of conditional compilation in strlen.c.
* [ARM] Refactor strlen.c #if nesting.Marcus Shawcroft2015-11-132-26/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch flattens the condition code selection used in strlen in an attempt to make the guarding condition for each alternative implementation clearer and to structure the logic in a manner that makes it easier to maintain complementary logic between the alternative 'C' and assembler implementations. Tested by building newlib and comparing libc.a binaries before and after for all permutations of: Architectures: armv4 armv4t armv5 armv5t armv5te armv6 armv6j armv6k armv6z armv6kz armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a iwmmxt iwmmxt2 ISAs: thumb arm Optimization Levels: Os O2 Excluding: armv6s-m -mthumb armv6-m -mthumb armv6zk -mthumb armv6z -mthumb armv6k -mthumb armv6j -mthumb
* Add support for ARC to newlibAnton Kolesov2015-11-1241-6/+10054
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | newlib/ChangeLog: 2015-11-12 Anton Kolesov <Anton.Kolesov@synopsys.com> * configure.host: Add ARC support. * libc/include/machine/setjmp.h: Likewise. * libc/machine/configure: Likewise. * libc/machine/configure.in: Likewise. * libc/machine/arc/Makefile.am: Likewise. * libc/machine/arc/Makefile.in: Likewise. * libc/machine/arc/aclocal.m4: Likewise. * libc/machine/arc/asm.h: Likewise. * libc/machine/arc/configure: Likewise. * libc/machine/arc/configure.in: Likewise. * libc/machine/arc/memcmp-bs-norm.S: Likewise. * libc/machine/arc/memcmp-stub.c: Likewise. * libc/machine/arc/memcmp.S: Likewise. * libc/machine/arc/memcpy-archs.S: Likewise. * libc/machine/arc/memcpy-bs.S: Likewise. * libc/machine/arc/memcpy-stub.c: Likewise. * libc/machine/arc/memcpy.S: Likewise. * libc/machine/arc/memset-archs.S: Likewise. * libc/machine/arc/memset-bs.S: Likewise. * libc/machine/arc/memset-stub.c: Likewise. * libc/machine/arc/memset.S: Likewise. * libc/machine/arc/setjmp.S: Likewise. * libc/machine/arc/strchr-bs-norm.S: Likewise. * libc/machine/arc/strchr-bs.S: Likewise. * libc/machine/arc/strchr-stub.c: Likewise. * libc/machine/arc/strchr.S: Likewise. * libc/machine/arc/strcmp-archs.S: Likewise. * libc/machine/arc/strcmp-stub.c: Likewise. * libc/machine/arc/strcmp.S: Likewise. * libc/machine/arc/strcpy-bs-arc600.S: Likewise. * libc/machine/arc/strcpy-bs.S: Likewise. * libc/machine/arc/strcpy-stub.c: Likewise. * libc/machine/arc/strcpy.S: Likewise. * libc/machine/arc/strlen-bs-norm.S: Likewise. * libc/machine/arc/strlen-bs.S: Likewise. * libc/machine/arc/strlen-stub.c: Likewise. * libc/machine/arc/strlen.S: Likewise. * libc/machine/arc/strncpy-bs.S: Likewise. * libc/machine/arc/strncpy-stub.c: Likewise. * libc/machine/arc/strncpy.S: Likewise.
* Remove obsolete ARC systemAnton Kolesov2015-11-1216-6618/+20
| | | | | | | | | | | | | | | | | | | | | | | | | ARC architecture specific files has been added ages ago in newlib/libc/sys, but with invention of libgloss those files should be moved from newlib to libgloss. newlib/ChangeLog: 2015-11-12 Anton Kolesov <Anton.Kolesov@synopsys.com> * configure.host: Remove ARC system. * libc/sys/configure: Likewise. * libc/sys/configure.in: Likewise. * libc/sys/arc/Makefile.am: Likewise. * libc/sys/arc/Makefile.in: Likewise. * libc/sys/arc/aclocal.m4: Likewise. * libc/sys/arc/configure: Likewise. * libc/sys/arc/configure.in: Likewise. * libc/sys/arc/crt0.S: Likewise. * libc/sys/arc/dummy.S: Likewise. * libc/sys/arc/isatty.c: Likewise. * libc/sys/arc/mem-layout.c: Likewise. * libc/sys/arc/sbrk.c: Likewise. * libc/sys/arc/sys/syscall.h: Likewise. * libc/sys/arc/syscalls.c: Likewise.
* Fix multilib libgloss selection.Marcus Shawcroft2015-11-122-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regression testing newlib in conjunction with libgloss and --enable-multilib can result in incompatible multilib versions of newlib and libgloss being used during link. This manifests on ARM target when newlib regression is run using a GCC configured using --with-multilib-list=aprofile With this configuration many of the multilib variants built are mutually incompatible. The issue is that the newlib dejagnu foo iterates each multilib variant and correctly chooses the appropriate newlib variant but always chooses the root/base libgloss variant. The implementation of newlib/testsuite/lib/flags.exp contains the following fragment: set target_build_path "$objdir/$multibuildtop.." The effect of this fragment is to explicitly select the root version of libgloss, irrespective of the current multilib. Digging around in VC it appears that the original implementation of multlib magic came into the tree back in 2002 with: 6e9d950a (Thomas Fitzsimmons 2002-05-01 17:06:25 +0000 39) In this initial version of multilib support, newlib was multilib capable, but libgloss was not multilib capable, hence the necessity to explicitly select the root libgloss version. Subsequently flags.exp was modified to support out of tree testing: cec1d3b4 (Jeff Johnston 2005-07-05 00:11:50 +0000 25) This change is orthogonal to this issue, its effect is to exit early in none multilib configurations. Subsequently libgloss gained --enable-multilib support, the relevant change is: https://sourceware.org/ml/newlib/2006/msg00440.html commit 00a4b31ad08aef361c5d74125ece410b4c285975 Author: Jeff Johnston <jjohnstn@redhat.com> Date: Wed May 10 20:51:41 2006 +0000 This change enabled multilib support throughout libgloss, but ommitted to adjust the flag.exp behaviour which anchors the libgloss multilib selection to the base version. The attached patch adjusts flags.exp to select the current multilib variant of libgloss. 2015-11-06 Marcus Shawcroft <marcus.shawcroft@arm.com> * testsuite/lib/flags.exp (libgloss_link_flags): Drop multilibtop from target_build_path.
* makedoc: Don't interpret license text as a commandJon Turney2015-11-122-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | Align makedoc's iscommand() with it's documentation, and don't allow commands to contain a space. A command is a line containing only a sequence of capital letters or '_', followed by optional spaces. This prevents "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE" (the only line in the license text which consists of only capitals and spaces, without any punctuation) from being interepreted as a makedoc command, leading to: "Can't find IMPLIED" "warning, IMPLIED is not recognised" being emitted by makedoc, (which is normally un-noticed because makedoc's stderr is redirected to a .ref file) 2015-11-06 Jon Turney <jon.turney@dronecode.org.uk> * doc/makedoc.c (iscommand): Only allow commands to have trailing spaces, not space separated words. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* doc: Fix some inconsistent QUICKREF linesJon Turney2015-11-126-5/+18
| | | | | | | | | | | | | | | | | | | | | | makedoc defines a command as 'all upper case, and alone on a line'. A few QUICKREF lines currently violate this by having some additional text after the QUICKREF. So, currently, these lines are treated as an unknown command. This is benign as QUICKREF currently does nothing but produce some ignored output on stderr. I'm not sure what the intent of QUICKREF is. 2015-11-06 Jon Turney <jon.turney@dronecode.org.uk> * libm/mathfp/s_acos.c: Fix QUICKREF. * libm/mathfp/e_acosh.c: Ditto. * libm/math/w_asin.c: Ditto. * libm/mathfp/e_acosh.c: Ditto. * libm/mathfp/s_acos.c: Ditto. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* makedoc: Fix INTERNAL(|DEFINITION|FUNCTION) command definitionsJon Turney2015-11-122-4/+9
| | | | | | | | | | | | | | | | | | | | | The unused INTERNAL_DEFINITION, INTERNAL_FUNCTION and INTERNAL commands are defined in terms of the non-existent built-in 'func' This causes every single invocation of makedoc to output "Can't find func" three times, as it parses doc.str. This is normally un-noticed because makedoc's stderr is redirected to a .ref file. Fix these unused command definitions to something with equivalent lack of effect, but without generating an error. 2015-11-06 Jon Turney <jon.turney@dronecode.org.uk> * doc/doc.str: Fix INTERNAL_DEFINITION, INTERNAL_FUNCTION and INTERNAL. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* AArch64: Tune memcpyWilco Dijkstra2015-11-122-24/+37
| | | | | * newlib/libc/machine/aarch64/memcpy.S (memcpy): Further tuning for performance.
* Avoid .eh_frame in ARM newlib.Joseph Myers2015-11-128-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | ARM newlib has various strcmp implementations that use .cfi_* directives to generate unwind information. The effect of this is that the generated objects contain .eh_frame sections. However, ARM uses its own unwind info format, not .eh_frame, which is generated by ARM-specific directives, not .cfi_*. The .eh_frame sections are useless, but also not removed by strip and may be loaded into memory at runtime. This patch fixes this by using .cfi_sections .debug_frame (as in glibc) so that the directives generate .debug_frame instead. .debug_frame is useful for the debugger, can be removed by strip, and is not loaded into memory at runtime. * libc/machine/arm/strcmp-arm-tiny.S: Use .cfi_sections .debug_frame. * libc/machine/arm/strcmp-armv4.S: Likewise. * libc/machine/arm/strcmp-armv4t.S: Likewise. * libc/machine/arm/strcmp-armv6.S: Likewise. * libc/machine/arm/strcmp-armv6m.S: Likewise. * libc/machine/arm/strcmp-armv7.S: Likewise. * libc/machine/arm/strcmp-armv7m.S: Likewise.
* Reorganize memchr selection.cygwin-2_3_0-releaseMarcus Shawcroft2015-11-067-124/+117
| | | | | | | | | | | | | | | | | | | | | The patch cleans up the auto configury mechanism used to select different implementations of memchr for various architecture versions. The approach here is to remove the selection of memchr within automake and instead use complimentary logic in memchr-stub.c and memchr.S to choose between the gerneric memchr.c implementation or one of the architecture specific implementations. This patch also changes the selection criteria inline with the previous proposal here: https://sourceware.org/ml/newlib/2015/msg00752.html but using the ACLE predefines. Regressed for armv7-a armv5 armv8-a, correct selection of memcpy implementation by manual inspection of a test program built for these three architectures.
* Reorganize memcpy selection.Marcus Shawcroft2015-11-067-296/+92
| | | | | | | | | | | | | | | | | | | This patch cleans up the auto configury mechanism used to select different implementations of memcpy for various architecture versions. The approach here is to remove the selection of memcpy within automake and instead use complimentary logic in memcpy-stub.c and memcpy.S to choose between the generic memcpy.c implemenation or one of the architecture specific memcpy*.S implemenations. Regressed for armv7-a armv5 armv8-a, correct selection of memcpy implementation by manual inspection of a test program built for these three architectures. This revised patch flips the remaining preprocessor logic in memcpy-stub.c to use ACLE defines as requested in the previous review and removes the now disused HAVE_ARMV7A and HAVE_ARMV8A configure.in support.
* Replace __attribute((__warning__())) by __attribute__((deprecated()))Olivier Martin2015-11-062-2/+7
| | | | | | | | | | Clang raises the warning message: warning: unknown attribute '__warning__' ignored [-Wunknown-attributes] * libc/include/stdlib.h (mktemp): Change attribute to deprecated. (_mktemp_r): Ditto. Signed-off-by: Olivier Martin <olivier@labapart.com>
* [ARM] Select appropriate memcpy implementation for ARMv8-a.Marcus Shawcroft2015-11-036-14/+106
| | | | | | | | | The newlib configury logic that detects architecture version and chooses an appropriate memcpy implementation does not consider ARMv8-a. This patch adds configury logic to detect ARMv8-a along with the associated changes in Makefile.am and memcpy.
* Move duplicated documentation rules to Makefile.sharedJeff Johnston2015-11-0276-5445/+4150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Also, harmonize libm to use CHEWOUT_FILES like libc, rather than chobj. Update documentation appropriately. * HOWTO: Update. * Makefile.shared: Move documentation rules to here... * libc/argz/Makefile.am: ... from here ... * libc/ctype/Makefile.am: ... and here. * libc/errno/Makefile.am: Ditto. * libc/iconv/Makefile.am: Ditto. * libc/iconv/ccs/Makefile.am : Ditto. * libc/iconv/ces/Makefile.am: Ditto. * libc/iconv/lib/Makefile.am: Ditto. * libc/locale/Makefile.am: Ditto. * libc/misc/Makefile.am: Ditto. * libc/posix/Makefile.am: Ditto. * libc/reent/Makefile.am: Ditto. * libc/search/Makefile.am: Ditto. * libc/stdio/Makefile.am: Ditto. * libc/stdio64/Makefile.am: Ditto. * libc/stdlib/Makefile.am : Ditto. * libc/string/Makefile.am: Ditto. * libc/syscalls/Makefile.am: Ditto. * libc/time/Makefile.am : Ditto. * libc/unix/Makefile.am: Ditto. * libc/xdr/Makefile.am: Ditto. * libm/common/Makefile.am: Ditto. * libm/complex/Makefile.am: Ditto. * libm/math/Makefile.am: Ditto. * libm/mathfp/Makefile.am: Ditto.
* Consistently use an em-dash in math functions.Jeff Johnston2015-11-0222-21/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | - also move previous ChangeLog entry to newlib instead of top-level * libc/time/wcsftime.c: Consistently use an em-dash in FUNCTION summary. * libm/common/isgreater.c: Ditto. * libm/common/s_fdim.c: Ditto. * libm/common/s_fma.c: Ditto. * libm/common/s_fmax.c: Ditto. * libm/common/s_fmin.c: Ditto. * libm/common/s_infinity.c: Ditto. * libm/common/s_isnan.c: Ditto. * libm/common/s_log2.c: Ditto. * libm/common/s_logb.c: Ditto. * libm/common/s_lrint.c: Ditto. * libm/common/s_lround.c: Ditto. * libm/common/s_nearbyint.c: Ditto. * libm/common/s_remquo.c: Ditto. * libm/common/s_rint.c: Ditto. * libm/common/s_round.c: Ditto. * libm/common/s_scalbn.c: Ditto. * libm/common/s_signbit.c: Ditto. * libm/common/s_trunc.c: Ditto. * libm/math/w_exp2.c: Ditto. * libm/math/w_gamma.c: Ditto.
* Add missing semicolons to prototypes.Jeff Johnston2015-11-029-38/+38
| | | | | | | | | | | | | * libc/stdio/fseek.c: Add missing semicolons to prototypes in SYNOPSIS. * libc/stdio/fwide.c: Ditto. * libc/stdio64/fseeko64.c: Ditto. * libc/string/strtok.c: Ditto. * libc/string/wcstok.c: Ditto. * libm/math/w_cosh.c: Ditto. * libm/math/w_fmod.c: Ditto. * libm/mathfp/s_cosh.c: Ditto. * libm/mathfp/s_fmod.c: Ditto.
* Improve performance of MIPS memcpy.Steve Ellcey2015-11-022-2/+48
| | | | | * libc/machine/mips/memcpy.S (memcpy): Add word copies for small aligned data.
* Add missing ChangeLog entry for ce8159d5Corinna Vinschen2015-11-021-0/+4
|
* Include <sched.h> in <pthread.h>Sebastian Huber2015-10-301-1/+1
| | | | | | | | | | | This is mandated by POSIX. 2015-10-30 Sebastian Huber <sebastian.huber@embedded-brains.de> libc/include/pthread.h: Include <sched.h> instead of <sys/sched.h>. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* strftime: Add support for %s (seconds since epoch)Brian Inglis2015-10-272-25/+104
| | | | | | | * libc/time/strftime.c (__strftime): add support for %s (seconds from Unix epoch). Fix whitespaces. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Extend _intsup.h to support 16-bit and 20-bit pointers.Nick Clifton2015-10-192-1/+15
| | | | | * libc/include/sys/_intsup.h: Add support for 16-bit and 20-bit pointers.
* C11 aligned_alloc() implementationSebastian Huber2015-10-194-18/+70
| | | | | | | | | | | | | | aligned_alloc() is implemented in terms of posix_memalign() which is only declared in <stdlib.h> but not defined in Newlib in general. At least Linux and RTEMS implement this function. newlib/ChangeLog 2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/stdlib/Makefile.am (GENERAL_SOURCES): Add alloc_aligned.c.c. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/aligned_alloc.c: New.
* C11 aligned_alloc() support for <stdlib.h>Sebastian Huber2015-10-192-0/+6
| | | | | | | newlib/ChangeLog 2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/include/stdlib.h (alloc_aligned): Declare.
* C11 quick_exit() support for <stdlib.h>Sebastian Huber2015-10-195-17/+124
| | | | | | | | | | | | | | | | Import some <stdlib.h> function declarations from latest FreeBSD and implement them. I am not sure if we should call the global reent cleanup in quick_exit() similar to exit(). newlib/ChangeLog 2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/include/stdlib.h (at_quick_exit): Declare. (quick_exit): Likewise. * libc/stdlib/Makefile.am (GENERAL_SOURCES): Add quick_exit.c. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/quick_exit.c: New.
* Import <threads.h> from latest FreeBSD.Jeff Johnston2015-10-133-0/+152
| | | | | | | | - Move types and defines to <machine/_threads.h> so that it can be customized per target. * libc/include/threads.h: New. * libc/sys/rtems/include/machine/_threads.h: Likewise.
* Synchronize with FreeBSD.Jeff Johnston2015-10-132-24/+145
| | | | | * libc/include/sys/cdefs.h: Synchronize with latest FreeBSD version.
* Add FreeBSD style changes to sys/cdefs.hJeff Johnston2015-10-132-32/+37
| | | | | * libc/include/sys/cdefs.h: Add style changes of latest FreeBSD version.
* Define setjmp buffer length for IA64.Nick Clifton2015-10-082-0/+8
|
* Minimize newlib code size for ft32newlib-snapshot-20150924Jeff Johnston2015-09-222-6/+5
| | | | * configure.host (ft32): minimise newlib code size
* Add support for ft32 to newlib.Jeff Johnston2015-09-0418-1911/+9660
|
* libc/machine/cris/sys/signal.h (kill): Declare.Hans-Peter Nilsson2015-09-032-0/+8
|
* Allow sysconf to return CPU cache informationCorinna Vinschen2015-08-292-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/sys/unistd.h (_SC_LEVEL*): Add cache-related variables as on Linux. * fhandler_proc.cc (format_proc_cpuinfo): Fetch cache information from new cache functions in sysconf.cc, get_cpu_cache_intel and get_cpu_cache_amd. * sysconf.cc (__nt_query_system): New local helper. (get_nproc_values): Utilize __nt_query_system on pre-Windows 7 systems. Use GetLogicalProcessorInformationEx otherwise to handle more than 64 CPUs. Only handle _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN. (get_phys_pages): New helper to handle _SC_PHYS_PAGES. (cpuid2_cache_descriptor): New array to map Intel CPUID 2 descriptor values to cache type, cache size, associativity and linesize. (cpuid2_cache_desc_compar): Comparision function for bsearch over cpuid2_cache_descriptor. (get_cpu_cache_intel_cpuid2): New function to fetch cache info from Intel CPUID 2. (get_cpu_cache_intel_cpuid4): Ditto from Intel CPUID 4. (get_cpu_cache_intel): New function as CPU-specific entry point. (assoc): New array to map associativity values from AMD CPUID 0x80000006. (get_cpu_cache_amd): New function to fetch cache info from AMD CPUIDs 0x80000005 and 0x80000006. (get_cpu_cache): New function to fetch cache info. (sca): Call get_phys_pages if _SC_PHYS_PAGES is requested. Call get_cpu_cache for new _SC_* cache requests. (SC_MAX): Set to _SC_LEVEL4_CACHE_LINESIZE. (get_phys_pages(void)): Call get_phys_pages(int). * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. * new-features.xml (ov-new2.3): Document sysconf cache addition. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* strlen-armv7.S: Fix preprocessor checkCorinna Vinschen2015-08-272-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hi! I've got the situation, that the function strlen() occurs twice in libc.a (building newlib for ARM-V7a and Size-Optimized). In newlib/libc/machine/arm/strlen.c there are the pre-processor stetements ... #if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \ (defined (__thumb__) && !defined (__thumb2__)) /*...*/ #else #if !(defined(_ISA_ARM_7) || defined(__ARM_ARCH_6T2__)) /*...*/ #endif and in newlib/libc/machine/arm/strlen-armv7.S the "exclude" begins with /* NOTE: This ifdef MUST match the ones in arm/strlen.c We fallback to the one in arm/strlen.c for size optimised or for older architectures. */ #if defined(_ISA_ARM_7) || defined(__ARM_ARCH_6T2__) && \ !(defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \ (defined (__thumb__) && !defined (__thumb2__))) But this is not completely contrary to arm/strlen.c (see above)! To fix the logical statement in arm/strlen-armv7.S there are parentheses needed Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix for pri and scn formatsAndre Simoes Dias Vieira2015-08-273-127/+273
|
* Always declare "kill" in include/sys/signal.hJames Greenhalgh2015-08-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | Hi, As I mentioned recently [1], newlib is providing a "kill" symbol to link against, without declaring "kill" in signal.h. This is confusing for the libgfortran build, which tries to link against kill (which succeeds), then tries to use it (which triggers -Werror=implicit-function-declaration). This patch implements my suggestion in that thread - making the declaration of 'kill' in libc/include/sys/signal.h unconditional. I've tested this by building a modified libgfortran on AArch64/ARM to see that the Werror goes away, and the libgfortran build succeeds. Is something like this OK for newlib? If so, can someone please commit it on my behalf, as I have no commit access here. Otherwise, what is your preferred direction for me to take this patch? Thanks, James
* Manuals failing to build on Ubuntu LTS 14.04cygwin-2_2_1-releaseJon TURNEY2015-08-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On 11/08/2015 11:08, Andre Vieira wrote: > On 10/08/15 14:38, Jon TURNEY wrote: >> On 07/08/2015 11:13, Andre Vieira wrote: >>> Building the manuals on Ubuntu LTS 14.04 (64-bit) using pdfTeX >>> 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) is failing with the >>> following error: >>> "Transcript written on libc.log. >>> /usr/bin/texi2dvi: pdfetex exited with bad status, quitting." >>> >>> libc.log complaints about the following: >>> >>> You can't use `@unskip' in vertical mode. >>> [...] >>> >>> This code has been around for a while, so it might have to do with a >>> change in pdfTex? So it seems this problem has been around for a while, and looks like it is due to a change in texi2dvi in texinfo 5.0 or late 4.x, see [1]. I guess it's not very noticeable since it only occurs when doing 'make dvi', which doesn't happen by default. Attached is a different and perhaps cleaner workaround to the one in that thread. [1] https://sourceware.org/ml/newlib/2013/msg00057.html From 4d386b5900b6c68e022004b447faa696be5ff8c7 Mon Sep 17 00:00:00 2001 From: Jon TURNEY <jon.turney@dronecode.org.uk> Date: Tue, 11 Aug 2015 14:46:39 +0100 Subject: [PATCH] Use '@sp 1' rather than '@*' to workaround a change in texi2dvi. Since about TexInfo 5.0, using '@*' immediately after a table causes a 'You can't use `@unskip' in vertical mode' error. See https://sourceware.org/ml/newlib/2013/msg00057.html Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Add MIN MAX macro to param header file.Andre Vieira2015-08-201-0/+3
| | | | | | | | | | | | newlib/ChangeLog: 2015-07-28 Andre Vieira <andre.simoesdiasvieira@arm.com> * libc/sys/arm/sys/param.h (MIN,MAX): Define. From 536ca7365d269f5e56679048e336d6969186d550 Mon Sep 17 00:00:00 2001 From: Andre Simoes Dias Vieira <andsim01@arm.com> Date: Tue, 28 Jul 2015 14:19:08 +0100 Subject: [PATCH] Added min max macros
* Use machine header file for endianness configuration.Andre Vieira2015-08-203-15/+41
| | | | | | | | | | | | | | | newlib/ChangeLog: 2015-07-28 Andre Vieira <andre.simoesdiasvieira@arm.com> * libc/sys/arm/sys/param.h (BIG_ENDIAN, LITTLE_ENDIAN): Moved to machine/endian.h. * libc/machine/arm/machine/param.h (BYTE_ORDER): Idem. * libc/machine/arm/machine/endian.h: New. From ca6efccda91bc6b620b7d96a466b0f1e2f02cfeb Mon Sep 17 00:00:00 2001 From: Andre Simoes Dias Vieira <andsim01@arm.com> Date: Tue, 28 Jul 2015 12:16:20 +0100 Subject: [PATCH 2/2] Move endianness configuration to machine/endian.h
* Use machine header file for param configuration.Andre Vieira2015-08-201-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On 31/07/15 10:34, Richard Earnshaw wrote: > On 31/07/15 10:28, Andre Vieira wrote: >> newlib/ChangeLog: >> 2015-07-28 Andre Vieira <andre.simoesdiasvieira@arm.com> >> >> * libc/sys/arm/sys/param.h: Include machine/param.h >> (HZ, NOFILE, PATHSIZE): Define. >> >> param_refactor_1.patch >> >> >> From abc2d5f3398721f6ca891b9581feaba58730b19c Mon Sep 17 00:00:00 2001 >> From: Andre Simoes Dias Vieira <andsim01@arm.com> >> Date: Tue, 28 Jul 2015 12:10:59 +0100 >> Subject: [PATCH 1/2] Moved param configuration to machine/param.h >> >> --- >> newlib/libc/sys/arm/sys/param.h | 12 ++++++++++-- >> 1 file changed, 10 insertions(+), 2 deletions(-) >> >> diff --git a/newlib/libc/sys/arm/sys/param.h b/newlib/libc/sys/arm/sys/param.h >> index adc066e9a8756e07edaaa8cadc79b5f05c996ac9..622c371972ab3c9dbb93ea5c51323a593e2a171a 100644 >> --- a/newlib/libc/sys/arm/sys/param.h >> +++ b/newlib/libc/sys/arm/sys/param.h >> @@ -3,9 +3,17 @@ >> #ifndef _SYS_PARAM_H >> # define _SYS_PARAM_H >> >> -# define HZ (100) >> -# define NOFILE (60) >> +#include <machine/param.h> >> + >> +#ifndef HZ >> +# define HZ (60) > > Why have you changed the value for HZ? It seems that, by convention, > ARM boards have always used 100. > > R. > >> +#endif >> +#ifndef NOFILE >> +# define NOFILE>(60) >> +#endif >> +#ifndef PATHSIZE >> # define PATHSIZE (1024) >> +#endif >> >> #define BIG_ENDIAN 4321 >> #define LITTLE_ENDIAN 1234 >> > Hi Richard, ARM's machine/param.h that is included in "#include <machine/param.h>", before the 'ifndef' already defines HZ to be 100. This file was already there, it was just not being used. I understand that this 'ifndef' might be confusing, though I decided to add it to mimic the behavior of the default sys/param.h. There is however an unrelated issue with this patch, a typo in the "#define NOFILE" that crept in there due to some copy pasting when splitting the patch. Here is a fixed version. BR, Andre newlib/ChangeLog: 2015-07-28 Andre Vieira <andre.simoesdiasvieira@arm.com> * libc/sys/arm/sys/param.h: Include machine/param.h (HZ, NOFILE, PATHSIZE): Define. From abc2d5f3398721f6ca891b9581feaba58730b19c Mon Sep 17 00:00:00 2001 From: Andre Simoes Dias Vieira <andsim01@arm.com> Date: Tue, 28 Jul 2015 12:10:59 +0100 Subject: [PATCH 1/2] Moved param configuration to machine/param.h
* sys/signal.h: include sys/ucontext.h on Cygwin per POSIX.1-2008Yaakov Selkowitz2015-08-181-0/+6
| | | | | | | * libc/include/sys/signal.h [__CYGWIN__]: include <sys/ucontext.h> if compiling for POSIX.1-2008. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* or1k: Fix critical handling in malloc locksJeff Johnston2015-08-072-2/+8
| | | | | | | Only on first call to the recursive malloc lock the restore value of exception enable fields is stored. * libc/sys/or1k/mlock.c: Fix exception enable saving
* Fix wscanf family positional parameter handling in %lc, %ls, %l[]Shoichi Sakon2015-08-032-7/+15
| | | | | | | | * libc/stdio/vfwscanf.c (__SVFWSCANF_R): Convert wrong usage of va_arg to GET_ARG in %lc, %ls nad %l[] cases. Fix unterminated string in %l[] case. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Don't include stdio64 functions in reentrant syscalls menu when not bulding ↵Jon TURNEY2015-08-031-0/+8
| | | | | | | | | | stdio64. Fix documentation build since 6c2b1842 by not including stdio64 functions in the reent syscalls menu if the node itself isn't going to be included because it's under the STDIO64 flag. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Fix typo in <sys/lock.h>Sebastian Huber2015-07-312-1/+6
| | | | | | | | | | | Sorry, there was a typo in <sys/lock.h> which leads to memory corruption since not enough space is reserved for the lock object. newlib/ChangeLog 2015-07-30 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/sys/rtems/include/sys/lock.h (__LOCK_INIT_RECURSIVE): Use proper type.
* [AArch64] Rewrite optimized memset.Wilco Dijkstra2015-07-302-191/+188
| | | | | | | | | | | This is an optimized memset for AArch64. Memset is split into 4 main cases: small sets of up to 16 bytes, medium of 16..96 bytes which are fully unrolled. Large memsets of more than 96 bytes align the destination and use an unrolled loop processing 64 bytes per iteration. Memsets of zero of more than 256 use the dc zva instruction, and there are faster versions for the common ZVA sizes 64 or 128. STP of Q registers is used to reduce codesize without loss of performance.