Skip to content

Commit

Permalink
[ace] Add patch to fix Visual Studio 2019 16.5 internal compiler error (
Browse files Browse the repository at this point in the history
#11369)

* [ace] Update to 6.5.8

* Address review comments

    * ports/ace/portfile.cmake:

* Put back copy step

    * ports/ace/portfile.cmake:

* Fixed error

    * ports/ace/portfile.cmake:

* ARM should work, let us try it

    * ports/ace/portfile.cmake:

* ARM doesn't work yet, so disable it again
    * ports/ace/portfile.cmake:

* Add support for vcpkg of ace on MacOSX

    * ports/ace/portfile.cmake:

* [ace] Add patch to fix Visual Studio 2019 internal compiler error

    * ports/ace/process_manager.patch:
      Added.

    * ports/ace/CONTROL:
    * ports/ace/portfile.cmake:

* Attempt to fix apply patches

    * ports/ace/portfile.cmake:

* [ace] Updated baseline for ace, 4 configurations work again with the applied patch

    * scripts/ci.baseline.txt:

* Address review comments

    * ports/ace/portfile.cmake:

* Revised patch for ACE

    * ports/ace/process_manager.patch:

* Update ports/ace/portfile.cmake

add comment about why the patch is needed

Co-authored-by: nicole mazzuca <[email protected]>
  • Loading branch information
jwillemsen and strega-nil authored May 27, 2020
1 parent 9dde75b commit 9c04c2e
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 7 deletions.
2 changes: 1 addition & 1 deletion ports/ace/CONTROL
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Source: ace
Version: 6.5.9
Version: 6.5.9-1
Homepage: https://www.dre.vanderbilt.edu/~schmidt/ACE.html
Description: The ADAPTIVE Communication Environment
Supports: !uwp
Expand Down
4 changes: 3 additions & 1 deletion ports/ace/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ endif()
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
PATCHES
process_manager.patch # Fix MSVC 16.5 ICE
)

set(ACE_ROOT ${SOURCE_PATH})
Expand Down Expand Up @@ -250,5 +252,5 @@ elseif(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX)
set($ENV{PWD} _prev_env)

# Handle copyright
file(RENAME ${CURRENT_PACKAGES_DIR}/share/ace/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright)
file(INSTALL ${ACE_ROOT}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
endif()
57 changes: 57 additions & 0 deletions ports/ace/process_manager.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
diff --git a/ace/Process_Manager.cpp b/ace/Process_Manager.cpp
index ee0418b8fca..da9d9741e28 100644
--- a/ace/Process_Manager.cpp
+++ b/ace/Process_Manager.cpp
@@ -26,6 +26,9 @@ ACE_Process_Manager_cleanup (void *instance, void *arg)
{
ACE_Process_Manager::cleanup (instance, arg);
}
+#define ACE_PROCESS_MANAGER_CLEANUP_FUNCTION ACE_Process_Manager_cleanup
+#else
+#define ACE_PROCESS_MANAGER_CLEANUP_FUNCTION ACE_Process_Manager::cleanup
#endif

ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -124,19 +127,10 @@ ACE_Process_Manager::instance (void)
// Register with the Object_Manager so that the wrapper to
// delete the proactor will be called when Object_Manager is
// being terminated.
-
-#if defined ACE_HAS_SIG_C_FUNC
- ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_,
- ACE_Process_Manager_cleanup,
- 0,
- typeid (*ACE_Process_Manager::instance_).name ());
-#else
ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_,
- ACE_Process_Manager::cleanup,
+ ACE_PROCESS_MANAGER_CLEANUP_FUNCTION,
0,
- typeid (*ACE_Process_Manager::instance_).name ());
-#endif /* ACE_HAS_SIG_C_FUNC */
-
+ typeid (ACE_Process_Manager).name ());
}
}

@@ -157,18 +151,10 @@ ACE_Process_Manager::instance (ACE_Process_Manager *tm)
// Register with the Object_Manager so that the wrapper to
// delete the proactor will be called when Object_Manager is
// being terminated.
-
-#if defined ACE_HAS_SIG_C_FUNC
- ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_,
- ACE_Process_Manager_cleanup,
- 0,
- typeid (*ACE_Process_Manager::instance_).name ());
-#else
ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_,
- ACE_Process_Manager::cleanup,
+ ACE_PROCESS_MANAGER_CLEANUP_FUNCTION,
0,
- typeid (*ACE_Process_Manager::instance_).name ());
-#endif /* ACE_HAS_SIG_C_FUNC */
+ typeid (*t).name ());

ACE_Process_Manager::instance_ = tm;
return t;
5 changes: 0 additions & 5 deletions scripts/ci.baseline.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,8 @@
7zip:x64-osx=fail
7zip:x64-uwp=fail
abseil:arm-uwp=fail
# ace is failing because the port's attempt to make yasm available is not succeeding
ace:arm-uwp=fail
ace:arm64-windows=fail
ace:x64-uwp=fail
ace:x64-windows-static=fail
ace:x64-windows=fail
ace:x86-windows=fail
activemq-cpp:x64-windows-static=fail
activemq-cpp:x64-linux=fail
activemq-cpp:x64-osx=fail
Expand Down

0 comments on commit 9c04c2e

Please sign in to comment.