Following up I’m trying to rebuild my compiler from sources and something strange has happened.
Here’s the build command I used and it builds the compiler up to step #2 but then when it copies the compiler to compiler/ppca64 things fall apart. I noticed the following command "make distclean” stalled out at some point so I tried to run the compiler at compiler/ppca64 and it just stalls out, spinning the CPU at 100% in an infinite loop and never prints the normal FPC header. I remember earlier when I was having that problem with the duplicate pointer addresses I tried to use a nested procedure and this actually caused the compiler (or maybe the assembler) to get stuck also (I was going to try to make an issue for this but I couldn’t isolate it in a test program) so I wonder if that’s related. Is there anything the compiler could be trying to read like a cache or something which I could delete? I even deleted the entire sources repo and downloaded it again (and restarted) but the same thing happened. Any ideas? ======================== set -e MACOS_SDK=`xcrun --show-sdk-path` TOOLCHAIN=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin cd $HOME/Developer/fpc # https://wiki.freepascal.org/macOS_Big_Sur_changes_for_developers#ARM64.2FAArch64.2FApple_Silicon_Support # 1. Compile a native AArch64 compiler from the FPC trunk source make distclean make FPC=ppcx64 OPT="-ap -FD${TOOLCHAIN} -XR${MACOS_SDK}" CPU_TARGET=aarch64 -j 4 FPMAKEOPT="-T 4" all # 2. Copy the created native compiler to a safe place (the delete + copy is to avoid issues with a code signature caching bug in the OS - see Updating a signed file for an explanation) rm -f ppca64 ; cp compiler/ppca64 . # 3. Build a complete native FPC distribution for Darwin/AArch64 make distclean make FPC=$PWD/ppca64 OPT="-ap -FD${TOOLCHAIN} -XR${MACOS_SDK}" -j 4 FPMAKEOPT="-T 4" OVERRIDEVERSIONCHECK=1 all # 4. Install the built toolchain globally (under /usr/local) sudo make FPC=$PWD/ppca64 OPT="-ap -FD${TOOLCHAIN} -XR${MACOS_SDK}" install # 5. Enable the fpc binary to find the AArch64 compiler (ppca64). You only need to do this once, even if you build/install newer build later on (unless the version number of trunk would change) sudo ln -sf /usr/local/lib/fpc/3.3.1/ppca64 /usr/local/bin # 6. Verify new version NEW_VERSION=`./compiler/ppca64 -iV` /usr/local/lib/fpc/${NEW_VERSION}/ppca64 -i Regards, Ryan Joseph _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal