title: forcing linking with a different SONAME than this of library
body: <p>How to link a binary in a manner to be compatible with two existing version of a library that have conflicting SONAME ?
  Those two versions don't share same SONAME prefix. One is libcapi10.so.3 and the other is libcapi10.so.4.
  I can't recompile them since i get them as binary, and since those are certified crypto libraries i can't request new one with right SONAME. Of course i would not have faced any problem if one was libcap10.so.3 and the other libcap10.so.3.1 since i would just need to link over the first to be compatible with the second.
  Those two libraries are told to be binary compatible ( i should trust this info ).
  I searched but didn't find any good way to do , either with linker options or using objcopy. I would like to avoid patching binary by hand to use it at compilation linking time.</p>
  
  <p>So back to my initial question : How to specify SONAME to be ( in this case libcap10.so )  used for link ?</p>
  
  <p>( I already searched, and my current findings are just that it is a no go, but unfortunately this is a requirement ... ).</p>
  
  <p>Update:
  i patched .so library using a binary sed-like tool replacing libcapi10.so.6\0 with libcapi10.so\0, what works since new name is shorter than previous and that elf structure for SONAME is a C-string ended with a 0 and that elf checksum is not used during gcc linking. i used that patched library only at compilation time, then i can use either one or the other original library on my target system with the same binary.</p>