Re: static linking libssl and libcrypto

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Then it means you properly compiled SSL in static.

Regarding my first point, what I mean is that : if you statically link your libApp.so with ssl library, it will no need any dynamic library dependencies, which is probably what you want. But your libApp.so will be loaded by a program. If this program also uses SSL (direct access, not through your libApp.so library), and performs a dynamic link, you will still need the ssl.so to run your application, even if your dll is statically linked with it.

Regards,
Brice


Le mar. 5 nov. 2019 à 18:24, Aijaz Baig <aijazbaig1@xxxxxxxxx> a écrit :
ldd libAPP.so does NOT have any reference to libSSL.so or for that matter any SSL library. Which is why I had to use nm to check for SSL related symbols

On Mon, Nov 4, 2019 at 6:31 PM Floodeenjr, Thomas <thomas_floodeenjr@xxxxxxxxxx> wrote:

To check if you are linked statically or dynamically, what does ldd tell you? (ldd libAPP.so) Your library should not have a dependency on libssl.so or libcrypto.so if you are linked statically.

 

-Tom

 

From: openssl-users [mailto:openssl-users-bounces@xxxxxxxxxxx] On Behalf Of Aijaz Baig
Sent: Sunday, November 3, 2019 11:30 PM
To: openssl-users@xxxxxxxxxxx
Subject: static linking libssl and libcrypto

 

I am trying to build a shared library that internally links openssl and crypto libraries statically so I can use it in a production environment. To that end I am using the following Makefile

APPBASE=/home/AB/Documents/APP/APP_2.17.0
OPENSSL1.0.2p_INSTALL_LOC=/home/AB/Documents/APP/OpenSSL-1.0.2p-installation
CC=gcc
CFLAGS= -Wall -g -O -fPIC
RM= rm -f
.PHONY: all clean
 
src="" *Generic/*.c *Linux/*.c)
$(info source=$(src))
 
#we use the custom compiled openssl version
#and NOT the one available on the system
#INC=-I/usr/include/openssl
INC+=-I$(OPENSSL1.0.2p_INSTALL_LOC)/include/openssl
INC+=$(foreach d,$(incdir),-I$d)
$(info includes=$(INC))
 
LIB=-L$(OPENSSL1.0.2p_INSTALL_LOC)/lib
#LIB=-llibssl -llibcrypto
LIB+=-lssl -lcrypto
$(info links=$(LIB))
#LIB+=-L/usr/lib/
 
obj=$(src:.c=.o)
all: libAPP.so
clean:
    $(RM) *.o *.so
    $(shell find $(APPBASE) -type f -iname "*.o" -exec rm -rf {} \;)
 
.c.o:
    ${CC} -static ${CFLAGS} $(INC) -c $< $(LIB) -o $@
 
libAPP.so: $(obj)
    $(LINK.c) -shared $^ -o $@

-lcrypto -lz -ldl -static-libgcc

 

but it doesn't seem to change the size of the generated so file. On checking for references to SSL in this so file, I see there are a total of 87 entries

 

nm libAPP.so | grep -i "ssl" | wc -l

87

 

whereas listing only the global symbols from libssl.a tells me it has 1113 globally defined symbols.

nm -g ../OpenSSL-1.0.2p-installation/lib/libssl.a | grep -i "ssl" | wc -l

1113

 

I do not know if libSSL got indeed linked statically or not. Could someone please shed some light on it?

 

--


Best Regards,

Aijaz Baig



--

Best Regards,
Aijaz Baig

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux