From e41b6f80643fc9291edc88ce5ab600e5c1d0f04d Mon Sep 17 00:00:00 2001
From: P. J. McDermott <pjm@nac.net>
Date: Thu, 16 Feb 2012 23:48:52 -0500
Subject: Update architecture notes.

---
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}>
--
cgit v0.9.1