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!