head 1.3; access; symbols pkgsrc-2026Q1:1.3.0.6 pkgsrc-2026Q1-base:1.3 pkgsrc-2025Q4:1.3.0.4 pkgsrc-2025Q4-base:1.3 pkgsrc-2025Q3:1.3.0.2 pkgsrc-2025Q3-base:1.3 pkgsrc-2025Q2:1.2.0.58 pkgsrc-2025Q2-base:1.2 pkgsrc-2025Q1:1.2.0.56 pkgsrc-2025Q1-base:1.2 pkgsrc-2024Q4:1.2.0.54 pkgsrc-2024Q4-base:1.2 pkgsrc-2024Q3:1.2.0.52 pkgsrc-2024Q3-base:1.2 pkgsrc-2024Q2:1.2.0.50 pkgsrc-2024Q2-base:1.2 pkgsrc-2024Q1:1.2.0.48 pkgsrc-2024Q1-base:1.2 pkgsrc-2023Q4:1.2.0.46 pkgsrc-2023Q4-base:1.2 pkgsrc-2023Q3:1.2.0.44 pkgsrc-2023Q3-base:1.2 pkgsrc-2023Q2:1.2.0.42 pkgsrc-2023Q2-base:1.2 pkgsrc-2023Q1:1.2.0.40 pkgsrc-2023Q1-base:1.2 pkgsrc-2022Q4:1.2.0.38 pkgsrc-2022Q4-base:1.2 pkgsrc-2022Q3:1.2.0.36 pkgsrc-2022Q3-base:1.2 pkgsrc-2022Q2:1.2.0.34 pkgsrc-2022Q2-base:1.2 pkgsrc-2022Q1:1.2.0.32 pkgsrc-2022Q1-base:1.2 pkgsrc-2021Q4:1.2.0.30 pkgsrc-2021Q4-base:1.2 pkgsrc-2021Q3:1.2.0.28 pkgsrc-2021Q3-base:1.2 pkgsrc-2021Q2:1.2.0.26 pkgsrc-2021Q2-base:1.2 pkgsrc-2021Q1:1.2.0.24 pkgsrc-2021Q1-base:1.2 pkgsrc-2020Q4:1.2.0.22 pkgsrc-2020Q4-base:1.2 pkgsrc-2020Q3:1.2.0.20 pkgsrc-2020Q3-base:1.2 pkgsrc-2020Q2:1.2.0.18 pkgsrc-2020Q2-base:1.2 pkgsrc-2020Q1:1.2.0.14 pkgsrc-2020Q1-base:1.2 pkgsrc-2019Q4:1.2.0.16 pkgsrc-2019Q4-base:1.2 pkgsrc-2019Q3:1.2.0.12 pkgsrc-2019Q3-base:1.2 pkgsrc-2019Q2:1.2.0.10 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.8 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.6 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.4 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.2.0.2 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.1.0.8 pkgsrc-2018Q1-base:1.1 pkgsrc-2017Q4:1.1.0.6 pkgsrc-2017Q4-base:1.1 pkgsrc-2017Q3:1.1.0.4 pkgsrc-2017Q3-base:1.1; locks; strict; comment @// @; 1.3 date 2025.09.14.10.53.56; author wiz; state Exp; branches; next 1.2; commitid vQ17j466PBHLEFaG; 1.2 date 2018.04.13.18.57.29; author bouyer; state Exp; branches; next 1.1; commitid yOvzfLwPXXi3tjyA; 1.1 date 2017.09.12.17.31.20; author bouyer; state Exp; branches; next ; commitid PJSM8laFiLJYPV6A; desc @@ 1.3 log @opencpn: fix some pkglint @ text @$NetBSD: patch-src_ocpndc.cpp,v 1.2 2018/04/13 18:57:29 bouyer Exp $ For some reason ocpnDC::DrawEllipse and ocpnDC::DrawRounderRectangle and is miscompiled on NetBSD 8.0_BETA and gcc 6.4 from HEAD earmv7hf: for the tail call to dc->DrawEllipse() the compiler emits a bx instruction, but forgets to load the address of the function in the register. The memory barrier works around this problem by avoiding the tail-call optimisation. Other similar functions in this file are properly compiled ... I suspect it's related to the vfp register use in these functions. --- src/ocpndc.cpp.orig 2018-02-07 12:08:26.000000000 +0100 +++ src/ocpndc.cpp 2018-04-13 15:31:34.958778133 +0200 @@@@ -716,6 +716,9 @@@@ } } #endif +#ifdef __arm__ + asm volatile("" ::: "memory"); +#endif } void ocpnDC::DrawCircle( wxCoord x, wxCoord y, wxCoord radius ) @@@@ -775,6 +778,9 @@@@ glDisable( GL_BLEND ); } #endif +#ifdef __arm__ + asm volatile("" ::: "memory"); +#endif } void ocpnDC::DrawPolygon( int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset, float scale ) @ 1.2 log @earmv7hf gcc also miscompiles ocpnDC::DrawRounderRectangle now (or maybe opencpn 4.8.0 didn't use it). Apply the same workaround as ocpnDC::DrawEllipse. Bump PKGREVISION @ text @d1 2 a2 1 $NetBSD: patch-src_ocpndc.cpp,v 1.1 2017/09/12 17:31:20 bouyer Exp $ @ 1.1 log @Fix opencpn on arm For some reason ocpnDC::DrawEllipse is miscompiled on NetBSD 8.0_BETA earmv7hf: for the tail call to dc->DrawEllipse() the compiler emits a bx instruction, but forgets to load the address of the function in the register. Add a memory barrier to works around this problem by avoiding the tail-call optimisation. Other similar functions in this file are properly compiled ... Bump PKGREVISION @ text @d1 3 a3 2 $NetBSD: $ For some reason ocpnDC::DrawEllipse is miscompiled on NetBSD 8.0_BETA earmv7hf: d9 1 d11 13 a23 3 --- src/ocpndc.cpp.orig 2017-09-12 15:29:07.101981729 +0200 +++ src/ocpndc.cpp 2017-09-12 17:00:40.945848063 +0200 @@@@ -769,6 +769,9 @@@@ d28 1 a28 1 + asm volatile("" ::: "memory"); @