- 06 May, 2020 1 commit
-
-
ROOL authored
Detail: assert.h - definition of static_assert complex.h - definition of CMPLX[F|L] float.h - various implementation defines stdio.h - hide gets() as it's been withdrawn wchar.h - guard mbstate_t as it can also be in uchar.h, fix missing __valist definition Admin: In order that the functions can be defined in the stubs now (despite not having a compiler to support C11/C18) they are enabled when 'DDE' is defined so that C library builds work.
-
- 16 Mar, 2019 1 commit
-
-
ROOL authored
Detail: Export fenv.h (omitted in error). Add FP_FAST_FMAL and FP_FAST_FMA defines per C standard Submission for ARMv7 Compiler bounty. Add Wimp_AutoScroll supporting function to rlib. Export various related defines for autoscroll use. Submission for Clipboard Support bounty. Version 6.00. Tagged as 'RISC_OSLib-6_00'
-
- 24 May, 2016 1 commit
-
-
Jeffrey Lee authored
When multiple CPU architectures are supported, allow dynamically linked clients to be given optimal versions of routines where possible Detail: This set of changes adds support for representing architecture-specific variants of routines within the export tables which the shared C library uses to fill in the client's stubs. This allows builds of the module which target multiple architectures (e.g. IOMD, Raspberry Pi, or softloads) to offer the most optimal versions of routines to clients wherever multiple variants exist. If only one architecture is supported, only one version of each routine will be built, and no variant tables will be generated. Currently routine selection for staticly linked clients isn't supported - staticly linked targets will only use the most backwards-compatible version of the routines, as before. Also not all routines are catered for yet (e.g. _ll_udiv) File changes: - s/h_common - New file containing macros used during variant table construction - Makefile - Set SHARED_C_LIBRARY to {TRUE} for SCL builds of assembler code, as per the SHARED_C_LIBRARY #define - kernel/s/k_body, s/longlong - For routines which have multiple variants available for the target architectures, build all variants, and generate variant table entries using the new RoutineVariant macro. This has required some reordering of the different variants to make sure that when both versions are built, the most backwards-compatible one will be first (and thus will be called by staticly linked clients) - s/h_modmacro - "Entry" macro (when building SCL export tables) changed to use DCD instead of B, to allow byte-aligned symbols to be represented (low bits of symbol address is now used as 'is a variant table' flag) - s/initmodule - Client stub initialisation rewritten to take into account the B -> DCD change, and to detect and evaluate variant entries - clib/s/cl_entries, kernel/s/k_entries, kernel/s/k_entries2 - Update library entry tables to reference the variant forms of routines where relevant Admin: Tested on Raspberry Pi 1, 2, 3 (ROM), RISC OS 3.1 & StrongARM 3.7 (softload 26bit build) Requires Kernel-5_35-4_79_2_325 Version 5.91. Tagged as 'RISC_OSLib-5_91'
-
- 08 Aug, 2015 1 commit
-
-
Robert Sprowson authored
See ISO9899:1999 7.25.3.2.1. Retagged as RISC_OSLib-5_86.
-
- 29 Mar, 2015 1 commit
-
-
Robert Sprowson authored
-
- 15 Jun, 2014 1 commit
-
-
Ben Avison authored
Detail: These were previously languishing in the C compiler sources, but they belong in the C library. Note however that the library does not implement the functions described in these headers at the present time, so any attempt to use them will result in link-time errors. Admin: Untested (known not working) Version 5.83. Tagged as 'RISC_OSLib-5_83'
-
- 25 Mar, 2014 1 commit
-
-
Ben Avison authored
Detail: Large file support made use of long longs in various definitions. These were switched out in PCC mode, but no allowances were made for the fact that C90 doesn't define long long either. Remember that to force cc to use non-builtin standard headers, you need to point at these using the -j switch (e.g. -jC:). The only version of cc which featured the C90-incompatible stdio.h was 5.70. Admin: Checked that the header now works when included in -pcc, -c90 and -c99 modes. Version 5.81. Tagged as 'RISC_OSLib-5_81'
-
- 12 Oct, 2012 1 commit
-
-
Ben Avison authored
Detail: This change was first applied to the inbuilt headers in the C compiler at version 5.59 (07 Apr 2005), but was accidentally not copied into the RISC_OSLib version of math.h. Fortunately, this would only have affected anyone compiling software with the -jC: switch. Admin: Untested, but should be a safe change. Version 5.74. Tagged as 'RISC_OSLib-5_74'
-
- 27 Mar, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: clib/s/cl_entries - Symbol names containing $'s are now wrapped in |'s to prevent potential unintended variable expansion s/h_modmacro, s/h_stubs - Modify Entry/Entry2 to not add their own vertical bars to symbol names (causing two sets of bars that cancel each other out) Admin: Tungsten ROM version identical to before when built under objasm Needs Library-1_54 for ROM link symbol files to be generated correctly Version 5.67. Retagged as 'RISC_OSLib-5_67'
-
- 12 Nov, 2011 1 commit
-
-
Ben Avison authored
Detail: A minus sign was missing - this meant that any module built using stubs from the last 2 weeks would branch through zero at the end of initialisation. Admin: Modules now work again! Retagged as 'RISC_OSLib-5_64' Version 5.64. Not tagged
-
- 28 Oct, 2011 1 commit
-
-
Ben Avison authored
Detail: * Added 64-bit file pointer API support, following the LFS spec v1.5 (see Docs directory). Internally, now uses 64-bit file pointers exclusively. For now, the backend still limits you to 4GB-1 files, but clients of the C library won't need recompiling again to support larger files than this once they use the new API. * Fixed a large number of warnings produced in compilation, assembly and linking, many of them new and resulting from the improved checks in the latest toolchain. * Increased the maximum stream buffer size from 16MB to 1GB. * Added Hdr:SDFS and Hdr:SDIO to the list of headers used to build swis.h if they are present. Admin: Verified that the new 64-bit file pointer buffering code works using a ROM build (since the toolchain makes extensive use of reading, writing and seeking internally). Version 5.64. Tagged as 'RISC_OSLib-5_64'
-
- 18 Oct, 2011 1 commit
-
-
Robert Sprowson authored
Be more quiet when cleaning. STM/LDM changed to Push/Pull. Moved an illegal instruction back into ARM's illegal instruction space. Version 5.62. Tagged as 'RISC_OSLib-5_62'
-
- 06 Aug, 2011 1 commit
-
-
Jeffrey Lee authored
Detail: clib/s/cl_stub, kernel/s/k_body, s/initmodule - Use OS_ReadSysInfo 6 to look up CLibWord/RISCOSLibWord/CLibCounter location each time it's needed instead of using hardcoded addresses. SWI overhead shouldn't be too bad since the zero page areas are rarely used. rlib/c/menu - Fix null pointer access when attempting to clear a submenu pointer via menu_submenu(...,...,NULL) s/h_workspc - Remove old local definitions of CLibCounter, RISCOSLibWorkSpace and CLibWorkSpace. Use Hdr:PublicWS instead. Admin: Tested on rev A2 BB-xM Version 5.60. Tagged as 'RISC_OSLib-5_60'
-
- 31 May, 2009 1 commit
-
-
Peter Naulls authored
Detail: This changes all the C and assembler includes to be a canoncial Unix format. Also match include paths to previous commit for EditIntern/DrawIntern/VerIntern Finally, also include some minor type fixes (NULL vs 0) Admin: May be some other paths elsewhere in the source I'm not immediately able to fix. Will address any issues ASAP, since this is a huge change. Version 5.54. Not tagged
-
- 04 Oct, 2008 1 commit
-
-
Ben Avison authored
Detail: Added terminating null to clib messages file for tokens C53, C36, C37, C66, C70 appears lost a while ago .. error in field suggested need for this. examination of r0 3.7 etc clib messages file showed NULLs here.. believe they are the only messages in clib that can emerge through a printf.. and this need a null terminator. Admin: Not tested Version 5.54. Tagged as 'RISC_OSLib-5_54'
-
- 17 Mar, 2005 1 commit
-
-
Kevin Bracey authored
Version 5.53. Not tagged
-
- 14 Mar, 2005 1 commit
-
-
Kevin Bracey authored
* Improved stdio to allocate extra FILE objects beyond the static array of 16. Number of open files now only limited by memory and the OS. * FOPEN_MAX in <stdio.h> increased from 8 to 16 to reflect reality. * Minor corrections to comments in <stdio.h>. * Library shutdown tidied for modules. In particular, shutdown of I/O was broken for modules which had been entered as applications. Version 5.53. Tagged as 'RISC_OSLib-5_53'
-
- 07 Mar, 2005 1 commit
-
-
Kevin Bracey authored
Version 5.52. Tagged as 'RISC_OSLib-5_52'
-
- 09 Nov, 2004 1 commit
-
-
Ben Avison authored
* clib.rom_link_v doesn't seem to have been kept in step with the changes to srcbuild as part of the cross-compilation work: it is no longer the job of the verbatim rom link makefie fragment to provide a rom_link rule. An appropriate alternative set of forwarding rules have been implemented instead. * clib.rom_link_v was never taught about the new C99 library chunks, and the relevant s files weren't being exported in the BBE phase either. Retagged since this won't affect code generation for existing builds.
-
- 27 Oct, 2004 1 commit
-
-
Ben Avison authored
Detail: * Fixed signed pointer comparison: most top-bit-set pointers passed to _kernel_raise_error() were being translated into "Exit called" * Stack extension is now permitted in SYS mode; includes support in longjmp() Admin: Verified that stack extension works. Version 5.51. Tagged as 'RISC_OSLib-5_51'
-
- 01 Jul, 2004 1 commit
-
-
Kevin Bracey authored
Version 5.50. Tagged as 'RISC_OSLib-5_50'
-
- 23 Jan, 2004 1 commit
-
-
Kevin Bracey authored
* isprint() now true for non-breaking spaces <math.h> * FP_INFINITY corrected to FP_INFINITE * fma(), fmal(), llrint(), llrintf(), llrintl(), llround(), llroundf(), llroundl(), remquo(), remquof(), remquol() added. * added inlining for remainder() and fmaf() and various float functions. * math_errhandling removed pending overhaul - it was misleading. * expm1() and log1p() now provide decent (< 1 ulp) accuracy, rather than only being marginally better than exp(x)-1 and log(1+x). * new version of copysign() with standard calling conventions. * some C99 functions changed to use infinity/NaNs and exceptions for error handling - see comments in header file about the changes in progress. <stdio.h> * output from %a now correctly rounded <stdlib.h> * strtof() and strtold() added. <string.h> * strerror() no longer clears _kernel_last_oserror(). Version 5.49. Tagged as 'RISC_OSLib-5_49'
-
- 02 Dec, 2003 1 commit
-
-
Ben Avison authored
Detail: * No longer uses aasm to build h.swis. * (Only) compatible with new C compilers: assumes const static data is placed in separate read-only areas, and suitable command-line switch is used to ensure that library static data is never placed in a zero- init area. * Stack extension code now thread-safe. * Heap thread-safety code (in clib) now uses SWP instruction test results from stack extension code (in kernel) - as a side effect, the exported symbol _swp_available now exists, if you need to use it elsewhere. * Slightly closer to having top-bit-set heap addresses working. Admin: Tested in a Tungsten build, and with Customer W's test suite. Version 5.48. Tagged as 'RISC_OSLib-5_48'
-
- 03 Nov, 2003 1 commit
-
-
Ben Avison authored
Detail: * _kernel_irqs_disabled() is included in ansilib build, now needed for ARM 2 SWP replacement in c.alloc * _kernel_entrypoint() for ansilib now initialises relocation offsets in root stack chunk, necessary if linking with -zm object code * system() implementation now calls DDEUtils_FlushCL if starting a short command line - necessary in case previous system() call was a long command line directed at a DDE-unaware application Admin: Ansilib changes tested, DDE change not expected to cause problems. Version 5.47. Not tagged
-
- 13 Oct, 2003 1 commit
-
-
Ben Avison authored
Retagged as 'RISC_OSLib-5_47'
-
- 09 Oct, 2003 1 commit
-
-
Ben Avison authored
Detail: * Implemented the thread-safety mutex macros for the user mode heap. * Created ansilibm, a version of ansilib suitable for building modules. * Fixed an overestimation of the size of the workspace passed to SharedCLibrary_LibInitModule[APCS_32] by the stubs. * Fixed bug in SharedCLibrary_LibInitModule[APCS_32] regarding handling of non-reentrant modules - if module code was at a higher address than the module data, then all the intervening data would be pointlessly copied back over itself with no allowance for volatility. * Removed the bsearch source file, since it was only required for APCS-A which the library has not supported since the year 2000, and which the compiler is now no longer able to build. Admin: ansilibm builds working modules, but thread safety has not been extensively tested. Version 5.47. Tagged as 'RISC_OSLib-5_47'
-
- 15 Apr, 2003 1 commit
-
-
Kevin Bracey authored
* _Exit() added. * Lots of new <math.h> functions (acosh, asinh, atanh, exp2, expm1, ilogb, log1p, log2, logb, scalbn, scalbln, cbrt, erf, erfc, lgamma, tgamma, nexttoward, fmaf). Float and long double forms of every function added; long double forms are included as another library object in the stubs rather than the shared library, as they just branch to the double form. * Subnormal/NaN/infinity cases in various <math.h> functions improved. * Added <tgmath.h>. * Headers brought into line with CC 5.54. * RMEnsures added to C library initialisation to try to load minimum CallASWI, FPEmulator, CLib. No errors reported if load fails. * A few pointless inter-file dependencies removed to reduce minimum size of included ANSILib. Version 5.46. Tagged as 'RISC_OSLib-5_46'
-
- 17 Jan, 2003 1 commit
-
-
Kevin Bracey authored
Added atoll, strtoll, strtoull, strtoimax, strtoumax, imaxabs and imaxdiv functions to the standard C library. Version 5.45. Tagged as 'RISC_OSLib-5_45'
-
- 15 Nov, 2002 1 commit
-
-
Kevin Bracey authored
PCI added to swis.h alloc.c updated to handle bigger slots (new code merged from ARM libraries) Various 32-bit fixes for backtracing, and general trap handling. Polite "Application is not 32-bit compatible" message. Headers <stdint.h> and <inttypes.h> fixed to work in non-C99 mode. txt changed to do new-style Delete behaviour Version 5.44. Tagged as 'RISC_OSLib-5_44'
-
- 12 Aug, 2002 1 commit
-
-
Ben Avison authored
Detail: Fixed a stack imbalance in _memcpy that's been there since 32-bitting. Admin: Not tested yet. Version 5.43. Tagged as 'RISC_OSLib-5_43'
-
- 23 Jul, 2002 1 commit
-
-
Steve Revill authored
Detail: This version now builds with cc-5_45. Note: it has not been verified as actually functioning correctly. Admin: Tested in DSL Baseline build. Version 5.42. Tagged as 'RISC_OSLib-5_42'
-
- 22 May, 2002 1 commit
-
-
Kevin Bracey authored
* Added two new library chunks, 4 and 5, which contain extensions to the kernel and C library respectively. These have no static data associated with them, just being extensions of the stub tables. The reason for this is to minimise wasted space in programs that don't use the C99 facilities; o.stubs is now a library split into 3 pieces - basic kernel and CLib, extra kernel and extra CLib; only the bits a program needs get included. * Previous extensions to the C library stubs revoked - they now stop at _swix; all the new C99 functions now live in chunk 4. Anyone using those new functions should relink with new stubs and ensure this C library version. * printf/scanf now support 64-bit types through "ll" and "j" length modifiers. * Run-time support for VLAs (__rt_allocauto and __rt_freeauto) added. No attempt is currently made to clear up on longjmp or to cope with someone changing the kernel allocator while a VLA is active. These would be a future enhancement. * Added complete 64-bit run-time support (48 functions) to kernel library; these functions are compatible with the ones used by the ARM ADS. Many of the simpler functions will not normally be used by the compiler, as it will generate inline code. There is scope for improvement by switching in MULL and CLZ-using forms of multiply and divide when possible. * llabs and lldiv added to C library. * Header files corrected in a few areas, and changed to match the C compiler. <stdint.h> and <stdbool.h> now require the compiler to be in C99 mode (as detected using __STDC_VERSION__). Version 5.41. Tagged as 'RISC_OSLib-5_41'
-
- 12 Apr, 2002 1 commit
-
-
Kevin Bracey authored
Version 5.40. Tagged as 'RISC_OSLib-5_40'
-
- 11 Apr, 2002 2 commits
-
-
Kevin Bracey authored
-
Kevin Bracey authored
* Added C99 functions floorf, ceilf, [l]rint[f], trunc[f], [l]round[f], nearbyint[f] and remainder[f]. * Added macros (only) for sinf, cosf, atanf. * Requires cc 5.43 Version 5.39. Tagged as 'RISC_OSLib-5_39'
-
- 26 Mar, 2002 1 commit
-
-
Kevin Bracey authored
* Added C99 extensions to strftime(). All basic specifiers supported, but "E" and "O" modifiers ignored. * strftime specifiers %c, %X and %x for "C" locale changed to match C99. * Optimised hypot[f]. * Missing hypotf() declaration added to <math.h>. * Fixed Shared C Library - inadvertent change to static data size meant it was incompatible with the stubs. Version 5.38. Tagged as 'RISC_OSLib-5_38'
-
- 21 Mar, 2002 1 commit
-
-
Kevin Bracey authored
* snprintf(), vsnprintf(), vfscanf(), vscanf(), vsscanf() * hh, j, z and t printf length modifiers (indicating char, intmax_t, size_t and ptrdiff_t respectively) * Hexadecimal floating-point printing and scanning (%a/%A) * %F printf() specifier (upper-case form of %F) * Input/output of NaNs and Infinities * imaxdiv_t, imaxdiv(), strtoimax(), strtoumax() (simulated through macros) * <fenv.h>: feclearexcept(), fegetexceptflag(), feraiseexcept(), fesetexceptflag(), fetestexcept(), fegetround(), fesetround(), fegetenv(), feholdexcept(), fesetenv(), feupdateenv() * FLT_EVAL_METHOD, DECIMAL_DIG * hypot(), hypotf(), fabsf(), fdim(), fdimf(), fmax(), fmaxf(), fmin(), fminf() * INFINITY, NAN, fpclassify(), isfinite(), isinf(), isnan(), isnormal(), signbit(), copysign(), copysignf(), nan(), nanf(), nextafter(), nextafterf() isgreater(), isgreaterequal(), isless(), islessequal(), islessgreater(), isunordered() This involves adding 36 new entries to the stubs. Current versions of the C library will not fault client programs with such larger stubs, but will fill in the extra entries with junk. Programs requiring the new functions will have to RMEnsure this version of the Shared C Library. This version of the C library has been fixed so that in future, any extra unknown stubs entries will be filled in with a branch to zero, rather than corrupted. Requires cc 5.41 or later, both to build, and to make use of some of the extra facilities. Version 5.37. Tagged as 'RISC_OSLib-5_37'
-
- 29 Jan, 2002 1 commit
-
-
Kevin Bracey authored
Aborts now give standard error messages (Abort on Data Transfer at... etc) *ShowRegs now filled in after aborts assert(), abort(), "free failed" and standard signal handlers now use Wimp error boxes if in the desktop Postmortem button on error boxes to view the postmortem Also, x$multiply, x$divide, __rt_sdiv, x$remainder, x$udivide, __rt_udiv and x$uremainder optimised. Version 5.35. Tagged as 'RISC_OSLib-5_35'
-
- 23 Aug, 2001 1 commit
-
-
Kevin Bracey authored
* Fixed C library tty so it can output '\b' (backspace). * Made offsetof() and va_arg() macros work with C++. Version 5.34. Tagged as 'RISC_OSLib-5_34'
-
- 06 Apr, 2001 1 commit
-
-
Stewart Brodie authored
Fix for RISC_OSLib res() function. Detail: Version 4.89 featured an improved strcmp() routine that didn't actually work properly (bug #4085). The return values had the wrong sign if this optimised code was used and the string contained top-bit set chars. Removed that rlib.s.asmdefs hack as the comment in the makefile suggested. Nothing needs it any more as the assembler sources that require it now get via a -PD argument. res_ prefix function was still wrong as it failed to detect valid but wrong filenames, hence the "Make$Path not defined" errors in the latest tools release. Admin: Fixes Bugzilla bug #4085 Should fix BaseSW's build problems too. Version 5.29. Tagged as 'RISC_OSLib-5_29'
-