[ruby-core:79992] [Ruby trunk Misc#13296] building ruby for windows always puts the version number into the ruby library, resulting in redundancy when using --with-soname

From: ntzrmtthihu777@...
Date: 2017-03-10 04:04:33 UTC
List: ruby-core #79992
Issue #13296 has been updated by Marty Plummer.


Shyouhei Urabe wrote:
> Isn't this something normal? I don't have MinGW so platform-specific situation is not clear to me but, at least GNU libtool generates similar Makefiles so I think there are lots of other libraries who install like us.
> 
> https://www.gnu.org/software/libtool/manual/html_node/Release-numbers.html
In the above example you still can't install multiple version of the same library for linux due to the libbfd.so symlink.


Nobuyoshi Nakada wrote:
> Marty Plummer wrote:
> > It is not. Its a windows stupidity issue, which has to be worked around. Simply drop the version from the library name and packagers/builders can decide for themselves what is best to be done with it.
> 
> It's necessary to avoid conflict across versions.
> You mean ALL packagers/builders MUST ALWAYS specify it?

No. Only distros that package multiple versions of ruby (rare [especially for mingw, which is rarer]) at the same time will be affected, and they already ALWAYS specify it in order to prevent library and executable conflicts
(if you don't set --with-soname you will always end up with 'libruby.so' regardless of the full version of the library, so --with-soname is required to prevent this conflict)

----------------------------------------
Misc #13296: building ruby for windows always puts the version number into the ruby library, resulting in redundancy when using --with-soname
https://bugs.ruby-lang.org/issues/13296#change-63413

* Author: Marty Plummer
* Status: Rejected
* Priority: Normal
* Assignee: 
----------------------------------------
Under gentoo the dev-lang/ruby-2.4.0.ebuild explicitly sets --program-suffix
and --with-soname in order to facilitate multiple ruby version installations
at the same time.

Using crossdev for the x86_64-w64-mingw32 target, ruby's build system will
set the final ruby libraries name to something like x64-msvcrt-${soname}${ver}
which results in a final name of libx64-msvcrt-ruby24240.dll.a and so on.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next