- 06 Feb, 2021 1 commit
-
-
Timothy E Baldwin authored
If the current directory is not it's root these are not equivalent. Version 6.09. Tagged as 'RISC_OSLib-6_09'
-
- 05 Sep, 2020 1 commit
-
-
Ben Avison authored
This utilises a weak symbol import so that if the symbol `Resources` resolves at link time, it is called to discover the address of the resource file data block(s) to be installed in ResourceFS. If this fails, it drops back to using the `s.ResFiles` source file as previously, thereby ensuring compatibility with components that have not yet been converted to use ResGen. Since `Resources` is the default area name (and thus discovery function name) used for ResGen in the shared makefiles, this makes it as simple as possible to utilise it. Version 6.08. Tagged as 'RISC_OSLib-6_08'
-
- 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'
-
- 03 Sep, 2017 1 commit
-
-
Jeffrey Lee authored
Detail: kernel/s/k_body - Eliminate a couple of global OS_SynchroniseCodeAreas calls in _kernel_init and _kernel_system s/initmodule - Eliminate a global OS_SynchroniseCodeAreas call in _Shared_Lib_Module_SWI_Code Admin: Tested on iMx6 Improves performance with SMP ROMs, where global D-cache clean isn't really possible Version 5.93. Tagged as 'RISC_OSLib-5_93'
-
- 28 May, 2016 1 commit
-
-
Jeffrey Lee authored
Detail: kernel/s/k_body, s/initmodule - Remove NOPs from after PSR manipulation macros; the macros now fully take care of ARM2 & StrongARM compatibility for us Admin: Tested PlingSystem build on (ARM3) RISC OS 3.1 Requires HdrSrc-2_63 for ARM2 compatibility Version 5.92. Tagged as 'RISC_OSLib-5_92'
-
- 25 May, 2016 1 commit
-
-
Jeffrey Lee authored
Detail: s/longlong - Copy-paste error led to conditional being on wrong line Admin: Tested with Raspberry Pi ROM build Version 5.91. Retagged as 'RISC_OSLib-5_91'
-
- 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 SHAR...
-
- 29 Mar, 2015 1 commit
-
-
Robert Sprowson authored
Now ObjAsm can ALIGN with arbitrary numbers, use the same trick FileCore does in its header by padding with newlines. Not tagged.
-
- 16 Jan, 2015 2 commits
-
-
Jeffrey Lee authored
Detail: s/modulewrap - Escape some dollars contained in strings to avoid warnings from objasm Admin: Resulting binary unchanged (FilerAction) Version 5.83. Retagged as 'RISC_OSLib-5_83'
-
Jeffrey Lee authored
Detail: kernel/s/k_body, s/initmodule - Escape some dollars contained in strings to avoid warnings from objasm Admin: Resulting binary unchanged Version 5.83. Retagged as 'RISC_OSLib-5_83'
-
- 24 Mar, 2013 1 commit
-
-
Robert Sprowson authored
s/h_brazil: use Hdr:System instead of GETting them one at a time c/scanf: type cast Version 5.77. Tagged as 'RISC_OSLib-5_77'
-
- 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'
-
- 16 Feb, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: kernel/s/k_body - NOP in Aborted2 is only needed if we're targeting StrongARM s/longlong - Make ReadCPUArch StrongARM & ARM2 safe Admin: Tested in IOMD ROM softload Version 5.67. Tagged as 'RISC_OSLib-5_67'
-
- 06 Dec, 2011 1 commit
-
-
Jeffrey Lee authored
Detail: s/longlong - Only look for ARMv5 support when deciding if CLZ is available, not ARMv5T Admin: Tested in OMAP3 ROM Version 5.66. Tagged as 'RISC_OSLib-5_66'
-
- 26 Nov, 2011 1 commit
-
-
Robert Sprowson authored
Was being used to conditionalise things which aren't really StrongARM related, now should be read as "support split I+D caches" switch. Version 5.65. Tagged as 'RISC_OSLib-5_65'
-
- 28 Oct, 2011 2 commits
-
-
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'
-
Ben Avison authored
Detail: Last revision broke _ll_mullu (the runtime support function for multiplying a 64-bit integer by an unsigned 32-bit integer) except for ROM builds that target CPUs with the M extension. So in practice, IOMD ROMs and softloadable C libraries both exhibited the bug. Admin: Verified that the compiler will now run against this C library (previously it reported many non-sensical errors). Version 5.63. Tagged as 'RISC_OSLib-5_63'
-
- 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'
-
- 24 Sep, 2011 1 commit
-
-
Jeffrey Lee authored
Detail: s/longlong - The code has always had the ability to use CLZ & long multiply instructions, but it's never been enabled. The nonfunctional code to detect the CPU architecture at runtime has been disabled, and instead a fixed configuration is selected at compile time with the help of Hdr:CPU.Arch. Also added lots of ROUT's for safety. s/objmacs - Updated push/pop macros to make use of LDR/STR when only one register is to be transferred. This fixes a few objasm 4 warnings and should result in a speed boost where applicable. Admin: Tested on rev A2 BB-xM. Different math code configurations tested briefly. Version 5.61. Tagged as 'RISC_OSLib-5_61'
-
- 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'
-
- 14 Jun, 2009 1 commit
-
-
Ben Avison authored
Detail: s.makehswis used to pull in various IO header files. There was no good reason for this, and doing so causes a dependency upon Hdr:Machine.<Machine> to define which generation of IOC/IOMD is in use - which is a problem if the C library is to be built where Machine=All. Admin: Tested in a Machine=All build. Version 5.54. Not tagged
-
- 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
-
- 07 Mar, 2005 1 commit
-
-
Kevin Bracey authored
Version 5.52. Tagged as 'RISC_OSLib-5_52'
-
- 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'
-
- 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'
-
- 22 May, 2002 2 commits
-
-
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'
-
Ben Avison authored
Created cleanroom implementation of 64-bit integer support for licencing reasons. Tested fairly thoroughly (in fact, this testing showed up a bug in the old code which unbalanced the stack for 50% of cases where you divided a negative long long by 10). Hopefully should work faster than the old code too! Reapplied all relevant old tags. Real commit date 2008-03-18.
-
- 11 Apr, 2002 1 commit
-
-
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'
-
- 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...
-
- 21 Nov, 2000 1 commit
-
-
Stewart Brodie authored
Modulewrapped modules will now have the correct 32-bitness flag. Admin: Built. Version 5.23. Tagged as 'RISC_OSLib-5_23'
-
- 08 Nov, 2000 1 commit
-
-
Kevin Bracey authored
Second attempt at getting 32-bit overlay manager to work. Version 5.21. Tagged as 'RISC_OSLib-5_21'
-
- 17 Oct, 2000 1 commit
-
-
Kevin Bracey authored
* First attempt at a working 32-bit overlay manager. Untested. Version 5.19. Not tagged
-
- 02 Oct, 2000 1 commit
-
-
Kevin Bracey authored
* Correction to static base location in modulewrap - was affecting some DSL 4000 video software. Version 5.15. Tagged as 'RISC_OSLib-5_15'
-
- 03 Jul, 2000 1 commit
-
-
Kevin Bracey authored
C library now has a default message for C71 (Calling standard no longer supported), so you get a meaningful message if soft-loading a new version. No code changes. Version 5.10. Tagged as 'RISC_OSLib-5_10'
-
- 09 May, 2000 1 commit
-
-
Kevin Bracey authored
Version 5.06. Tagged as 'RISC_OSLib-5_06'
-
- 28 Apr, 2000 2 commits
-
-
Andrew Hodgkinson authored
Version 5.05. Not tagged
-
Andrew Hodgkinson authored
Detail: UsePathForHelpMessages switch added - if the symbol is defined, Messages are obtained from <AppName>:Messages, requiring an <AppName>$Path system variable. Previously, they were always fetched from Resources which is only correct if the module is in ROM. This only influences the ability to give sensible *help output for *help Desktop_<AppName>. In addition, KJB added code to export the module private word pointer as 'module_private_word_ptr'. Admin: Tested inside PlugPlay RAM module build. Version 5.05. Tagged as 'RISC_OSLib-5_05'
-