Commit Graph

158 Commits

Author SHA1 Message Date
Michaël Van Canneyt
9a5f95b3a4 * Dotted filenames for package arosunits 2023-07-27 19:04:15 +02:00
Michael VAN CANNEYT
bd4e9676fa * Add namespaces.lst 2023-07-27 19:04:09 +02:00
Michaël Van Canneyt
2289c1f6a2 * Remove redundant Makefile.fpc 2023-07-25 13:01:55 +02:00
Michaël Van Canneyt
bb1b1bc705 * Regenerate makefiles with subtarget support 2023-07-24 16:32:02 +02:00
Michaël Van Canneyt
6b5a4dbf6e * use cthreads in correct location 2023-07-19 14:27:28 +02:00
Michaël Van Canneyt
5abadd255f * Fix compilation 2023-07-15 18:22:42 +02:00
Michaël Van Canneyt
42c0fd5c34 * PChar -> PAnsiChar 2023-07-15 18:22:39 +02:00
Dmytro Bogatskyy
327aac7f24 Add aarch64-iphonesim target 2023-03-27 18:45:00 +00:00
Marcus Sackrow
42e202f791 Arosunits: rexx unit added 2023-03-19 11:43:38 +01:00
Jinyang He
783bbb66f9 Update Makefiles 2023-02-05 19:18:48 +00:00
magorium
4058a0ac4b AROS: Make sure opaque SMP extension is used for ABIv11 only
These changes adds an additional record field to record structure TMsgPort in
order to support SMP for ABIv11 (non m68k targets only).

This additional field contains two opaque IPTR's/PtrUInt's and therefor breaks
compatibility between ABIv0, ABIv1 and ABIv11 as well as make them binary
incompatible.

It also renders ABIv11 incompatible with itself when this change was introduced
on march 18 2022. Recompilation of existing code for this ABI is thus required.

See: b9bc67accc
2022-06-26 19:03:18 +00:00
magorium
c660120329 AROS: Ensure that spinlocks for SMP enabled build is not possible for ABIv11
These changes makes sure that the use of record structure spinlock is not
active/available when compiling for AROS ABIv11 as that ABI does not support
spinlocks as implemented for AROS ABIv1.

Note that this is a ABI and Binary Compatible break between ABIv1 and ABIv11.
2022-06-26 19:03:18 +00:00
magorium
14f9774838 AROS: Ensure that spinlocks for SMP enabled build can only be active for ABIv1
These changes makes sure that the use of record structure TSpinlock can only
be enabled/active for AROS ABIv1 as that ABI is currently the only ABI that
is able to support SMP by using the spinlock record structure.
2022-06-26 19:03:18 +00:00
magorium
41a48fe385 AROS: Use structure spinlock for SMP enabled build (ABI/BC break)
This commit will add an additional spinlock field to record structures
TMsgPort and TSemaphoreRequest for a SMP enabled build.

This will break ABI and Binary Compatibility between ABIv0 and ABIv1 and for
ABIv1 (for a SMP enabled build).

Recompilation in such case is required as both record structures TMsgPort and
TSemaphoreRequest are embedded in other record structures which causes a
myriad of changes to those records including different record sizes and other
field offsets.

Note that SMP is currently only available for ABIv1 and afaik only supported
for AROS target x86_64 while AROS target i386 has initial support for SMP
(but not actively enabled).

SMP enabled build can be 'activated' by defining AROS_PLATFORM_SMP and
AROSEXEC_SMP.
2022-06-26 19:03:18 +00:00
magorium
b467de658d AROS: Add structure spinlock for SMP builds
In 2015 ABIv1 introduced support for spinlocks for SMP enabled builds (1) by
use of a special spinlock structure.

This structure was later updated to end up in its current form in 2017 (2)

This commit adds this record structure to both RTL (execd) and unit (exec).

The structure can be "enabled" by defining AROSPLATFORM_SMP during build.

1) b6045c27fd
2) 0ffdbdc48f
2022-06-26 19:03:18 +00:00
magorium
b218393b57 AROS: ABI compatibility update AROSSupportBase (ABI/API/BC break)
These changes break API/Binary Compatibility between ABIv0 and ABIv1.

Field stdOut is replaced by undefined field named _pad for ABIv1 while
(still) being present as stdOut for ABIv0.

Field DebugConfig is completely removed from ABIv1 (still present for ABIv0).

If your code depends on either of these two fields then you need to make
appropriate changes when compiling for ABIv1.

Removing dependency on either of these two mentioned fields is preferred.

Both RTL (execd.inc) and unit (exec.pas) are updated.

See also 194cc5e1c5
2022-06-26 18:38:06 +00:00
magorium
8bc7d5897d AROS: ABI compatibility update structure TETask (ABI/BC break)
These changes break Binary Compatibility between ABIv0 and ABIv1.

Record TETask was not compliant to ABIv1 because field et_Compatibility is
only required for ABIv0 (06538a1790).

Therefor these changes update record TETask for both RTL (execd.inc) and unit
exec (exec.pas) so that field et_Compatibility is only present for ABIv0.

The impact of these changes should be minimal because all relevant fields are
still accessible (some located at another offset) and code should never rely
on the size of this structure.
2022-06-26 18:17:44 +00:00
magorium
5a0d76e45a AROS: 32/64-bit fix field alignment for unit conunit
Make sure AROS' record structures are C-packed.
2022-06-26 17:54:31 +00:00
magorium
030fe14bde AROS: 32/64-bit fix field alignment for unit commodities
Make sure AROS' record structures are C-packed.
2022-06-26 17:54:31 +00:00
magorium
9a47cc5c47 AROS: 64-bit fix elf structures for unit amigados
Make sure ELF structures are compliant to 64-bit when target is 64-bit.
2022-06-26 17:54:31 +00:00
magorium
1d1a68761e AROS: 32/64-bit compatibility update for unit agraphics
Make TRastPort compliant to both ABI's by removing redundant ifdef.

Add information about (new) fields.
2022-06-26 17:54:31 +00:00
magorium
3439b220a7 AROS: 32/64-bit compatibility update for unit intuition
Make TDrawInfo compliant to both ABI's by removing redundant ifdef.

Add information about (new) fields.

Update dri_version to v3.
2022-06-26 17:54:31 +00:00
magorium
e07185bc11 AROS: 32/64-bit compatibility update for unit workbench
Make TAppMessage compliant to both ABI's as well as 32/64-bit by
changing field am_ID to be of type IPTR for all targets..
2022-06-26 17:54:31 +00:00
Nikolay Nikolov
8c562995d7 * regenerate makefiles with latest fpcmake 2022-05-24 14:01:59 +03:00
magorium
853b9c5c96 AROS: Unit amigados, record field members update
Update some amigados unit record field members for AROS compatiblity.

These changes reflect the changes made in the doslib RTL (that were present in
the previous commit).
2022-05-06 22:21:47 +00:00
magorium
d207a293c7 AROS: 32/64-bit unit amigados compatibility update
Update some amigados record structures to be 32/64-bit compatible.

These changes reflect the changes made in the doslib RTL (that were present in
the previous commit) but note that some of Unit amigados' record structures
were already up to date.
2022-05-06 22:21:47 +00:00
magorium
2324055b1f AROS: Unit exec update. Memory sizes are IPTR
Memory sizes are expressed in IPTR/PtrUInt in order to be compatible to both
32 and 64-bit.

This changes some of Exec API call signatures and should not impact
existing code.

These changes reflect the changes made in the exec RTL (that were present in
the previous commit) but note that Unit Exec record structures were already
up to date.

See: d7df812342
2022-05-06 22:21:47 +00:00
magorium
61304bf324 AROS: Add stack aligned record fields for 32-bit and 64-bit compatibility
Final step that attempts to ensure that fields of particular records are
'STACKED' (stack aligned) properly for both 32 and 64 bit.

AROS introduced STACKED structure members, which are members that are padded
according to the current used stacksize which in itself is based on the target
CPU.

These structures are required to have a particular defined size in memory and
have a particular field alignment, therefor these records are always end-padded
(whether required or not) so that we are able to force the compiler to add
padding depending on the RECORDMIN setting.

Other available FPC directives and/or solutions seem currently not able to
solve that issue and we do not wish to manually check each structure to
determine if it requires end-padding or not (based on bitness) simply because
it is unmaintainable.

This change attempts to ensure that these record structures compile using the
correct memory size and field layout for both 32 and 64-bit CPU's.

The introduction of stack aligned record fields solves a lot of 64-bit related
crashes when working with native OOP such as MUI and BOOPSI.

Note: Not tested on big endian.
2022-05-06 22:00:27 +00:00
magorium
1fde206ee6 AROS: Change MethodID fields (back) to their original 32-bit (longword) size
Preparations for the introduction of stack aligned record fields (AROS STACKED
structure members).

MethodID really is 32-bit wide so we need to change those back to their
original size.
2022-05-06 22:00:27 +00:00
magorium
aa8fe28a05 AROS: Remove CPU64 ifdef's ensuring 64-bit compatibility for records/fields
Preparation for the introduction of stack aligned records fields (AROS STACKED
structure members).

Remove unmaintainable superfluous ifdef's that are used inside certain record
structures (in an attempt to use correct padding on 64-bit targets) because
they are not in line with the introduction of stack aligned record fields.
2022-05-06 22:00:27 +00:00
Marcus Sackrow
f1cf83bd8a AROS: 64bit fixes, synchronized to official ABIv11 includes 2022-03-19 13:16:55 +01:00
Pierre Muller
2f28c5596f Regenerate all Makefile's to fix problem on x86_64 linux 2022-03-07 23:46:15 +00:00
Pierre Muller
ad2ac98858 Update Makefile's 2022-03-07 22:35:29 +00:00
Pierre Muller
4da4c96349 Regenerate Makefile's with mips gcc fixes and new enabled mips64-linux target 2022-02-15 15:45:15 +00:00
Nikolay Nikolov
21593942a1 * regenerate all makefiles with the latest fpcmake 2022-02-13 15:26:54 +02:00
Nikolay Nikolov
b407b67ca1 * regenerate all makefiles with latest fpcmake 2022-01-19 07:08:32 +02:00
Robert Roland
53e5a4a03a Adding aaarch64-embedded target
This adds support for aarch64-embedded, specifically for the Raspberry Pi 3.

Uses UART0 at 115200 baud 8N1 for console IO.
2022-01-05 12:29:00 +00:00
Pierre Muller
271ba59cf1 All Makefile's regenerated 2021-11-25 22:13:32 +00:00
florian
65ef6f1f37 * regenerated Makefiles 2021-11-24 22:50:37 +01:00
nickysn
433050a2c4 * set EXEEXT to .wasm for the WASI target in fpcmake
git-svn-id: trunk@49552 -
2021-06-24 00:16:00 +00:00
marcus
436b8c2121 AROS: some fixes for AVL_ functions, added missing NewCreateTaskA
git-svn-id: trunk@49516 -
2021-06-18 17:05:09 +00:00
marcus
810e62b7c9 Amiga, MorphOS, AROS: unified function results to LongBool in amigados unit, correct type for GFXBase
git-svn-id: trunk@49515 -
2021-06-18 16:35:05 +00:00
Jonas Maebe
500e29e5e2 * regenerated with FreeBSD/AArch64 support
git-svn-id: trunk@49159 -
2021-04-10 08:19:40 +00:00
florian
e4cc8af8fc * Makefiles regenerated
git-svn-id: trunk@49124 -
2021-04-05 15:39:07 +00:00
marcus
82450e1d57 Amiga, AROS, MorphOS, OS4: Unified ExecBase for all Amiga Platforms
git-svn-id: trunk@48991 -
2021-03-16 20:54:13 +00:00
nickysn
ea8f068817 * regenerated makefiles after sync with trunk
git-svn-id: branches/wasm@48951 -
2021-03-13 21:52:13 +00:00
nickysn
e42330a7ad * synchronized with trunk
git-svn-id: branches/wasm@48949 -
2021-03-13 21:47:24 +00:00
marcus
8b84ef9f4b AROS: AGraphics, removal of AROS defines, the unit is only for AROS
git-svn-id: trunk@48942 -
2021-03-12 18:55:25 +00:00
marcus
a04cd9b9ce Aros: Layers unit updated with AROS specific extensions
git-svn-id: trunk@48941 -
2021-03-12 18:48:08 +00:00
pierre
e8fbe6696b Update Makefile's after commits 48929/48930
git-svn-id: trunk@48940 -
2021-03-12 13:23:41 +00:00