Commit Graph

36352 Commits

Author SHA1 Message Date
Jonas Maebe
ec1cceb3d1 + support for generating multiple script files (.sh/.bat/.cmd/...) with link
commands

git-svn-id: trunk@20847 -
2012-04-11 18:07:01 +00:00
Jonas Maebe
ebc542a48b * gcc does add a .file statement for AIX (but using different code than for
other platforms, which is where the confusion stemmed from)

git-svn-id: trunk@20846 -
2012-04-11 18:06:57 +00:00
Jonas Maebe
2174c6debc * fixed location of "end." in case "supported" is not defined
git-svn-id: trunk@20845 -
2012-04-11 18:06:53 +00:00
Jonas Maebe
347afa80fe * adapted so it also succeeds with the lnfogdb unit (gdb reports slightly
different line numbers: the line following the label, instead of the one
    preceding the label)

git-svn-id: trunk@20844 -
2012-04-11 18:06:48 +00:00
Jonas Maebe
07a65fed6b * adapted tests for aix (assembler code, -CN switch, library name suffix)
git-svn-id: trunk@20843 -
2012-04-11 18:06:43 +00:00
Jonas Maebe
247033cce1 + stabx support for AIX, which is a variant of stabs. Note that we only
support the stabx as understood by gdb, which is a mixture of regular
    stabs and stabx (e.g., class/object definitions are completely different
    in real stabx). This means that gdb can be used to debug aix programs,
    but the native dbx will complain about lots of debug information
    constructs

git-svn-id: trunk@20842 -
2012-04-11 18:06:38 +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
3d03ac5aa2 - removed exeinfo, not used/supported on AIX
git-svn-id: trunk@20840 -
2012-04-11 18:06:27 +00:00
Jonas Maebe
1e9b92ee50 + AIX support for cwstring
o AIX-specific codepage names
   o AIX/ppc32 uses a 16 bit wchar_t
   o special support for handling cp866 on AIX: AIX only supports converting
     cp866 from/to ISO8859-5 -> always use that code page as an intermediate
     one on AIX (it's lossy, but better than completely failing)
  * in case the default system code page cannot be detected, fall back to
    UTF-8

git-svn-id: trunk@20839 -
2012-04-11 18:06:22 +00:00
Jonas Maebe
2c1f98320f * disable implicit exception frames, no exceptions are raised by this unit
git-svn-id: trunk@20838 -
2012-04-11 18:06:18 +00:00
Jonas Maebe
16692ff7c1 + support for AIX nm output
git-svn-id: trunk@20837 -
2012-04-11 18:06:13 +00:00
Jonas Maebe
1c91a555f4 + support for asd_reference, asd_weak_reference and asd_weak_definition
in AIX assembler writer

git-svn-id: trunk@20836 -
2012-04-11 18:06:09 +00:00
Jonas Maebe
5433db6a49 * also specify the section alignment with the section statements themselves
on AIX. Adding ".align" statements only align relative to the section
    start, but does not influence the alignment of the section itself

git-svn-id: trunk@20835 -
2012-04-11 18:06:05 +00:00
Jonas Maebe
cc4169ef68 * don't raise an internalerror when the the binding type of a weak external
symbol is changed to something else (binding a weak symbol to a real
    implementation in the current file is valid)

git-svn-id: trunk@20834 -
2012-04-11 18:06:00 +00:00
Jonas Maebe
d545a72f1a + lnfogdb unit that can use gdb to symbolicate backtraces on unix targets
(used for stabx/aix)

git-svn-id: trunk@20833 -
2012-04-11 18:05:56 +00:00
Jonas Maebe
7aa3b99fb5 + -CN/{$CHECKLOWADDRLOADS+/-} switch to enable explicit checks for accesses
to low addresses in case the target cpu/OS does not support this (enabled
    for reads on AIX/PPC because on AIX the first 16KB are readable)

git-svn-id: trunk@20832 -
2012-04-11 18:05:50 +00:00
Jonas Maebe
d7a12a01e8 * fixed c_truncf declaration (double -> single)
git-svn-id: trunk@20831 -
2012-04-11 18:05:45 +00:00
Jonas Maebe
64be3440d7 * fixed skiptarget directive
git-svn-id: trunk@20830 -
2012-04-11 18:05:40 +00:00
Jonas Maebe
69e01418bb * set the type of record/object/class method symbols to AT_FUNCTION
* in case of a jump/call to an AT_FUNCTION symbols on
    systems_dotted_function_names platforms, prepend a dot to the symbol
    name in assembler code

git-svn-id: trunk@20829 -
2012-04-11 18:05:35 +00:00
Jonas Maebe
a9220ffd2a + systems_dotted_function_names set that holds targets using dotted function
names as function descriptors

git-svn-id: trunk@20828 -
2012-04-11 18:05:31 +00:00
Jonas Maebe
8a35bb090a + ansistring version of strpnew()
git-svn-id: trunk@20827 -
2012-04-11 18:05:27 +00:00
Jonas Maebe
60869a0da0 * set TOC pointer when returning to HandleErrorAddrFrame from signal handler
git-svn-id: trunk@20826 -
2012-04-11 18:05:20 +00:00
Jonas Maebe
1f9d8420b6 * set correct fileinfo for the asmnodes (so that the start fileinfo of
assembler functions doesn't get changed into the end fileinfo)

git-svn-id: trunk@20825 -
2012-04-11 18:05:16 +00:00
Jonas Maebe
3ad16429bf * enabled database units for aix
git-svn-id: trunk@20824 -
2012-04-11 18:05:11 +00:00
Jonas Maebe
131ed0c5a4 * use SharedSuffix for dynlib extension
git-svn-id: trunk@20823 -
2012-04-11 18:05:06 +00:00
Jonas Maebe
d68d9ba1a0 * don't pass -blibpath parameter for %needlibrary tests on AIX: the linker
doesn't recognise it (even though it's documented) and it's not needed

git-svn-id: trunk@20822 -
2012-04-11 18:05:02 +00:00
Jonas Maebe
51616b7bd6 * enabled a bunch of tests also for aix
git-svn-id: trunk@20821 -
2012-04-11 18:04:57 +00:00
Jonas Maebe
9a1cd0ec4c * fixed checking the address of installed signal handlers on aix and
linux/ppc64 (have to look past the function descriptors)

git-svn-id: trunk@20820 -
2012-04-11 18:04:50 +00:00
Jonas Maebe
6f02f47e59 - disabled for AIX, doesn't support weak external symbols
git-svn-id: trunk@20819 -
2012-04-11 18:04:45 +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
ddde9760c2 * ignore tf_no_backquote_support in source_info.flags in case we will link
on the target system (-St command line option during cross-compiling)

git-svn-id: trunk@20817 -
2012-04-11 18:04:36 +00:00
Jonas Maebe
cf2ffdce1a * use cg.g_external_wrapper() rather than cg.a_jmp_name() to generate stubs
for alternate shared library function names (corrects them on at least
    AIX and Linux/ppc64)

git-svn-id: trunk@20816 -
2012-04-11 18:04:31 +00:00
Jonas Maebe
c26ff16c1e * on AIX, you have to enable fpu exception reporting per process via an
OS call before changes to the fpscr exception mask have any effect
  * use OS calls to change FPU state on AIX, does not always propagate
    otherwise
  * don't use libc's log() on AIX, it wrongly returns a division-by-zero
    exception in some cases

git-svn-id: trunk@20815 -
2012-04-11 18:04:26 +00:00
Jonas Maebe
7e9da1ce1a * floating point exception checking support for aix for libc helpers
(they don't raise exceptions themselves)

git-svn-id: trunk@20814 -
2012-04-11 18:04:21 +00:00
Jonas Maebe
909f99b4c7 * code symbols start with a dot on AIX just like on linux/ppc64
git-svn-id: trunk@20813 -
2012-04-11 18:04:16 +00:00
Jonas Maebe
44bd889b9b * regenerated Makefiles with AIX support
git-svn-id: trunk@20812 -
2012-04-11 18:03:57 +00:00
Jonas Maebe
2e1b527718 + AIX support for FV
git-svn-id: trunk@20811 -
2012-04-11 18:02:48 +00:00
Jonas Maebe
8335223caf + aix support for pthreads package
git-svn-id: trunk@20810 -
2012-04-11 18:02:43 +00:00
Jonas Maebe
9ca2ea7fd0 + AIX support to Makefiles
git-svn-id: trunk@20809 -
2012-04-11 18:02:38 +00:00
Jonas Maebe
9ba5f25588 + dependency changes because of AIX rtl support
git-svn-id: trunk@20808 -
2012-04-11 18:02:33 +00:00
Jonas Maebe
2b0472dce5 + aix/ppc32 support
git-svn-id: trunk@20807 -
2012-04-11 18:02:28 +00:00
Jonas Maebe
9efe09a827 + aix support for testsuite helper programs
git-svn-id: trunk@20806 -
2012-04-11 18:02:23 +00:00
Jonas Maebe
b93cc83703 * on AIX, you also can't have a label without data coming at the end of the
resource string table -> use same workaround as for Darwin

git-svn-id: trunk@20805 -
2012-04-11 18:02:18 +00:00
Jonas Maebe
dc70db9402 * parameter passing support for AIX:
o the last bytes of records passed by value whose size is not a multiple
     of the register size must be passed in the upper (leftmost) bytes of
     a register

git-svn-id: trunk@20804 -
2012-04-11 18:02:13 +00:00
Jonas Maebe
273b90fc37 + AIX assembler writer
o .short/.long/.llong are automatically aligned to 2/4/8 byte multiples
     by the AIX assembler (and for compatibility reasons, also by the
     GNU assembler when targeting AIX) -> change to .vbyte statements
  o .ascii does not allow non-ASCII characters in the AIX assembler
    -> change to .byte sequences like gcc on AIX

git-svn-id: trunk@20803 -
2012-04-11 18:02:08 +00:00
Jonas Maebe
260958eb45 * changed last parameter of g_indirect_sym_load() to a set and also
pass on whether the symbol refers to code or data (important for
    AIX weak symbols; note that AIX does not support undefined weak
    external symbols, and FPC does not yet support weakly defining
    non-external symbols, so this functionality isn't really used yet)

git-svn-id: trunk@20802 -
2012-04-11 18:02:03 +00:00
Jonas Maebe
ac43eb9b70 + generic implementation of ReplaceForbiddenAsmSymbolChars() instead
of the AVR-specific ifdef'ed variant
   o since the only special character we use in mangled names on all platforms
     is $, added a new field to tasminfo called "dollarsign" that holds the
     character $'s should be replaced with (if it doesn't have to be replaced,
     leave it at $)

git-svn-id: trunk@20801 -
2012-04-11 18:01:57 +00:00
Jonas Maebe
23df85e52a * initialize dirhint field of created tasmconds
git-svn-id: trunk@20800 -
2012-04-11 18:01:49 +00:00
Jonas Maebe
aaf6015b51 * converted tai directive string from pshortstring to ansistring (some
AIX directives are quite long)

git-svn-id: trunk@20799 -
2012-04-11 18:01:41 +00:00
Jonas Maebe
7a92d5e912 + TExternalAssembler.AsmWrite(ansistring) (from JVM branch), needed to be
able to write long tasmdirective strings required by AIX target

git-svn-id: trunk@20798 -
2012-04-11 18:01:35 +00:00