Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Oct 2023 16:39:18 GMT
From:      Piotr Kubaj <pkubaj@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 9df38c9ba1c5 - main - misc/far2l: fix build on big-endian
Message-ID:  <202310061639.396GdIbS010416@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9df38c9ba1c5c3d5afa9ad7a7c9fb43ad10d4a7c

commit 9df38c9ba1c5c3d5afa9ad7a7c9fb43ad10d4a7c
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2023-10-06 16:08:15 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2023-10-06 16:39:11 +0000

    misc/far2l: fix build on big-endian
    
    /wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:534:10: error: non-constant-expression cannot be narrowed from type 'DWORD' (aka 'unsigned int') to 'LONG' (aka 'int') in initializer list [-Wc++11-narrowing]
                                                                    {a->dwLowDateTime, (LONG)a->dwHighDateTime}
                                                                     ^~~~~~~~~~~~~~~~
    /wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:534:10: note: insert an explicit cast to silence this issue
                                                                    {a->dwLowDateTime, (LONG)a->dwHighDateTime}
                                                                     ^~~~~~~~~~~~~~~~
                                                                     static_cast<LONG>( )
    /wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:534:28: error: non-constant-expression cannot be narrowed from type 'LONG' (aka 'int') to 'DWORD' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]
                                                                    {a->dwLowDateTime, (LONG)a->dwHighDateTime}
                                                                                       ^~~~~~~~~~~~~~~~~~~~~~~
    /wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:534:28: note: insert an explicit cast to silence this issue
                                                                    {a->dwLowDateTime, (LONG)a->dwHighDateTime}
                                                                                       ^~~~~~~~~~~~~~~~~~~~~~~
                                                                                       static_cast<DWORD>(    )
    /wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:536:11: error: non-constant-expression cannot be narrowed from type 'DWORD' (aka 'unsigned int') to 'LONG' (aka 'int') in initializer list [-Wc++11-narrowing]
                                    B = {{b->dwLowDateTime, (LONG)b->dwHighDateTime}};
                                          ^~~~~~~~~~~~~~~~
    /wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:536:11: note: insert an explicit cast to silence this issue
                                    B = {{b->dwLowDateTime, (LONG)b->dwHighDateTime}};
                                          ^~~~~~~~~~~~~~~~
                                          static_cast<LONG>( )
    /wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:536:29: error: non-constant-expression cannot be narrowed from type 'LONG' (aka 'int') to 'DWORD' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]
                                    B = {{b->dwLowDateTime, (LONG)b->dwHighDateTime}};
                                                            ^~~~~~~~~~~~~~~~~~~~~~~
    /wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:536:29: note: insert an explicit cast to silence this issue
                                    B = {{b->dwLowDateTime, (LONG)b->dwHighDateTime}};
                                                            ^~~~~~~~~~~~~~~~~~~~~~~
                                                            static_cast<DWORD>(    )
    4 errors generated.
---
 misc/far2l/files/patch-far2l_src_datetime.cpp | 42 +++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/misc/far2l/files/patch-far2l_src_datetime.cpp b/misc/far2l/files/patch-far2l_src_datetime.cpp
new file mode 100644
index 000000000000..95cd26f1daf2
--- /dev/null
+++ b/misc/far2l/files/patch-far2l_src_datetime.cpp
@@ -0,0 +1,42 @@
+--- far2l/src/datetime.cpp.orig	2023-10-06 15:57:46 UTC
++++ far2l/src/datetime.cpp
+@@ -531,15 +531,27 @@ int64_t FileTimeDifference(const FILETIME *a, const FI
+ {
+ 	LARGE_INTEGER A =
+ 						{
++#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
++								{(LONG)a->dwHighDateTime, a->dwLowDateTime}
++#else
+ 								{a->dwLowDateTime, (LONG)a->dwHighDateTime}
++#endif
+     },
++#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
++				B = {{(LONG)b->dwHighDateTime, b->dwLowDateTime}};
++#else
+ 				B = {{b->dwLowDateTime, (LONG)b->dwHighDateTime}};
++#endif
+ 	return A.QuadPart - B.QuadPart;
+ }
+ 
+ uint64_t FileTimeToUI64(const FILETIME *ft)
+ {
++#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
++	ULARGE_INTEGER A = { {ft->dwHighDateTime, ft->dwLowDateTime} };
++#else
+ 	ULARGE_INTEGER A = { {ft->dwLowDateTime, ft->dwHighDateTime} };
++#endif
+ 	return A.QuadPart;
+ }
+ 
+@@ -761,7 +773,11 @@ void ConvertRelativeDate(const FILETIME &ft, FARString
+ 
+ void ConvertRelativeDate(const FILETIME &ft, FARString &strDaysText, FARString &strTimeText)
+ {
++#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
++	ULARGE_INTEGER time = { {ft.dwHighDateTime, ft.dwLowDateTime}};
++#else
+ 	ULARGE_INTEGER time = { {ft.dwLowDateTime, ft.dwHighDateTime}};
++#endif
+ 
+ 	UINT64 ms = (time.QuadPart/= 10000) % 1000;
+ 	UINT64 s = (time.QuadPart/= 1000) % 60;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202310061639.396GdIbS010416>