I'm trying to run freeradius on an OS X machine and I have been reading threads relating to issues people have had over the years when receiving a message saying:
ERROR: Failed to initialize semaphore: Function not implemented
Running radiusd -X works fine on OS X but doing rc.radiusd start or just radiusd gives the error. I'm guessing that the -X parameter gives realtime logging information probably doesn't use semaphores as it may only be a single thread.
-X is shorthand for several options, one of which causes the server to run in single-threaded mode. If you want normal operation with debugging messages, use ( -x -x ) instead.
I have downloaded the BSD code for semaphores and copied libsem.a and
the associated .h, .c and .o files to the /src/main directory. I've
gone into the Makefile and edited the libs line to look like this as
per the message at
http://www.mail-archive.com/[EMAIL PROTECTED]/ msg04260.html (I think there was a typo in the original message and I
interpreted it to really be this).
LIBS += -lradius $(SNMP_LIBS) libsem.a
Implementing this change or the alternate one suggested on the above link has not changed the situation.
I am not an expert with linking libraries. OS X with developer tools does have a semaphore.h file located in /usr/include. I would guess that there may be a dynamic library somewhere in the OS. Could this be conflicting with the BSD implementation I downloaded? What is the process to get this to link properly?
The latest CVS should build on an OSX system, though it gets trickier if you want to use modules such as SQL due to the way OSX handles libraries and linking.
-Chris -- \\\|||/// \ StarNet Inc. \ Chris Parker \ ~ ~ / \ WX *is* Wireless! \ Director, Engineering | @ @ | \ http://www.starnetwx.net \ (847) 963-0116 oOo---(_)---oOo--\------------------------------------------------------ \ Wholesale Internet Services - http://www.megapop.net
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
