You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2021/06/10 09:07:46 UTC
svn commit: r1890668 - in /subversion/trunk: build/generator/gen_win.py
build/generator/templates/vcnet_vcxproj.ezt
subversion/libsvn_subr/win32_crashrpt.c
Author: rhuijben
Date: Thu Jun 10 09:07:46 2021
New Revision: 1890668
URL: http://svn.apache.org/viewvc?rev=1890668&view=rev
Log:
Following up on r1890223, allow building on ARM64.
Do minimal work to allow building. Recognize ARM64 in the
win32 crash handler to at least create dumps. Add TODO comments.
* build/generator/gen_win.py
Generate ARM platform configurations for .vcxproj style projects
* build/generator/templates/vcnet_vcxproj.ezt
Assume ARM64 is a WIN64 variant and properly set machine type
for LIB.
* trunk/subversion/libsvn_subr/win32_crashrpt.c
(FORMAT_PTR) Set for ARM64
(write_process_info,
write_stacktrace): Stub for ARM64.
Modified:
subversion/trunk/build/generator/gen_win.py
subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt
subversion/trunk/subversion/libsvn_subr/win32_crashrpt.c
Modified: subversion/trunk/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/gen_win.py?rev=1890668&r1=1890667&r2=1890668&view=diff
==============================================================================
--- subversion/trunk/build/generator/gen_win.py (original)
+++ subversion/trunk/build/generator/gen_win.py Thu Jun 10 09:07:46 2021
@@ -128,7 +128,7 @@ class WinGeneratorBase(gen_win_dependenc
# VC 2002 and VC 2003 only allow a single platform per project file
if subdir == 'vcnet-vcproj':
if self.vcproj_version != '7.00' and self.vcproj_version != '7.10':
- self.platforms = ['Win32','x64']
+ self.platforms = ['Win32', 'x64', 'ARM64']
#Here we can add additional modes to compile for
self.configs = ['Debug','Release']
Modified: subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt?rev=1890668&r1=1890667&r2=1890668&view=diff
==============================================================================
--- subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt (original)
+++ subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt Thu Jun 10 09:07:46 2021
@@ -61,7 +61,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
[end] <AdditionalIncludeDirectories>$(SolutionDir)[configs.name];[for configs.includes][configs.includes];[end]%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<StringPooling>true</StringPooling>
- <PreprocessorDefinitions>[if-any instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][is platforms "x64"]WIN64;[end][for configs.defines][configs.defines];[end]%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>[if-any instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][is platforms "x64"]WIN64;[end][is platforms "ARM64"]WIN64;[end][for configs.defines][configs.defines];[end]%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4100;4127;4206;4512;4701;4706;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -70,7 +70,7 @@
[end] </ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>[for configs.includes][configs.includes];[end]%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>SVN_FILE_NAME=[target.output_name];SVN_FILE_DESCRIPTION=[target.desc];[is platforms "x64"]WIN64;[end][for configs.defines][configs.defines];[end]%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>SVN_FILE_NAME=[target.output_name];SVN_FILE_DESCRIPTION=[target.desc];[is platforms "x64"]WIN64;[end][is platforms "ARM64"]WIN64;[end][for configs.defines][configs.defines];[end]%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
[is config_type "Application"] <Link>
<AdditionalDependencies>[for configs.libs][configs.libs];[end]%(AdditionalDependencies)</AdditionalDependencies>
@@ -92,7 +92,7 @@
[if-any def_file] <ModuleDefinitionFile>[def_file]</ModuleDefinitionFile>
[end] </Link>
[else][is config_type "StaticLibrary"] <Lib>
- <TargetMachine>[is platforms "X64"]MachineX64[else]MachineX86[end]</TargetMachine>
+ <TargetMachine>[is platforms "X64"]MachineX64[else][is platforms "ARM64"]MachineARM64[else]MachineX86[end][end]</TargetMachine>
[is configs.name "Debug"] <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
[end] </Lib>
[end][end][end] </ItemDefinitionGroup>
Modified: subversion/trunk/subversion/libsvn_subr/win32_crashrpt.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/win32_crashrpt.c?rev=1890668&r1=1890667&r2=1890668&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/win32_crashrpt.c (original)
+++ subversion/trunk/subversion/libsvn_subr/win32_crashrpt.c Thu Jun 10 09:07:46 2021
@@ -53,6 +53,8 @@ static HANDLE dbghelp_dll = INVALID_HAND
#define FORMAT_PTR "0x%08Ix"
#elif defined(_M_X64)
#define FORMAT_PTR "0x%016Ix"
+#elif defined(_M_ARM64)
+#define FORMAT_PTR "0x%016Ix"
#endif
/*** Code. ***/
@@ -253,6 +255,8 @@ write_process_info(EXCEPTION_RECORD *exc
"cs=%04x ss=%04x ds=%04x es=%04x fs=%04x gs=%04x\n",
context->SegCs, context->SegSs, context->SegDs,
context->SegEs, context->SegFs, context->SegGs);
+#elif defined(_M_ARM64)
+ /* TODO: Print ARM64 registers */
#else
#error Unknown processortype, please disable SVN_USE_WIN32_CRASHHANDLER
#endif
@@ -515,7 +519,7 @@ write_function_detail(STACKFRAME64 stack
static void
write_stacktrace(CONTEXT *context, FILE *log_file)
{
-#if defined (_M_IX86) || defined(_M_X64) || defined(_M_IA64)
+#if defined (_M_IX86) || defined(_M_X64) || defined(_M_IA64) || defined(_M_ARM64)
HANDLE proc = GetCurrentProcess();
STACKFRAME64 stack_frame;
DWORD machine;
@@ -562,6 +566,9 @@ write_stacktrace(CONTEXT *context, FILE
stack_frame.AddrStack.Offset = context->SP;
stack_frame.AddrBStore.Mode = AddrModeFlat;
stack_frame.AddrBStore.Offset = context->RsBSP;
+#elif defined(_M_ARM64)
+ machine = IMAGE_FILE_MACHINE_ARM64;
+ return; /* TODO: Find ARM64 settings for stack trace */
#else
#error Unknown processortype, please disable SVN_USE_WIN32_CRASHHANDLER
#endif