- 06 Jul, 2020 1 commit
-
-
Jeffrey Lee authored
As noted in https://www.riscosopen.org/forum/forums/9/topics/15359, MRS instructions which are executed in user mode may return unknown values for the CPSR E, A, I, F and M fields on ARMv8 CPUs. At the moment the only observed deviation from normal behaviour is that CPUs which lack AArch32 privileged-mode support may return zero for the fields. This was found to confuse some 26 vs. 32 bit mode checks in CLib. Clearly we're a long way away from having a version of RISC OS which can run on a CPU that lacks AArch32 privileged mode support, but we can still try and make sure user-mode applications are compatible with them. So this change adjusts the mode checks in the stubs and overlay manager so that programs linked with them should function correctly (TEQ is now used instead of MRS) Note that once we do start porting RISC OS to one of the troublesome CPUs, there are many more potentially troublesome MRS's within the module code that will need adjusting, especially if CPUs start returning values other than zero. Version 6.07. Tagged as 'RISC_OSLib-6_07'
-
- 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'
-
- 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
-
- 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'
-
- 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'
-
- 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'
-
- 30 Nov, 2000 1 commit
-
-
Kevin Bracey authored
Stubs were using some 26/32-bit switching macros, which is invalid for a component that has to work on all OS versions. Changed to use 26/32-bit neutral code. Stubs issued in first 32-bit library release were using 26-bit forms, but they should only go wrong on a 32-bit system in failure cases (such as the SharedCLibrary being unplugged). Version 5.25. Tagged as 'RISC_OSLib-5_25'
-
- 09 May, 2000 1 commit
-
-
Kevin Bracey authored
Version 5.06. Tagged as 'RISC_OSLib-5_06'
-
- 19 Sep, 1997 1 commit
-
-
Kevin Bracey authored
-
- 05 Nov, 1996 1 commit
-
-
Neil Turton authored
-