diff -ruN fam-2.7.0/lib/Client.c++ fam-2.7.0.noc++/lib/Client.c++ --- fam-2.7.0/lib/Client.c++ 2003-01-18 14:18:12.000000000 +0000 +++ fam-2.7.0.noc++/lib/Client.c++ 2006-03-02 22:47:50.000000000 +0000 @@ -34,8 +34,6 @@ #include #include -#include - #include "fam.h" #include "Client.h" @@ -440,3 +438,29 @@ memcpy(l, p, sizeof(u_int32_t)); *l = ntohl(*l); } + +/* Some C++ stuff needed when we not link to libstdc++ */ +void *operator new (size_t sz) +{ + void *ret = malloc (sz); + if (ret == NULL) + { + fputs ("libfam memory allocation failed\n", stderr); + } + return ret; +} + +void *operator new[] (size_t sz) +{ + return ::operator new(sz); +} + +void operator delete (void *ptr) +{ + free (ptr); +} + +void operator delete[] (void *ptr) +{ + free (ptr); +} diff -ruN fam-2.7.0/lib/Makefile.am fam-2.7.0.noc++/lib/Makefile.am --- fam-2.7.0/lib/Makefile.am 2003-01-19 01:55:10.000000000 +0000 +++ fam-2.7.0.noc++/lib/Makefile.am 2006-03-02 22:43:01.000000000 +0000 @@ -7,8 +7,11 @@ Client.h \ fam.c++ -libfam_la_LDFLAGS = -export-symbols fam.sym -libfam_la_LIBADD = -lstdc++ +libfam_la_LDFLAGS = -Wl,--version-script=fam.sym.version +libfam_la_LIBADD = +AM_CXXFLAGS = -fno-exceptions -fno-rtti + +CXXLD=--tag=CC $(CXX) EXTRA_DIST = fam.sym diff -ruN fam-2.7.0/lib/fam.sym.version fam-2.7.0.noc++/lib/fam.sym.version --- fam-2.7.0/lib/fam.sym.version 1970-01-01 00:00:00.000000000 +0000 +++ fam-2.7.0.noc++/lib/fam.sym.version 2006-03-02 22:49:31.000000000 +0000 @@ -0,0 +1,20 @@ +{ + global: + FAMCancelMonitor; + FAMClose; + FAMDebugLevel; + FamErrlist; + FAMErrno; + FAMMonitorCollection; + FAMMonitorDirectory; + FAMMonitorDirectory2; + FAMMonitorFile; + FAMMonitorFile2; + FAMNextEvent; + FAMOpen; + FAMOpen2; + FAMPending; + FAMResumeMonitor; + FAMSuspendMonitor; + local: *; +};