aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-12-31Minor improvement to H8 startup codeJeff Law1-18/+12
Basically the startup code needs to clear memory from _edata to _end. In the past it's been done with a fairly naive copy loop. This changes the code to just call memset and let memset figure out a sensible way to handle the operation given the size and alignment requirements. I don't have performance data on this. I cobbled it together some time ago in response to seeing some of the GCC tests with larger .bss sections taking an insane amount of time to just get from _start to main. With the fixes to the H8 decoder in the simulator it may not matter nearly as much anymore. This has been in my tester for months. Naturally it does not cause any regressions in the H8 port.
2023-12-29Fix various c99/gcc-14 issues in generic libgloss codeJeff Law6-8/+13
Similar to what's been done in the ports, but this time in generic code. Add missing #includes to pick up prototypes. Add prototypes for various internal functions where needed. Fix signatures of various functions to match what's provided by the headers (read, sbrk, write, unlink). Nearly done with this effort ;-) Pushed to the trunk,
2023-12-29Fix another missing header file for mcore libglossJeff Law1-0/+1
I guess I must have missed this when working through the trivial port specific changes. This adds an include of stdlib.h to get a prototype for exit(). Pushed to the trunk.
2023-12-29libgloss: sparc: add missing m4 includeMike Frysinger5-5/+32
Commit 8d758283785042589e95c93d7899cecf28ef00ea ("libgloss: merge sparc configure script up a level") missed including the sparc acinclude.m4 file which meant none of the sparc-specific vars were propagating to the sub-makefile.
2023-12-29libgloss: xtensa: fix crt0.o ruleMike Frysinger2-37/+52
Don't hardcode a custom rule for this -- reuse libobjs_a_SOURCES which was designed for this exact scenario.
2023-12-29newlib MMIX: Fix compilation warnings that recent gcc treats as errorsHans-Peter Nilsson10-21/+30
Without this, when building with recent gcc, we'll see errors when compiling for --target mmix the first being: CC libc/sys/mmixware/libc_a-chmod.o In file included from /x/newlib/libc/sys/mmixware/chmod.c:17: /x/newlib/libc/sys/mmixware/chmod.c: In function 'chmod': /x/newlib/libc/sys/mmixware/sys/syscall.h:139:6: error: implicit declaration \ of function 'sprintf' [-Wimplicit-function-declaration] 139 | sprintf (buf, "UNIMPLEMENTED %s in %s\n", __FUNCTION__, __FILE__); \ Other warnings also quelled. * libc/sys/mmixware/sys/syscall.h: Include stdio.h, string.h and unistd.h. * libc/sys/mmixware/_exit.c: Call __unreachable after simulator exit. * libc/sys/mmixware/chown.c (chown): Match declaration in unistd.h. * libc/sys/mmixware/getpid.c (_getpid): Ditto. * libc/sys/mmixware/kill.c (_kill): Ditto. * libc/sys/mmixware/link.c (_link): Ditto. * libc/sys/mmixware/read.c (_read): Ditto. * libc/sys/mmixware/sbrk.c (_sbrk): Ditto. * libc/sys/mmixware/unlink.c (_unlink): Ditto. * libc/sys/mmixware/write.c (_write): Ditto.
2023-12-23GCN: Implement '_exit' instead of 'exit'Thomas Schwinge4-25/+24
... so that all of 'exit', '_exit', '_Exit' work. 'exit' thus becomes the standard 'newlib/libc/stdlib/exit.c'. (Getting 'atexit' functional needs further work elsewhere.) See also commit 5841b2f6a4208682264d03e3edfa0a09881932a6 "nvptx: Implement '_exit' instead of 'exit'".
2023-12-22Fix epiphany libgloss for c99/gcc-14Jeff Law9-3/+12
So in this case we mostly need to include an internal header (epiphany-syscalls.h). In a few cases an explicit prototype is added. We've also got a return with no value in a function with a non-void return type. Finally the asm_syscall interface expects a pointer as its first argument. In a few cases we've actually got an int (file descriptor) which we just cast to a void *. It's slightly more than Jeff J's pre-approval, but I think still reasonable.
2023-12-22Fix most of m32r libgloss for c99/gcc-14Jeff Law4-3/+9
Make implicit its explicit, add missing prototypes and header includes. This does not fix m32r-stub.c which needs more than the trivial work that Jeff J has pre-approved.
2023-12-22Fix mcore libgloss port for c99/gcc-14Jeff Law4-0/+9
Missing headers and prototypes, much like other ports.
2023-12-22Fix rl78 libgloss port for c99/gcc-14Jeff Law1-1/+2
Needed a prototype for SYS_write and the prototype for write was incorrect (returns an int, not a char *).
2023-12-22Fix c6x libgloss port for c99/gcc-14Jeff Law1-0/+2
Just one missing header in this case...
2023-12-22Fix ft32 libgloss for c99/gcc-14Jeff Law1-0/+1
Just one missing header for this libgloss port.
2023-12-22Fix frv libgloss bits for c99/gcc-14\Jeff Law2-0/+4
Same as we've seen elsewhere. Add missing prototype and header include.
2023-12-22Fix newlib H8/300 bits for C99/gcc-14Jeff Law1-0/+2
Similar to other patches. This adds a missing prototype and #include to some H8/300 specific code in newlib. Pushed to the trunk given Jeff J's pre-approval for these kinds of changes.
2023-12-22Fix v850 libgloss for c99/gcc-14Jeff Law6-4/+10
So the prior patch for sysnecv850 was in newlib. This time we're fixing v850 bits in libgloss. Like other patches submitted recently, this converts implicit ints to explicit ints, adds a missing prototype and header includes.
2023-12-21Fix iq2000 libgloss for c99/gcc-14Jeff Law5-4/+8
Similar to the others in this space. Make implicit ints explicit ints. Add prototype for _write in sbrk.c.
2023-12-21Optimize strpbrk.cJeff Johnston1-9/+2
2023-12-21Re: libgloss c99 fixes for mn10300-elfJeff Law7-5/+13
Very similar to other patches in this space. Avoid implicit int types and add missing #includes so that this code works with gcc-14.
2023-12-20Regenarate libgloss/Makefile.inJeff Johnston1-2/+1
2023-12-20newlib: Fix long double for unsupported rounding modes and exceptionsCraig Blackmore3-2/+16
RISC-V newlib fails to build for soft float multilibs since long double support was enabled in: commit 04798b7bb69571452d2cfc7e0b052a9bbd3b619d Author: Kito Cheng <kito.cheng@sifive.com> Date: Mon Dec 4 15:41:39 2023 +0800 RISC-V: Support long double math Long double for RISC-V is using 128 bit IEEE 754 format like Aarch64, so we reference AArch64 to support that. The RISC-V soft floating point environment only supports the FE_TONEAREST rounding mode and does not support exceptions. Guard long double rounding and exception support with ifdefs based on the presence of the relevant rounding modes and exceptions. Tested on gcc/g++ testsuite using RISC-V GNU Newlib Toolchain built by riscv-gnu-toolchain with multilibs: riscv-sim/-march=rv32i/-mabi=ilp32/-mcmodel=medlow riscv-sim/-march=rv32iac/-mabi=ilp32/-mcmodel=medlow riscv-sim/-march=rv32im/-mabi=ilp32/-mcmodel=medlow riscv-sim/-march=rv32imac/-mabi=ilp32/-mcmodel=medlow riscv-sim/-march=rv32imafc/-mabi=ilp32f/-mcmodel=medlow riscv-sim/-march=rv64imac/-mabi=lp64/-mcmodel=medlow Co-authored-by: Simon Cook <simon.cook@embecosm.com>
2023-12-19newlib: libc: Improved the readability of strcspn with minor optimizationXiao Zeng1-4/+2
Signed-off-by: Xiao Zeng <zengxiao@eswincomputing.com>
2023-12-19Fix various v850 problemsJeff Law6-7/+10
These fixes fall into a few different buckets. First c99 doesn't allow a parameter without a type. So in cases where the type had previously been an implicit int, make it an explicit int. Second, for return values, don't allow them to be implicit ints either, make them explicit. In a few cases change c89 function definitions to c99 function definitions. Lastly include <stdlib.h> in sbrk.c to get the prototype for abort () which we call when we detect a heap/stack collision.
2023-12-19libgloss: doc: generate single page & split html manualsMike Frysinger2-2/+16
By default, only split node html manuals are generated. Change the default to single page, and add an extra rule to also generate the split page manual.
2023-12-19libgloss: drop $(INCLUDES) when using $(AS)Mike Frysinger6-6/+6
Since $(AS) is the assembler, passing it a list of preprocessor include flags doesn't make much sense. The files aren't preprocessed which means `#include` lines aren't respected, and while it would affect `.include` usage, we never use that, and it's extremely unlikely to change. Plus, it's extremely unlikely we'd have .s files in common places to include vs contained entirely within a specific arch dir, and at that point, it can be included directly (with no flags), or the arch can add the unique set of include paths that it needs for itself.
2023-12-19Add generated files for Revert patchJeff Johnston2-23/+5
2023-12-19Revert "Fix libgloss/newlib build to conditionally use top include dir"Mike Frysinger5-47/+1
This reverts commit 17ac400c11bab30ac2c0bef12cbf7788f0b6f954. The build failures were due to incorrectly using $(INCLUDES) when running $(AS). Let's roll this back and drop $(INCLUDES) from the $(AS) invocations.
2023-12-19Remove curly braces in `@author` tag in .texi filesFreddie Chopin2-8/+8
Curly braces cause documentation build failure with texinfo 7.1 (works fine up to 7.0.3):
2023-12-18libgloss fix for bfin portJeff Law1-2/+4
gcc-14 will complain loudly both for calling a function without an in-scope prototype or when the in scope prototype differs from the known signature. "main" happens to be one of the functions the compiler knows about. So not only do we need to prototype it, we need to make sure the prototype matches what GCC thinks it should be. This fixes the bfin libgloss port to do the right thing for bfin-elf.
2023-12-16Re: Fix moxie libgloss issues with c99Jeff Law2-0/+6
Two libgloss issues specific to moxie-elf that show up build with GCC trunk. First, putnum.c uses "print" without a prototype. So I added one based on the function's definition in print.c. Second sim-inbyte.c uses read, which comes from unistd.h, so this adds a suitable #include.
2023-12-14Fix fr30 libgloss buildJeff Law1-0/+2
gcc-14 will default to c99 and as a result a fair amount of old code in newlib (particularly libgloss) is failing to build. I don't offhand know how many patches will be necessary to fix the various failures. I'll just pick them off one by one from my tree. This particular patch works around the return-mismatch problem syscalls.c for fr30. That file is a bit odd in that most functions are declared as returning an integer, but the implementations look like: > int > _read (file, ptr, len) > int file; > char * ptr; > int len; > { > asm ("ldi:8 %0, r0" :: "i" (SYS_read) : "r0"); > asm ("int #10"); > > return; > } Note the lack of a value on the "return" statement. The assumption is that the interrupt handler implementing syscalls will put the return value into the proper register, so falling off the end of the C function or returning with no value works in the expected way. It's not good code, but it probably works. Working from that assumption I decided to just use a pragma to disable the upgraded diagnostic from GCC -- essentially preserving existing behavior. This is the only fr30 specific issue that needs to be resolved and the only issue (so far) I've seen of this specific nature.
2023-12-06newlib cris: Fix compilation warnings that recent gcc treats as errorsHans-Peter Nilsson1-6/+37
For the newlib part, warnings are all from lack of sync between libc/machine/cris/sys/signal.h and libc/include/sys/signal.h. This commit gets them sufficiently in sync again, functionality-wise and declaration-wise. Still, nothing is declared that isn't supported at the system level (i.e. in libgloss system calls and handled by the CRIS simulator in the gdb project).
2023-12-06libgloss/cris: Make C declarations present and match themHans-Peter Nilsson4-11/+17
This is the libgloss part. Recently, there was a change in gcc such that implicit function declarations and type mismatches are now errors, no longer just warnings. Fix by adding and correcting declarations warned about; including the right header or adding a declaration (for "main" in lcrt0.c) and adjust to those types as necessary.
2023-12-05Cygwin: fallocate(2): fix debug outputCorinna Vinschen1-1/+1
Fixes: e01c50c7b0a6 ("Cygwin: introduce fallocate(2)") Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-12-05Cygwin: fallocate(2): fix offset and length sanity checkCorinna Vinschen1-1/+3
- len must not be <= 0 - offset + len must not exceed off_t (max. file size) Fixes: e01c50c7b0a6 ("Cygwin: introduce fallocate(2)") Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-12-05Cygwin: posix_fallocate(3): fix offset and length sanity checkCorinna Vinschen1-1/+3
- len must not be <= 0 - offset + len must not exceed off_t (max. file size) Fixes: 7636b5859062 ("* autoload.cc (NtSetInformationFile): Define.") Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-12-04pru: libm: Fix incorrect function nameDimitar Dimitrov1-1/+1
Upstream GCC changed -Wimplicit-function-declaration warning into an error. The build break about missing fpclassifyf function prototype exposed a bug in the PRU port of libm. The fix is to use the fpclassify macro for both double and float types. Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2023-12-04RISC-V: Support long double mathKito Cheng4-21/+110
Long double for RISC-V is using 128 bit IEEE 754 format like Aarch64, so we reference AArch64 to support that.
2023-12-04RISC-V: Fix -Wint-conversion warningKito Cheng1-1/+5
Upstream GCC has change this warning into error by default, so...we need to explicitly convert the type from pointer from/to integer, generally it's unsafe, but we know what we are doing here. However it's not safe for ilp32 on RV64, but we didn't support that yet, so I think this fix is good enough now :)
2023-12-04Cygwin: fallocate(2): drop useless zeroing pointerCorinna Vinschen1-3/+1
The out pointer is only used if data_chunk_count is > 0, so there's no reason to set it to NULL in the error case. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-12-03Cygwin: CI: drop IRC notification from AppVeyor via notificoJon Turney1-9/+0
Drop IRC status notification from AppVeyor via notifico, as we no longer run tests there.
2023-12-02newlib: libc: Fix indentationKuan-Wei Chiu1-12/+12
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
2023-12-01newlib: libc: Fix memory leak in computematchjumps()Kuan-Wei Chiu1-2/+4
In cases where malloc fails for the 'g->matchjump' allocation, the code path does not handle the failure gracefully, potentially leading to a memory leak. This fix ensures proper cleanup by freeing the allocated memory for 'pmatches' before returning. Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
2023-12-01Cygwin: drop stray fs_info::check_ssd declarationCorinna Vinschen1-2/+0
This is just a leftover from development Fixes: 8b01c5d6903f ("Cygwin: fs_info: check for SSD") Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-11-30Cygwin: doc: add missing change to posix_spawnpCorinna Vinschen1-0/+6
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-11-30Cygwin: sparse support: enable automatic sparsifying of files on SSDsCorinna Vinschen4-2/+11
Given that SSDs don't have a seek penalty, we can enable automatic sparsifying of files on SSDs, even if the "sparse" mount option is not set. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-11-30Cygwin: fs_info: check for SSDCorinna Vinschen2-0/+18
During fs_info::update, check for the file being on an SSD. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-11-30Cygwin: ntdll.h: add missing NtQueryVolumeInformationFile definitionsCorinna Vinschen1-0/+27
In preparation of using the FileFsSectorSizeInformation info class, add a couple of missing definitions. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-11-30Cygwin: ntdll.h: add missing POBJECT_NAME_INFORMATIONCorinna Vinschen1-1/+1
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-11-30Cygwin: revert autoloading of DiscardVirtualMemoryCorinna Vinschen1-0/+1
Commit a3ae2a734892 ("Cygwin: don't autoload some kernel32 functions") erroneously removed DiscardVirtualMemory from the list of autloaded functions. DiscardVirtualMemory is not available on Windows 8.1. Fixes: a3ae2a734892 ("Cygwin: don't autoload some kernel32 functions") Signed-off-by: Corinna Vinschen <corinna@vinschen.de>