diff options
-rw-r--r-- | architecture-notes.txt | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/architecture-notes.txt b/architecture-notes.txt index f3efebd..7ee0989 100644 --- a/architecture-notes.txt +++ b/architecture-notes.txt @@ -1,19 +1,30 @@ four things will affect general binary compatibility: - CPU architecture and vendor + CPU architecture (microprocessor ISAs, co-processors, byte order, ABIs, ...) initial options: - i486-pc (any CPU with Intel 80486 microarchitecture) - x86_64-pc (any CPU with AMD64 or Intel 64 architecture) - arm*-* (some SoC with a microprocessor implementing some ARM ISA) + cortexa8 (any SoC with an ARM Cortex-A8 core) + ISAs: ARMv7-A, Thumb, Thumb-2, NEON SIMD + byte order: little-endian + ABI: GNU EABI + floating-point ABI: hardware + CFLAGS: -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mthumb + -mfpu=neon -mfloat-abi=hard -O3 -fsingle-precision-constant + GCC configure options: --with-arch=armv7-a \ + --with-cpu=cortex-a8 --with-tune=cortex-a8 \ + --with-mode=thumb --with-fpu=neon --with-float=hard planned future options: - i586-pc (any CPU with Intel P5 microarchitecture) - i686-pc (any CPU with Intel P6 or any successive microarchitecture) - mips*-* - powerpc*-* + i486 (any CPU with Intel 80486 microarchitecture) + i586 (any CPU with Intel P5 microarchitecture) + i686 (any CPU with Intel P6 or any successive microarchitecture) + amd64 (any CPU with AMD64 or Intel 64 architecture) + other ARM cores + mips* + powerpc* kernel initial options: linux different hardware targets will be built with different configs planned future options: + kfreebsd knetbsd system libraries initial options: @@ -21,9 +32,14 @@ four things will affect general binary compatibility: portable C/C++ library: works with almost any kernel optimized for speed rather than for space (big and fast) planned future options: - uclibc* + uclibc different configurations of uClibc can be ABI-incompatible only works with Linux optimized for space rather than for speed (small and slow) example architecture string: - x86_64-pc-linux-eglibc + cortexa8-linux-eglibc + +GCC package build system: + include architecture mk file, which set architecture-specific configure opts +opkhelper build flags system: + read CFLAGS et al from e.g. <file:///usr/share/opkhelper/buildflags/${arch}> |