you wrote 17 lines
Hi,
> The 1.1 compiler has a new switch -Oa. It is used for setting the
> alignment used by the compiler for code and data.
> Example:
>
> -Oaproc=32 Alignment of procedures on 32 bytes boundary
> -Oavarmin=4,varmax=16 Alignment of global/static variables is at least
> on 4 bytes, but at maximum of 16 bytes. This will result in an int64 be
> aligned at 8 bytes and a longint at 4 bytes and sets (32bytes) are aligned
> at the maximum of 16 bytes.
Does the linking process take care of these settings ? E.g. are the
different object files which are linked together aligned to this max
alignment as well ? Else the object files get glued together by ld at 4
bytes boundaries whatever your variable alignment within these object files
was...
For go32v2 we use our own linkerscript that has the correct alignments.
What about strings, ansistrings arrays and record types ?
Maybe these settings could be set to some default values in accordance to
the processor type specified (-OpX) to simplify usage a little ?
That's is correct, it is a possible extension that can be made. I made the code with keeping that in mind. But i don't know the best values so i didn't code it yet. But it should be easy to add to the compiler for somebody else.
Peter