OpenLink ODBC Driver and iODBC usage on Apple Silicon M1 machines

OpenLink ODBC Driver and iODBC usage on Apple Silicon M1 machines

When running an ODBC application on an Apple Silicon M1 processor machine it must be determined if the ODBC application binary is Intel 64bit or Apple Silicon M1 and ensure the ODBC Driver being used and any dependant libraries it requires are also available in the binary format of the ODBC application.

If upgrading from an Intel 64 machine backup containing Intel 64 ODBC drivers, care needs to be taken to ensure that the ODBC application is running in Intel 64bit via Rosetta 2 for the ODBC connections to continue working. Or if the ODBC application is running in native Apple Silicon M1 mode then the ODBC driver needs to be upgraded to the new OpenLink ODBC Drivers for Apple Silicon M1 and any dependant database libraries required need to be available in Apple Silicon M1 format for the connection to work.

The new OpenLink ODBC Drivers for Apple Silicon M1 installers, provide universal binaries containing Intel 64bit and Apple Silicon M1 binaries within them such that they can work with either ODBC application binary types, from a single ODBC Driver.

On Apple Silicon M1 machines, the OpenLink iODBC Driver Manager and Administrator have been built as a Universal binary supporting both the Intel 64bit via Rosetta 2 and Apple Silicon M1 native applications.

The iODBC Administrator.app is a Universal binary containing Intel 64bit and Apple Silicon M1 binaries, as can be seen with the command:

$ file /Applications/iODBC/iODBC\ Administrator.app/Contents/MacOS/iODBC\ Administrator
/Applications/iODBC/iODBC Administrator.app/Contents/MacOS/iODBC Administrator: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]
/Applications/iODBC/iODBC Administrator.app/Contents/MacOS/iODBC Administrator (for architecture x86_64):	Mach-O 64-bit executable x86_64
/Applications/iODBC/iODBC Administrator.app/Contents/MacOS/iODBC Administrator (for architecture arm64):	Mach-O 64-bit executable arm64
$

and detects the macOS processor it is running on ie Apple Silicon M1 or Intel 64 and starts the appropriate binary labelling it as iODBC Data Source Administrator (Apple Silicon) or iODBC Data Source Administrator (Intel 64) in the “Title” of the running app accordingly, so users know which one is running.

iodbc.apple.about

The iODBC Administrator64.app is an Intel 64bit only binary, the same as it is called in the previous Intel installers for compatibility of name:

$ file /Applications/iODBC/iODBC\ Administrator64.app/Contents/MacOS/iODBC\ Administrator64 
/Applications/iODBC/iODBC Administrator64.app/Contents/MacOS/iODBC Administrator64: Mach-O 64-bit executable x86_64
$

which on running is called iODBC Data Source Administrator (Intel 64bit) in its title bar:

This is useful on a Apple Silicon M1 machine as it provides an Intel 64 iODBC Administrator that can be used for configuring and testing Intel 64 ODBC drivers, without the need to switch the default iODBC Administrator.app to run in Intel 64 Rosetta 2 mode.

The directory listing for the 2 iODBC Administrator apps are:

/Applications/iODBC/iODBC Administrator.app

/Applications/iODBC/iODBC Administrator64.app

Screenshot 2022-02-01 at 12.29.06

The default iODBC Administrator.app universal binary can be forced to start in Intel 64 mode under Rosetta 2 by right clicking on the application icon in the Finder and selecting the Get Info option which presents a dialog with the check box option to Open using Rosetta, and will continue to run in this mode until unchecked.

Likewise, if running a Universal binary application with both Intel 64bit or Apple Silicon M1 binaries, by default the Application will run in the native Apple Silicon M1 mode on startup. And if this is an ODBC Application then an Apple Silicon M1 ODBC driver is required, but the Universal binary can be switched to run in Rosetta 2 Intel64 compatibility mode, enabling an Intel 64bit ODBC driver to be used with it, by right clicking on the Application in the Finder, selecting the Get Info option and selecting the Open using Rosetta check box. The Application will then always run in Rosetta 2 Intel64 emulation mode, see the following Get Info dialog for the Microsoft Excel universal binary application as an example:

Related