I discovered that gcc will create a crypto++ shared library on this
Solaris box only when I link and compile at the same time.
If I change the commands -

> g++ -O3 -DNDEBUG -pipe -DCRYPTOPP_EXPORTS -c *.cpp -o *.export.o
>
> (I filtered out dll.cpp)
>
> The .so file is being linked as
> g++ -shared -o libcryptopp.so -O3 -DNDEBUG -pipe algebra.export.o
> algparam.export.o asn.export.o basecode.export.o cbcmac.export.o
> channels.export.o cryptlib.export.o des.export.o dessp.export.o
> dh.export.o dsa.export.o ec2n.export.o eccrypto.export.o ecp.export.o
> emsa2.export.o eprecomp.export.o files.export.o filters.export.o
> fips140.export.o fipstest.export.o gf2n.export.o gfpcrypt.export.o
> hex.export.o hmac.export.o integer.export.o iterhash.export.o
> misc.export.o modes.export.o modexppc.export.o mqueue.export.o
> nbtheory.export.o oaep.export.o osrng.export.o pch.export.o
> pkcspad.export.o pssr.export.o pubkey.export.o queue.export.o
> randpool.export.o rdtables.export.o rijndael.export.o rng.export.o
> rsa.export.o sha.export.o simple.export.o skipjack.export.o
> strciphr.export.o trdlocal.export.o  -lnsl -lsocket

to

g++ -shared -fPIC -o libcryptopp.so -O3 -DNDEBUG -pipe algebra.cpp
algparam.cpp asn.cpp basecode.cpp cbcmac.cpp channels.cpp cryptlib.cpp
des.cpp dessp.cpp dh.cpp dsa.cpp ec2n.cpp eccrypto.cpp ecp.cpp
emsa2.cpp eprecomp.cpp files.cpp filters.cpp fips140.cpp fipstest.cpp
gf2n.cpp gfpcrypt.cpp hex.cpp hmac.cpp integer.cpp iterhash.cpp
misc.cpp modes.cpp modexppc.cpp mqueue.cpp nbtheory.cpp oaep.cpp
osrng.cpp pch.cpp pkcspad.cpp pssr.cpp pubkey.cpp queue.cpp
randpool.cpp rdtables.cpp rijndael.cpp rng.cpp rsa.cpp sha.cpp
simple.cpp skipjack.cpp strciphr.cpp trdlocal.cpp -lnsl -lsocket

it compiles and links with out errors!

The relative changes to the make file are:

Left file: GNUmakefile (v5.4 20061222)
Right file: My GNUmakefile
8,9c8
< # CXXFLAGS = -O3 -DNDEBUG -ffunction-sections -fdata-sections
< # LDFLAGS += -Wl,--gc-sections
---
> CXXFLAGS = -O3 -DNDEBUG
17a18,21
> ifneq ($(UNAME),SunOS)
> LDFLAGS += -Wl,--gc-sections
> CXXFLAGS += -ffunction-sections -fdata-sections
> endif
95c99
<       $(RM) cryptest.exe libcryptopp.a $(LIBOBJS) $(TESTOBJS)
cryptopp.dll libcryptopp.dll.a libcryptopp.import.a
cryptest.import.exe dlltest.exe $(DLLOBJS) $(LIBIMPORTOBJS) $
(TESTIMPORTOBJS) $(DLLTESTOBJS)
---
>       $(RM) cryptest.exe libcryptopp.a $(LIBOBJS) $(TESTOBJS) libcryptopp.so 
> cryptopp.dll libcryptopp.dll.a libcryptopp.import.a cryptest.import.exe 
> dlltest.exe $(DLLOBJS) $(LIBIMPORTOBJS) $(TESTIMPORTOBJS) $(DLLTESTOBJS)
116a122,123
> libcryptopp.so:
>       $(CXX) -shared -fPIC -o $@ -O3 $(DLLSRCS) $(LDLIBS)

(Remember to update the LD_LIBRARY_PATH environment variable with your
libcryptopp.so file location before running an application that was
linked against your libcryptopp.so file.)

Chris.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [EMAIL PROTECTED]
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---

Reply via email to