diff options
Diffstat (limited to 'cpp')
38 files changed, 375 insertions, 156 deletions
diff --git a/cpp/CHANGES b/cpp/CHANGES index 8165bc53623..509a88f4d9f 100644 --- a/cpp/CHANGES +++ b/cpp/CHANGES @@ -1,6 +1,8 @@ Changes since version 1.4.0 --------------------------- +- AIX 5.2/VisualAge 6.0 port + - Removed the --depend option from slice2java. - Removed IceBox::ServiceBase and IceBox::FreezeService. There's now diff --git a/cpp/INSTALL.AIX b/cpp/INSTALL.AIX new file mode 100644 index 00000000000..07b2432e8a3 --- /dev/null +++ b/cpp/INSTALL.AIX @@ -0,0 +1,163 @@ +====================================================================== +Requirements +====================================================================== + +Operating System +---------------- + +AIX 5.2 on Power or PowerPC + +C++ compiler +------------ + +- VisualAge C++ 6.0 with the April 2004 PTF + +C compiler +---------- + +- IBM xlc + + +Third-party libraries +--------------------- + +- Berkeley DB 4.1.25 or 4.2.52 with C++ support enabled, and built + with a C++ compiler compatible with the one you are using. + The Berkeley DB source distribution can be downloaded from + http://www.sleepycat.com + + We recommend to configure and build Berkeley DB with: + $ ../dist/configure --enable-cxx --enable-posixthreads + (plus --prefix=<dir> and/or --enable-java if you like) + $ gmake + + For 64 bit builds, use: + $ export OBJECT_MODE=64 + $ ../dist/configure --enable-cxx --enable-posixthreads + (plus --prefix=<dir> and/or --enable-java if you like) + $ gmake + +- OpenSSL 0.9.6 or OpenSSL 0.9.7. + Source distributions can be downloaded from http://www.openssl.org. + You should also be able to use the openssl distribution for AIX 5.1 + available in the "AIX Toolbox for Linux Applications" (cryptographic + section): + http://www.ibm.com/servers/aix/products/aixos/linux/ezinstall.html + +- expat 1.9x, which can be downloaded from + http://sourceforge.net/projects/expat. + + You can also use the binary distribution for AIX 5.1 available + in the "AIX Toolbox for Linux Applications": + http://www.ibm.com/servers/aix/products/aixos/linux/ezinstall.html + +- bzip2 1.0 + The source distribution can be downloaded from + http://sources.redhat.com/bzip2 + + For 32 bit builds, you can also use the binary distribution from + the "AIX Toolbox for Linux Applications". + + +GNU Make 3.80 +------------- + +GNU Make 3.80 is required to build Ice on AIX. You can download GNU +Make from the "AIX Toolbox for Linux Applications". + + +Python 2.2 or 2.3 +----------------- + +To run the automated test suite, you will need Python 2.2 or 2.3. If +you have no interest in running the test scripts, Python is not +required. + +You can download Python from the "AIX Toolbox for Linux Applications". + + +====================================================================== +Compilation and Testing +====================================================================== + +Extract the Ice archive in any directory you like (for example, in +your home directory): + +$ gunzip -c Ice-<version>.tar.gz | tar xvf - + +Change the working directory to Ice-<version>: + +$ cd Ice-<version> + +Edit the file config/Make.rules according to the comments in this +file. Make sure that the paths for the third-party libraries are set +correctly if they are not installed in the default location /usr/lib +and /usr/include. + +Now you're ready to build Ice: + +$ gmake + +This will build the Ice core library, all add-ons, all tests, and all +examples. + + +After a successful build, you can run the test suite, provided that +you installed Python: + +$ gmake test + +This is equivalent to: + +$ python allTests.py + +If everything worked out, you should see lots of "ok". In case of a +failure, the tests abort with "failed". + +If you want to try out any of the demos, make sure to add "bin" to +PATH and "lib" to LIBPATH: + +$ export PATH=`pwd`/bin:$PATH +$ export LIBPATH=`pwd`/lib:$LIBPATH + +====================================================================== +Library versioning +====================================================================== +Ice uses the same library versioning convention as the packages +distributed in the "AIX Toolbox for Linux Applications". +See +http://www-124.ibm.com/pipermail/aixtoolbox-list/2004-June/001789.html + +====================================================================== +64 bit builds +====================================================================== + +To build Ice in 64 bit mode, you need to: + +- Obtain or build all the third party dependencies. A number of + packages from the "AIX Toolbox for Linux Applications" provide both + 32 and 64 bit shared objects in the same archive libraries. + For example: + $ ar -t -X32_64 /opt/freeware/lib/libexpat.a + libexpat.so.0 + libexpat.so.0 + +- Set the environment variable OBJECT_MODE to 64, e.g.: + $ export OBJECT_MODE=64 + +- Build and test as described above. + + +====================================================================== +Installation +====================================================================== + +Simply run "gmake install". This will install Ice in the "prefix" +directory specified in the file Make.rules. + +After installation, make sure that the <prefix>/bin directory is in +your PATH, and the <prefix>/lib directory is in your +LIBPATH. When compiling Ice programs, you must also make sure +to pass the location of the <prefix>/include directory to the compiler +with the -I option, and the location of the <prefix>/lib directory +with the -L option. diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules index 2253e351d35..f850c022ad9 100644 --- a/cpp/config/Make.rules +++ b/cpp/config/Make.rules @@ -264,21 +264,31 @@ endif # ifeq ($(mklibfilename),) - mklibfilename = lib$(1).so.$(2) + mklibfilename = $(if $(2),lib$(1).so.$(2),lib$(1).so) endif ifeq ($(mksoname),) - mksoname = lib$(1).so.$(2) + mksoname = $(if $(2),lib$(1).so.$(2),lib$(1).so) endif ifeq ($(mklibname),) mklibname = lib$(1).so endif +ifeq ($(mklibtargets),) + mklibtargets = $(1) $(2) $(3) +endif + ifeq ($(mkshlib),) $(error You need to define mkshlib in Make.rules.$(UNAME)) endif +ifeq ($(installlib),) + installlib = $(INSTALL) $(2)/$(3) $(1); \ + rm -f $(1)/$(4); ln -s $(3) $(1)/$(4); \ + rm -f $(1)/$(5); ln -s $(4) $(1)/$(5) +endif + SLICEPARSERLIB = $(libdir)/$(call mklibfilename,Slice,$(VERSION)) SLICE2CPP = $(bindir)/slice2cpp SLICE2XSD = $(bindir)/slice2xsd diff --git a/cpp/config/Make.rules.AIX b/cpp/config/Make.rules.AIX new file mode 100644 index 00000000000..3dc3954da8f --- /dev/null +++ b/cpp/config/Make.rules.AIX @@ -0,0 +1,63 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +# +# This file is included by Make.rules when uname is AIX. +# + +CXX := xlC_r +CC := xlc_r -qcpluscmt + +# +# -qstaticinline: make inline functions that were not inlined (typically +# in debug mode or when the function is too big) static instead of +# extern (the default). This eliminates lots of "Duplicate symbol" +# warnings at link time, and surprisingly reduces the size of the +# libraries. +# +# -D_LARGE_FILES: By default, Berkeley DB is built with -D_LARGE_FILES, +# which moves a number of symbols from namespace std to namespace +# std::_LSF_ON. It would be nice to find a better solution, and get +# rid of this define. +# +# -qalign=natural: You should add this option if you plan to use or +# build Ice with libraries built with GCC. The default alignment for GCC +# is "natural", while the default for xlC is "power". +# + +ifneq ($(OBJECT_MODE),64) + CXXARCHFLAGS := -D_LARGE_FILES +endif + +CXXFLAGS = -brtl -qrtti=all -qstaticinline $(CXXARCHFLAGS) + +ifeq ($(OPTIMIZE),yes) + CXXFLAGS := -O2 -DNDEBUG $(CXXFLAGS) -qinline +else + CXXFLAGS := -g $(CXXFLAGS) +endif + + +LDPLATFORMFLAGS = -Wl,-blibpath:$(prefix)/lib:/usr/lpp/xlopt:/usr/lib/threads:/usr/vacpp/lib:/usr/lib:/lib + +mklibfilename = lib$(1).a +mklibname = lib$(1).notused +mklibtargets = $(1) + +mkshlib = $(CXX) -qmkshrobj $(LDFLAGS) -o $(2) $(3) $(4) ; ar -rc $(1) $(2) ; rm $(2) + +installlib = $(INSTALL) $(2)/$(3) $(1) + +BASELIBS = -lIceUtil +LIBS = -lIce $(BASELIBS) + +ICEUTIL_OS_LIBS := +ICE_OS_LIBS := + +export LIBPATH := $(libdir):$(LIBPATH) diff --git a/cpp/config/Make.rules.Darwin b/cpp/config/Make.rules.Darwin index 043978a323b..97d68814116 100644 --- a/cpp/config/Make.rules.Darwin +++ b/cpp/config/Make.rules.Darwin @@ -25,8 +25,9 @@ LDPLATFORMFLAGS = -Wl,-bind_at_load -Wl,-executable_path,$(top_srcdir)/bin shlibldflags = $(CXXFLAGS) -L$(libdir) -mklibfilename = lib$(1).$(2).dylib -mksoname = lib$(1).$(2).dylib +mklibfilename = $(if $(2),lib$(1).$(2).dylib,lib$(1).dylib) +mksoname = $(if $(2),lib$(1).$(2).dylib,lib$(1).dylib) + mklibname = lib$(1).dylib mkshlib = $(CXX) -dynamiclib $(shlibldflags) -o $(1) -install_name @executable_path/../lib/$(2) $(3) $(4) diff --git a/cpp/config/Make.rules.HP-UX b/cpp/config/Make.rules.HP-UX index de5c871e557..3c30ab9d2b5 100644 --- a/cpp/config/Make.rules.HP-UX +++ b/cpp/config/Make.rules.HP-UX @@ -63,8 +63,8 @@ endif LDPLATFORMFLAGS = -Wl,+s -Wl,+b$(prefix)/$(libsubdir) $(LIBPATH) -mklibfilename = lib$(1).$(2) -mksoname = lib$(1).$(2) +mklibfilename = $(if $(2),lib$(1).$(2),lib$(1).sl) +mksoname = $(if $(2),lib$(1).$(2),lib$(1).sl) mklibname = lib$(1).sl mkshlib = $(CXX) -b -Wl,-Bsymbolic $(LDFLAGS) -o $(1) -Wl,+h$(2) $(3) $(4) diff --git a/cpp/config/TestUtil.py b/cpp/config/TestUtil.py index 70cabe91546..726b6afb36c 100644 --- a/cpp/config/TestUtil.py +++ b/cpp/config/TestUtil.py @@ -91,7 +91,13 @@ def isHpUx(): return 1 else: return 0 - + +def isAIX(): + if sys.platform in ['aix4', 'aix5']: + return 1 + else: + return 0 + def isDarwin(): if sys.platform == "darwin": @@ -145,7 +151,7 @@ def getAdapterReady(serverPipe): def waitServiceReady(pipe, token): - while True: + while 1: output = pipe.readline().strip() @@ -158,7 +164,7 @@ def waitServiceReady(pipe, token): def printOutputFromPipe(pipe): - while True: + while 1: line = pipe.readline() @@ -183,6 +189,8 @@ elif isHpUx(): os.environ["SHLIB_PATH"] = os.path.join(toplevel, "lib") + ":" + os.getenv("SHLIB_PATH", "") elif isDarwin(): os.environ["DYLD_LIBRARY_PATH"] = os.path.join(toplevel, "lib") + ":" + os.getenv("DYLD_LIBRRARY_PATH", "") +elif isAIX(): + os.environ["LIBPATH"] = os.path.join(toplevel, "lib") + ":" + os.getenv("LIBPATH", "") else: os.environ["LD_LIBRARY_PATH"] = os.path.join(toplevel, "lib") + ":" + os.getenv("LD_LIBRARY_PATH", "") os.environ["LD_LIBRARY_PATH_64"] = os.path.join(toplevel, "lib") + ":" + os.getenv("LD_LIBRARY_PATH_64", "") @@ -233,7 +241,7 @@ def clientServerTestWithOptionsAndNames(name, additionalServerOptions, additiona testdir = os.path.join(toplevel, "test", name) server = os.path.join(testdir, serverName) client = os.path.join(testdir, clientName) - + print "starting " + serverName + "...", serverPipe = os.popen(server + serverOptions + additionalServerOptions + " 2>&1") getServerPid(serverPipe) diff --git a/cpp/demo/IceBox/hello/Makefile b/cpp/demo/IceBox/hello/Makefile index 1d71bc5575b..9cce072b6d5 100644 --- a/cpp/demo/IceBox/hello/Makefile +++ b/cpp/demo/IceBox/hello/Makefile @@ -11,12 +11,10 @@ top_srcdir = ../../.. CLIENT = client -LIBFILENAME = $(call mklibfilename,HelloService,$(VERSION)) -SONAME = $(call mksoname,HelloService,$(SOVERSION)) -LIBNAME = $(call mklibname,HelloService) - -TARGETS = $(CLIENT) $(LIBFILENAME) $(SONAME) $(LIBNAME) +LIBFILENAME = $(call mklibfilename,HelloService) +SONAME = $(call mksoname,HelloService) +TARGETS = $(CLIENT) $(LIBFILENAME) OBJS = Hello.o @@ -40,14 +38,6 @@ $(LIBFILENAME): $(OBJS) $(SOBJS) rm -f $@ $(call mkshlib,$@,$(SONAME),$(OBJS) $(SOBJS),$(LINKWITH)) -$(SONAME): $(LIBFILENAME) - rm -f $@ - ln -s $(LIBFILENAME) $@ - -$(LIBNAME): $(SONAME) - rm -f $@ - ln -s $(SONAME) $@ - $(CLIENT): $(OBJS) $(COBJS) rm -f $@ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(LIBS) diff --git a/cpp/demo/IcePack/hello/Makefile b/cpp/demo/IcePack/hello/Makefile index e703f282b61..67c70505655 100644 --- a/cpp/demo/IcePack/hello/Makefile +++ b/cpp/demo/IcePack/hello/Makefile @@ -12,11 +12,10 @@ top_srcdir = ../../.. CLIENT = client SERVER = server -LIBFILENAME = $(call mklibfilename,HelloService,$(VERSION)) -SONAME = $(call mksoname,HelloService,$(SOVERSION)) -LIBNAME = $(call mklibname,HelloService) +LIBFILENAME = $(call mklibfilename,HelloService) +SONAME = $(call mksoname,HelloService) -TARGETS = $(CLIENT) $(LIBFILENAME) $(SONAME) $(LIBNAME) $(SERVER) +TARGETS = $(CLIENT) $(LIBFILENAME) $(SERVER) OBJS = Hello.o @@ -44,14 +43,6 @@ $(LIBFILENAME): $(OBJS) $(SVC_OBJS) rm -f $@ $(call mkshlib,$@,$(SONAME),$(OBJS) $(SVC_OBJS),$(LINKWITH)) -$(SONAME): $(LIBFILENAME) - rm -f $@ - ln -s $(LIBFILENAME) $@ - -$(LIBNAME): $(SONAME) - rm -f $@ - ln -s $(SONAME) $@ - $(CLIENT): $(OBJS) $(COBJS) rm -f $@ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(LIBS) -lIcePack diff --git a/cpp/demo/IcePack/simple/Makefile b/cpp/demo/IcePack/simple/Makefile index c4a8b16a16d..5dce20fb2fe 100644 --- a/cpp/demo/IcePack/simple/Makefile +++ b/cpp/demo/IcePack/simple/Makefile @@ -11,11 +11,10 @@ top_srcdir = ../../.. CLIENT = client SERVER = server -LIBFILENAME = $(call mklibfilename,HelloService,$(VERSION)) -SONAME = $(call mksoname,HelloService,$(SOVERSION)) -LIBNAME = $(call mklibname,HelloService) +LIBFILENAME = $(call mklibfilename,HelloService) +SONAME = $(call mksoname,HelloService) -TARGETS = $(CLIENT) $(SERVER) $(LIBFILENAME) $(SONAME) $(LIBNAME) +TARGETS = $(CLIENT) $(SERVER) $(LIBFILENAME) OBJS = Hello.o @@ -51,12 +50,4 @@ $(LIBFILENAME): $(OBJS) $(SVCOBJS) rm -f $@ $(call mkshlib,$@,$(SONAME),$(OBJS) $(SVCOBJS),$(LINKWITH)) -$(SONAME): $(LIBFILENAME) - rm -f $@ - ln -s $(LIBFILENAME) $@ - -$(LIBNAME): $(SONAME) - rm -f $@ - ln -s $(SONAME) $@ - include .depend diff --git a/cpp/include/Ice/FactoryTableDef.h b/cpp/include/Ice/FactoryTableDef.h index 68287a10237..5f78ce3b3e0 100644 --- a/cpp/include/Ice/FactoryTableDef.h +++ b/cpp/include/Ice/FactoryTableDef.h @@ -45,7 +45,7 @@ private: OFTable _oft; }; -class ICE_API FactoryTableWrapper : IceUtil::noncopyable +class ICE_API FactoryTableWrapper : public IceUtil::noncopyable { public: diff --git a/cpp/include/Ice/LoggerUtil.h b/cpp/include/Ice/LoggerUtil.h index 5b22e84ad70..2b1c2c42ec1 100644 --- a/cpp/include/Ice/LoggerUtil.h +++ b/cpp/include/Ice/LoggerUtil.h @@ -33,7 +33,7 @@ private: }; template<typename T> -Warning& +inline Warning& operator<<(Warning& out, const T& val) { out.__str() << val; @@ -60,7 +60,7 @@ private: }; template<typename T> -Error& +inline Error& operator<<(Error& out, const T& val) { out.__str() << val; @@ -88,7 +88,7 @@ private: }; template<typename T> -Trace& +inline Trace& operator<<(Trace& out, const T& val) { out.__str() << val; diff --git a/cpp/include/Ice/Proxy.h b/cpp/include/Ice/Proxy.h index 8044b601993..916bfc000be 100644 --- a/cpp/include/Ice/Proxy.h +++ b/cpp/include/Ice/Proxy.h @@ -66,7 +66,7 @@ namespace IceProxy { namespace Ice typedef ::std::map< ::std::string, ::std::string> Context; #endif -class ICE_API Object : public ::IceUtil::Shared, ::IceUtil::Mutex +class ICE_API Object : public ::IceUtil::Shared, private ::IceUtil::Mutex { public: diff --git a/cpp/include/Ice/ProxyF.h b/cpp/include/Ice/ProxyF.h index 3550e730d6d..32af17f7a97 100644 --- a/cpp/include/Ice/ProxyF.h +++ b/cpp/include/Ice/ProxyF.h @@ -1,3 +1,4 @@ + // ********************************************************************** // // Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved. @@ -10,7 +11,7 @@ #ifndef ICE_PROXY_F_H #define ICE_PROXY_F_H -#include <Ice/ProxyHandle.h> +#include <Ice/Config.h> namespace IceProxy { @@ -77,6 +78,9 @@ ICE_API void decRef(::IceDelegateD::Ice::Object*); } + +#include <Ice/ProxyHandle.h> + namespace Ice { diff --git a/cpp/include/IceUtil/Config.h b/cpp/include/IceUtil/Config.h index 05de38222f9..4fff5035340 100644 --- a/cpp/include/IceUtil/Config.h +++ b/cpp/include/IceUtil/Config.h @@ -18,7 +18,7 @@ // #if defined(__i386) || defined(_M_IX86) || defined (__x86_64) # define ICE_LITTLE_ENDIAN -#elif defined(__sparc) || defined(__sparc__) || defined(__hppa) || defined(__ppc__) +#elif defined(__sparc) || defined(__sparc__) || defined(__hppa) || defined(__ppc__) || defined(_ARCH_COM) # define ICE_BIG_ENDIAN #else # error "Unknown architecture" diff --git a/cpp/include/IceUtil/OutputUtil.h b/cpp/include/IceUtil/OutputUtil.h index 3f95d2ef657..0d718ec838d 100644 --- a/cpp/include/IceUtil/OutputUtil.h +++ b/cpp/include/IceUtil/OutputUtil.h @@ -119,7 +119,7 @@ private: }; template<typename T> -Output& +inline Output& operator<<(Output& out, const T& val) { std::ostringstream s; @@ -129,7 +129,7 @@ operator<<(Output& out, const T& val) } template<typename T> -Output& +inline Output& operator<<(Output& out, const std::vector<T>& val) { for(typename std::vector<T>::const_iterator p = val.begin(); p != val.end(); ++p) @@ -147,7 +147,7 @@ operator<<(Output& out, const std::vector<T>& val) // template<typename T> -Output& +inline Output& operator<<(Output& out, std::vector<T>& val) { for(typename std::vector<T>::const_iterator p = val.begin(); p != val.end(); ++p) @@ -269,7 +269,7 @@ private: }; template<typename T> -XMLOutput& +inline XMLOutput& operator<<(XMLOutput& out, const T& val) { std::ostringstream s; diff --git a/cpp/src/Freeze/Makefile b/cpp/src/Freeze/Makefile index dc414ce3a59..dd1b79b0eeb 100644 --- a/cpp/src/Freeze/Makefile +++ b/cpp/src/Freeze/Makefile @@ -13,7 +13,7 @@ LIBFILENAME = $(call mklibfilename,Freeze,$(VERSION)) SONAME = $(call mksoname,Freeze,$(SOVERSION)) LIBNAME = $(call mklibname,Freeze) -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) OBJS = DB.o \ @@ -71,10 +71,6 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME) ln -s $(SONAME) $@ install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) include .depend diff --git a/cpp/src/Freeze/ObjectStore.h b/cpp/src/Freeze/ObjectStore.h index 753249a648e..351a84ebba8 100644 --- a/cpp/src/Freeze/ObjectStore.h +++ b/cpp/src/Freeze/ObjectStore.h @@ -79,7 +79,7 @@ private: struct EvictorElement : public Ice::LocalObject { -#if defined(_MSC_VER) && (_MSC_VER <= 1200) +#if defined(_MSC_VER) && (_MSC_VER <= 1200) || defined(__IBMCPP__) enum { diff --git a/cpp/src/Freeze/SharedDb.h b/cpp/src/Freeze/SharedDb.h index 4260c05212d..9aa2b9a776e 100644 --- a/cpp/src/Freeze/SharedDb.h +++ b/cpp/src/Freeze/SharedDb.h @@ -10,9 +10,10 @@ #ifndef FREEZE_SHARED_DB_H #define FREEZE_SHARED_DB_H +#include <IceUtil/Config.h> +#include <db_cxx.h> #include <Freeze/ConnectionI.h> #include <IceUtil/Handle.h> -#include <db_cxx.h> #include <map> namespace Freeze diff --git a/cpp/src/Glacier/Makefile b/cpp/src/Glacier/Makefile index cbca16159dd..fc626b546ac 100644 --- a/cpp/src/Glacier/Makefile +++ b/cpp/src/Glacier/Makefile @@ -16,7 +16,7 @@ LIBNAME = $(call mklibname,Glacier) ROUTER = $(top_srcdir)/bin/glacierrouter STARTER = $(top_srcdir)/bin/glacierstarter -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) \ +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) \ $(ROUTER) $(STARTER) OBJS = Starter.o \ @@ -77,11 +77,7 @@ $(STARTER): $(SOBJS) $(libdir)/$(LIBNAME) $(CXX) $(LDFLAGS) -o $@ $(SOBJS) -lGlacier -lIceSSL $(LIBS) $(OPENSSL_LIBS) $(EXPAT_LIBS) install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) $(INSTALL_PROGRAM) $(ROUTER) $(install_bindir) $(INSTALL_PROGRAM) $(STARTER) $(install_bindir) diff --git a/cpp/src/Ice/DynamicLibrary.cpp b/cpp/src/Ice/DynamicLibrary.cpp index 9b67ca50ce2..1624c53575e 100644 --- a/cpp/src/Ice/DynamicLibrary.cpp +++ b/cpp/src/Ice/DynamicLibrary.cpp @@ -104,6 +104,13 @@ IceInternal::DynamicLibrary::loadEntryPoint(const string& entryPoint, bool useIc { lib += ".sl"; } +#elif defined(_AIX) + lib = "lib" + libName + ".a(lib" + libName + ".so"; + if(!version.empty()) + { + lib += "." + version; + } + lib += ")"; #else lib = "lib" + libName + ".so"; if(!version.empty()) @@ -126,13 +133,20 @@ IceInternal::DynamicLibrary::load(const string& lib) #ifdef _WIN32 _hnd = LoadLibrary(lib.c_str()); #else - _hnd = dlopen(lib.c_str(), RTLD_NOW); + + int flags = RTLD_NOW; +#ifdef _AIX + flags |= RTLD_MEMBER; +#endif + + _hnd = dlopen(lib.c_str(), flags); if(_hnd == 0) { // // Remember the most recent error in _err. // const char* err = dlerror(); + if(err) { _err = err; diff --git a/cpp/src/Ice/Makefile b/cpp/src/Ice/Makefile index 3bf51009f09..40effdb00ba 100644 --- a/cpp/src/Ice/Makefile +++ b/cpp/src/Ice/Makefile @@ -13,7 +13,7 @@ LIBFILENAME = $(call mklibfilename,Ice,$(VERSION)) SONAME = $(call mksoname,Ice,$(SOVERSION)) LIBNAME = $(call mklibname,Ice) -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) OBJS = Initialize.o \ Application.o \ @@ -142,10 +142,6 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME) ln -s $(SONAME) $@ install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) include .depend diff --git a/cpp/src/Ice/OutgoingAsync.cpp b/cpp/src/Ice/OutgoingAsync.cpp index 755522bef87..ecef9ed15cb 100644 --- a/cpp/src/Ice/OutgoingAsync.cpp +++ b/cpp/src/Ice/OutgoingAsync.cpp @@ -90,7 +90,7 @@ IceInternal::OutgoingAsync::__finished(BasicStream& is) string operation; __is->read(operation); - auto_ptr<RequestFailedException> ex = auto_ptr<RequestFailedException>(0); + auto_ptr<RequestFailedException> ex; switch(static_cast<DispatchStatus>(status)) { case DispatchObjectNotExist: @@ -131,7 +131,7 @@ IceInternal::OutgoingAsync::__finished(BasicStream& is) string unknown; __is->read(unknown); - auto_ptr<UnknownException> ex = auto_ptr<UnknownException>(0); + auto_ptr<UnknownException> ex; switch(static_cast<DispatchStatus>(status)) { case DispatchUnknownException: diff --git a/cpp/src/IceBox/Makefile b/cpp/src/IceBox/Makefile index db079525d51..0992038656d 100644 --- a/cpp/src/IceBox/Makefile +++ b/cpp/src/IceBox/Makefile @@ -16,7 +16,7 @@ LIBNAME = $(call mklibname,IceBox) SERVER = $(top_srcdir)/bin/icebox ADMIN = $(top_srcdir)/bin/iceboxadmin -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) \ +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) \ $(SERVER) $(ADMIN) OBJS = IceBox.o \ @@ -64,11 +64,7 @@ $(ADMIN): $(AOBJS) $(libdir)/$(LIBNAME) $(CXX) $(LDFLAGS) -o $@ $(AOBJS) -lIceBox $(LIBS) install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) $(INSTALL_PROGRAM) $(SERVER) $(install_bindir) $(INSTALL_PROGRAM) $(ADMIN) $(install_bindir) diff --git a/cpp/src/IcePack/Makefile b/cpp/src/IcePack/Makefile index f57f5015dfd..652e2f7b7ed 100644 --- a/cpp/src/IcePack/Makefile +++ b/cpp/src/IcePack/Makefile @@ -17,7 +17,7 @@ ADMIN = $(top_srcdir)/bin/icepackadmin NODE_SERVER = $(top_srcdir)/bin/icepacknode REGISTRY_SERVER = $(top_srcdir)/bin/icepackregistry -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) \ +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) \ $(NODE_SERVER) $(REGISTRY_SERVER) $(ADMIN) LIB_OBJS = Admin.o \ @@ -177,11 +177,7 @@ clean:: # rm -f Scanner.cpp install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) $(INSTALL_PROGRAM) $(ADMIN) $(install_bindir) $(INSTALL_PROGRAM) $(NODE_SERVER) $(install_bindir) $(INSTALL_PROGRAM) $(REGISTRY_SERVER) $(install_bindir) diff --git a/cpp/src/IcePatch/Makefile b/cpp/src/IcePatch/Makefile index b34b7f1559e..1d8d81fe7ee 100644 --- a/cpp/src/IcePatch/Makefile +++ b/cpp/src/IcePatch/Makefile @@ -17,7 +17,7 @@ CLIENT = $(top_srcdir)/bin/icepatchclient CALC = $(top_srcdir)/bin/icepatchcalc SERVER = $(top_srcdir)/bin/icepatchserver -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) \ +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) \ $(CLIENT) $(CALC) $(SERVER) OBJS = IcePatch.o \ @@ -75,11 +75,7 @@ $(SERVER): $(SERVER_OBJS) $(libdir)/$(LIBNAME) $(CXX) $(LDFLAGS) -o $@ $(SERVER_OBJS) -lIcePatch $(LIBS) $(OPENSSL_LIBS) install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) $(INSTALL_PROGRAM) $(CLIENT) $(install_bindir) $(INSTALL_PROGRAM) $(CALC) $(install_bindir) $(INSTALL_PROGRAM) $(SERVER) $(install_bindir) diff --git a/cpp/src/IceSSL/Makefile b/cpp/src/IceSSL/Makefile index 409591aff9f..b3ca15a9d15 100644 --- a/cpp/src/IceSSL/Makefile +++ b/cpp/src/IceSSL/Makefile @@ -13,7 +13,7 @@ LIBFILENAME = $(call mklibfilename,IceSSL,$(VERSION)) SONAME = $(call mksoname,IceSSL,$(SOVERSION)) LIBNAME = $(call mklibname,IceSSL) -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) OBJS = Plugin.o \ Exception.o \ @@ -79,10 +79,6 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME) ln -s $(SONAME) $@ install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) include .depend diff --git a/cpp/src/IceSSL/OpenSSLPluginI.cpp b/cpp/src/IceSSL/OpenSSLPluginI.cpp index 0d31dfda592..8f8fe00174a 100644 --- a/cpp/src/IceSSL/OpenSSLPluginI.cpp +++ b/cpp/src/IceSSL/OpenSSLPluginI.cpp @@ -151,9 +151,9 @@ idFunction() // On FreeBSD, pthread_t is a pointer to a per-thread structure // return reinterpret_cast<unsigned long>(pthread_self()); -#elif (defined(__linux) || defined(__sun) || defined(__hpux)) +#elif (defined(__linux) || defined(__sun) || defined(__hpux)) || defined(_AIX) // - // On Linux, Solaris and HP-UX, pthread_t is an integer + // On Linux, Solaris, HP-UX and AIX, pthread_t is an integer // return static_cast<unsigned long>(pthread_self()); #else diff --git a/cpp/src/IceStorm/Makefile b/cpp/src/IceStorm/Makefile index 71007a3f262..b0eb95f157d 100644 --- a/cpp/src/IceStorm/Makefile +++ b/cpp/src/IceStorm/Makefile @@ -19,8 +19,8 @@ SVCLIBNAME = $(call mklibname,IceStormService) ADMIN = $(top_srcdir)/bin/icestormadmin -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) \ - $(libdir)/$(SVCLIBFILENAME) $(libdir)/$(SVCSONAME) $(libdir)/$(SVCLIBNAME) \ +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) \ + $(call mklibtargets,$(libdir)/$(SVCLIBFILENAME),$(libdir)/$(SVCSONAME),$(libdir)/$(SVCLIBNAME)) \ $(ADMIN) OBJS = IceStorm.o @@ -117,16 +117,8 @@ clean:: -rm -f Scanner.cpp install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) - $(INSTALL_LIBRARY) $(libdir)/$(SVCLIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SVCSONAME) - ln -s $(SVCLIBFILENAME) $(install_libdir)/$(SVCSONAME) - rm -f $(install_libdir)/$(SVCLIBNAME) - ln -s $(SVCSONAME) $(install_libdir)/$(SVCLIBNAME) + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) + $(call installlib,$(install_libdir),$(libdir),$(SVCLIBFILENAME),$(SVCSONAME),$(SVCLIBNAME)) $(INSTALL_PROGRAM) $(ADMIN) $(install_bindir) include .depend diff --git a/cpp/src/IceUtil/Makefile b/cpp/src/IceUtil/Makefile index 37573945da2..e76a4269c20 100644 --- a/cpp/src/IceUtil/Makefile +++ b/cpp/src/IceUtil/Makefile @@ -13,7 +13,7 @@ LIBFILENAME = $(call mklibfilename,IceUtil,$(VERSION)) SONAME = $(call mksoname,IceUtil,$(SOVERSION)) LIBNAME = $(call mklibname,IceUtil) -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) OBJS = Exception.o \ Unicode.o \ @@ -64,11 +64,7 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME) ln -s $(SONAME) $@ install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) include .depend diff --git a/cpp/src/IceXML/Makefile b/cpp/src/IceXML/Makefile index af762460c96..8011e6d50d8 100644 --- a/cpp/src/IceXML/Makefile +++ b/cpp/src/IceXML/Makefile @@ -13,7 +13,7 @@ LIBFILENAME = $(call mklibfilename,IceXML,$(VERSION)) SONAME = $(call mksoname,IceXML,$(SOVERSION)) LIBNAME = $(call mklibname,IceXML) -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) OBJS = Parser.o @@ -38,12 +38,7 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME) ln -s $(SONAME) $@ install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) - + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) include .depend diff --git a/cpp/src/Slice/Makefile b/cpp/src/Slice/Makefile index 64824ed5c44..aa50a40a15a 100644 --- a/cpp/src/Slice/Makefile +++ b/cpp/src/Slice/Makefile @@ -13,8 +13,7 @@ LIBFILENAME = $(call mklibfilename,Slice,$(VERSION)) SONAME = $(call mksoname,Slice,$(SOVERSION)) LIBNAME = $(call mklibname,Slice) -TARGETS = $(libdir)/$(LIBFILENAME) $(libdir)/$(SONAME) $(libdir)/$(LIBNAME) - +TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) OBJS = Scanner.o \ Grammar.o \ @@ -52,11 +51,7 @@ clean:: rm -f Scanner.cpp install:: all - $(INSTALL_LIBRARY) $(libdir)/$(LIBFILENAME) $(install_libdir) - rm -f $(install_libdir)/$(SONAME) - ln -s $(LIBFILENAME) $(install_libdir)/$(SONAME) - rm -f $(install_libdir)/$(LIBNAME) - ln -s $(SONAME) $(install_libdir)/$(LIBNAME) + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) include .depend diff --git a/cpp/src/icecpp/config.h b/cpp/src/icecpp/config.h index 09d3a211cc9..f03b54b8ead 100644 --- a/cpp/src/icecpp/config.h +++ b/cpp/src/icecpp/config.h @@ -12,7 +12,7 @@ // configure script from the gcc-2.8.1 distribution. // -#if defined(__linux) || defined(__FreeBSD__) || defined(__sun) || defined(__hpux) || defined(__APPLE__) +#if defined(__linux) || defined(__FreeBSD__) || defined(__sun) || defined(__hpux) || defined(__APPLE__) || defined(_AIX) # define HAVE_INTTYPES_H 1 # define TIME_WITH_SYS_TIME 1 # define HAVE_BCMP 1 @@ -30,7 +30,7 @@ # define alloca _alloca #endif -#if defined(__hpux) +#if defined(__hpux) || defined(_AIX) #include <alloca.h> #endif @@ -57,7 +57,7 @@ #if defined(_WIN32) # define WCHAR_TYPE_SIZE 2 #elif (defined(__linux) || defined(__FreeBSD__)) && (defined(__i386) || defined(__x86_64) || defined(__sparc)) \ - || defined (__sun) || defined(__hpux) || defined(__APPLE__) + || defined (__sun) || defined(__hpux) || defined(__APPLE__) || defined(_AIX) # define WCHAR_TYPE_SIZE 4 #else # error "unsupported operating system or platform" diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index 15c409a0ffe..fbd80cdcb22 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -1915,7 +1915,16 @@ Slice::Gen::ObjectVisitor::visitClassDefStart(const ClassDefPtr& p) { ClassList allBases = p->allBases(); StringList ids; +#if defined(__IBMCPP__) && defined(NDEBUG) +// +// VisualAge C++ 6.0 does not see that ClassDef is a Contained, +// when inlining is on. The code below issues a warning: better +// than an error! +// + transform(allBases.begin(), allBases.end(), back_inserter(ids), ::IceUtil::constMemFun<string,ClassDef>(&Contained::scoped)); +#else transform(allBases.begin(), allBases.end(), back_inserter(ids), ::IceUtil::constMemFun(&Contained::scoped)); +#endif StringList other; other.push_back(p->scoped()); other.push_back("::Ice::Object"); @@ -2003,8 +2012,16 @@ Slice::Gen::ObjectVisitor::visitClassDefEnd(const ClassDefPtr& p) if(!allOps.empty()) { StringList allOpNames; +#if defined(__IBMCPP__) && defined(NDEBUG) +// +// See comment for transform above +// + transform(allOps.begin(), allOps.end(), back_inserter(allOpNames), + ::IceUtil::constMemFun<string,Operation>(&Contained::name)); +#else transform(allOps.begin(), allOps.end(), back_inserter(allOpNames), - ::IceUtil::constMemFun(&Contained::name)); + ::IceUtil::constMemFun(&Contained::name)); +#endif allOpNames.push_back("ice_id"); allOpNames.push_back("ice_ids"); allOpNames.push_back("ice_isA"); diff --git a/cpp/src/slice2cs/Gen.cpp b/cpp/src/slice2cs/Gen.cpp index 20f970ce8f0..520ecfb45fa 100755 --- a/cpp/src/slice2cs/Gen.cpp +++ b/cpp/src/slice2cs/Gen.cpp @@ -121,7 +121,18 @@ Slice::CsVisitor::writeDispatch(const ClassDefPtr& p) string scoped = p->scoped(); ClassList allBases = p->allBases(); StringList ids; + +#if defined(__IBMCPP__) && defined(NDEBUG) + // + // VisualAge C++ 6.0 does not see that ClassDef is a Contained, + // when inlining is on. The code below issues a warning: better + // than an error! + // + transform(allBases.begin(), allBases.end(), back_inserter(ids), ::IceUtil::constMemFun<string,ClassDef>(&Contained::scoped)); +#else transform(allBases.begin(), allBases.end(), back_inserter(ids), ::IceUtil::constMemFun(&Contained::scoped)); +#endif + StringList other; other.push_back(p->scoped()); other.push_back("::Ice::Object"); @@ -418,7 +429,14 @@ Slice::CsVisitor::writeDispatch(const ClassDefPtr& p) if(!allOps.empty()) { StringList allOpNames; +#if defined(__IBMCPP__) && defined(NDEBUG) + // + // See comment for transform above + // + transform(allOps.begin(), allOps.end(), back_inserter(allOpNames), ::IceUtil::constMemFun<string,Operation>(&Contained::name)); +#else transform(allOps.begin(), allOps.end(), back_inserter(allOpNames), ::IceUtil::constMemFun(&Contained::name)); +#endif allOpNames.push_back("ice_id"); allOpNames.push_back("ice_ids"); allOpNames.push_back("ice_isA"); diff --git a/cpp/test/Ice/gc/Client.cpp b/cpp/test/Ice/gc/Client.cpp index 339298496c0..6e03a5920d7 100644 --- a/cpp/test/Ice/gc/Client.cpp +++ b/cpp/test/Ice/gc/Client.cpp @@ -470,6 +470,10 @@ MyApplication::run(int argc, char* argv[]) Ice::collectGarbage(); test(num == 0); cout << "ok" << endl; + +#if defined(_AIX) + cout << "The following test may take a long time (like one full minute); please be patient." << endl; +#endif cout << "testing for race conditions... " << flush; ::IceUtil::Time t = ::IceUtil::Time::now(); diff --git a/cpp/test/IcePack/deployer/Makefile b/cpp/test/IcePack/deployer/Makefile index 61f5b97e486..71578564a1b 100644 --- a/cpp/test/IcePack/deployer/Makefile +++ b/cpp/test/IcePack/deployer/Makefile @@ -12,12 +12,10 @@ top_srcdir = ../../.. CLIENT = client SERVER = server -SVCFILENAME = $(call mklibfilename,TestService,$(VERSION)) -SVCSONAME = $(call mksoname,TestService,$(SOVERSION)) -SVCLIBNAME = $(call mklibname,TestService) +SVCFILENAME = $(call mklibfilename,TestService) +SVCSONAME = $(call mksoname,TestService) -TARGETS = $(CLIENT) $(SERVER) \ - $(SVCFILENAME) $(SVCSONAME) $(SVCLIBNAME) +TARGETS = $(CLIENT) $(SERVER) $(SVCFILENAME) OBJS = Test.o @@ -54,14 +52,6 @@ $(SVCFILENAME): $(OBJS) $(SERVICE_OBJS) rm -f $@ $(call mkshlib,$@,$(SVCSONAME),$(OBJS) $(SERVICE_OBJS),$(LINKWITH)) -$(SVCSONAME): $(SVCFILENAME) - rm -f $@ - ln -s $(SVCFILENAME) $@ - -$(SVCLIBNAME): $(SVCSONAME) - rm -f $@ - ln -s $(SVCSONAME) $@ - clean:: rm -f db/node/db/servers db/node/db/serveradapters db/node/db/log.* rm -f db/registry/* diff --git a/cpp/test/IcePack/deployer/run.py b/cpp/test/IcePack/deployer/run.py index 45a41cc2c07..c8bed4755d1 100755 --- a/cpp/test/IcePack/deployer/run.py +++ b/cpp/test/IcePack/deployer/run.py @@ -26,6 +26,8 @@ testdir = os.path.join(toplevel, "test", name) if TestUtil.isWin32(): os.environ["PATH"] = testdir + ";" + os.getenv("PATH", "") +elif TestUtil.isAIX(): + os.environ["LIBPATH"] = testdir + ":" + os.getenv("LIBPATH", "") else: os.environ["LD_LIBRARY_PATH"] = testdir + ":" + os.getenv("LD_LIBRARY_PATH", "") os.environ["LD_LIBRARY_PATH_64"] = testdir + ":" + os.getenv("LD_LIBRARY_PATH_64", "") |