msys2 / MSYS2-packages

Package scripts for MSYS2.
https://packages.msys2.org
BSD 3-Clause "New" or "Revised" License
1.28k stars 483 forks source link

missing support for libtool '-no-install' flag #1351

Open sav-ix opened 6 years ago

sav-ix commented 6 years ago

Hello everyone,

For Projects with Autotools-based build system (i.e. GMP, as a sample), builds using mingw-w64 with shared layout throw warnings:

./configure --enable-shared --disable-static && make -j$NUMBER_OF_PROCESSORS && make -j$NUMBER_OF_PROCESSORS check

<snip>

libtool: warning: '-no-install' is ignored for haswell-pc-mingw64
libtool: warning: assuming '-no-fast-install' instead

which are a result of related libtool commit.

If in file ltmain.sh change:

*-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)

to

*-*-cygwin* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)

warnings not reproduce, build system stop to build .exe wrappers for related executables, but they unable to find required .dll binaries during run:

sh-4.4$ make check
make  check-recursive
make[1]: Entering directory '/c/libGMP-6.1.99-dev/build'
Making check in tests
make[2]: Entering directory '/c/libGMP-6.1.99-dev/build/tests'
Making check in .
make[3]: Entering directory '/c/libGMP-6.1.99-dev/build/tests'
make  t-bswap.exe t-constants.exe t-count_zeros.exe t-hightomask.exe t-modlinv.exe t-popc.exe t-parity.exe t-sub.exe libtests.la

<snip>

make[5]: Entering directory '/c/libGMP-6.1.99-dev/build/tests'
FAIL: t-bswap.exe
FAIL: t-constants.exe
FAIL: t-count_zeros.exe
PASS: t-hightomask.exe
FAIL: t-modlinv.exe
FAIL: t-popc.exe
FAIL: t-parity.exe
FAIL: t-sub.exe
============================================================================
Testsuite summary for GNU MP 6.1.99
============================================================================
# TOTAL: 8
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  7
# XPASS: 0
# ERROR: 0
============================================================================
See tests/test-suite.log
Please report to gmp-bugs@gmplib.org, see https://gmplib.org/manual/Reporting-Bugs.html
============================================================================
make[5]: *** [Makefile:931: test-suite.log] Error 1

Environment:

Is it possible to make MSYS2 to emulate missing Unix functionality, so executables, built with -no-install flag would be able to find required .dll binaries?

Best,

Alexander

Alexpux commented 6 years ago

@sav-ix you can try research this.

sav-ix commented 6 years ago

A possible research from MSYS2 Users side already provided. The remaining part refers to MSYS2 itself and unlikely can be fixed (or rather implemented) by anyone except MSYS2 Developers. Taking into account a date of related libtool commit (1999), it was embedded in its architecture from the beginning, when it was a part of Cygwin.

Alexpux commented 6 years ago

@sav-ix this warning is not principal and I dont have time and wish to do here anything. If it not done in Cygwin for this years then probably it not easy to do

earnie commented 5 years ago

The only possible fix is to remove the annoying warning from ltmain.in. I ended up here because I was so annoyed I wanted to know how to fix it.

sav-ix commented 5 years ago

Unfortunately this can not be considered as a fix, or even workaround, since in such case executables unable to find required .dll binaries and test suite run fails (see Description).

earnie commented 5 years ago

Unfortunately this can not be considered as a fix, or even workaround, since in such case executables unable to find required .dll binaries and test suite run fails (see Description).

Removing the echoed warning in the filtered path doesn't prevent the -no-fast-install option from being used. It just removes the annoyance that makes it appear to be wrong.

Of course someone would argue that -no-install option shouldn't be used for MSYS and others that can't support it but then that just convolutes the issue to a broader scale when the problem is already fixed with the test in ltmain.in.