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.
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
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: