Subject UDFs for Firebird 1.5 on CentOS 7 64 Bit
Author

Firstly I realize I am asking for support on a very old Firebird version that is no longer supported.  However I'm in a situation where the upgrading of these FB 1.5 databases to 3.x will take some time, and I need to get an interim solution in place.  


I have been successfully able to get FB 1.5 installed and running on CentOS 7.  This was not an easy task, because CentOS 7 is 64 bit only, yet has the ability to support older 32 bit applications.  It required a lot of searching out libraries for 32 compatibility that FB required (compat-libstdc++-33, ncurses, etc.).  After a lot of work, I managed to get this so that FB 1.5 would install and with the addition of xinetd I got it running.  I thought I was out of the woods....


Then came some UDF compatibility issues.  This is where things got really weird, and where I need some help or at least anyone who may have been down a similar path to chime in on some suggestions.


I was able to get all the UDF functions working for fbudf that comes with Firebird 1.5.  They install and I can call them, and they work just fine.  Then I tried to do the same for rfunc, and of course that didn't work.  I did some searching and found the audfl project that replaces rfunc, so I installed that.


A couple of interesting things showed up....  First attempting to reference the library files don't work because for some reason Firebird 1.5 is requiring that the files be prefixed with 'lib' and suffixed with '.so'.  Strangely this was not the case with fbudf.  I'm wondering if it has something to do with the way the UDF was compiled, but anyway I was able to get the UDF for audfl to be recognized by making a copy of the 32 bit version and renaming it as libaudfl.so


However that doesn't seem to be enough.  Now on attempting to call a function, it fails with the regular message I would expect if the function library just isn't working:


Invalid token.

invalid request BLR at offset 58.

function LONGSTRREPLACE is not defined.

module name or entrypoint could not be found.


Interestingly any attempt to call any function in this library gives the same "invalid request BLR at offset 58" regardless of the function.

If anyone has managed to do a FB installation on CentOS 7, particularly if it is an older FB version, I'd love to know if you encountered similar issues and how you got around them.  Or if you have a suggestion of something I'm overlooking, I'm all ears.

Thanks in advance for any help.

Myles