Re: shared libraries vs test cases

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

 



On 27/02/2019 17:04, Michael Richardson wrote:
Running LDD on the binaries in test/* shows that they appear to link against
the "system" copies of libssl and libcrypto.

Perhaps something I'm missing is setting up LD_PRELOAD or some such so that
the tests run the local copy of libssl/libcrypto, but I can't find that.
Am I missing something?

This is, I think, making it very difficult for me to bisect a problem.

It seems to me that the test cases ought to be statically linked to make
it easiest to know what code they are running.  (This also makes it slightly
easier to use gdb on them)

In builds that produce shared libraries, those shared libraries
(and not a similar-but-different static library) is what needs to
be tested.

That said, it would be beneficial if the build system set the
appropriate linker flags to make the test programs (but not the
user programs such as PREFIX/bin/openssl{.exe,}) link to the
shared library in the build tree whenever the target allows
this.

Some examples:

- Windows(all versions): This is already the system default
 if the shared libraries are copied into the test program
 directory, even in Windows versions that don't search the
 current directory at invocation (which is often different
 from the program directory). However some very old Windows
 versions will only search the launch-time current dir.

- For many other targets, the -rpath option will do this
 for local runs of the tests, while for cross-compiled
 tests (for testing on hardware without local compilation),
 a more careful -rpath value is needed to reference the
 test dir on the target, not the host.

As a further improvement, where possible, the inter-library
references and the reference from the user programs compiled
from the OpenSSL source should somehow tie themselves to the
exact shared library versions used, e.g. by linking to
versioned .so file names (such as libssl.so.3.0.2), however
this does not protect recompiling and/or debugging with an
unchanged .so name.

Enjoy

Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded




[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