Index: kernel/genarch/include/genarch/softint/division.h
===================================================================
--- kernel/genarch/include/genarch/softint/division.h	(revision e1fc679a4476fa9e58fe39d81cd6aac27992912a)
+++ kernel/genarch/include/genarch/softint/division.h	(revision 21799398fb5b1afa28852a26b87fcf58caf15a28)
@@ -36,9 +36,17 @@
 #define KERN_DIVISION_H_
 
+#include <cc.h>
+
+#ifdef CONFIG_LTO
+#define DO_NOT_DISCARD ATTRIBUTE_USED
+#else
+#define DO_NOT_DISCARD
+#endif
+
 extern int __divsi3(int, int);
 extern long long __divdi3(long long, long long);
 
 extern unsigned int __udivsi3(unsigned int, unsigned int);
-extern unsigned long long __udivdi3(unsigned long long, unsigned long long);
+extern unsigned long long __udivdi3(unsigned long long, unsigned long long) DO_NOT_DISCARD;
 
 extern int __modsi3(int, int);
@@ -46,5 +54,5 @@
 
 extern unsigned int __umodsi3(unsigned int, unsigned int);
-extern unsigned long long __umoddi3(unsigned long long, unsigned long long);
+extern unsigned long long __umoddi3(unsigned long long, unsigned long long) DO_NOT_DISCARD;
 
 extern int __divmodsi3(int, int, int *);
