2009-11-29 Bernd_afa Version 63.1 * I find functions that are not in MOS ixemul but in the 48.3 fork from megacz and i add them now in this ixemul realpath inet_ntop inet_pton gai_strerror freeaddrinfo getaddrinfo getnameinfo * Add ix_UseAmigaPaths(mode) func. When mode = 1 then amiga Path Mode is used. For example when current dir is sys:wbstartup ix_UseAmigaPaths(1); h = fopen("/tools.info","r"); work * Add C99 funcs hypot exp2 exp2f log10f expf * revert change from jDc in __write.c to V48 because some programs do not correct line feeds in Shell Output(gdb ) with new Code and for what the new Code is need i dont know Add dummy libm.a that come in lib dir.It help some configure scripts that want link with libm to detect available math functions correct. 2009-09-01 Bernd_afa Version 62.1 fix a problem when more child threads use network access (fix Internet stream play with ffplay without source changes) Linux return a address when call malloc(0), so there are some programs out (all that use milkshape loaders) that fail if this is not do.now ixemul return too a address and this programs work. when there is no HOME enviroment var in your env dirs, then ./ is return from getenv. before it return 0 and this let some programs crash, or do no prefs save. This make complete remove of programs more easy and is amiga like. So there is no problem that HOME dir grow lots by saving all config files in 1 dir and fit better in amiga enviroment. If you dont like that config files are store in current dir and that it is called as HOME, then create a env var HOME with path to dir you want. 2009-07-11 Diegocr * Added the task's blacklisting features to the buddy allocator. * Improved poolmem to be somewhat faster... * Removed a Forbid/Permit pair around malloc's b_alloc() call which does not seem to be needed.. (buddy allocator) * Memory's Pool and Semaphore are created regardless of the allocator being used, but not freed on exit when using the buddy way - Fixed. 2009-07-01 Bernd_afa * fixed a filesystem Bug introduce from MOS Version for programs that use AHI output (fopen("audio:..")). * sound is now play correct * use now old buddy allocator again, because netsurf need very good memperformance but poolmem system do after some netsurf use lots slowdown (more than 3) because of mem fragmentation in poolmem.For using memtrackers, there is a poolmem version attached, named ixemul.library_poolmem. 2009-05-29 Diegocr * Updated IXPrefs to Version 2.8 - Added options which control how malloc() should react when running out of memory. - Added a button which launches a external program to the Task's Blacklisting management, it's currently made using MUI, and loaded from SYS:Prefs/ixbl_MUI (either via WBRun if it's found, or falling back to 'C:Run <>NIL:') * library/hwck.c library/ix_blacklist.c (new) library/ix_settings.c library/ixemul.h library/ixprotos.h library/malloc.c: Implemented task's blacklisting features. Certain options can be configured globally (from ixprefs) or per-task (from ixbl_MUI), When a global option is enabled but the same option over a blacklisted task is disabled, the later is taking into account. Same if you disable a global option and it's enabled over a blacklisted task. Those options should be intuitive and easy to use. However, you'll find additional info on the buble-helps from the ixbl_MUI program. 2009-05-25 Diegocr Version 61.2 * library/malloc.c: Poolmem allocation system now uses Semaphores rather than Forbid/Permit.. * library/ix_open_68k.c: the memory pool was created without checking if the allocation failed or not - Fixed. 2009-05-13 Bernd_afa Version 61.1 * * add func log2 log2f lrint lrintf to math.h * add func strtok_r to string.h * add func sqrtf/fmod to libc. * mmap use now page size alligned memory that is need by programs(GCC) to work ok * correct handling for extern inline in C99 Mode see http://gcc.gnu.org/ml/gcc/2007-03/msg01096.html * additional poolmem memsystem add.this let bugs find more easy because AOS memtracker work. POOLMEM define in malloc.c can switch between them. * ix_CreateChildData function add in libc.a.This create correct Userdata structure ixemul need to store filehandles and used memlist of current task when a task is create with amiga OS create Task. change to follow Unix spec(not used in vfork process) child tasks use mem list from parent task. child tasks use same file handle as parent task need by many Unix programs that create tasks with SDL. this function is 100% compatible to old because only programs that use ix_CreateChildData set u_parent_userdata != 0 and so new code is active. * Bugfix: llock get now correct aligned mem for packet call.(wget resume work again) * because most Linux programs do not check if enough memory is here and to avoid them crash badly after a failed malloc a check is add if memory cant allocate. then a requester come that show how many mem need, and the user can free memory on other programs and can then click on try again. 2009-02-06 Bernd_afa * lseek return now correct value when whence is not support (ffmpeg need this) * show the correct stack usage when run cli program ixstack -s and in ixprefs show stack usage is on fill not the stack with cookie values if stack pointer is not in bound of sp_lower sp_upper there seem some programs out, that change stack and dont set stack bounds correct. * the requester wrong ixnet is now too show when program start from workbench by moving wbstartup message code on same place as MOS on ix_open 2009-01-29 Diegocr * a couple math#?.(c|h) fixes, updated math-68881.h, etc... 2009-01-27 Bernd_afa * fix old Bug that when ixstack envvar is set the stack for the vfork process was always limit to ixstack size.Now if the caller process of vfork have more stack, then this stacksize is used * change of the c99 funcs to use static inline in math.h * the have_xxx defines are now disable by default(need only enable on GCC build) * if no int __stack variable is set in program a default stacksize from the envvar ixstack is use. if no envarc:ixstack env var is find, the minimum stacksize is set to 512000 bytes. If on shell or Icon more stack than the minimum is set, then this stack size is use. Sound large, but Unix/Linux programs need lot stack.the value of 512 kb is a praxis value, because i find no program currently that use more stack than 400 kb.but dont think 512 kb is far enough. The cygwin Unix API give Unix/Linux tasks 2 MB of stack and also windows programs get on default 2,5 MB of stack.So if you have lots of ram and you want be on the safe side better set ixstack to 2000000 If you are low on amiga mem, you can lower the stack value upto 16384 same value as ixemul 48 or 49. BUT BE SURE ALWAYS look how much stack a program need.there are not much programs out, that work with this low stacksize correct.So you need carefully set the values in shell-startup or Icons by yourself to usefull values * a env variable IXENVARC add, if set then ixemul read first the env varibles on dir envarc.This "Hack" help easy to get ixemul working when envhandler or happyenv is sued. Limits: when you create a new env variable only in env and not in envarc then this is not notice.So rule is, use always global env variables. * bump revision to 50.0 use V48 signal handling, and MOS V49 additional functions because on V49 Ports for 68k vfork, OWB, CTRL+c, end on stackoverflow dont work with the new MOS signalhandling on 68k. Use of seperate files with ending _68k and modified makefile so should not break MOS build * * updatet include files to help more programs easy porting * added atan2 strtoll * assert use the in newer GCC obsolete eeprintf func not. * faster file access thru 16 kb buffer, gcc compile 40-50% faster * compile too with crosscompilers, because the generatet files are now not need.The file ix_internals_backup.h contain this infos now.So you can change here. WARNING: if you use this source and change lots in ixemul.h or user.h struct , better run the program library/68060/68881/Create_header that is build always new on amigaos and verify if all offsets are correct in the ix_internals_backup.h files. * add atoll func to stdlib.h * add many C99 functions to math.h to get more programs working without changes 2008-08-15 Harry Sintonen * Fixed a race condition in global environment (ENV:) scanning. * Bumped version to 49.26. 2007-03-19 Harry Sintonen * Fixed a silly bug in the "Ram Disk:" to "RAM:" conversion. * Fixed __load_seg for root directory (/). 2007-02-19 Harry Sintonen * Internally convert any occurence of "Ram Disk:" to "RAM:". This workarounds some b0rken configure scripts. * Bumped version to 49.25. 2007-01-28 Harry Sintonen * MorphOS: Fixed startup-code local ix_panic varargs. * __ix_wb_parse: Free temporary memory allocated for the WINDOW tooltype. 2007-01-12 Harry Sintonen * Fixed widechar _ctype_ accesses (Marcin Kurek). 2006-11-19 Harry Sintonen * Fixed to restore tc_UserData at ix_close. * Bumped version to 49.24. 2006-11-01 Harry Sintonen * Fixed ixemul and ixnet library open to check for AllocSignal() failures. * Disabled SetExcept() optimization until GDB issue is sorted out. 2006-08-20 Harry Sintonen * Fixed getpagesize() to return the actual page size. * Adjusted MorphOS ix_flush*() cache routines to invalidate/flush m68k (JIT) cache aswell as PPC. This way m68k ixemul apps won't break at least. No big deal, as far as I can tell these functions are pretty much unused. 2006-08-16 Harry Sintonen * Fixed vfork() PPCSPLower & PPCSPUpper alignment. * Fixed execve() atexit-handler calling to make sure stdio file descriptors can't be close()d. * Bumped version to 49.23. 2006-04-05 Harry Sintonen * Fixed pw_class to be "default" instead of NULL. NULL value made ssh barf (strlen(NULL)). * Fixed AS225/INet225 pw_change to be time(NULL), not -1. * Bumped version to 49.22. 2006-03-11 Harry Sintonen * Now clears possibly pending CTRL-E and CTRL-F signals. 2006-03-10 Harry Sintonen * Limited the SetExcept sigmask to ixemul allocated signals only. User allocated signals no longer cause exceptions (device I/O, or anything else using user signals directly/indirectly). 2006-02-15 Harry Sintonen * Fixed all printf family functions not to parse the format string as multibyte. * Bumped version to 49.21. 2006-02-09 Harry Sintonen * Fixed getfsstat(), fstatfs() and statfs() to LockDosList()/ NextDosList()/UnLockDosList() the doslist properly instead of Forbid() and direct list scanning. * Fixed getfsstat(), fstatfs() and statfs() to make sure the device process hasn't disappeared before sending a dospacket. * Removed use of custom __Close function, use dos Close instead. 2005-10-29 Mark Olsen * Mapped /dev/zero to zero: in __open.c 2005-10-25 Harry Sintonen * Fixed ix_to_ados with foo:./[///]bar and foo:/[///]bar. Some stuff appears to depend on this. Note that foo:../bar etc still works different to original routine. If something depends on that particular feature of the original routine, we're screwed. * Added ftruncate() seek workaround for buggy filesystems (FFS2). * Bumped version to 49.20. 2005-06-26 Harry Sintonen * Rewrote ix_to_ados path conversion routine, it was way too hairy and buggy (for example .// and ..// were interpreted wrong). Now it's a simple state-engine with exception for ix and abs-ados path concatenation (needed by ksh cd for example). Also, it no longer tries to optimize away parent elements in the path, as this could have led into problems with softlinks. 2005-06-14 Jacek Piszczek * Tweaked termios defaults to match those used on linux, enabled ISIG, stdin has output flags set as well as stdout now 2005-05-25 Jacek Piszczek * Fixed \n filter when IXTTY_ONLCR is disabled (uses INDEX now). * Added IXTTY_SPECIAL for sshconsole 2005-04-20 Harry Sintonen * Disabled CTRL-F -> SIGWINCH translation code, it isn't used by anything anyway. It also broke ahi.device from ixemul apps. There's still the Ixemul semaphore to send signals from outside of ixemul. * Fixed setnetent()/endnetent()/getnetent() to be reentrant. * Fixed AS255 68k vsyslog() to actually print to the log instead of stdout. * Fixed vsyslog()/AS225 68k vsyslog() to be reentrant. * Fixed getpass() to be reentrant. * MorphOS: Removed EmulCall68k in favor of EmulCallDirect68k. * Updated inet_network() to 1993 edition. * Fixed getnetent() wrong n_net value and alias parsing. * Fixed fread LARGEREADS: It didn't handle writes or ungetc before large read. * Rootdir (/) emulation lists assigns now, too. [Pavel Fedin] * Bumped version to 49.19. 2005-03-02 Harry Sintonen * ixnet: fixed h_errno variable, it was never set before. * Bumped version to 49.18. 2005-02-18 Jacek Piszczek * Added a possibility to disable IXTTY_ONLCR. * Added a \n to ^D filter when IXTTY_ONLCR is disabled. * TIOCSET* functions applied to stdin update stdout, etc to fix some compatibility issues. * Bumped version to 49.17. 2005-02-16 Harry Sintonen * Fixed snprintf/vsnprintf(p,0,...) wrong return value. Both functions would always return -1 instead of the number of characters that would have been written (not counting \0). * Bumped version to 49.16. 2005-01-14 David Gerber * Fixed scandir() to return proper file types. 2005-01-05 Emmanuel Lesueur * Added a way to send unix signals to an ixemul process from a non ixemul process. * Bumped version to 49.15. 2004-10-04 Harry Sintonen * nmap returned NULL instead of -1 for error in one case (report by jorge). 2004-08-28 Harry Sintonen * ixemul/ixnet LIB_Expunge: Don't reference already freed memory. * Bumped version to 49.14. 2004-07-05 Harry Sintonen * Removed the global max file limit of 512. Currently the close()d filenodes don't get released, but are cached for reuse. * Bumped version to 49.13. 2004-06-17 Harry Sintonen * Fixed ix_create_extio wrong message node type. 2004-04-02 Emmanuel Lesueur * Altivec stack alignment fixes. * Bumped version to 49.12. 2004-03-18 Sigbjørn Skjæret * Fixed ENV: notification, you can actually use global envvars now. 2003-12-27 Harry Sintonen * Optimized bcopy(), bzero() and memset(). * Fixed bzero() trashing whole memory if called with odd address and 0 len. * Bumped version to 49.11. 2003-12-12 Harry Sintonen * Fixed uname() to return sensible values under MorphOS. * No longer relies on shared math libraries under MorphOS. * Bumped version to 49.10. 2003-10-15 Emmanuel Lesueur * Fixed chdir("/") so that mkdir -p /ram/foo/bar works. * Bumped version to 49.9. 2003-08-24 Mark Olsen * file fds no longer set exc fdset in select because there is data to read. 2003-08-17 David Gerber * Added direct mapping of /dev/(random|urandom|srandom|prandom) to the RANDOM: device. * Bumped version to 49.8. 2003-08-06 Harry Sintonen * Fixed getcwd() off-by-one buffer overflow if ix_translate_slash was enabled. * Fixed getcwd() buffer overflows with buffer size of 1. * Fixed getcwd() errno in error cases. * Bumped version to 49.7. 2003-07-19 Harry Sintonen * Fixed open() not seeking to file end for O_APPEND. * Bumped version to 49.6. 2003-07-17 Harry Sintonen * Fixed lstat() entering forever loop if called for multiassign where the first assign doesn't match. * Bumped version to 49.5. 2003-07-15 Harry Sintonen * Fixed ftruncate() and truncate() wrong return value for success. * Bumped version to 49.4. 2003-07-07 Harry Sintonen * Fixed getwd() and getcwd() to prefer NameFromLock() of pr_CurrentDir over buffersize limited GetCurrentDirName(). * Bumped version to 49.3. 2002-11-30 David Gerber * Removed "Physical blocks build one logical block (for stdio)" option which is computed automatically depending on device blocksize now. 2001-06-01 Emmanuel Lesueur * Adapted the signal handling process to the new MorphOS scheduler. It seems to have fixed the CTRL-C crashes. * Bumped version to 49.2. 2001-03-28 Emmanuel Lesueur * Fixed math functions for MorphOS 2000-10-21 Emmanuel Lesueur * Implemented cache manipulation functions, besides flush_cache(). * Fixed problems with executing non-ixemul programs. * Bumped version to 49.1. 2000-10-04 Emmanuel Lesueur * Fixed various problems with 68k ixemul programs * Completed support for 68k stack management * Improved configure/make * Fixed some includes bugs * Added support for ctors/dtors in crt0.o * Added the missing _err/_warn * Compiled the ixpipe: handler and some tools 2000-09-17 Emmanuel Lesueur * fixed wb startup problems. * fixed problem with stack extension of 68k program 2000-08-30 Emmanuel Lesueur * fixed siglongjmp() * fixed a race condition in wait4() 2000-06-20 Emmanuel Lesueur * Added MorphOS support. * bumped version from 48.1 to 49.0. 2000-05-07 Emmanuel Lesueur * replaced the signal handling by one based on exceptions. 1999-07-12 David Zaroski * (library/lseek.c): fix error reporting in __extend_file() 1999-06-13 Fred Fish * version.in: Bump development version from 48.0 to 48.1 and update the date fields. 1999-03-06 David Zaroski * (configure.in): add support for cross compiling * (Makefile.in) : ditto * (man/Makefile.in): fix man page generation * Regenerate configure Sat May 23 23:53:18 1998 Fred Fish * Makefile.in (OS): Remove pos from default list of operating systems to build for. 1998-03-25 Fred Fish * ChangeLog: New file * Makefile.in (CPU-FPU-TYPES): Add 68060.68881