openssl-1.0.2e local build incorrectly links libssl.so against *system*, not local, libcrypto.so

PGNet Dev pgnet.dev at gmail.com
Sun Dec 6 18:21:00 UTC 2015


Building openssl-1.0.2e from src

	wget http://www.openssl.org/source/openssl-1.0.2e.tar.gz
	tar zxvf openssl-1.0.2e.tar.gz
	cd openssl-1.0.2e

on

	lsb_release -rd
		Description:    openSUSE Leap 42.1 (x86_64)
		Release:        42.1
	gcc --version
		gcc (SUSE Linux) 5.2.1 20151130 [gcc-5-branch revision 231058]
		Copyright (C) 2015 Free Software Foundation, Inc.

	./config ...
	make -j4
	make install

completes without build-time error

	ls -al \
	 /usr/local/ssl/bin/openssl \
	 /usr/local/ssl/lib64/libssl*

		-rwxr-xr-x+ 1 root root 617K Dec  6 10:10 /usr/local/ssl/bin/openssl*
		-rw-r--r--+ 1 root root 719K Dec  6 10:10 /usr/local/ssl/lib64/libssl.a
		lrwxrwxrwx  1 root root   15 Dec  6 10:10 
/usr/local/ssl/lib64/libssl.so -> libssl.so.1.0.0*
		-r-xr-xr-x+ 1 root root 486K Dec  6 10:10 
/usr/local/ssl/lib64/libssl.so.1.0.0*

Checking linking for the bin

	ldd /usr/local/ssl/bin/openssl | egrep "ssl|crypto"
	        libssl.so.1.0.0 => /usr/local/ssl/lib64/libssl.so.1.0.0 
(0x00007fd161a34000)
	        libcrypto.so.1.0.0 => /usr/local/ssl/lib64/libcrypto.so.1.0.0 
(0x00007fd1615ed000)

, it's correctly linked to the just-built libs.

But the libssl is INCORRECTLY linked to the *system* librypto, NOT the 
just-built instance,

	ldd /usr/local/ssl/lib64/lib{ssl,crypto}.so.1.0.0 | egrep "ssl|crypto"
		libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007ff3ebeb5000)

Can be remedied AFTER the incorrect build

	ldd /usr/local/ssl/lib64/libssl.so.1.0.0 | egrep "ssl|crypto"
		libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007f55e46c0000)
	readelf --dynamic /usr/local/ssl/lib64/libssl.so.1.0.0 | egrep -i 
"rpath|runpath"
		(empty)


	patchelf --set-rpath "/usr/local/ssl/lib64" --force-rpath 
/usr/local/ssl/lib64/libssl.so.1.0.0
	readelf --dynamic /usr/local/ssl/lib64/libssl.so.1.0.0 | egrep -i 
"rpath|runpath"
		0x000000000000000f (RPATH)              Library rpath: 
[/usr/local/ssl/lib64]

	ldd /usr/local/ssl/lib64/libssl.so | egrep "ssl|crypto"
		libcrypto.so.1.0.0 => /usr/local/ssl/lib64/libcrypto.so.1.0.0 
(0x00007f476b4fc000)



More information about the openssl-bugs-mod mailing list