From 9197def8cc557b207b6f644c09330333b3f7c3ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= <michael@freepascal.org>
Date: Fri, 3 Nov 2023 17:02:14 +0100
Subject: [PATCH] * Attempt to load .so.2. Fixes issue #40495

---
 packages/ibase/src/ibase60.inc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/packages/ibase/src/ibase60.inc b/packages/ibase/src/ibase60.inc
index bcad9a69ce..457b397ce5 100644
--- a/packages/ibase/src/ibase60.inc
+++ b/packages/ibase/src/ibase60.inc
@@ -55,6 +55,7 @@ uses Dynlibs,ctypes;
   const
     gdslib = 'gds32.dll';
     fbclib = 'fbclient.dll';
+    fbclib2 = fbclib;
     fbembedlib = 'fbembed.dll';
     libfc  = fbclib;
     libem  = fbembedlib;
@@ -2528,7 +2529,7 @@ implementation
 
 ResourceString
   SErrEmbeddedFailed = 'Can not load embedded Firebird client "%s". Check your installation.';
-  SErrDefaultsFailed = 'Can not load default Firebird clients ("%s" or "%s" or "%s"). Check your installation.';
+  SErrDefaultsFailed = 'Can not load default Firebird clients ("%s", "%s", "%s", "%s" or "%s"). Check your installation.';
   SErrLoadFailed     = 'Can not load Firebird client library "%s". Check your installation.';
   SErrAlreadyLoaded  = 'Firebird interface already initialized from library %s.';
   
@@ -2754,9 +2755,12 @@ begin
     If (TryInitialiseIBase60(fbembedlib)=0) and
        (TryInitialiseIBase60(libem)=0) and
        (TryInitialiseIBase60(fbclib)=0) and
+       {$IFDEF UNIX}
+       (TryInitialiseIBase60(fbclib2)=0) and
+       {$ENDIF}
        (TryInitialiseIBase60(libfc)=0) and
        (TryInitialiseIBase60(gdslib)=0) then
-        Raise EInOutError.CreateFmt(SErrDefaultsFailed,[fbclib,gdslib,fbembedlib]);
+        Raise EInOutError.CreateFmt(SErrDefaultsFailed,[fbclib,fbclib2,libfc,gdslib,fbembedlib]);
     end;    
   Result := RefCount;
 end;