bug#30127: Re[2]: bug#30127: ICC: 'entry point must be defined' error for shared builds on Windows

2022-02-08 Thread Mike Frysinger
closing this issue out.  the original report has been settled, we've merged
support for ignoring -nologo, but the -xilib suggestion looks like it needs
more work.  feel free to post a patch to automake-patc...@gnu.org if you have
something you think we can merge.
-mike


signature.asc
Description: PGP signature


bug#30127: Re[2]: bug#30127: ICC: 'entry point must be defined' error for shared builds on Windows

2018-01-23 Thread Peyton, Jonathan L
I think the –xilib option is invalid when using:
$ xilink –xilib …
This just gives me an “unrecognized option '/xilib'; ignored” warning, but if I 
use
$ xilink –lib …
Then it calls xilib similar to how 
$ link.exe –lib …
calls lib.exe

Or in short:
$ xilink.exe –lib = xilib.exe
$ link.exe –lib = lib.exe

I don't think it would hurt if -xilib is converted to -lib, but that is what 
needs to happen if the option is accepted.

-nologo looks good to me.

-- Jonathan Peyton


bug#30127: Re[2]: bug#30127: ICC: 'entry point must be defined' error for shared builds on Windows

2018-01-23 Thread Mathieu Lirzin
sav...@ukr.net writes:

> In case you're interested, there is a patch to 'lib/ar-lib', which I use for 
> libiconv builds using Windows ICC:
> ===
> diff --git a/build-aux/ar-lib b/build-aux/ar-lib
> index 463b9ec..3cfddbc 100644
> --- a/build-aux/ar-lib
> +++ b/build-aux/ar-lib
> @@ -127,8 +127,10 @@ do
> fi
> case $1 in
> -lib | -LIB \
> + | -xilib | -XILIB \
> | -ltcg | -LTCG \
> | -machine* | -MACHINE* \
> + | -nologo | -NOLOGO \
> | -subsystem* | -SUBSYSTEM* \
> | -verbose | -VERBOSE \
> | -wx* | -WX* )
> ===
> since ICC linker 'xilink' and librarian 'xilib' are just a wrappers to MSVC 
> 'link' and librarian 'lib' respectively, and ' -nologo ' use reduces noise in 
> stderr.
>
> CC: Jonathan L Peyton,
> as Author of patch for 'compile', mentioned above. In case he'll be 
> interested to make a review aor join this discussion.
>
> Odd, that current 'ar-lib' implementation covers only a part of MSVC 'lib' 
> flags:
> ===
> c:\>lib /?
> Microsoft (R) Library Manager Version 14.12.25830.2
> Copyright (C) Microsoft Corporation. All rights reserved.
>
> usage: LIB [options] [files]
>
> options:
>
> /DEF[:filename]
> /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND}
> /EXPORT:symbol
> /EXTRACT:membername
> /INCLUDE:symbol
> /LIBPATH:dir
> /LIST[:filename]
> /LTCG
> /MACHINE:{ARM|ARM64|EBC|X64|X86}
> /NAME:filename
> /NODEFAULTLIB[:library]
> /NOLOGO
> /OUT:filename
> /REMOVE:membername
> /SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION|
> EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|
> NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]]
> /VERBOSE
> /WX[:NO]
> ===
>
> Wondering, what was a reason for this.

I am definitely not competent for reviewing Windows related stuff.  So
that would be great if Jonathan or anyone with more experience with
‘ar-lib’ could help reviewing this patch.

Thanks for your patch.

-- 
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37





bug#30127: Re[2]: bug#30127: ICC: 'entry point must be defined' error for shared builds on Windows

2018-01-21 Thread sav_ix

  

--- Оригінальне повідомлення ---
Від кого: "Mathieu Lirzin" 
Дата: 18 січня 2018, 00:57:33


> Indeed, The great news is that support for ‘icl’ has already been added
> in Automake 1.15.1 [1].  :-)

Thought I checked Automake master before filling report. In any case thank you 
for a good news.

Though there is lot of code in Automake (and Autotools in general), not covered 
by commit 
(http://git.savannah.gnu.org/cgit/automake.git/commit/?id=c40e27e1c2a60f58e72e65d73d808f782d55494a).
 At least all occurrences of 'cl' and 'cl.exe'should checked and fixed to match 
'icl' and 'icl.exe' conditions too. But this, obviously, is out if scope of 
current issue.


> Could you confirm it works correctly with Automake 1.15.1?

Yes, me used that patch for GMP, MPIR, MPFR and libiconv builds using Windows 
ICC and it works fine.


In case you're interested, there is a patch to 'lib/ar-lib', which I use for 
libiconv builds using Windows ICC:
===
diff --git a/build-aux/ar-lib b/build-aux/ar-lib
index 463b9ec..3cfddbc 100644
--- a/build-aux/ar-lib
+++ b/build-aux/ar-lib
@@ -127,8 +127,10 @@ do
   fi
   case $1 in
 -lib | -LIB \
+    | -xilib | -XILIB \
 | -ltcg | -LTCG \
 | -machine* | -MACHINE* \
+    | -nologo | -NOLOGO \
 | -subsystem* | -SUBSYSTEM* \
 | -verbose | -VERBOSE \
 | -wx* | -WX* )
===
since ICC linker 'xilink' and librarian 'xilib' are just a wrappers to MSVC 
'link' and librarian 'lib' respectively, and ' -nologo ' use reduces noise in 
stderr.

CC: Jonathan L Peyton,
as Author of patch for 'compile', mentioned above. In case he'll be interested 
to make a review aor join this discussion.


Odd, that current 'ar-lib' implementation covers only a part of MSVC 'lib' 
flags:
===
c:\>lib /?
Microsoft (R) Library Manager Version 14.12.25830.2
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: LIB [options] [files]

   options:

  /DEF[:filename]
  /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND}
  /EXPORT:symbol
  /EXTRACT:membername
  /INCLUDE:symbol
  /LIBPATH:dir
  /LIST[:filename]
  /LTCG
  /MACHINE:{ARM|ARM64|EBC|X64|X86}
  /NAME:filename
  /NODEFAULTLIB[:library]
  /NOLOGO
  /OUT:filename
  /REMOVE:membername
  /SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION|
  EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|
  NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]]
  /VERBOSE
  /WX[:NO]
===

Wondering, what was a reason for this.


Best,

Alexander