Once every year I try to upgrade one of my virtual machine which is running NetBSD. This description is a short reminder for the major steps for the upgrade process.
The NetBSD system is upgraded by using the following command:
During the upgrade it will ask whether some system files have to be replaced, merged or kept unmodified.
GCC Ada Package Upgrade
The GCC Ada compiler is now based on GCC 4.9. I did the upgrade by using the following command:
The gprbuild package must also be upgrade: And because I also use some other packages such as xmlada, the following package is also upgrade:
Before running an Ada program compiled by GCC 4.9
The GCC 4.9 Ada compiler works very well but it comes with a specific libgcc_s.so file installed in /usr/pkg/gcc-aux/lib. By default libgcc_s.so is installed on the system in /usr/lib/libgcc_s.so or /usr/pkg/lib/libgcc_s.so and they were compiled by GCC 4.5.3 or GCC 4.6.4.
If you use the wrong libgcc_s.so, the program will almost work except when a exception is raised: none of the exception can be caught and the program terminates as though there was no exception handler.
What happens is that the GCC 4.6 frame unwinder is unable to correctly identify the frames generated by GCC 4.9. The solution is of course to use the correct library and we can do this by setting the following environment variable before starting any program: