Solves issues with systems that e.g. require special options for compilation of programs (e.g. libc programs to find libc startup code) or the actual build has been compiled with options that are incompatible with default ones.
Tested changes by building an i386-linux local build and i386-linux->arm-linux cross-builds
git-svn-id: trunk@22397 -
* TExeOutput.FixupSymbols:
+ Collect AT_GNU_IFUNC symbols in IndirectObjSymbols list for further processing by ELF back-end.
* Do not overwrite bind and size while fixing AB_COMMON symbols, this removes need in storing symbol size in every relocation and dedicated handling of oso_common section.
* Remove symbols with objsection<>nil from lists, so calling FixupSymbols several times skips already processed symbols.
git-svn-id: trunk@22393 -
startup for Linux/i386 (since the code generator won't keep the 16 byte
alignment (yet?) for that platform, it won't make much difference in
practice)
git-svn-id: trunk@22383 -
+ symconst.pas: add a new flag to symtables to mark them as containing at least one generic (will be used to decide whether an expression like "Foo<Bar" should even remotely be considered a specialization)
* utils/ppudump.pp: respect the new flag
* pdecl.pas, types_dec: add the flag for every generic we have parsed
* pgenutil.pas, generate_specialization: add the flag to the specialize symtable if a nested generic set it for the temporary symtable (does not happen currently, but will in the future when nested generics are supported)
+ keep references to all generic para symbols in the def; this way the symtable containing the type parameters does not need to be walked every time we need to do something with the parameters
git-svn-id: trunk@22379 -
* only check whether the message identifier of an Objective-C method
matches the one from a method with the same name in a parent class
if the parameters match (todo: should be refined to "if the
encoded Objective-C selector names match")
git-svn-id: trunk@22373 -
We don't need to check for the postfix, PF_NONE/PF_H/PF_B are all ok for us and
can be intermixed. This allows the peephole optimizer to work for
strb and strh instructions.
git-svn-id: trunk@22367 -
tarmaddnode.second_cmpsmallset always forced a value into a register
even when it could be represented as a constant, resulting in wasted
registers.
mov r1, #5
cmp r0, r1
If possible we'll now create:
cmp r0, #5
git-svn-id: trunk@22366 -
a compile of the package. This also avoids checks on the file-age of
unknown source files, which effectively leads to checking the age of
directories.
git-svn-id: trunk@22348 -