1. 31 May, 2009 1 commit
    • Peter Naulls's avatar
      Normalise C and assembler include paths · ca954eea
      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
      ca954eea
  2. 14 Mar, 2005 1 commit
    • Kevin Bracey's avatar
      * Improved stdio to allocate extra FILE objects beyond the static array of 16.... · 0d936eec
      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'
      0d936eec
  3. 07 Mar, 2005 1 commit
  4. 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
                  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'
      8f9cfb8a
  5. 02 Dec, 2003 1 commit
    • Ben Avison's avatar
      Changes for Customer W; also suitable for building on an Iyonix. · 20ee3c3f
      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'
      20ee3c3f
  6. 03 Nov, 2003 1 commit
    • Ben Avison's avatar
      Ansilib improvements, and a bugfix to system() · 1c7c8124
      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
      1c7c8124
  7. 13 Oct, 2003 1 commit
  8. 09 Oct, 2003 1 commit
    • Ben Avison's avatar
      Changes required for Customer W. · d08d7612
      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'
      d08d7612
  9. 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'
      f126a1ab
  10. 17 Jan, 2003 1 commit
  11. 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'
      f207fcb2
  12. 22 May, 2002 1 commit
    • 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'
      89eac61e
  13. 11 Apr, 2002 1 commit
  14. 26 Mar, 2002 1 commit
    • Kevin Bracey's avatar
      * Added C99 extensions to strftime(). All basic specifiers supported, but "E"... · 84335a9f
      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'
      84335a9f
  15. 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()
        * 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'
      f464cdae
  16. 29 Jan, 2002 1 commit
    • Kevin Bracey's avatar
      Abort and error handling massively overhauled: · 350370aa
      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'
      350370aa
  17. 23 Aug, 2001 1 commit
  18. 10 May, 2001 1 commit
    • Stewart Brodie's avatar
      Fix for strxfrm() · 8159da18
      Stewart Brodie authored
      Detail:
        strxfrm was passing the buffers to the Territory module SWI the wrong
          way around so Territory_TransformString copied the destination over
          the source rather than vice versa!
      Admin:
        Reported by <mailto:ian.foster@gps.tandb.co.uk>
        Fixes Bugzilla bug #4375
      
      
      Version 5.33. Tagged as 'RISC_OSLib-5_33'
      8159da18
  19. 17 Apr, 2001 1 commit
  20. 11 Apr, 2001 1 commit
    • Stewart Brodie's avatar
      strcmp() fix was broken. · 534e1478
      Stewart Brodie authored
      Detail:
        This alternate implementation returned non-zero for equal strings,
          because the tidyup routine failed to stop examining the differing
          words when it found matching zero bytes.
      Admin:
        Tested in softload C library, and in Lazarus ROM image.  strcmp()
          appears to be working per spec now.
      
      Version 5.31. Tagged as 'RISC_OSLib-5_31'
      534e1478
  21. 06 Apr, 2001 1 commit
    • Stewart Brodie's avatar
      Fix for strcmp(). · 9d5bf66a
      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'
      9d5bf66a
  22. 22 Feb, 2001 1 commit
    • Stewart Brodie's avatar
      fwrite performance improved significantly. · 0bb3e26a
      Stewart Brodie authored
        Another getenv() bug fixed.
      Detail:
        stdio.c contains a vastly improved implementation of fwrite.
        hostsys.h declares _terminate_getenv to remove build warnings.
        armsys.c contains fix to getenv() to stop Omni dying.
      Admin:
        Tested on desktop machine for over a week without incident, including
          several heavy fwrite users (WebServe, C compiler)
        fwrite change is documented in Doc/fwrite
        getenv() bug is Bugzilla bug #28
      
      Version 5.27. Tagged as 'RISC_OSLib-5_27'
      0bb3e26a
  23. 19 Oct, 2000 1 commit
    • Paul Skirrow's avatar
      Changed getenv to ensure it always allocates a buffer before calling · 9076880f
      Paul Skirrow authored
        OS_ReadVarVal.
      
      Detail:
        getenv calls OS_ReadVarVal to read a system variable into a buffer.
        If the buffer is not big enough it increases the size of the buffer by
        256 bytes and tries again.
        However, the first time it was called, it would have no buffer and
        would call OS_ReadVarVal with r2=-1. The PRM says this "may" return an error
        which should be ignored, but if it did not return an error then getenv
        would not allocate a buffer and the call would fail.
        This change allocates a 256 byte buffer before OS_ReadVarVal is called.
      
      Admin:
        Untested.
      
      Version 5.20. Tagged as 'RISC_OSLib-5_20'
      9076880f
  24. 03 Oct, 2000 1 commit
  25. 02 Oct, 2000 2 commits
    • Stewart Brodie's avatar
      Uses SYMDEFS files to avoid xtentries(app) and symgen. · 5810d878
      Stewart Brodie authored
        Fixed bug in getenv() relating to macro and numeric system variables.
      Detail:
        Uses SYMDEFS file to avoid messing around with generating little text
          files, generating assembler source, assembling it etc.  abssym et al
          are construct as symbol definition template files and then updated
          directly by the linker ready for export.  The linker can use these
          files directly without needing them to be assembled into AOF format.
        Fixed getenv so that it can read macro and numeric variables.  With these
          variable types, R2 does not equal -length of the variable value, so
          trying to obtain a variable with a larger value than any previously
          read variable would fail.  This is now fixed.
        This module will refuse to build without link 5.19 or later.
      Admin:
        Requires Library 0.54 or later.
      
        This component will not build with Library 0.53 or earlier.
      
      Version 5.16. Tagged as 'RISC_OSLib-5_16'
      5810d878
    • Kevin Bracey's avatar
      * Trailing garbage no longer appears after some perror() calls. · dddff229
      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'
      dddff229
  26. 14 Sep, 2000 1 commit
    • Stewart Brodie's avatar
      Fixed minor printf bug. · 8b52f983
      Stewart Brodie authored
      Detail:
        %#x shows a leading 0x (and %#X leads with 0X) only when the value
          to be displayed is NOT zero.
      Admin:
        Cross-verified against: C89 standard; C9X standard; gcc 2.95 implementation.
        Built.
      
      Version 5.14. Tagged as 'RISC_OSLib-5_14'
      8b52f983
  27. 09 May, 2000 1 commit
  28. 07 Mar, 2000 1 commit
  29. 22 Sep, 1999 1 commit
    • Stewart Brodie's avatar
      Fix for strcoll · e6cf1730
      Stewart Brodie authored
      Detail:
        Somebody had modified the SWI call to Territory_Collate to be done
          via _swix instead of _kernel_swi, but didn't remove the _kernel_swi_regs
          variable (r) and didn't change the function return value to return the
          new "ret" variable instead of r.r[0] which gives arbitrary results - in
          particular it confuses qsort.
      Admin:
        Tested that it builds.
      
      Version 4.97. Tagged as 'RISC_OSLib-4_97'
      e6cf1730
  30. 21 Sep, 1999 1 commit
    • Stewart Brodie's avatar
      Fix for qsort to stop aborts. · 71094b4e
      Stewart Brodie authored
      Detail:
        If qsort is passed an invalid base pointer and the number of entries
          is zero, then due to some pointer artihmetic going wrong, it aborts.
          The fix is to trap zero length arrays and exit quickly.
      Admin:
        Required by cmhg prior to version 5.20 which had an explicit fix to
          prevent triggering this bug.
        Reportedly this fix is required by PhotoDesk prior to version 3.03.
      
      Version 4.96. Tagged as 'RISC_OSLib-4_96'
      71094b4e
  31. 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'
      9081a0dc
  32. 27 Aug, 1998 1 commit
  33. 21 Aug, 1998 1 commit
    • Richard Manby's avatar
      Fixed an RMA leak. · 31ab84f2
      Richard Manby authored
      If a module written in C uses function getenv, buffer space
      is allocated in the RMA. This buffer was never freed, leading
      to RMA leakage when the module was 'RMKill'ed or 'RMReInit'ed.
      
      Changes
      
       c.armsys
         added function _terminate_getenv to free the buffer
      
       c.stdlib
         added flag getenv_finalised to the exit_s structure
      
         initialised getenv_finalised in function _exit_init
      
         atexit tests getenv_finalised, calls _terminate_getenv
      
       s.version
         version string changed to 4.86 (27 Jul 1998)
      31ab84f2
  34. 21 Jan, 1997 1 commit
  35. 05 Nov, 1996 2 commits