This document is donationware now.
If it solved your problems and saved you valuable time I would appreciate if you donate whatever you think it is worth it (minimum payment 5 US$ please). You can pay using PayPal:

HowTo  run Filemaker Server 5.5 on Redhat Linux 7.3, Redhat Linux 9.0 and Redhat Fedora Core 1

(Should work with Redhat 8.0 and with other glibc2.2 based systems as well)
Author: Christof Baumgärtner -
Copyright: 2002, 2003, 2004 Christof Baumgärtner
Last updated: Jan 16, 2004

After installing Filemaker Server 5.5 on Redhat Linux 7.3, 9.0 or Fedora Core 1 you will probably end up with the following error message while running the fms_registration oder fmserverd application:

fms_registration: relocation error: fms_registration: symbol __on_exit, version GLIBC_2.0 not defined in file libc.so.6 with link time reference
or
fmserverd: relocation error: fmserverd: symbol __on_exit, version GLIBC_2.0 not defined in file libc.so.6 with link time reference


This is due to the fact that Filemaker Server 5.5 is linked against the glibc2.0 libraries but Redhat 7.3, 9.0 and Fedora Core 1 are running the glibc2.2 libraries by default.

The solution is to install the glibc2.1 compatibility libraries and stuff. Unfortunately it is not enough to simply include these libraries in the LD_LIBRARY_PATH or LD_PRELOAD because the new ld (GNU linker) will use the new glibc2.2 anyway. You can't even change this behaviour by using ldconfig.
Fortunately there is a way to call the old dynamic linker directly which then will use the glibc2.1 libraries.

So how is all this done?
(All the example assume that you have installed Filemaker Server and the compatibility libraries at the default locations)

1. Become root
su - root

2. Download and install the compat-glibc-6.2-2.1.3.2.i386.rpm package.
Example:
rpm --install ftp://speakeasy.rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/compat-glibc-6.2-2.1.3.2.i386.rpm

3.  Create a file called startoldglibcappin/usr/bin and put in the following lines:
#!/bin/sh
LD_LIBRARY_PATH=${LD_OLDGLIBC_LIBRARY_PATH}:/usr/i386-glibc21-linux/lib/ \
LD_PRELOAD=${LD_OLDGLIBC_PRELOAD} /usr/i386-glibc21-linux/lib/ld-2.1.3.so \
"$@"

or download it here and extract it.

4. Make the wrapper script executable
chmod +x /usr/bin/startoldglibcapp

5. Test it by running the Filemaker registration application. Use your own registration code!
Example:
/usr/bin/startoldglibcapp /usr/bin/fms_registration <your_registration_code> /usr/bin/fmserverd

6. Test running Filemaker Server. If you don't see any error messages it should run ;-)
Example:
/usr/bin/startoldglibcapp /usr/bin/fmserverd

7. Stop the server
Example:
/usr/bin/startoldglibcapp /usr/bin/fmserverd stop

8.  Change the startscript to start the Filemaker Binary from the dynamic linker as above.
vi /etc/init.d/fmserverd
Find the line
fmserverd=/usr/bin/fmserverd
and change it to
fmserverd="/usr/bin/startoldglibcapp /usr/bin/fmserverd"

9. Test it by starting and stopping the server
Example:
/etc/init.d/fmserverd start
/etc/init.d/fmserverd stop

10. That's it!