bugCERTI - Bugs: bug #54902, git-Master won't compile on...

 
 

bug #54902: git-Master won't compile on windows using Visual Studio 2017

Submitted by:  Chris Rule <crule>
Submitted on:  Fri 26 Oct 2018 06:41:28 PM UTC  
 
Category:  CERTI Severity:  4 - Important
Item Group:  Compilation error Status:  Works For Me
Privacy:  Public Assigned to:  JbCh <jb_ch>
Open/Closed:  Open Release:  GIT-master
Reproducibility:  Every Time Fixed Release:  Unknown

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Tue 07 May 2019 09:58:22 PM UTC, comment #2: 

It has been fixed on git master at revision
#4dbc8a144cce3d64a57727d380b81ea0af6b0906

Works for me, maybe need further testing!

JbCh <jb_ch>
Project AdministratorIn charge of this item.
Mon 26 Nov 2018 09:54:00 AM UTC, comment #1: 

Dear Chris,

Many thanks for investigating and sharing.
Yes, we are aware that the git master is not working with Visual Studio. As of now it was only working for Mingw and we had no time to investigate further.

I will have a look into your files and report asap.

Many thanks again,
Best regards,
Jb Ch

JbCh <jb_ch>
Project AdministratorIn charge of this item.
Fri 26 Oct 2018 06:41:28 PM UTC, original submission:  

As the title says...

I've enclosed a patch that allows CERTI to at least compile on Windows using Visual Studio 2017. Haven't had a chance to run it yet, but wanted to get this out here in case someone needs it now.

Will created other issues are problems with running are found.

The problems I ran into are in the enclosed Problems.txt and reproduced here for completion:

Issues Found:
--------------------
Compiling RTI (and others):
1>  d:\externalprojects\cert.git-clone\libcerti\strongtype.hh(191): error C2512: 'std::is_reference<_Dx2>': no appropriate default constructor
...
Not sure what the problem is, but commenting out constructor for NamedTypeImpl template removes the error.

--------------------
1>  socketpair_win32.c
1>  c:\program files (x86)\windows kits\10\include\10.0.17134.0\shared\ws2def.h(103): warning C4005: 'AF_IPX': macro redefinition
1>  c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winsock.h(457): note: see previous definition of 'AF_IPX'
1>  c:\program files (x86)\windows kits\10\include\10.0.17134.0\shared\ws2def.h(147): warning C4005: 'AF_MAX': macro redefinition
1>  c:\program files (x86)\windows kits\10\include\10.0.17134.0\shared\ws2def.h(235): error C2011: 'sockaddr': 'struct' type redefinition
...

These are due to winsock.h being included before winsock2.h.
--------------------

4>  d:\externalprojects\cert.git-clone\rtig\federation.cc(141): error C2668: 'make_unique': ambiguous call to overloaded function
4>  d:\externalprojects\cert.git-clone\include\make_unique.hh(13): note: could be 'std::unique_ptr<certi::SecurityServer,std::default_delete<_Ty>> make_unique<certi::SecurityServer,certi::SocketServer&,certi::AuditFile&,certi::FederationHandle&>(certi::SocketServer &,certi::AuditFile &,certi::FederationHandle &)'
4>          with
4>          [
4>              _Ty=certi::SecurityServer
4>          ]
4>  c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.15.26726\include\memory(2537): note: or       'std::unique_ptr<certi::SecurityServer,std::default_delete<_Ty>> std::make_unique<certi::SecurityServer,certi::SocketServer&,certi::AuditFile&,certi::FederationHandle&,0>(certi::SocketServer &,certi::AuditFile &,certi::FederationHandle &)' [found using argument-dependent lookup]
4>          with
4>          [
4>              _Ty=certi::SecurityServer
4>          ]
4>  d:\externalprojects\cert.git-clone\rtig\federation.cc(141): note: while trying to match the argument list '(certi::SocketServer, certi::AuditFile, certi::FederationHandle)'

Memory.h in Visual Studio since VS2013 now includes make_unique.
--------------------

2>  d:\externalprojects\cert.git-clone\rtig\mom.cc(235): error C2146: syntax error: missing ')' before identifier 'or'
2>  d:\externalprojects\cert.git-clone\rtig\mom.cc(235): error C2065: 'or': undeclared identifier

This really isn't standard C++. Changed to use || for or and ! for not.
--------------------

Packages are created as CERTI-4.0.0--MSVC-Unknown-1915.
scripts/SystemSpecificInformations.cmake was updated to reflect newer compiler versions and operating systems.

Chris Rule <crule>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #45310:  Problems.txt added by crule (3KiB - text/plain)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by jb_ch (Posted a comment)
  • -email is unavailable- added by crule (Submitted the item)
  •  

     

     

    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-05-07 jb_ch StatusIn Progress => Works For Me
    2018-11-26 jb_ch StatusNone => In Progress
        Assigned toNone => jb_ch
    2018-10-26 crule Attached File- => Added Problems.txt, #45310
        Attached File- => Added 0001-Corrections-to-CERTI-to-allow-it-to-compile-on-windo.patch, #45311

    Back to the top


    Powered by Savane 3.5