Commit Graph

8855 Commits

Author SHA1 Message Date
marco
b59c42f2c7 * removed exporting a non standard strtotime, which was a workaround for missing
formatsettings/locale versions. Patch by Lacak2, Mantis #19870 (3rd)

git-svn-id: trunk@18110 -
2011-08-06 12:19:44 +00:00
marco
bf65638891 * strtodatetime adapted to new strtotime regime. Take separator from formatsettings.
Second patch fo Mantis #19870

git-svn-id: trunk@18100 -
2011-08-05 13:37:16 +00:00
marco
52afb619aa * add overloaded strtotime, patch by Lacak2, Mantis #19870
git-svn-id: trunk@18093 -
2011-08-04 17:01:34 +00:00
marco
043e9b2ec2 * Trunk version to 2.7.1
git-svn-id: trunk@18075 -
2011-08-03 13:59:33 +00:00
marco
39d7bb511d * Regenned all makefiles before 2.6.x branching.
git-svn-id: trunk@18073 -
2011-08-03 13:41:52 +00:00
marco
079831b50e * Deref old content of node in FPSList.put. Mantis #19854
git-svn-id: trunk@18063 -
2011-08-02 15:15:27 +00:00
marco
7eeb4ab539 * also return fasymbolic if dir is found.
* update getattr to also return fasymbolic
  Patch by Dimitri B. Mantis #16817	

git-svn-id: trunk@18043 -
2011-08-01 11:36:28 +00:00
marco
2c00a2a0b3 * fixed FPC_USE_LIBC building for Linux and exception handling (mantis #13450)
- fixed a platform modifier in ipc.pp
   - fixed different layout sigaction record in libc. (field order)
   - fixed many bad use_libc fixes in linux. Most of these were only checked
      for compilation, not linking. (e.g. futex doesn't link)

git-svn-id: trunk@18042 -
2011-07-31 23:36:17 +00:00
sergei
ad94e5e719 * Link TLS directory and callbacks only into executables. It is not necessary for DLLs, because callback functionality is contained in DllMain. Moreover, DLLs with TLS directory cannot be dynamically loaded in Windows versions prior to Vista.
* In Win32, reference TLS directory from SysInit units, allowing the module which needs TLS to be different from module which contains system unit.
* Don't write to TLS directory, as it can be placed into read-only memory.

git-svn-id: trunk@18028 -
2011-07-27 23:22:09 +00:00
sergei
ef48f93d85 * win/systhrd.inc: modified ThreadMain so it initializes RTL if not already done, allowing TLS callbacks to be optional.
* win/syswin.inc: added a workaround for buggy ld on win64, see comments in source for details.

git-svn-id: trunk@18019 -
2011-07-25 07:41:32 +00:00
sergei
24c3a43b35 * Call SysFlushStdio from FlushThread, instead of duplicating its functionality.
* Don't call FlushThread from EndThread, since r17798 it is called from DoneThread.

git-svn-id: trunk@18018 -
2011-07-25 06:03:40 +00:00
florian
aae20fd488 * enable loading of the stack pointer
git-svn-id: trunk@18010 -
2011-07-17 17:14:06 +00:00
florian
ac17ee8acb * fix compilation of atmega128 startup code, not working yet
git-svn-id: trunk@18006 -
2011-07-17 08:54:24 +00:00
Jonas Maebe
d85ccd7418 * fixed compilation on targets where tthreadid is not an integer type after
r17992

git-svn-id: trunk@17993 -
2011-07-16 12:03:35 +00:00
sergei
5c3aca5148 * thread.inc, DoneThread: allow CurrentTM.ReleaseThreadVars to be unassigned and reset ThreadID (in preparation to support Windows native threadvars)
* win/systhrd.inc: added error checking in several places. Fail with code 226 if resources cannot be allocated, as Delphi does.
* win/syswin.inc, Dll_entry: Don't call DoneThread in PROCESS_DETACH callback, it is redundant because the main thread is finalized by FPC_DO_EXIT. SysReleaseThreadVars is still necessary. Also removed redundant assignments to return value.

git-svn-id: trunk@17992 -
2011-07-15 23:57:23 +00:00
sergei
35a2ed9a6c - Removed unused variable
- Removed inline directive (formal arguments are unsupported and only cause compiler noise)

git-svn-id: trunk@17988 -
2011-07-13 22:14:39 +00:00
marco
1e9733d2d7 * several virtual* and heap* functions checked for 64-bit issues.
git-svn-id: trunk@17979 -
2011-07-11 20:38:37 +00:00
sergei
02a5efc619 * win/systhrd.inc, clean up:
- removed assembler from SysRelocateThreadVars: never actually worked, and this file is shared between different CPUs - not a proper place for assembler anyway.
- Obtain handle of kernel32.dll using GetModuleHandle, allows to get rid of UnloadLibrary call.

git-svn-id: trunk@17975 -
2011-07-11 17:18:48 +00:00
florian
f276177c44 + build atmega128 mcu unit
git-svn-id: trunk@17971 -
2011-07-10 21:03:05 +00:00
sergei
50952945e1 * Moved WideString-related code, which is identical for Win32 and Win64, into syswin.inc
* Defined HAS_WIDESTRINGMANAGER for Win32 and Win64, this allows to smartlink away part of generic widestring routines.

git-svn-id: trunk@17963 -
2011-07-08 20:07:51 +00:00
sergei
cd94bb5edf * tls_index must be renamed everywhere, forgotten part of r17943.
git-svn-id: trunk@17948 -
2011-07-06 20:33:45 +00:00
sergei
d9c399f6a1 * Partially reverted rev.17798: printing the runtime error message must remain in InternalExit.
Moving it to SysFlushStdIo causes a multithreaded program to print several messages with meaningless stack traces.

git-svn-id: trunk@17944 -
2011-07-06 17:40:34 +00:00
sergei
ea1e44c036 * Hacking TLS callbacks into proper shape, part 2:
- Completely removed DLL_PROCESS_DETACH callback for executables. Reason: 1) it is executed after RTL has been shut down and called ExitProcess(), at which point it is really not a good idea to do the cleanup. 2) In executable (in contrast with DLL) it is just fine to leave remaining resources alone and let OS reclaim them.
* Using 'cvar' for _tls_used and _tls_index to get proper prefixing without $ifdef's.

git-svn-id: trunk@17943 -
2011-07-06 16:43:13 +00:00
sergei
59ac157b50 sysinit*.pp: Factored common code into include file.
git-svn-id: trunk@17939 -
2011-07-05 13:25:51 +00:00
sergei
138c2b6b0a * Hacking TLS callbacks into proper shape:
- Do not call DLL hooks from exe callback handler.
  - Do not call SysInitMultitheading from DLL_THREAD_ATTACH handler, it may only be called from the main thread. See comments in syswin.inc for details. Reverts rev. 17892.
  + To guarantee that SysInitMultithreading is called from the main thread, assume executables always multithreaded, just like DLLs are.
  - Also removed all checks with MainThreadIdWin32, except checks for double DLL_PROCESS_DETACH in DLLs. They duplicate what Windows already does (the main thread invokes only PROCESS_ATTACH/PROCESS_DETACH and never THREAD_ATTACH/THREAD_DETACH callbacks).
  * Attempts to avoid double initialization/finalization (once in callback, second time in normal control flow).
  * Net result: webtbs/tw2423 and webtbs/tw15530 fixed, webtbs/tw3661 broken (because heaptrc does not support checking pointers in TLS area, and with 'always multithreaded' apps the Output varible moves into TLS).

git-svn-id: trunk@17938 -
2011-07-05 11:57:11 +00:00
sergei
d11d08af73 * heaptrc.pp: In case of early multithreading initialization, initialize all related items (namely, main_relo_todolist), not just the critical section. main_relo_todolist is used later without assigned checks, and it is also used as a flag to destroy the critical section.
git-svn-id: trunk@17937 -
2011-07-05 08:49:24 +00:00
pierre
cdcabe3ee4 * Prevent propagation of ' !proxy' environment variable to programs launched by Dos.exec by renaming it to '_!proxy' after handling in startup code
git-svn-id: trunk@17936 -
2011-07-05 06:54:24 +00:00
marco
391aef9927 * clocale fixed for Solaris, Patch by Ludo Brands, mantis #19675
git-svn-id: trunk@17919 -
2011-07-03 18:05:40 +00:00
Legolas
fb1e29aef5 * nds: implemented write(ln) output on the screen (it needs flush tough...)
git-svn-id: trunk@17915 -
2011-07-03 08:34:52 +00:00
michael
e357dc3fb9 * LongdateFormat equals shortdateformat (no longdateformat is available in langinfo) Bug #19616.
git-svn-id: trunk@17914 -
2011-07-02 13:42:44 +00:00
marco
c8218eaab8 * constants for sockets unit of Solaris by L. Brands, mantis #19665
git-svn-id: trunk@17910 -
2011-07-01 20:50:49 +00:00
pierre
450fd8784b * section specification method changed
git-svn-id: trunk@17907 -
2011-07-01 19:22:12 +00:00
pierre
46a6be05a5 * More dummy code to avoid removal of required labels
git-svn-id: trunk@17898 -
2011-07-01 14:21:50 +00:00
pierre
8e2da253f9 * Index pointer field must be set to correct value in EXECUTABLE as it is used at program launch
git-svn-id: trunk@17897 -
2011-07-01 13:15:00 +00:00
pierre
bffd571f9d * win/sysos.inc: TTlsDirectory, new record type
Used to support TlsCallbacks.

    Tls callback code added inside
    ifdef FPC_USE_TLS_DIRECTORY.
    NOTE: This code needs compiler changes also to work.

  * win/systhread.inc:
    Exec_Tls_callback: Callback for main executable.
    Several new external variables:
    FreePascal_TLS_callback, FreePascal_end_of_TLS_callback
    need to be placed into .CRT$XL* section,
    using  name '.section .CRT$XLFPC __FPC_tls_callbacks'
    extension to be provided by compiler change.
    tls_callbacks : pointer; external name '___crt_xl_start__';
    tls_data_start : pointer; external name '___tls_start__';
    tls_data_end : pointer; external name '___tls_end__';
    provided by linker script.
    tls_index : DWord that will contain the automatic
    TlsIndex generated by executable launch code (not used by
    FPC code, but might be used by code from loaded objects).
    _tls_used: TTlsdirectory record.

  * win32/system.pp and win64/system.pp:
    Code to force loading of _tls_used record.

git-svn-id: trunk@17893 -
2011-07-01 10:40:35 +00:00
pierre
128e2e9cc5 *Dll_entry: Call SysInitMultiThreading to allocate TlsKey if not yet done
git-svn-id: trunk@17892 -
2011-07-01 10:08:40 +00:00
pierre
1339c66ec9 * SysAllocateThreadVars: Make sure the data slot is only allocated once
git-svn-id: trunk@17891 -
2011-07-01 10:07:38 +00:00
pierre
04d85d32d9 * Disable inline for FPC_HEAPTRC_EXTRA to facilitate cdebugging with GDB
git-svn-id: trunk@17890 -
2011-07-01 07:50:51 +00:00
Jonas Maebe
c5dfa9d354 * fixed fpc_shortstr_concat() in case the max length for the destination is
already smaller than the length of the first string (probably cannot
    happen currently, but may be in the future as a result of optimizations)

git-svn-id: trunk@17886 -
2011-06-30 15:48:52 +00:00
michael
0d14fc2851 * Second patch from Mattias Gaertner (bug 19623, should fix 19633 as well)
git-svn-id: trunk@17845 -
2011-06-27 18:34:25 +00:00
Legolas
2503ac1d97 * Updated nds to devkitARM r33
git-svn-id: trunk@17843 -
2011-06-27 12:22:46 +00:00
michael
b98270d27c * Undo 17822 - causes resource compilation errors in lazarus
git-svn-id: trunk@17842 -
2011-06-27 08:18:30 +00:00
michael
a2d007dfa3 * Applied patch from Mattias Gaertner to fix parse buffer not always being loaded (bug 19623)
git-svn-id: trunk@17823 -
2011-06-25 10:58:34 +00:00
Legolas
d530b4fce7 * Some work on sysutils.pp about file I/O
git-svn-id: trunk@17813 -
2011-06-23 21:15:19 +00:00
pierre
2d5ca71a06 + New procedure SysFlushStdIO (code taken from InternalExit).
* InternalExit: now calls new procedure SysFlushStdIO
 * DoneThread: Also calls SysFlushStdIO to avoid loosing output
 if standard files are redirected.

git-svn-id: trunk@17798 -
2011-06-22 16:16:27 +00:00
Legolas
e3aa30f67c * Added a first file I/O handling implementation
git-svn-id: trunk@17780 -
2011-06-20 21:55:58 +00:00
florian
efea42bcdf * rewrote Ror/Rol/Sar so that it can be completely folded into a const by the compiler
if possible, the copied (dist and xxx) expressions are folded by the CSE so they don't hurt

git-svn-id: trunk@17764 -
2011-06-16 20:27:11 +00:00
sergei
3e145f6d77 + RelocateHeap: tolerate being called more than once.
git-svn-id: trunk@17762 -
2011-06-16 18:57:36 +00:00
florian
37b8b791d5 * overloaded versions of IsNan, resolves #14351
* prefer <ord> -> single over <ord> -> double/extended, this is delphi compatible

git-svn-id: trunk@17758 -
2011-06-14 20:38:51 +00:00
joost
96ec37aa92 * Fixed multiplying negative tBCD values
git-svn-id: trunk@17744 -
2011-06-13 17:12:49 +00:00