Alire on macOS, revisited
This note covers some of the considerations thatβll apply when running Alire on macOS.
Read more Β»This note covers some of the considerations thatβll apply when running Alire on macOS.
Read more Β»This exercise was prompted by the need for Scripted Testing to be supported by β as far as possible β code generation. The need is for the public or interfacing view of a supporting part (domain) of a system to be able to log calls made to it and to provide values on calls to it, using a scripting mechanism.
Read more Β»Once youβve downloaded Alire and begun the Getting Started tutorial, how do you go about actually writing Ada?
Read more Β»These are notes on building GCC 12.2.0 and GNAT tools for Apple silicon.
There were two main problems:
This exploration came about because of trying to add GNAT Math Extensions to Alire.
Read more Β»This note is about configuring GCC on macOS so that your built compiler can be used independently of which Software Development Kit (SDK) is installed.
Read more Β»This is a note about building SPARK (i.e. gnatprove) against an FSF GCC.
Read more Β»This note is about some difficulties using shared libraries (.dylibs) on macOS.
Read more Β»This post is based on the README from the corresponding Github repository.
That repository attempts to cope with expected changes in Appleβs approach to software development kits, specifically where to find the system headers (youβd expect /usr/include).
Read more Β»After you've installed Xcode (or, my preference, the Command Line Tools via xcode-select -install) so that you can install and use GNAT, you may expect to be able to compile C code too.
Mojave may surprise you with
$ gcc casing.c -o casing casing.c:1:10: fatal error: stdio.h: No such file or directory 1 | #include <stdio.h> | ^~~~~~~~~ compilation terminated.
The reason, according to this question and its answers, is that Apple's developer tools, in particular the clang compiler, know where to find the include files under /Library/Developer; GCC doesn't (I'm sure it could be made to, but ...) and so we have to add an extra step to install them in the normal place:
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target / Password: installer: Package name is macOS_SDK_headers_for_macOS_10.14 installer: Installing at base path / installer: The install was successful.You may need to repeat this after macOS or Command Line Tools (or Xcode) updates.
Apple's software development tools are based on LLVM, and Apple don't seem to feel it necessary to keep GCC and friends up to date with changes in the Apple tools or security policies.
GDB has been particularly affected by this. You can see why a tool which is capable of interacting with running programs would have to be treated with caution.
Read more Β»This is a note on getting set up to work on a Crazyflie 2.0.
After unpacking, testing and assembling the drone, you need to get some software to talk to it.
Read more Β»We probably feel downhearted if we need to use the debugger to find out what's wrong with our Ada code.
Under those circumstances, we feel even more frustrated if the debugger doesn't work!
This is exactly what has happened with gdb and macOS Sierra.
Read more Β»I wanted to update Audacity, but the 2.1.2 version (from the official download site) wouldnβt run: I got canβt open application Audacity.
Read more Β»I downloaded a new version of eclipseArduino(Arduino development within Eclipse). After unpacking and moving to /Applications, I get the message
"eclipseArduino" is damaged and can't be opened. You should move it to the Trash.
Huh.
After a lot of poking around, I found this:
This is a note on overcoming a problem connecting to my STM32F429I-DISCOboard.
Read more Β»AdaCore's doinstall is an excellent way of installing the compiler where you want to. Unfortunately, GCC 4.9 uses the shared libgcc_s.1.dylib, which has no @rpath-type constructs, and so the compiler executables expect to find libgcc_s.1.dylib in the place it was built for. (Not to mention libstdc++.6.dylib.)
Read more Β»These notes describe building GNAT GPL 2014 for the Cortex M4 on Mac OS X.
My target board was the STM32M4F29I Discovery.
Read more Β»