1
0
mirror of https://github.com/adtools/clib2.git synced 2025-12-08 06:48:52 +00:00
Commit Graph

567 Commits

Author SHA1 Message Date
ca30ee62a2 - The __main() stub function expected by the 68k GCC build is no
longer part of "stdlib_main.c". This helps the C++ support, since the
  __main symbol definition no longer clashes with the definition in
  "libgcc.a".


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15076 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-12-31 12:23:54 +00:00
9ab31bb996 - Preparations for release.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15075 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-12-11 08:55:29 +00:00
26b8b9efbf - Forgot to check in a file.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15074 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-28 10:11:07 +00:00
67ff2ca833 - Added another function called __reset_max_mem_stats() which will reset the
counters for "maximum amount of memory used" and "maximum number of chunks
  allocated" to the current figures for these values.

- Fixed the alloca() declaration in <stdlib.h> so that software which keys
  off the fact whether or not the alloca preprocessor symbol is defined
  will do the right thing.

- Added an optional call-back function which can be called if alloca()
  is about to return NULL, which some software does not consider.
  Rather than letting such software drop into an illegal memory access
  or worse, that call-back function will be invoked instead, which can
  print an error message and eventually call abort().


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15073 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-28 09:53:51 +00:00
797fcb89a1 - Fixed the header files I broke by mistake.
- You can now request that your program uses the clib2 alloca() function
  rather than the built-in compiler alloca().

- alloca() is now part of libunix.a, too.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15072 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-27 10:28:16 +00:00
0809248009 - Added notes on where to find documentation and updates to each header file.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15071 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-27 09:51:45 +00:00
1153e58366 - In libunix.a malloc(), calloc() and realloc() no longer treat a
request to allocate 0 bytes as an error, returning NULL. They all
  return a pointer sized memory chunk (= four bytes) initialized to
  NULL (= 0) instead.

- The alloca() implementation which allocates memory from the system
  rather than the local stack frame is thread-safe now. It also
  interacts with the realloc(), calloc(), free() and malloc() functions
  in that the alloca() cleanup routine is called once alloca() has
  done its job. If all the memory allocated through alloca() has been
  released no further calls to the cleanup function will be made.

- In the thread-safe library, realloc() permitted two different overlapping
  calls to succeed in trying to reallocate the same chunk of memory due to
  a race condition. Fixed.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15070 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-27 09:26:55 +00:00
06e5f437d9 - Moved the thread-safe library documentation.
- The malloc() in libunix.a now allocates four bytes of memory instead
  of just one for a request to allocate 0 bytes.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15069 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-27 09:25:21 +00:00
fa8fc6959f - Corrected the section numbering.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15068 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-20 20:04:47 +00:00
954e614cb2 - Fixed the remaining HTML errors.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15067 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-20 19:56:58 +00:00
a5a5e36119 - Changed the assertion message text shown in the requester window.
- The standard malloc() now sets errno to EINVAL for zero length
  allocations.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15066 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-20 19:04:10 +00:00
e4f9d1b7f6 - Updated the general documentation and started to document the implementation-specific
behaviour of the library functions.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15065 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-20 19:02:44 +00:00
0459ea1fc9 - In libunix.a malloc(), calloc() and realloc() no longer treat a
request to allocate 0 bytes as an error, returning NULL. They all
  return a 1 byte memory chunk initialized to 0 instead.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15064 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-20 17:00:22 +00:00
fe29857567 - Replaced the sqrt() call.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15063 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-19 17:17:47 +00:00
5578c6a39e - Added <fenv.h> for C99, and the (yet unimplemented) functions
feclearexcept(), fegetenv(), fegetexceptflag(), fegetround(),
  feholdexcept(), feraiseexcept(), fesetenv(), fesetexceptflag(),
  fetestexcept(), fetestround() and feupdateenv().

- Replaced the old pow() implementation. However, powf() may need to
  be changed to set a domain error.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15062 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-19 17:11:22 +00:00
2b50d1586c - Added more boundary checks to the FD_#?() macros which now also catch
the case of negative socket IDs.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15061 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-06 14:37:49 +00:00
0f5e6747e0 - Fixed the Amiga archive build script to delete the remains of the
CVS directory structure.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15059 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-04 10:10:57 +00:00
a0a46206d1 - Updated the Unix archive build script to clean up the
CVS subdirectories in the "include" directory.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15058 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-04 09:39:40 +00:00
c7fbdf27e1 - Added Steven Solie's new OS4 build makefile.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15057 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-04 09:35:02 +00:00
010d4c1c06 - Preparations for clib2 1.197 release.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15056 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-11-04 09:21:44 +00:00
81958fd44b - Tried to reduce the number of compiler warnings generated.
- The cross compiler GNUmakefile.os4 variant now also logs all warnings
  and errors to a compiler.log file.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15055 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-27 08:58:41 +00:00
937169c0ba - Updated the OS4 build makefile to allow for a parallel build to work
better. Note that this is not yet entirely succesful.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15054 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-27 08:26:17 +00:00
dda36eb609 - IsServerProcess() should have read ProcessIsServer().
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15053 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-23 11:58:12 +00:00
867e6d500a - Updated the new __obtain_daemon_message() function to call a
bsdsocket.library API function to determine if what appears to be
  a valid daemon startup message is sound.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15052 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-23 09:53:39 +00:00
99e9ebfc15 - Moved the code which rebinds the standard I/O streams to the server
socket into a separate function which can be overridden by user code.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15051 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-20 07:19:16 +00:00
63c08cfe0e - The network startup code no longer checks for the presence of a possible
daemon startup message by default. You now have to enable this feature
  by declaring a global variable called "__check_daemon_startup" which is
  described in <dos.h>.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15050 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-20 06:50:32 +00:00
b6de3e4c48 - In <stdbool.h> the preprocessor definition should read
"__bool_true_false_are_defined" rather than "__bool_true_and_false_are_defined".
  Thanks go to Peter Bengtsson for finding and fixing it.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15049 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-19 08:11:44 +00:00
090753282b - Added __set_h_errno() and __get_h_errno() functions.
- The thread-safe library now tries to enable bsdsocket.library base
  sharing and attempts to make the TCP/IP stack call the local
  __set_errno() and __set_h_errno(), so that any Process calling
  the library functions will get a chance to see proper error
  codes. Whether any of these features could be enabled can be tested
  through two global variables __can_share_socket_library_base and
  __thread_safe_errno_h_errno which are defined in <dos.h>. Note that
  for both features to work you will need the Roadshow bsdsocket.library
  version 4.275 or higher.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15048 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-17 13:54:25 +00:00
d45da0acd4 - Corrected a variable name.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15047 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-16 09:17:11 +00:00
3480ec40b3 - Updated the build files so that atanh() and atanhf() are built for the
respective math libraries.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15046 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-16 09:14:28 +00:00
f9e782d358 - Implemented atanh() and atanhf() which were not listed in the TODO
file but were still unimplemented up until now.

- Replaced ldexp() and modf().


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15045 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-16 09:05:03 +00:00
44bcf889e5 - Corrected a typo.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15044 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-16 08:34:52 +00:00
257dd6af88 - Updated math_hypot.c to a newer (e_hypot.c 1.3 95/01/18) version from
fdlibm which uses macros for manipulating the high and low words of a
  double, like the rest of fdlibm functions in clib2. The previous version
  would give bogus results when compiled with -O3 in clib2 which lead to
  "interesting" results (and lots of fun while searching for the problem)
  in Ghostscript. Wish I managed to track this down yesterday for 1.196
  release... <aantonijevic>


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15043 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-11 19:05:18 +00:00
acafd14bc2 - Removed <sys/clib2_net.h> and every reference to it.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15042 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-11 11:24:53 +00:00
b63587ed80 - Removed the compiler log file generation.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15041 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-11 09:37:27 +00:00
b861ed19c4 - Removed a couple of compiler warnings; fishing for more...
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15040 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-11 09:28:29 +00:00
ccfea73fc5 - Updated the thread-safe library documentation section.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15039 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-11 08:28:32 +00:00
d74640b15b - Getting ready to make a new release.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15038 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-11 07:37:58 +00:00
db9a1c69e5 - Resolved the vulnerability by caching the socket descriptor while the
stdio data is still locked.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15037 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-09 14:48:19 +00:00
cb1f1a4a10 - Removed the various workarounds associated with <unistd.h>, required
for building code that references the networking API. It is now possible,
  provided you build your code with an existing TCP/IP API header file
  set (such as from the "Roadshow" SDK) without running into data type
  or function prototype declaration conflicts. I have added local versions
  of <arpa/inet.h>, <netinet/in.h>, <netdb.h>, <sys/filio.h>, <sys/ioccom.h>,
  <sys/ioctl.h>, <sys/select.h> and <sys/socket.h> and updated <unistd.h>,
  <pwd.h> and <grp.h> accordingly. Note that some of the function prototypes
  will conflict with the bsdsocket.library/usergroup.library API, which is
  why you can disable the declarations through the __NO_NET_API preprocessor
  symbol: if defined, none of the function prototypes will be defined.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15036 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-09 12:32:18 +00:00
bb2376a6ed - Implemented lrintf(), lrint(), lroundf(), lround(), nearbyintf(),
nearbyint(), remquof(), remquo(), roundf(), round(), tgammaf(),
  tgamma(), truncf(), trunc(). Sort of implemented fmaf() and fma(),
  which really ought to be done in "SIMD" fashion.

  This completes the "real" floating point math library (ignoring
  for a moment that the floating point environment code is still
  not implemented).


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15035 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-09 10:38:56 +00:00
159e55f1e6 - Fixed the locking and the NULL pointer reference.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15034 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-09 09:05:27 +00:00
4e30f5604d - accept() now calls the bsdsocket.library accept() function first
and then hooks up the socket with the clib2 data structures. This
  makes it possible to have several Processes calling the accept()
  stub at the same time.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15033 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-10-08 15:59:56 +00:00
095a14bf1f - When the main() function returns directly or indirectly by way of
calling exit(), the IoErr() value set at this time will now be
  preserved until the program really returns control to the shell.
  This turned out to be easier to implement than I had originally
  thought, thanks to the fact that the atexit() functions are all
  invoked straight after the exit() call.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15032 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-09-28 10:28:38 +00:00
f84fbc32cb - The ERANGE initialization is not necessary.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15031 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-09-28 09:51:16 +00:00
3099f6210a - strtoimax(), strtoumax(), strtod(), strtof(), strtol(), strtoll(),
strtoul() and strtoull() now count how many digits were converted.
  If that number is zero, then the conversion is considered to have
  failed: 0 is returned, errno is set to ERANGE and the 'ptr' parameter
  reference is initialized with a pointer to the string to be converted.
  This has two consequences:

     1) A floating point number that has no digits in the significand
        is no longer converted to zero. For example ".e10" can no longer
        result in a successful conversion.

     2) You can detect if a conversion is successful by comparing pointers
        after the conversion function has returned:

           char * str;
           char * ptr;
           long n;

           n = strtol(str,&ptr,10);
           if(n == 0 && str == ptr)
              printf("conversion has failed");


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15030 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-09-28 09:28:39 +00:00
378e50d2ab - tmpnam() wrote more than L_tmpnam bytes to the name buffer. Also, the
TMP_MAX value was off by one.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15029 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-09-04 11:28:00 +00:00
0d85b41a2d - Following detection of a stack overflow, the startup code eventually
called _exit(). It should have called exit() instead.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15028 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-09-04 07:38:51 +00:00
7a57c4d499 - Fixed a typo in the new tag item list.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15026 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-09-03 14:45:14 +00:00
cef75752d9 - Getting ready for release...
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15025 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-09-03 14:09:56 +00:00