Commit Graph

49 Commits

Author SHA1 Message Date
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
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
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
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
sergei
3a7ac49cc2 - Removed Win32Wide2AnsiMove, using Win32Unicode2AnsiMove for both Unicode-to-ansi and Wide-to-ansi conversions. In general, we don't need two different conversion routines in wideStringManager, as long as they differ only in PWideChar vs PUnicodeChar (these types are identical).
git-svn-id: trunk@17202 -
2011-03-29 05:25:05 +00:00
florian
a0c25dc0f9 - removes Thread_count from the system unit of several OSes: the value of this variable was unpredictable and the hebaviour was not fixable, resolves #18089
git-svn-id: trunk@16472 -
2010-11-28 20:46:50 +00:00
pierre
ed1c558726 * Fix RIP relative assmebler code of rev 16410
git-svn-id: trunk@16414 -
2010-11-24 07:57:01 +00:00
pierre
709d36a1d0 + Add signals unit for win64
git-svn-id: trunk@16410 -
2010-11-23 23:57:10 +00:00
pierre
61547f6a5a * Fix incorrect instruction size
git-svn-id: trunk@15935 -
2010-09-01 11:56:52 +00:00
pierre
90d1dac1d3 + Add StartupConsoleMode as for win32
git-svn-id: trunk@14125 -
2009-11-09 17:01:16 +00:00
michael
1cf64c032f * Patch to remove useless process_entry_hook from sven barth
git-svn-id: trunk@14094 -
2009-11-07 10:10:47 +00:00
florian
cba72c423d * patch by Sergei Gorelkin to use always SetFilePointer, also for files with >2GB, this saves some lines of code, resolves #14630
git-svn-id: trunk@13838 -
2009-10-10 18:52:50 +00:00
florian
a2862ce347 * cleaned up mess of r13516
git-svn-id: trunk@13524 -
2009-08-12 19:34:46 +00:00
florian
380f3ac78f * fix from Nikolay Samofatov for #12987: initialize thread vars in libraries on windows correctly
* unified dll entry code between win32 and win64

git-svn-id: trunk@13445 -
2009-07-25 21:08:36 +00:00
yury
bba2b87064 * Use RIP relative symbol addressing in assembler blocks. Finally bug #13657 is fixed.
git-svn-id: trunk@13137 -
2009-05-13 10:45:54 +00:00
florian
a8804cf2a6 * unified some win32/win64 code
git-svn-id: trunk@11745 -
2008-09-10 21:25:59 +00:00
florian
f97c2968f9 * fixed widestring/unicodemanager initialisiation
git-svn-id: trunk@11743 -
2008-09-10 21:02:50 +00:00
florian
820a9ad8e8 * merged fix for #10175 to win64
git-svn-id: trunk@11641 -
2008-08-23 13:24:31 +00:00
florian
e85df2a7fb * merged rev. 10867 to win64 and wince
git-svn-id: trunk@10868 -
2008-05-02 18:54:16 +00:00
michael
174de3eab1 Merged revisions 9693-10480 via svnmerge from
svn+ssh://svn.freepascal.org/FPC/svn/fpc/branches/resources

........
  r9694 | michael | 2008-01-09 21:31:18 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Initial check-in
........
  r9695 | michael | 2008-01-09 21:35:58 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New version from Giulio Bernardi
........
  r9697 | michael | 2008-01-09 21:41:54 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Patch from Giulio Bernardi with resource support
........
  r9698 | michael | 2008-01-09 21:46:33 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Patch from Giulio Bernardi to add more resource testing
........
  r9699 | michael | 2008-01-09 21:57:26 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New tool from Giulio Bernardi
........
  r9700 | michael | 2008-01-09 21:58:23 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New tool from Giulio Bernardi
........
  r9701 | michael | 2008-01-09 22:01:54 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Added fcl-res
........
  r9702 | michael | 2008-01-09 22:01:58 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Added fcl-res
........
  r9703 | michael | 2008-01-10 08:54:26 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * Fixed double code
........
  r9704 | jonas | 2008-01-10 10:59:20 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    - removed duplicate code
........
  r9705 | jonas | 2008-01-10 11:25:21 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    + added missing fcl-res dependencies
........
  r9706 | jonas | 2008-01-10 11:58:30 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    + dependencies for fpintres and fpextres
........
  r9707 | yury | 2008-01-10 12:47:51 +0100 (Thu, 10 Jan 2008) | 3 lines
  
  * Fixed compilation of resource, which is included in a unit located in different folder than main source.
  * .res files must be copied to units output folder, otherwise .res files will not be found when only compiled units path is available and compiler does not know anything about sources folder.
  * Improved resource related error messages.
........
  r9708 | michael | 2008-01-10 12:52:13 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * Removed double source after end.
........
  r9709 | michael | 2008-01-10 12:52:48 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * No longer needed
........
  r9710 | tom_at_work | 2008-01-10 22:09:08 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * properly align FPC_RESLOCATION so that linking does not fail on some architectures (e.g. ppc64)
........
  r9711 | tom_at_work | 2008-01-10 23:53:12 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * fix splitting of 64 bit load/stores from/to unaligned memory locations into multiple load/stores, which in some cases generated wrong code
........
  r9712 | michael | 2008-01-11 11:00:08 +0100 (Fri, 11 Jan 2008) | 1 line
  
  * Fixed bug in BSS section on 64-bit platforms
........
  r9720 | giulio | 2008-01-12 10:02:04 +0100 (Sat, 12 Jan 2008) | 1 line
  
  Updated fcl-res documentation: occurrences of reslib changed to fcl-res.
........
  r9740 | giulio | 2008-01-13 19:36:44 +0100 (Sun, 13 Jan 2008) | 3 lines
  
   - Don't try to compile resources on systems with a non windows-like resource support.
   - Don't add the .or file to the list of object files if resource compiling failed.
........
  r10201 | giulio | 2008-02-04 11:35:44 +0100 (Mon, 04 Feb 2008) | 5 lines
  
  * resource compiling supported on OS/2 via wrc
  * CompileResourceFiles and CollectResourceFiles don't do target-specific checks anymore
  * refactored a bit
........
  r10389 | giulio | 2008-02-25 21:32:52 +0100 (Mon, 25 Feb 2008) | 2 lines
  
  Deleted test file which was committed by mistake
........
  r10472 | giulio | 2008-03-10 12:22:18 +0100 (Mon, 10 Mar 2008) | 2 lines
  
  changed define FPC_HAS_RESOURCES to FPC_HAS_WINLIKERESOURCES
........

git-svn-id: trunk@10481 -
2008-03-12 21:33:48 +00:00
peter
f4f3ae84d0 * AllowDirectorySeparators and AllowDriveSeparators typed constants
added to allow customization of path and directory parsing in the rtl
  * Use the new sets instead of the hardcoded / and \

git-svn-id: trunk@10105 -
2008-01-29 23:04:56 +00:00
peter
5acb3649df * revert r9557, the performance impact is to big for an academic corner
case optimziation

git-svn-id: trunk@9603 -
2007-12-31 13:36:16 +00:00
yury
3a5cfb7575 * Fixed compilation.
git-svn-id: trunk@9560 -
2007-12-28 15:28:03 +00:00
yury
0dcad4d822 * Implemented late thread manager initialization. Thread manager code is not included to executable if thread stuff are not used. WinCE executable size is reduced by 4KB, Win32 executable size is reduced by 3KB. No testsuite regressions.
git-svn-id: trunk@9557 -
2007-12-28 14:40:28 +00:00
florian
86e3e79e67 + WC_NO_BEST_FIT_CHARS
* use WC_NO_BEST_FIT_CHARS when calling WideCharToMultiByte
* made tiwde6 more verbose

git-svn-id: trunk@9481 -
2007-12-16 13:45:09 +00:00
florian
78ca6925ba * don't care about __stklen anymore
git-svn-id: trunk@9028 -
2007-11-01 10:18:05 +00:00
florian
7da7364ee7 * refactored SysResetFPU into SysInitFPU and SysResetFPU
git-svn-id: trunk@8966 -
2007-10-28 12:06:49 +00:00
Tomas Hajny
3b3849c02c + AllFilesMask constant added
git-svn-id: trunk@8492 -
2007-09-15 12:09:25 +00:00
Jonas Maebe
084f47708a * fixed CtrlZMarksEOF comment (#9475)
git-svn-id: trunk@8372 -
2007-09-03 18:36:45 +00:00
Jonas Maebe
815cd2b39d + support for widestring manager based widechar conversions
(widechar<->char, widechar<>*string), based on patch from
    Rimgaudas Laucius (mantis #7758)
  * no longer perform compile-time widechar/string->char/ansi/
    shortstring conversions if they would destroy information
    (they can't cope with widechars with ord>=128). This means
    that you can now properly constant widechars/widestrings
    in source code with a {$codepage } set without risking that
    the compiler will mangle everything afterwards
  * support ESysEINVAL return code from iconv (happens if last
    multibyte char is incomplete)
  * fixed writing of widechars (were converted to char -> lost
    information)

git-svn-id: trunk@8274 -
2007-08-12 20:01:08 +00:00
florian
c6f8f550f9 * resource functions for win64, fixes #8304
git-svn-id: trunk@6540 -
2007-02-18 10:07:12 +00:00
florian
b3a1868ff0 * correct masking of exceptions in genmath code
git-svn-id: trunk@5965 -
2007-01-14 10:44:10 +00:00
florian
21955282d0 + infrastructure for DispInterface call dispatching
git-svn-id: trunk@5793 -
2007-01-02 23:06:17 +00:00
florian
aa9808f6ce * ignore non critical exceptions
git-svn-id: trunk@4605 -
2006-09-10 16:13:19 +00:00
florian
c8de2d35ee * fixed constant
git-svn-id: trunk@4599 -
2006-09-10 15:13:35 +00:00
florian
f35652737e * close all handles
git-svn-id: trunk@4562 -
2006-09-07 20:06:45 +00:00
florian
d337c3ca6a * clean up heap at exit, fixes #7183
git-svn-id: trunk@4410 -
2006-08-11 22:09:29 +00:00
florian
05f672b8e6 + dummy symbol _fltused
git-svn-id: trunk@3476 -
2006-05-11 08:16:25 +00:00
florian
ef7a7b9d27 * removed some unncessary code
git-svn-id: trunk@3465 -
2006-05-09 20:51:41 +00:00
florian
807fc6e948 * basic file io fixed for win64
git-svn-id: trunk@3241 -
2006-04-17 08:50:59 +00:00
florian
a440cbc783 * fixed system exception handling
git-svn-id: trunk@3237 -
2006-04-17 07:51:10 +00:00
florian
dff1eef6e6 * system exception handling cleaned up
* fixed setjmp for win64

git-svn-id: trunk@3228 -
2006-04-16 12:53:51 +00:00
florian
598853240c * keep the stack 16 byte aligned on winx64
* fixed some winx64 issues regarding exec

git-svn-id: trunk@3213 -
2006-04-15 16:49:18 +00:00
florian
6df561bd95 * ensure that exitcode is 0 at start
git-svn-id: trunk@3144 -
2006-04-04 20:57:04 +00:00
peter
f893e5ab6c * updated
git-svn-id: trunk@2836 -
2006-03-10 15:21:16 +00:00
tom_at_work
1b4b42fdd6 * added CheckInitialStkLen() function which checks whether the given stack size value is valid on the OS when creating a thread, fixing stack checking
git-svn-id: trunk@1722 -
2005-11-11 12:16:08 +00:00
florian
6a279f8569 * small compilation fixes for win64 system unit
git-svn-id: trunk@373 -
2005-06-10 17:04:02 +00:00
florian
ad3b9b9464 * windows rtl restructuring to share code between win32 and win64
* BeginThread can take a qword on 64 bit targets as stacksize

git-svn-id: trunk@287 -
2005-06-08 19:08:49 +00:00