1. 29 Mar, 2015 1 commit
    • Robert Sprowson's avatar
      Retire use of stripnulls · 98a04ed1
      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.
  2. 16 Jan, 2015 2 commits
    • Jeffrey Lee's avatar
      Escape some dollars · 617d00bf
      Jeffrey Lee authored
        s/modulewrap - Escape some dollars contained in strings to avoid warnings from objasm
        Resulting binary unchanged (FilerAction)
      Version 5.83. Retagged as 'RISC_OSLib-5_83'
    • Jeffrey Lee's avatar
      Escape some dollars · 4733881f
      Jeffrey Lee authored
        kernel/s/k_body, s/initmodule - Escape some dollars contained in strings to avoid warnings from objasm
        Resulting binary unchanged
      Version 5.83. Retagged as 'RISC_OSLib-5_83'
  3. 24 Mar, 2013 1 commit
    • Robert Sprowson's avatar
      Build fix · 8e9a4e8e
      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'
  4. 27 Mar, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix asasm 2.00 warnings · 98660885
      Jeffrey Lee authored
        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)
        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'
  5. 16 Feb, 2012 1 commit
  6. 06 Dec, 2011 1 commit
    • Jeffrey Lee's avatar
      Use correct CLZ check · 23deb4ff
      Jeffrey Lee authored
        s/longlong - Only look for ARMv5 support when deciding if CLZ is available, not ARMv5T
        Tested in OMAP3 ROM
      Version 5.66. Tagged as 'RISC_OSLib-5_66'
  7. 26 Nov, 2011 1 commit
    • Robert Sprowson's avatar
      Review use of StrongARM switch. · 8988adae
      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'
  8. 28 Oct, 2011 2 commits
    • Ben Avison's avatar
      File handling improvements · 8dcb6880
      Ben Avison authored
        * 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.
        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's avatar
      Long long multiply bugfix · 3f057115
      Ben Avison authored
        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.
        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'
  9. 18 Oct, 2011 1 commit
    • Robert Sprowson's avatar
      Change to use StdTools. · 7f2ef214
      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'
  10. 24 Sep, 2011 1 commit
    • Jeffrey Lee's avatar
      Fix objasm 4 warnings. Enable (S|U)MULL/CLZ in math code. · a6d65423
      Jeffrey Lee authored
        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.
        Tested on rev A2 BB-xM.
        Different math code configurations tested briefly.
      Version 5.61. Tagged as 'RISC_OSLib-5_61'
  11. 06 Aug, 2011 1 commit
    • Jeffrey Lee's avatar
      Update to work with zero page relocation · 14a49538
      Jeffrey Lee authored
        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.
        Tested on rev A2 BB-xM
      Version 5.60. Tagged as 'RISC_OSLib-5_60'
  12. 14 Jun, 2009 1 commit
    • Ben Avison's avatar
      Build fix · e05a2099
      Ben Avison authored
        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.
        Tested in a Machine=All build.
      Version 5.54. Not tagged
  13. 31 May, 2009 1 commit
    • Peter Naulls's avatar
      Normalise C and assembler include paths · ca954eea
      Peter Naulls authored
       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)
       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
  14. 07 Mar, 2005 1 commit
  15. 23 Jan, 2004 1 commit
    • Kevin Bracey's avatar
      <ctype.h> * isblank() added. · 8f9cfb8a
      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
                * 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'
  16. 02 Dec, 2003 1 commit
    • Ben Avison's avatar
      Changes for Customer W; also suitable for building on an Iyonix. · 20ee3c3f
      Ben Avison authored
        * 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.
        Tested in a Tungsten build, and with Customer W's test suite.
      Version 5.48. Tagged as 'RISC_OSLib-5_48'
  17. 09 Oct, 2003 1 commit
    • Ben Avison's avatar
      Changes required for Customer W. · d08d7612
      Ben Avison authored
        * 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.
        ansilibm builds working modules, but thread safety has not been
        extensively tested.
      Version 5.47. Tagged as 'RISC_OSLib-5_47'
  18. 15 Apr, 2003 1 commit
    • Kevin Bracey's avatar
      * __assert2() added to support for C99 assert(), which displays function name. · f126a1ab
      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'
  19. 15 Nov, 2002 1 commit
    • Kevin Bracey's avatar
      ROM build fixed for 64-bit stuff. · f207fcb2
      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'
  20. 22 May, 2002 2 commits
    • Kevin Bracey's avatar
      * Added two new library chunks, 4 and 5, which contain extensions to the... · 89eac61e
      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's avatar
      Created cleanroom implementation of 64-bit integer support for licencing... · 280c51dc
      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.
  21. 11 Apr, 2002 1 commit
  22. 21 Mar, 2002 1 commit
    • Kevin Bracey's avatar
      Added the following C99 features: · f464cdae
      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()
        * hypot(), hypotf(), fabsf(), fdim(), fdimf(), fmax(), fmaxf(), fmin(),
        * 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
      Requires cc 5.41 or later, both to build, and to make use of some of the extra
      Version 5.37. Tagged as 'RISC_OSLib-5_37'
  23. 21 Nov, 2000 1 commit
  24. 08 Nov, 2000 1 commit
  25. 17 Oct, 2000 1 commit
  26. 02 Oct, 2000 1 commit
  27. 03 Jul, 2000 1 commit
  28. 09 May, 2000 1 commit
  29. 28 Apr, 2000 2 commits
    • Andrew Hodgkinson's avatar
      ...and this one actually works. · 9914d2a6
      Andrew Hodgkinson authored
      Version 5.05. Not tagged
    • Andrew Hodgkinson's avatar
      Extensions to modulewrap.s. · c210b256
      Andrew Hodgkinson authored
        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
        Tested inside PlugPlay RAM module build.
      Version 5.05. Tagged as 'RISC_OSLib-5_05'
  30. 07 Mar, 2000 1 commit
    • Stewart Brodie's avatar
      Automatic generation of swis.h now more automatic. · 8851794b
      Stewart Brodie authored
        New script will search the export directory for headers that should
          be exported SWI symbols for it and only cause them to be included
          if it finds the header file.  This means that unless a component
          in your build actually needs the SWI symbols from another component,
          you no longer require that component to be in your modules file
          purely to enable successful generation of swis.h
        Test build performed.
      Version 5.03. Tagged as 'RISC_OSLib-5_03'
  31. 25 Nov, 1999 2 commits
  32. 10 Nov, 1999 1 commit
  33. 26 Oct, 1998 1 commit
    • Stewart Brodie's avatar
      Added new -v4 pragma to derived swis.h header file. · f22c5f04
      Stewart Brodie authored
        Moved template for swis.h out of asm source into separate text file.
        s.makehswis: The text which forms the common header for the derived
          swis.h is now stored externally rather than declared inline with
          assembler directives.
        h.swisheaders: The external file containing the common header.
          Now wraps the declarations of _swi and _swix with "#pragma -v4"
          to activate the _swi/_swix parameter checking for those functions.
        Makefile: Added dependency of derived.swis on h.swisheader
        Built and exported.  Tested with cc 5.09 and it was happy with the
        new pragma (it ignores it).  Tested with what will be cc 5.10 and
        it recognised it and started checking _swi and _swix calls.
      Version 4.90. Tagged as 'RISC_OSLib-4_90'
  34. 01 Oct, 1998 1 commit
    • Kevin Bracey's avatar
      Ursula branch merged. · 9081a0dc
      Kevin Bracey authored
      StrongARMfudge flag removed.
      StrongARM compatibility set according to AMBKernel flag in Hdr:RISCOS
      strftime %U and %W specifiers fixed for week 0.
      Version 4.89. Tagged as 'RISC_OSLib-4_89'
  35. 27 Aug, 1998 1 commit