<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 2 Sept 2024, 14:15 Kyrylo Tkachov, <<a href="mailto:ktkachov@nvidia.com">ktkachov@nvidia.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Evgeny,<br>
<br>
> On 2 Sep 2024, at 15:03, Evgeny Karpov <<a href="mailto:Evgeny.Karpov@microsoft.com" target="_blank" rel="noreferrer">Evgeny.Karpov@microsoft.com</a>> wrote:<br>
> <br>
> External email: Use caution opening links or attachments<br>
> <br>
> <br>
> The patch resolves compilation issues for the C++ language. Previous<br>
> patch series contributed to C++ as well, however, C++ could not be<br>
> tested until we got a C++ compiler and could build at least a "Hello<br>
> World" C++ program, and in reality, more than that.<br>
> <br>
> gcc/ChangeLog:<br>
> <br>
> * config.gcc: Add missing dependencies.<br>
> <br>
> libstdc++-v3/ChangeLog:<br>
> <br>
> * src/c++17/fast_float/fast_float.h (defined): Adjust a condition<br>
> for AArch64.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">It looks like this changelog was created by the mklog script, but it needs fixing. This is not changing "defined". It looks like it's changing "full_multiplication" so that's what should be named in the changelog.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
libstdc++ is reviewed on its own list (CC’ed here) so I’d suggest splitting the libstdc++-v3 hunk into its own patch and submitting it separately there for review.<br>
Thanks,<br>
Kyrill<br>
<br>
> ---<br>
> gcc/config.gcc | 1 +<br>
> libstdc++-v3/src/c++17/fast_float/fast_float.h | 3 ++-<br>
> 2 files changed, 3 insertions(+), 1 deletion(-)<br>
> <br>
> diff --git a/gcc/config.gcc b/gcc/config.gcc<br>
> index a36dd1bcbc6..e1117c273f0 100644<br>
> --- a/gcc/config.gcc<br>
> +++ b/gcc/config.gcc<br>
> @@ -1283,6 +1283,7 @@ aarch64-*-mingw*)<br>
> extra_options="${extra_options} mingw/cygming.opt mingw/mingw.opt"<br>
> extra_objs="${extra_objs} winnt.o winnt-dll.o"<br>
> c_target_objs="${c_target_objs} msformat-c.o"<br>
> + cxx_target_objs="${cxx_target_objs} msformat-c.o"<br>
> d_target_objs="${d_target_objs} winnt-d.o"<br>
> tmake_file="${tmake_file} mingw/t-cygming"<br>
> case ${enable_threads} in<br>
> diff --git a/libstdc++-v3/src/c++17/fast_float/fast_float.h b/libstdc++-v3/src/c++17/fast_float/fast_float.h<br>
> index 7551c4f89ef..dc61de7b199 100644<br>
> --- a/libstdc++-v3/src/c++17/fast_float/fast_float.h<br>
> +++ b/libstdc++-v3/src/c++17/fast_float/fast_float.h<br>
> @@ -275,7 +275,8 @@ fastfloat_really_inline value128 full_multiplication(uint64_t a,<br>
> // But MinGW on ARM64 doesn't have native support for 64-bit multiplications<br>
> answer.high = __umulh(a, b);<br>
> answer.low = a * b;<br>
> -#elif defined(FASTFLOAT_32BIT) || (defined(_WIN64) && !defined(__clang__))<br>
> +#elif defined (FASTFLOAT_32BIT) || (defined (_WIN64) && !defined (__clang__) \<br>
> + && !defined (_M_ARM64))<br>
> answer.low = _umul128(a, b, &answer.high); // _umul128 not available on ARM64<br>
> #elif defined(FASTFLOAT_64BIT)<br>
> __uint128_t r = ((__uint128_t)a) * b;<br>
> --<br>
> 2.34.1<br>
> <br>
<br>
</blockquote></div></div></div>