MSVC 2015's broken static initializer_list causing build failure

classic Classic list List threaded Threaded
37 messages Options
Next » 12
slacka slacka
Reply | Threaded
Open this post in threaded view
|

MSVC 2015's broken static initializer_list causing build failure

When I try to build with MSVC 2015 I get the following error:
checking whether C:/PROGRA~2/MICROS~1.0/VC/bin/amd64/cl.exe has broken static initializer_list support... yes
configure: error: working support for static initializer_list needed
Error running configure at ./autogen.sh line 281.

$ git bisect bad
721116c7ade10d76e3ed6832e3988c91427ba431 is the first bad commit
commit 721116c7ade10d76e3ed6832e3988c91427ba431
Author: Stephan Bergmann <[hidden email]>
Date:   Thu Dec 15 08:54:08 2016 +0100

    Phase out support for HAVE_BROKEN_STATIC_INITIALIZER_LIST

    ...I'm pondering a change that would make that a hard requirement, and from the
    comment in configure.ac it looks like only old Clang < 3.4 were affected.

MSVC 2013 works fine. Is this a flaw in the detection logic or does it really lack support?

 
   
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Noel Grandin-2 Noel Grandin-2
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015's broken static initializer_list causing build failure

which update of VS2015 are you running? They added lots of stuff in the later updates​

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
slacka slacka
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015's broken static initializer_list causing build failure

Microsoft Visual Studio Community 2015
Version 14.0.25123.00 Update 2


Is it working for you? What version are you running?
Noel Grandin-2 Noel Grandin-2
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015's broken static initializer_list causing build failure

I'm not using it, but it makes no sense for us to support anything other than VS2015 Update3, so I suggest you update to that and try again.​

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
slacka slacka
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015's broken static initializer_list causing build failure

Per your recommendation, I upgrade to
Microsoft Visual Studio Community 2015
Version 14.0.25431.01 Update 3

After the update, I'm still seeing the same error.

configure: error: working support for static initializer_list needed

-Luke
sberg sberg
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015's broken static initializer_list causing build failure

In reply to this post by slacka
On 12/16/2016 10:53 PM, Luke Benes wrote:
> When I try to build with MSVC 2015 I get the following error:
> checking whether C:/PROGRA~2/MICROS~1.0/VC/bin/amd64/cl.exe has broken static initializer_list support... yes
> configure: error: working support for static initializer_list needed
> Error running configure at ./autogen.sh line 281.

<https://cgit.freedesktop.org/libreoffice/core/commit/?id=86e6d9b62f4d77a6949fdb98c570930a80f6917c>
"Make check for broken static initialize_list work with MSVC 2015" fixes
that for me

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Matúš Kukan Matúš Kukan
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015's broken static initializer_list causing build failure

On 19 December 2016 at 11:23, Stephan Bergmann <[hidden email]> wrote:

> On 12/16/2016 10:53 PM, Luke Benes wrote:
>>
>> When I try to build with MSVC 2015 I get the following error:
>> checking whether C:/PROGRA~2/MICROS~1.0/VC/bin/amd64/cl.exe has broken
>> static initializer_list support... yes
>> configure: error: working support for static initializer_list needed
>> Error running configure at ./autogen.sh line 281.
>
>
> <https://cgit.freedesktop.org/libreoffice/core/commit/?id=86e6d9b62f4d77a6949fdb98c570930a80f6917c>
> "Make check for broken static initialize_list work with MSVC 2015" fixes
> that for me

I need this change in the 'else' branch of 'if test "$BITNESS_OVERRIDE" = 64;'
With that it works for me too.
But I can't push now.

Thanks,

Matus
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
sberg sberg
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015's broken static initializer_list causing build failure

On 12/19/2016 02:39 PM, Matúš Kukan wrote:

> On 19 December 2016 at 11:23, Stephan Bergmann <[hidden email]> wrote:
>> On 12/16/2016 10:53 PM, Luke Benes wrote:
>>> When I try to build with MSVC 2015 I get the following error:
>>> checking whether C:/PROGRA~2/MICROS~1.0/VC/bin/amd64/cl.exe has broken
>>> static initializer_list support... yes
>>> configure: error: working support for static initializer_list needed
>>> Error running configure at ./autogen.sh line 281.
>>
>> <https://cgit.freedesktop.org/libreoffice/core/commit/?id=86e6d9b62f4d77a6949fdb98c570930a80f6917c>
>> "Make check for broken static initialize_list work with MSVC 2015" fixes
>> that for me
>
> I need this change in the 'else' branch of 'if test "$BITNESS_OVERRIDE" = 64;'
> With that it works for me too.
> But I can't push now.

<https://cgit.freedesktop.org/libreoffice/core/commit/?id=c6dba3e8a1c85235a92b36a17c939152b179fe57>
"
Add ucrtlib dir also for 32-bit Windows"
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
slacka slacka
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015's broken static initializer_list causing build failure

It's working now for me too. Thanks!
slacka slacka
Reply | Threaded
Open this post in threaded view
|

MSVC 2015 32-bit builds Failing Now

In reply to this post by slacka
Now that the HAVE_BROKEN_STATIC_INITIALIZER_LIST bug has been fixed, the 32 bit builds are failing with the following error:

[build DEP] LNK:Library/so_activex_x64.dll
C:/core/workdir/CObject/soltools/mkdepend/cppsetup.o : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
[build DEP] LNK:CppunitTest/test_connectivity_ado.dll
mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/core/workdir/LinkTarget/Executable/makedepend.exe". The system cannot find the file specified.
[build LNK] Executable/makedepend.exe
C:/core/workdir/CObject/soltools/mkdepend/cppsetup.o : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'

mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/core/workdir/LinkTarget/Executable/makedepend.exe". The system cannot find the file specified.
make[1]: ***.  Stop.
Makefile:259: recipe for target 'build' failed

This was observed on commit 756203d490720deb53f7da4914d738b064b9e157


-Luke

   
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
slacka slacka
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015 32-bit builds Failing Now

Please ignore this for now. It looks like something else is going on. I need to do some more troubleshooting.






From: Luke Benes <[hidden email]>
Sent: Monday, December 19, 2016 3:41 PM
To: [hidden email]; [hidden email]
Subject: MSVC 2015 32-bit builds Failing Now
 
Now that the HAVE_BROKEN_STATIC_INITIALIZER_LIST bug has been fixed, the 32 bit builds are failing with the following error:

[build DEP] LNK:Library/so_activex_x64.dll
C:/core/workdir/CObject/soltools/mkdepend/cppsetup.o : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
[build DEP] LNK:CppunitTest/test_connectivity_ado.dll
mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/core/workdir/LinkTarget/Executable/makedepend.exe". The system cannot find the file specified.
[build LNK] Executable/makedepend.exe
C:/core/workdir/CObject/soltools/mkdepend/cppsetup.o : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'

mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/core/workdir/LinkTarget/Executable/makedepend.exe". The system cannot find the file specified.
make[1]: ***.  Stop.
Makefile:259: recipe for target 'build' failed

This was observed on commit 756203d490720deb53f7da4914d738b064b9e157


-Luke

   

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
slacka slacka
Reply | Threaded
Open this post in threaded view
|

MSVC 2015 builds Failing After 2017 Support added

When I try to build with MSVC 2015 after:
https://cgit.freedesktop.org/libreoffice/core/commit/?id=b862cbdd345ec57c2595629ded6a3969e1e65d56

I'm getting the following build error:

Build started 2/18/2017 1:11:26 PM.
Project "D:\core\workdir\UnpackedTarball\lcms2\Projects\VC2013\lcms2_DLL\lcms2_DLL.vcxproj" on node 1 (default targets).
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140\Toolset.targets(34,5): error MSB8036: The Windows SDK version 10.0.10240.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution". [D:\core\workdir\UnpackedTarball\lcms2\Projects\VC2013\lcms2_DLL\lcms2_DLL.vcxproj]
Done Building Project "D:\core\workdir\UnpackedTarball\lcms2\Projects\VC2013\lcms2_DLL\lcms2_DLL.vcxproj" (default targets) -- FAILED.

Build FAILED.

"D:\core\workdir\UnpackedTarball\lcms2\Projects\VC2013\lcms2_DLL\lcms2_DLL.vcxproj" (default target) (1) ->
(Desktop_PlatformPrepareForBuild target) ->
  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140\Toolset.targets(34,5): error MSB8036: The Windows SDK version 10.0.10240.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution". [D:\core\workdir\UnpackedTarball\lcms2\Projects\VC2013\lcms2_DLL\lcms2_DLL.vcxproj]

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.44
make[1]: *** [D:/core/external/lcms2/ExternalProject_lcms2.mk:19: D:/core/workdir/ExternalProject/lcms2/build] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:259: build] Error 2

Have Windows SDK requirements changed for 2015 or is this a bug?






     
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Kaganski Mike Kaganski Mike
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015 builds Failing After 2017 Support added

Hi Luke,

On 2/18/2017 10:52 PM, Luke Benes wrote:
When I try to build with MSVC 2015 after:
https://cgit.freedesktop.org/libreoffice/core/commit/?id=b862cbdd345ec57c2595629ded6a3969e1e65d56

I'm getting the following build error:

Build started 2/18/2017 1:11:26 PM.
Project "D:\core\workdir\UnpackedTarball\lcms2\Projects\VC2013\lcms2_DLL\lcms2_DLL.vcxproj" on node 1 (default targets).
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140\Toolset.targets(34,5): error MSB8036: The Windows SDK version 10.0.10240.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution". [D:\core\workdir\UnpackedTarball\lcms2\Projects\VC2013\lcms2_DLL\lcms2_DLL.vcxproj]
Done Building Project "D:\core\workdir\UnpackedTarball\lcms2\Projects\VC2013\lcms2_DLL\lcms2_DLL.vcxproj" (default targets) -- FAILED.

Build FAILED.

"D:\core\workdir\UnpackedTarball\lcms2\Projects\VC2013\lcms2_DLL\lcms2_DLL.vcxproj" (default target) (1) ->
(Desktop_PlatformPrepareForBuild target) ->
  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140\Toolset.targets(34,5): error MSB8036: The Windows SDK version 10.0.10240.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution". [D:\core\workdir\UnpackedTarball\lcms2\Projects\VC2013\lcms2_DLL\lcms2_DLL.vcxproj]

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.44
make[1]: *** [D:/core/external/lcms2/ExternalProject_lcms2.mk:19: D:/core/workdir/ExternalProject/lcms2/build] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:259: build] Error 2

Have Windows SDK requirements changed for 2015 or is this a bug? 

It is fixed by installing the mentioned SDK from VS2015 installer. Currently, IIRC, it offers 3 versions of Win10 SDK, and I chose to install all of them; it works now for me.

--
Best regards,
Mike Kaganski

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
slacka slacka
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015 builds Failing After 2017 Support added

Thanks for the work-around, but that doesn't really answer my question.

To clarify, before support for MSVC 2017 was added, I did not need the Win 10 SDK. Even after, I do not need the Win 10 SDK to build with MSVC 2013. Only MSVC 2015 has this new requirement.

Was this change intentional? If so, I'll update the wiki documentation to mention this.
Tor Lillqvist-2 Tor Lillqvist-2
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015 builds Failing After 2017 Support added

The default should be that whatever comes with the compiler should be
enough, and that installing any separate SDK should be optional. Or do
the newer compilers (2015, 2017) not come with the SDK bits (include
files and import libraries) we need any longer?

--tml
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
slacka slacka
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015 builds Failing After 2017 Support added

> The default should be that whatever comes with the compiler should be
> enough, and that installing any separate SDK should be optional.


Agreed, this is how MSVC 2015 worked before the 2017 patch.


> So, if your UCRTVERSION is 10.0.10240.0 (can you verify in
> config_host.mk?), then the corresponding msbuild toolset must be
> installed. Looks like you have only partially installed SDK 10 on your
> machine, so you are on your own.


I have 2 machines that both get this error with the new patch. One of them is a recent, fresh install of Win 10 with only MSVC 2013, 2015 and a few development tools.  There is no partially installed SDK. It's more likely that the detection logic is confused by Win 10.

> Normally we announce something like that on dev ML, or even ask for ESC
> decision. So, no, it wasn't intended. Also note, that all TBs have no
> problems with verification of MSVC 2017 change.

Most of the TBs are running MSVC 2013 which is not affected by this issue. If they are not, I bet they are not running Win 10 or have the SDK installed. I highly doubt there is anything wrong or unusual with either of my systems.

Should I update the wiki to say that Win 10 systems now require the SDK for MSVC 2015? Or is this something that should be fixed?
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
slacka slacka
Reply | Threaded
Open this post in threaded view
|

MSVC 2015 error C2220: warning treated as error

In reply to this post by slacka
While tracking down the source of the Win 10 SDK issue, I discovered another issue with MSVC 2015.

After https://cgit.freedesktop.org/libreoffice/core/commit/?id=ed4b23548d28941f9b2c75207832afcb6c6ad0b3

I'm getting the following build error:

[build CXX] sax/source/fastparser/legacyfastparser.cxx
[build PCH] precompiled_configmgr
c:\core\sax\source\fastparser\fastparser.cxx(983) : error C2220: warning treated as error - no 'object' file generated
c:\core\sax\source\fastparser\fastparser.cxx(983) : warning C4702: unreachable code
C:/core/solenv/gbuild/LinkTarget.mk:268: recipe for target 'C:/core/workdir/CxxObject/sax/source/fastparser/fastparser.o' failed
make[1]: *** [C:/core/workdir/CxxObject/sax/source/fastparser/fastparser.o] Error 2
make[1]: *** Waiting for unfinished jobs....
Makefile:259: recipe for target 'build' failed
make: *** [build] Error 2


Do we want to disable warnings treated as errors or to remove the dead code?
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
David Ostrovsky-3 David Ostrovsky-3
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015 builds Failing After 2017 Support added

In reply to this post by slacka
On Sun, 2017-02-19 at 18:56 +0000, Luke Benes wrote:

> >  The default should be that whatever comes with the compiler should
> > be
> >  enough, and that installing any separate SDK should be optional.
>
>
> Agreed, this is how MSVC 2015 worked before the 2017 patch.
>
>
> >  So, if your UCRTVERSION is 10.0.10240.0 (can you verify in
> > config_host.mk?)

I don't see the answer to my question above.
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
slacka slacka
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015 builds Failing After 2017 Support added

config_host.mk: 
export UCRTSDKDIR=C:/PROGRA~2/WI3CF2~1/10/
export UCRTVERSION=10.0.10240.0

Looking at the creation date of that folder, it matches the creation date of C:\Program Files (x86)\Microsoft Visual Studio 14.0.  


So it seems that even if you do not install the win 10 SDK component, the MSVC 2015 installer will still create the "Windows Kits" folder and install some files. 


When the Win 10 SDK is not installed most of folders are nearly empty. For example the  "bin\x86\ucrt" only contains 1 file, ucrtbased.dll. The entire "bin" tree is only a few meg vs ~2 GB with a SDK installed. The only notable exception is the "Lib" folder which contains nearly 1 GB of data vs 2GB with the SDK installed. 


Is there anything else I can provide? Would you like a full directory listing with and without the win 10 SDK installed?



From: David Ostrovsky <[hidden email]>
Sent: Sunday, February 19, 2017 11:35 AM
To: Luke Benes
Cc: libreoffice-dev
Subject: Re: MSVC 2015 builds Failing After 2017 Support added
 
On Sun, 2017-02-19 at 18:56 +0000, Luke Benes wrote:
> >  The default should be that whatever comes with the compiler should
> > be
> >  enough, and that installing any separate SDK should be optional.
>
>
> Agreed, this is how MSVC 2015 worked before the 2017 patch.
>
>
> >  So, if your UCRTVERSION is 10.0.10240.0 (can you verify in
> > config_host.mk?)

I don't see the answer to my question above.

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
David Ostrovsky-3 David Ostrovsky-3
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015 builds Failing After 2017 Support added

On Sun, 2017-02-19 at 20:53 +0000, Luke Benes wrote:

> config_host.mk:
> export UCRTSDKDIR=C:/PROGRA~2/WI3CF2~1/10/
> export UCRTVERSION=10.0.10240.0
>
> Looking at the creation date of that folder, it matches the creation
>  date of C:\Program Files (x86)\Microsoft Visual Studio 14.0.  
>
> So it seems that even if you do not install the win 10 SDK component,
> the MSVC 2015 installer will still create the "Windows Kits" folder
> and install some files.

Thanks for the infos. I think I understand now what is going on:

* Install fresh VM
* Install MSVC 2013
* Istall SDK 8.x
* try compile latest master: works as expected
* Install MSVC 2015 *without* installing SDK 10
* try compile latest master: broken

Is that correct?
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Next » 12