vboxguestdrivers: Add __divmoddi4 builtin support

gcc 11 needs it on i686

Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit 57f7692e8e)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
Khem Raj 2021-03-19 01:14:03 -07:00 committed by Armin Kuster
parent 4435dfaa9e
commit 12bc39d8c5
2 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,36 @@
add __divmoddi4 builtin
GCC 11 will generate it in code
void foo(unsigned char *u8Second, unsigned int *u32Nanosecond, long long timeSpec)
{
long long i64Div;
int i32Div;
int i32Rem;
i64Div = timeSpec;
i32Rem = (int)(i64Div % 1000000000);
i64Div /= 1000000000;
*u32Nanosecond = i32Rem;
i32Rem = (int)(i64Div % 60);
*u8Second = i32Rem;
}
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/src/VBox/Runtime/common/math/gcc/divdi3.c
+++ b/src/VBox/Runtime/common/math/gcc/divdi3.c
@@ -68,3 +68,12 @@ __divdi3(a, b)
uq = - uq;
return uq;
}
+
+quad_t
+__divmoddi4(quad_t a, quad_t b, quad_t* rem)
+{
+ quad_t d = __divdi3(a,b);
+ *rem = a - (d*b);
+ return d;
+}
+

View File

@ -14,6 +14,7 @@ VBOX_NAME = "VirtualBox-${PV}"
SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
file://Makefile.utils \
file://kernel-5.10.patch \
file://add__divmoddi4.patch \
"
SRC_URI[md5sum] = "c61001386eb3822ab8f06d688a82e84b"
SRC_URI[sha256sum] = "108d42b9b391b7a332a33df1662cf7b0e9d9a80f3079d16288d8b9487f427d40"