MacOS 10.15 no longer supports 32-bit apps. What can you do?

Picture 2


On October 7, 2019, Apple released a new version of its Mac operating system, macOS Catalina. Version 10.15 contains many changes and improvements. One of the significant is the complete phasing out of 32-bit applications. As a developer of such macOS apps, what can you do? That’s right, port the app to the 64-bit platform. Will the application work properly from the first attempt? Perhaps, it’s possible. Depends on the complexity and amount of the code. But most likely, developers will face a lot of non-obvious errors, which can previously detected using PVS-Studio.

Introduction


Although it is technically possible to run 32-bit applications in the 64-bit environment, Apple has decided not to go down this path and complete the process of switching to the 64-bit platform which has started 10 years ago. For the user, this means that if the developer of the user’s favorite app hasn’t taken heed of porting it to the 64-bit platform in time, the app will simply stop working in the updated macOS Catalina.

It’s not that Apple’s decision was unexpected: in 2018, at the Worldwide Developers Conference, the company said that macOS Mojave would be the latest version of macOS with 32-bit software support. Probably most of the developers of popular apps have already successfully upgraded to 64-bit to the macOS Catalina release, or are completing the transition.

It should be noted that with all its apparent simplicity, porting of the application to a 64-bit platform has a lot of pitfalls. If some part of an application is written using the C++ language, the developer might need deep understanding of handling memory and pointers, as well as taking account of many non-obvious nuances. In this case usage of the tool, monitoring the code correctness when porting from 32 to a 64-bit platform, will be extremely helpful. PVS-Studio is one of the examples of such tools.

64-bit diagnostics


The PVS-Studio analyzer comprises a special group of diagnostics for such a case. Initially PVS-Studio was meant to analyze C/C++ code and search for errors occurring right in the result of porting to 64-bit. Only after that PVS-Studio evolved into the general-purpose analyzer: support of C# and Java languages, search for potential vulnerabilities, support of safe coding standards (for example, MISRA) and many other features became available.

Since then, we have accumulated a great deal of expertise on porting to a 64-bit platform. Our team wrote many articles on this topic. One of the articles on this topic: «A Collection of Examples of 64-bit Errors in Real Programs». The article is quite old, but the problems described in it are also relevant today. I recommend reading it, especially if you’re planning or already working on upgrading your apps to 64-bit (either apps in C++ for macOS or any other OS).

You can enable 64-bit warnings in the following way:

Windows/Visual Studio

In the warning view window there is a button to enable the entire group of 64-bit diagnostics:

Picture 3


Linux/macOS

When starting the analyzer from the console you need to enable 64-bit diagnostics both in the analyzer and the report generator:

pvs-studio-analyzer analyze ... -a 5 ...
plog-converter ... -a "64:1,2,3"


Conclusion


And, of course, nothing prevents you from downloading and trying the PVS-Studio analyzer on your code. Good luck in fighting against 64-bit and other errors!

© Habrahabr.ru