Skip to content

Conversation

@GordonSmith
Copy link
Member

No description provided.

@GordonSmith GordonSmith requested a review from Copilot October 14, 2025 10:06
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds x64 (64-bit) build support to the ECL IDE project and fixes compatibility issues that arise when building for the x64 architecture. The changes address type safety issues related to pointer size differences between 32-bit and 64-bit platforms.

Key Changes

  • Added x64 build configurations and presets for CMake and Visual Studio
  • Fixed pointer-to-integer casting issues for 64-bit compatibility
  • Updated Scintilla lexer function signatures to use proper 64-bit types
  • Added platform-specific compiler flags and library handling

Reviewed Changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
CMakePresets.json Added x64 build presets for Ninja and Visual Studio generators
wtlex/atlwinmisc.h Fixed pointer casting in property get/set methods for x64 compatibility
sgrid/GridCtrl_src/ Added conditional compilation for OnTimer method signature differences
eclide/mainfrm.h/.cpp Added conditional compilation for OnTimer method and simplified status bar code
dockingwindows/ Fixed GetClassLong calls to use x64-compatible GetClassLongPtr
EclEditor/Lex*.cxx Updated Scintilla lexer function signatures for 64-bit position types
comms/CMakeLists.txt Added /bigobj compiler flag for large object files
BugTrap/CMakeLists.txt Added x64-specific library handling and warning suppressions
.vscode/ Updated VS Code configuration files for better debugging support

Comment on lines 2351 to 2357
void CMainFrame::Send_RefreshStatusBar1(const TCHAR* pStr)
{
ATLASSERT(pStr != 0);

va_list args;
va_start(args, pStr);

TCHAR buffer[512 * sizeof(TCHAR)] = {0};

int nLen = wvsprintf(buffer, pStr, args);
nLen;

ATLASSERT(nLen < 512);
ATLASSERT(nLen == lstrlen(buffer));

CMFCRibbonBaseElement * elem = m_wndStatusBar.GetExElement(0);
elem->SetText(buffer);

va_end(args);
elem->SetText(pStr);
}
Copy link

Copilot AI Oct 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The function signature expects a variadic function (based on the removed va_list code) but now only accepts a single string parameter. This breaks the API contract if callers are passing format strings with arguments.

Copilot uses AI. Check for mistakes.
Comment on lines +146 to +151
SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS-x64.lib" )
SET( CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS-x64.lib" )
SET( CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /NODEFAULTLIB:zlibS-x64.lib" )
else()
SET( CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:zlibSD.lib" )
SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS.lib" )
Copy link

Copilot AI Oct 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL should reference CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL, not CMAKE_SHARED_LINKER_FLAGS_RELEASE, to maintain consistency with the existing pattern.

Suggested change
SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS-x64.lib" )
SET( CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS-x64.lib" )
SET( CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /NODEFAULTLIB:zlibS-x64.lib" )
else()
SET( CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:zlibSD.lib" )
SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS.lib" )
SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL} /NODEFAULTLIB:zlibS-x64.lib" )
SET( CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:zlibS-x64.lib" )
SET( CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /NODEFAULTLIB:zlibS-x64.lib" )
else()
SET( CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:zlibSD.lib" )
SET( CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL} /NODEFAULTLIB:zlibS.lib" )

Copilot uses AI. Check for mistakes.
@GordonSmith GordonSmith marked this pull request as draft October 14, 2025 10:10
@GordonSmith GordonSmith deleted the branch hpcc-systems:candidate-10.0.x November 6, 2025 21:35
@GordonSmith GordonSmith closed this Nov 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant