Commit Graph

688 Commits

Author SHA1 Message Date
sergei
6571b4d140 * Factored code to create internal link script for debug sections into a separate procedure.
git-svn-id: trunk@21410 -
2012-05-28 13:28:21 +00:00
Jonas Maebe
c27f9da1b2 * always surround ld link.res SEARCH_DIR() arguments with double quotes,
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 -
2012-05-20 13:30:51 +00:00
Jonas Maebe
ccf895af5a * link.res is a real linkerscript when we target binutils, not when we
target the AIX linker
  * never quote file names added to link.res when it's not a linkerscript
    (only newline is a separator in the case)

git-svn-id: trunk@21342 -
2012-05-20 13:30:42 +00:00
Jonas Maebe
0841ee6e4f * GNU ld only supports double quotes in its response file -> requote there
as well under Unix (mantis #21928, caused by r21069)

git-svn-id: trunk@21208 -
2012-05-03 12:41:16 +00:00
Jonas Maebe
14cfe770a4 * replaced most (if not all) remaining fields/parameters in the compiler
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 -
2012-04-29 17:36:23 +00:00
Jonas Maebe
834026bfb5 * synchronised with trunk up to r21067
git-svn-id: branches/jvmbackend@21068 -
2012-04-26 21:24:20 +00:00
Jonas Maebe
cecdff01e0 * corrected sharedClibext for AIX/ppc32
git-svn-id: trunk@21048 -
2012-04-25 20:28:09 +00:00
Jonas Maebe
52d1172f6d * correctly call assembler for AIX/ppc64
* corrected target flags for AIX/ppc64
  * corrected some file extensions for AIX/ppc64

git-svn-id: trunk@21047 -
2012-04-25 20:28:05 +00:00
Jonas Maebe
6502717e67 * align all code/data sections to sizeof(pint), instead of sometimes
to 0 or 1 (section alignment <> alignment of individual data
    elements in section on some platforms, such as AIX)
  * set constalignmin and varalignmin to 8 bytes for AIX/ppc64

git-svn-id: trunk@21044 -
2012-04-25 20:27:41 +00:00
pierre
f0afaef920 Use linux/i386 aligmnents for NetBSD/OpenBSD i386
git-svn-id: trunk@20937 -
2012-04-20 12:09:41 +00:00
Jonas Maebe
aee5380ae0 * merged trunk up to r20882
o support for the new codepage-aware ansistrings in the jvm branch
   o empty ansistrings are now always represented by a nil pointer rather than
     by an empty string, because an empty string also has a code page which
     can confuse code (although this will make ansistrings harder to use
     in Java code)
   o more string helpers code shared between the general and jvm rtl
   o support for indexbyte/word in the jvm rtl (warning: first parameter
     is an open array rather than an untyped parameter there, so
     indexchar(pcharvar^,10,0) will be equivalent to
     indexchar[pcharvar^],10,0) there, which is different from what is
     intended; changing it to an untyped parameter wouldn't help though)
   o default() support is not yet complete
   o calling fpcres is currently broken due to limitations in
     sysutils.executeprocess() regarding handling unix quoting and
     the compiler using the same command lines for scripts and directly
     calling external programs
   o compiling the Java compiler currently requires adding ALLOW_WARNINGS=1
     to the make command line

git-svn-id: branches/jvmbackend@20887 -
2012-04-15 15:54:10 +00:00
florian
4b7748ad11 * better suitable on x86_64-linux
git-svn-id: trunk@20876 -
2012-04-14 20:09:31 +00:00
Jonas Maebe
e9d52f7b95 * fixed copy/paste bug that caused the default target OS to be always set
to AIX on Linux PPC32/64 platforms

git-svn-id: trunk@20854 -
2012-04-12 09:36:46 +00:00
Jonas Maebe
adbad5ab96 + fcl-res support for xcoff/aix
+ compiler support for Delphi-style resources on aix

git-svn-id: trunk@20841 -
2012-04-11 18:06:33 +00:00
Jonas Maebe
51e50f72be + support for creating dynamic libraries on AIX
git-svn-id: trunk@20818 -
2012-04-11 18:04:40 +00:00
Jonas Maebe
462de0f5fd + AIX target definition and info for the compiler and ppudump
git-svn-id: trunk@20790 -
2012-04-11 18:00:29 +00:00
pierre
34a4ee46ff Use elf32 binary writer for i386 netbsd target
git-svn-id: trunk@20776 -
2012-04-09 22:00:54 +00:00
florian
7819eb892c * use GNU AS as default assembler on x86_64-win64 now
git-svn-id: trunk@20740 -
2012-04-07 13:00:46 +00:00
pierre
175ec19308 + Register for system_x86_64_ntbsd
git-svn-id: trunk@20732 -
2012-04-06 22:04:20 +00:00
pierre
d5dd980efe + Add system_x86_64_ntbsd_info record
git-svn-id: trunk@20731 -
2012-04-06 22:03:37 +00:00
pierre
b6576452ed Use correct dynamic linker for x86_64 openbsd system
git-svn-id: trunk@20728 -
2012-04-06 21:21:56 +00:00
pierre
7dfbc38c68 Mark x86_64 openbsd system as under development
git-svn-id: trunk@20727 -
2012-04-06 21:21:15 +00:00
pierre
7e71e1d3a0 + Add system_x86_64_openbsd_info record
git-svn-id: trunk@20715 -
2012-04-05 21:06:56 +00:00
Jonas Maebe
86265534d0 * fixed misplaced endif that caused the default target not be set when
(hypothetically) running the compiler on Darwin/ARM

git-svn-id: trunk@20662 -
2012-03-29 20:54:38 +00:00
Jonas Maebe
6ba8dc7146 + support for the ARM hard float EABI on Linux (patch by Peter Green):
o new eabihf (hard float) abi
   o vfpv3_d16 variant of VFP (default variant used by EABI assemblers: VFPv3
     with only 16 double registers instead of 32) and pass it to GNU as
   o make the odd numbered single precision floating point VFP registers
     available for explicit allocation for use by the calling convention
  * fixed copy/paste error in stdname of S30 register
  -> use -dFPC_ARMHF to create an ARM eabi hard float compiler
  (mantis #21554)

git-svn-id: trunk@20660 -
2012-03-29 20:50:09 +00:00
Jonas Maebe
eb2cccffda + -WM<X> and -WP<x> command line parameters to specify the minimally required
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 -
2012-03-10 19:31:57 +00:00
pierre
5b71a7597a i386 NetBSD uses GOT for position independent code
git-svn-id: trunk@20353 -
2012-02-15 13:08:49 +00:00
pierre
8efbcbaabb NetBSD also needs explicit DynamicLinker
git-svn-id: trunk@20293 -
2012-02-09 17:38:10 +00:00
pierre
0f1a4f94af Modern i386 NetBSD has no underscore prefix, but since when?
git-svn-id: trunk@20292 -
2012-02-09 17:37:40 +00:00
florian
8b339ded7a * started to fix the mips(el) linux rtl
git-svn-id: trunk@20255 -
2012-02-04 21:25:53 +00:00
Jonas Maebe
6a5cf6cf8d * always pass -arch parameter to linker when targetting Darwin, instead of
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 -
2012-02-01 19:01:58 +00:00
Tomas Hajny
682299a647 + add previously missing support for link map generation for OS2 and EMX targets
git-svn-id: trunk@20158 -
2012-01-23 21:29:00 +00:00
florian
ce070c93fc + patch by Jeppe Johansen to support the SC32442B
git-svn-id: trunk@20081 -
2012-01-14 21:39:32 +00:00
florian
7070fef055 * patch by Jeppe Johansen to fix postprocessexecutable for the embedded target if host and target OS have different endianess, resolves #20926
git-svn-id: trunk@19913 -
2011-12-29 17:27:28 +00:00
Jonas Maebe
0d5b2b84a8 + Android/JVM target, including a translation of the Android r14 SDK
(= Android 4.0) java headers: java.*, javax.*, org.*, junit.*, android.*).
    The RTL can also be used to target earlier versions of the Android
    platform, but you manually have to take care of not using APIs that
    weren't available yet. Adding separate units for separate platform
    versions would only partly solve the problem, because some of the
    classes used inside the system unit have also changed across
    versions.

    Use -Tandroid while compiling to select the Android OS as target
    platform.

git-svn-id: branches/jvmbackend@19830 -
2011-12-12 02:34:34 +00:00
Jonas Maebe
8d2a7f3b88 * switched linux/ppc64 to tf_smartlink_sections (works fine even with
binutils 2.17, which is kind of ancient by today's standards),
    since it's much faster than tf_smartlink_library without an internal
    assembler 

git-svn-id: trunk@19680 -
2011-11-24 23:46:05 +00:00
pierre
4bda40649d * Add missing CATRES substitution and remove blank lines in link.res
git-svn-id: trunk@19667 -
2011-11-22 11:15:23 +00:00
pierre
30baddd3b8 Fix Haiku shared library creatiion
git-svn-id: trunk@19665 -
2011-11-21 14:14:31 +00:00
Jonas Maebe
3188916cda * also replace $CATRES for shared libraries (fix for r19649)
git-svn-id: trunk@19661 -
2011-11-20 20:06:43 +00:00
pierre
836da25e81 * Do not call with UseShell = true if CatFileContent expands the file into parameters
git-svn-id: trunk@19650 -
2011-11-18 22:08:51 +00:00
pierre
b1bd1d29ec Replace cat $RESby $CATRES and call CatFileContent method
git-svn-id: trunk@19649 -
2011-11-18 21:33:24 +00:00
pierre
98c7a5e4b0 * Enable internal elf writer for freebsd x86_64 target
git-svn-id: trunk@19608 -
2011-11-08 14:05:57 +00:00
Jonas Maebe
f2823a1d68 * r17629 changed the condition for generating safecall code on x64 and ARM
platforms from testing for a Windows target into testing to the
    tf_safecall_exceptions target flag. However, this flag was not set for
    non-i386 Windows platforms (mantis #20385)

git-svn-id: trunk@19486 -
2011-10-14 16:11:46 +00:00
pierre
0cd15043b3 * Set a default dynamic linker for OpenBSD
git-svn-id: trunk@19451 -
2011-10-10 21:45:21 +00:00
pierre
4601bca836 * i386 OpenBSD target also uses GOT for pic code
git-svn-id: trunk@19450 -
2011-10-10 21:44:44 +00:00
pierre
94eea3eca7 * Fix source info for openbsd
git-svn-id: trunk@19412 -
2011-10-08 09:53:46 +00:00
pierre
4a8b37016a i386-OpenBSD 4.9 has no underscore prefix
git-svn-id: trunk@19377 -
2011-10-04 22:33:13 +00:00
paul
7a74d2c2f8 compiler: reduce amount of hints and notes
git-svn-id: trunk@19293 -
2011-09-30 08:56:05 +00:00
florian
d7f7a9bb76 * patch by Alexander Shishkin to clean up $ifopt usage by $push/$pop, resolves #20346
git-svn-id: trunk@19256 -
2011-09-27 20:22:40 +00:00
pierre
1f0e5b496f Try to support shared libraries for freebsd
git-svn-id: trunk@19242 -
2011-09-26 10:25:27 +00:00