GNU bug report logs -
#26484
feature request: add ICC support on Windows
Previous Next
Reported by: sav_ix <at> ukr.net
Date: Thu, 13 Apr 2017 15:33:01 UTC
Severity: wishlist
Fixed in version 2.4.6.41-99bd0
Done: Pavel Raiskup <praiskup <at> redhat.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 26484 in the body.
You can then email your comments to 26484 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-libtool <at> gnu.org
:
bug#26484
; Package
libtool
.
(Thu, 13 Apr 2017 15:33:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
sav_ix <at> ukr.net
:
New bug report received and forwarded. Copy sent to
bug-libtool <at> gnu.org
.
(Thu, 13 Apr 2017 15:33:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello,
Currently ICC, like MSVC, offer free versions for Open Source development on Windows (https://software.intel.com/en-us/qualify-for-free-software/opensourcecontributor ). Thus a lot of Open Source tools, which use autotools build system (GMP/MPIR, MPFR, libiconv, etc.), could be built using free Intel Compiler, which offer a better performance (https://software.intel.com/en-us/c-compilers/ipsxe ).
Currently autotools doesn't provide ICC support "out of the box". But, fortunately , it provide such support for MSVC. And since ICC on Win dows tries to emulate MSVC (by using same compiler keys, MSVC linker, etc.), it's pretty easy to adopt MSVC toolchain from 'configure' script for this purpose.
E.g., in order to add ICC support for libiconv-1.15 ( https://ftp.gnu.org/gnu/libiconv/libiconv-1.15.tar.gz ) build system, a very simple patch required (see attachment).
But since content of 'configure' script relate to file 'libtool.m4', it would be more convenient, if libtool provide ICC support "out of the box" .
Is it possible to add ICC support to the future libtool releases ?
Alexander
[Message part 2 (text/html, inline)]
[libiconv_i.diff (application/octet-stream, attachment)]
Information forwarded
to
bug-libtool <at> gnu.org
:
bug#26484
; Package
libtool
.
(Fri, 14 Apr 2017 12:49:02 GMT)
Full text and
rfc822 format available.
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
On 4/13/2017 11:01 AM, sav_ix <at> ukr.net wrote:
> Hello,
>
> Currently ICC, like MSVC, offer free versions for Open Source
> development on Windows
> (https://software.intel.com/en-us/qualify-for-free-software/opensourcecontributor
> ). Thus a lot of Open Source tools, which use autotools build system
> (GMP/MPIR, MPFR, libiconv, etc.), could be built using free Intel
> Compiler, which offer a better performance
> (https://software.intel.com/en-us/c-compilers/ipsxe ).
>
> Currently autotools doesn't provide ICC support "out of the box". But,
> fortunately , it provide such support for MSVC. And since ICC on Windows
> tries to emulate MSVC (by using same compiler keys, MSVC linker, etc.),
> it's pretty easy to adopt MSVC toolchain from 'configure' script for
> this purpose.
>
> E.g., in order to add ICC support for libiconv-1.15
> (https://ftp.gnu.org/gnu/libiconv/libiconv-1.15.tar.gz ) build system, a
> very simple patch required (see attachment).
>
> But since content of 'configure' script relate to file 'libtool.m4', it
> would be more convenient, if libtool provide ICC support "out of the box".
>
> Is it possible to add ICC support to the future libtool releases?
Instead of obliterating cl by replacing it with icl why don't you patch
it so that it could be either one?
--
Earnie
Information forwarded
to
bug-libtool <at> gnu.org
:
bug#26484
; Package
libtool
.
(Tue, 18 Apr 2017 15:31:03 GMT)
Full text and
rfc822 format available.
Message #11 received at 26484 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
The essential ICC feature, that it tries to be GCC on *unix and MSVC on Windows. E.g. on Windows it has almost the same compiler keys, use MSVC Linker and Librarian, Windows SDK headers, etc. For this purpose ICC uses ' VS20xx x64 Native Tools Command Prompt ' to prepare environment. And thus both ICC (icl.exe) and MSVC (cl.exe) compilers are available in PATH variable during ICC run.
I didn't find any other way to make libtool use ICC, except to adopt MSVC toolchain for ICC . But I have no idea how to make them both to use the same toolchain. Perhaps, the solution could be replace all entries of 'cl.exe' with ${CC} and ${CXX} and set its default values to 'cl.exe'. But still an opened question how to make ICC use '*.cl*)' toolchain. Would be appreciated for any hints.
And even if it can be solved, it's still not much could be done without libtool Developers. I s there a chance, that someone will be engaged in this feature request?
Alexander
[Message part 2 (text/html, inline)]
Information forwarded
to
bug-libtool <at> gnu.org
:
bug#26484
; Package
libtool
.
(Thu, 20 Apr 2017 15:35:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 26484 <at> debbugs.gnu.org (full text, mbox):
On 04/18/2017 10:14 AM, sav_ix <at> ukr.net wrote:
> The essential ICC feature, that it tries to be GCC on *unix and MSVC on Windows.
> E.g. on Windows it has almost the same compiler keys, use MSVC Linker and Librarian, Windows SDK headers, etc.
> For this purpose ICC uses 'VS20xx x64 Native Tools Command Prompt' to prepare environment.
> And thus both ICC (icl.exe) and MSVC (cl.exe) compilers are available in PATH variable during ICC run.
I'm on a similar issue: There's a wrapper around the MSVC toolchain,
which was originally running on Interix and now runs on Cygwin too,
that does provide a GCC-like commandline interface while running
cl.exe/link.exe/etc. behind the scenes, without the need to set up
any additional MSVC-based environment variables for the POSIX shell.
Beyond that, it does add support for embedded runpath, LD_PRELOAD
and LD_LIBRARY_PATH by statically linking some kind of runtime loader
to each binary (dll or exe): https://github.com/haubi/parity
Independend of parity: In Interix /usr/bin/, cc and c89 actually are
Korn shell scripts, which do provide the basic *nix-like commandline
interface, also calling cl.exe & Co behind the scenes, but without
extended features like parity.
> I didn't find any other way to make libtool use ICC, except to adopt MSVC toolchain for ICC.
> But I have no idea how to make them both to use the same toolchain.
> Perhaps, the solution could be replace all entries of 'cl.exe' with ${CC} and ${CXX} and set its default values to 'cl.exe'.
> But still an opened question how to make ICC use '*.cl*)' toolchain.
> Would be appreciated for any hints.
So rather than testing for the compiler executable file name, I'd prefer
to test for compiler features and behaviour instead.
> And even if it can be solved, it's still not much could be done without libtool Developers.
> Is there a chance, that someone will be engaged in this feature request?
Although not a libtool developer, I'm about to do the development and
file patches afterwards, but won't promise any due date.
But for ICC, I fail to find the Windows version for Open Source Contributors:
Which one do you refer to here?
/haubi/
Information forwarded
to
bug-libtool <at> gnu.org
:
bug#26484
; Package
libtool
.
(Thu, 20 Apr 2017 15:35:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 26484 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
--- Исходное сообщение ---
От кого: "Michael Haubenwallner" <michael.haubenwallner <at> ssi-schaefer.com>
Дата: 20 апреля 2017, 14:07:30
I'm on a similar issue...
BTW, did you seen ICU4C (http://site.icu-project.org/download) build system? It also "provide a GCC-like commandline interface while running cl.exe/link.exe/etc. behind the scenes ". It's somewhat similar to autotools-generated ones, but instead of using 'libtool' it provide compiler toolchains as a separate files. Such a modular structure makes it much easier to add support of new compilers. Could be that you find some useful ideas there.
So rather than testing for the compiler executable file name, I'd prefer
to test for compiler features and behaviour instead.
Not the simplest approach and, perhaps, hard to maintain. Many build systems, e.g. Boost ( bjam ), MESA (SCons), OpenSSL, Qt (qmake), etc., just imply, that the User knows what compiler he has and what toolchain to select. And if User made a mistake, he would get an error during build.
Although not a libtool developer, I'm about to do the development and
file patches afterwards, but won't promise any due date.
With interest would acquaint with the results . ICC offers some advantages, compared to other compilers (https://software.intel.com/en-us/c-compilers/ipsxe ), thus it d efinitely deserves support from modern build systems .
But for ICC, I fail to find the Windows version for Open Source Contributors:
Which one do you refer to here?
There are details regarding this question. Officially Intel do not claim, that they provide free ICC version on Windows for Open Source Development. Currently they offer free ICC on Windows license for Educators and Students (https://software.intel.com/en-us/qualify-for-free-software ). But it is for the time being and could change in future (https://software.intel.com/en-us/forums/intel-c-compiler/topic/639321).
In addition they offer a free 30-days Trial (https://software.intel.com/en-us/intel-parallel-studio-xe ). But in case you're interested to get a free ICC on Windows license for Open Source Development, I can share contact of Intel representative, who could help with this.
Alexander
[Message part 2 (text/html, inline)]
Information forwarded
to
bug-libtool <at> gnu.org
:
bug#26484
; Package
libtool
.
(Sun, 21 Jan 2018 17:27:01 GMT)
Full text and
rfc822 format available.
Message #20 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello,
After Windows ICC support was added to 'compile' script, similar could be done to 'libtool.m4'.
Related patch added in attachment. It was tested for GMP builds using Windows ICC with <shared|static> layouts, and all builds tasks finished successfully. Additionally ensured, that it doesn't break builds using MSVC.
CC: Peter Rosin, as Author of commit (http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=1ac3ced59db72099c6049e05b3643042fd5a9ea4),
CC: Jonathan L Peyton, as Author of commit (http://git.savannah.gnu.org/cgit/automake.git/commit/?id=c40e27e1c2a60f58e72e65d73d808f782d55494a),
in case they'll be interested to make review aor join this discussion.
Best,
Alexander
[Message part 2 (text/html, inline)]
[libtool_icc.diff (application/octet-stream, attachment)]
Information forwarded
to
bug-libtool <at> gnu.org
:
bug#26484
; Package
libtool
.
(Thu, 12 Jul 2018 09:55:02 GMT)
Full text and
rfc822 format available.
Message #23 received at submit <at> debbugs.gnu.org (full text, mbox):
close 26484 2.4.6.41-99bd0
thanks
On Sunday, January 21, 2018 6:20:43 PM CEST sav_ix <at> ukr.net wrote:
> After Windows ICC support was added to 'compile' script, similar could be done
> to 'libtool.m4'.
>
> Related patch added in attachment. It was tested for GMP builds using Windows
> ICC with <shared|static> layouts, and all builds tasks finished successfully.
> Additionally ensured, that it doesn't break builds using MSVC.
Thanks, applied here:
http://git.savannah.gnu.org/cgit/libtool.git/commit/?h=HEAD&id=99bd0948e20ca796c0d38dee606965b86ce0832a
Any review is welcome, especially if you are able to test the patch properly.
Pavel
Information forwarded
to
bug-libtool <at> gnu.org
:
bug#26484
; Package
libtool
.
(Thu, 12 Jul 2018 09:55:02 GMT)
Full text and
rfc822 format available.
bug marked as fixed in version 2.4.6.41-99bd0, send any further explanations to
26484 <at> debbugs.gnu.org and sav_ix <at> ukr.net
Request was from
Pavel Raiskup <praiskup <at> redhat.com>
to
control <at> debbugs.gnu.org
.
(Thu, 12 Jul 2018 09:57:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 09 Aug 2018 11:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 7 years and 34 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.