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