Please feel free to continue with your research on the matter

The issue seems to be getting Delphi/FireMonkey to handle the fact that library function names are prefixed with an underscore on OSX, eg. "BASS_Init" is "_BASS_Init". 3delite found this solution...
function BASS_Init(device: LongInt; freq, flags: DWORD; win: HWND; clsid: PGUID): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll {$IFDEF MACOS}name '_BASS_Init'{$ENDIF};
I'm hoping there is a simpler solution that doesn't require adding a "name" directive to each function, or some way to automate that.
In the meantime, I have put an updated BASS.PAS file in the BASS package that should support Linux as well as Windows.