1.8 KiB
1.8 KiB
ARM64 Static NIP Build - Success Report
Final Status: ✅ COMPLETE
Binary Specifications
- Path:
/home/markus/zWork/_Git/Nexus/core/nip/build/arm64/nip - Size: 30MB
- Architecture: ARM aarch64, statically linked
- Build Date: 2025-12-28 23:27
Integrated Components
- LibreSSL 3.8.2 (20MB total)
libssl.a(3.5MB)libcrypto.a(16MB)libtls.a(550KB)
- Zstd 1.5.5 -
libzstd.a(1.2MB) - Custom OpenSSL Shim -
openssl_shim.o(1.4KB)- Bridges LibreSSL macros (
SSL_in_init) to function symbols
- Bridges LibreSSL macros (
- NimCrypto - BLAKE2b only (SHA2/NEON removed)
Build Method: Manual Linking ("Iron Hand" Protocol)
Root Cause: Nim's cross-compilation dropped the -o output flag from linker invocation.
Solution:
- Nim compiled 289 ARM64
.ofiles successfully - Created C shim to bridge LibreSSL macro→function gap
- Manually invoked
aarch64-linux-gnu-gccwith all objects + shim - Forced static linking with proper library order
Verification Results
✅ Structure: STATIC (no dynamic dependencies)
✅ No libcrypto.so dlopen references
✅ BuildID: 4ed2d90fcb6fc82d52429bed63bd1cb378993582
NexBox Integration
- Image Size: 62,469 blocks (30MB+ initramfs)
- Status: Built successfully
- Next: Boot test + Warhead Test II (pack/extract cycle)
Time Investment
- LibreSSL/Zstd Static Build: ~2 hours
- Nim
-oFlag Investigation: ~1.5 hours - Manual Linking + Shim: ~1 hour
- Total: ~4.5 hours
Key Files Created
/home/markus/zWork/_Git/Nexus/core/nip/src/openssl_shim.c- Macro bridge/home/markus/zWork/_Git/Nexus/core/nip/link_manual.sh- Manual linker/home/markus/zWork/_Git/Nexus/core/nexus/vendor/libressl-3.8.2/- ARM64 static libs/home/markus/zWork/_Git/Nexus/core/nexus/vendor/zstd-1.5.5/- ARM64 static lib