o don't link by default
o when generating profiling info, link gcrt1.o and specify "-no_new_main"
linker parameter
* don't use version-specific crt1.o files when targetting the
iPhoneSimulator platform
* don't link a crt1.o file when targetting iOS 6 or later
(all info from
http://llvm.org/svn/llvm-project/cfe/trunk/lib/Driver/Tools.cpp )
git-svn-id: trunk@25789 -
* Changed direct references to linker classes in TSystemInfo records to enumerated ids.
* RegisterExtennalLinker and RegisterInternalLinker procedures replaced by single RegisterLinker procedure and moved to link.pas.
- TAbstractLinker is no longer necessary, removed.
This change allows to register linker once per id, rather than once per target, and also allows TSystemInfo records to be read-only.
git-svn-id: trunk@25279 -
(older) version of the parameter is still supported by current linker
versions, but the older version isn't supported by older linker
versions
git-svn-id: trunk@22954 -
rather than with single/double quotes depending on the target platform
(ld only supports double quotes), and rather than only quoting when
necessary (wastes time since quotes are always allowed, and double
quotes inside a directory name cannot be escaped for ld; they are
simply not supported by the program) (mantis #22059, follow-up to
r21069 and r21208)
git-svn-id: trunk@21343 -
that deal with paths/filenames with TPathStr (= ansistring) to prevent
cutting off long paths (no change in speed when compiling the compiler,
1% extra memory usage)
git-svn-id: trunk@21120 -
Mac OS X/iOS version for the compiler code
o such a parameter is not passed, extract the information from the
environment variables MACOSX_DEPLOYMENT_TARGET/IPHONEOS_DEPLOYMENT_TARGET,
like gcc
o if neither the parameter nor the environment variable is used, use preset
default values
o pass on this version setting on to the Darwin linker
o use this setting to determine which version of the startup code (crt1.o
etc) to use, if any (based on information gathered from the GCC sources)
o define a symbol called MAC_OS_X_VERSION_MIN_REQUIRED/
IPHONE_OS_VERSION_MIN_REQUIRED based on this parameter
o for usage information, see
http://wiki.freepascal.org/FPC_New_Features_Trunk#Support_for_specifying_and_querying_the_deployment_version
git-svn-id: trunk@20503 -
skipping this for dynamic libraries (not sure why that was done, but
apparently not passing -arch triggers a bug in Xcode 4.2 Lion linker,
mantis #21159)
git-svn-id: trunk@20211 -
The old linker option to accept object files from all subarchitecture
types no longer works.
+ support for subarchitectures in fcl-res/fpcres
git-svn-id: trunk@18070 -
later: the same as i386/darwin, except
a) uses the non-fragile Objective-C ABI/runtime
b) does not require stubs for direct calls/jumps (not required for
i386/darwin under 10.6 and later either, but still generated
there for backwards compatibility)
c) only the same packages are enabled as for ARM/Darwin
d) MacOSAll is compiled specifically for the iPhoneSimulator SDK
This target also defines the symbol "darwin" apart from the target
name "iphonesim" for source code compatibility reasons.
git-svn-id: trunk@16065 -
be used outside the code generator
* renamed tabstractprocdef.requiredargarea into callerargareasize,
and also added calleeargareasize field; added init_paraloc_info(side)
method to init the parameter locations and init those size fields and
replaced all "if not procdef.has_paraloc_info then ..." blocks with
procdef.init_paraloc_info(callersize)"
* moved detection of stack tainting parameters from psub to
symdef/tabstractprocdef
+ added tcallparanode.contains_stack_tainting_call(), which detects
whether a parameter contains a call that makes use of stack paramters
* record for each parameter whether or not any following parameter
contains a call with stack parameters; if not, in case the current
parameter itself is a stack parameter immediately place it in its
final location also for use_fixed_stack platforms rather than
first putting it in a temporary location (part of mantis #17442)
* on use_fixed_stack platforms, always first evaluate parameters
containing a stack tainting call, since those force any preceding
stack parameters of the current call to be stored in a temp location
and copied to the final location afterwards
git-svn-id: trunk@16050 -
- sort of reverted r14134, which is no longer required after the above
change (new_section() inserts the alignment itself)
* made the tai_section.create() constructor private so it cannot be
called directly anymore
git-svn-id: trunk@15482 -
+ RTL support:
o VFP exceptions are disabled by default on Darwin,
because they cause kernel panics on iPhoneOS 2.2.1 at least
o all denormals are truncated to 0 on Darwin, because disabling
that also causes kernel panics on iPhoneOS 2.2.1 (probably
because otherwise denormals can also cause exceptions)
* set softfloat rounding mode correctly for non-wince/darwin/vfp
targets
+ compiler support: only half the number of single precision
registers is available due to limitations of the register
allocator
+ added a number of comments about why the stackframe on ARM is
set up the way it is by the compiler
+ added regtype and subregtype info to regsets, because they're
also used for VFP registers (+ support in assembler reader)
+ various generic support routines for dealing with floating point
values located in integer registers that have to be transferred to
mm registers (needed for VFP)
* renamed use_sse() to use_vectorfpu() and also use it for
ARM/vfp support
o only superficially tested for Linux (compiler compiled with -Cpvfpv6
-Cfvfpv2 works on a Cortex-A8, no testsuite run performed -- at least
the fpu exception handler still needs to be implemented), Darwin has
been tested more thoroughly
+ added ARMv6 cpu type and made it default for Darwin/ARM
+ ARMv6+ implementations of atomic operations using ldrex/strex
* don't use r9 on Darwin/ARM, as it's reserved under certain
circumstances (don't know yet which ones)
* changed C-test object files for ARM/Darwin to ARMv6 versions
* check in assembler reader that regsets are not empty, because
instructions with a regset operand have undefined behaviour in that
case
* fixed resultdef of tarmtypeconvnode.first_int_to_real in case of
int64->single type conversion
* fixed constant pool locations in case 64 bit constants are generated,
and/or when vfp instructions with limited reach are present
WARNING: when using VFP on an ARMv6 or later cpu, you *must* compile all
code with -Cparmv6 (or higher), or you will get crashes. The reason is
that storing/restoring multiple VFP registers must happen using
different instructions on pre/post-ARMv6.
git-svn-id: trunk@14317 -
libtool from Xcode 3.2 (Mac OS X 10.6) does not support all new linker
options (in particular -no_order_inits and -no_order_data, both of
which must be specified when compiling dynamic libraries with FPC and
Xcode 3.2)
git-svn-id: trunk@13645 -
Darwin platforms, so that no data can be placed below that address.
This fixes the strange Windows-compatible resource API, which
assumes that addresses <64kb do not exist.
git-svn-id: trunk@13600 -
dynamic library initialization (this automatically enables dead code
stripping/smart linking in all cases though, independent of -XX/CX;
on the other hand, there is no real reason not to use it anymore on
Mac OS X, since support was introduced in Xcode 1.5 for
Mac OS X 10.3.9 and that's also the earliest version we support
for running FPC on)
git-svn-id: trunk@13151 -
(todo: at least solaris, maybe others)
* changed the "exports" section handling:
a) make everything private which is not exported (implemented for
darwin and linux)
b) for the exported symbols:
- functions/procedures
1) if no name or index is provided, and if the procedure has aliases
defined via the public/export directives, then export the default
mangled name and all defined aliases
2) otherwise if no name is specified (but there is an index) then
i) if the procedure is defined as cdecl/cppdecl/mwpascal, use the
appropriately mangled version of the function name
ii) otherwise export the name without any mangling(e.g. "exports
proc1" -> proc1 is the exported name)
- variables
1) if no name is provided and the variable was specified as cvar,
use the mangled name
2) otherwise if no name is provided, export the name without any
mangling
-> initialization/finalization of shared libraries under Linux works
again (mantis #7838)
-> sharing symbols between shared library and main program works
under Linux (mantis #9089)
git-svn-id: trunk@10551 -
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 -