Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ia64: restore symbol versions for symbols defined in assembly

The ia64 build generates many warnings like this:

WARNING: EXPORT symbol "empty_zero_page" [vmlinux] version generation failed, symbol will not be versioned.

Besides adding the necessary header this also requires fiddling with
some explicit .S -> .o rules.

Cc: IA64-ML <linux-ia64@vger.kernel.org>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Jan Beulich and committed by
Linus Torvalds
d8a6e3ae 27600782

+37 -8
+29
arch/ia64/include/asm/asm-prototypes.h
··· 1 + #ifndef _ASM_IA64_ASM_PROTOTYPES_H 2 + #define _ASM_IA64_ASM_PROTOTYPES_H 3 + 4 + #include <asm/cacheflush.h> 5 + #include <asm/checksum.h> 6 + #include <asm/esi.h> 7 + #include <asm/ftrace.h> 8 + #include <asm/page.h> 9 + #include <asm/pal.h> 10 + #include <asm/string.h> 11 + #include <asm/uaccess.h> 12 + #include <asm/unwind.h> 13 + #include <asm/xor.h> 14 + 15 + extern const char ia64_ivt[]; 16 + 17 + signed int __divsi3(signed int, unsigned int); 18 + signed int __modsi3(signed int, unsigned int); 19 + 20 + signed long long __divdi3(signed long long, unsigned long long); 21 + signed long long __moddi3(signed long long, unsigned long long); 22 + 23 + unsigned int __udivsi3(unsigned int, unsigned int); 24 + unsigned int __umodsi3(unsigned int, unsigned int); 25 + 26 + unsigned long long __udivdi3(unsigned long long, unsigned long long); 27 + unsigned long long __umoddi3(unsigned long long, unsigned long long); 28 + 29 + #endif /* _ASM_IA64_ASM_PROTOTYPES_H */
+8 -8
arch/ia64/lib/Makefile
··· 24 24 AFLAGS___umodsi3.o = -DUNSIGNED -DMODULO 25 25 26 26 $(obj)/__divdi3.o: $(src)/idiv64.S FORCE 27 - $(call if_changed_dep,as_o_S) 27 + $(call if_changed_rule,as_o_S) 28 28 29 29 $(obj)/__udivdi3.o: $(src)/idiv64.S FORCE 30 - $(call if_changed_dep,as_o_S) 30 + $(call if_changed_rule,as_o_S) 31 31 32 32 $(obj)/__moddi3.o: $(src)/idiv64.S FORCE 33 - $(call if_changed_dep,as_o_S) 33 + $(call if_changed_rule,as_o_S) 34 34 35 35 $(obj)/__umoddi3.o: $(src)/idiv64.S FORCE 36 - $(call if_changed_dep,as_o_S) 36 + $(call if_changed_rule,as_o_S) 37 37 38 38 $(obj)/__divsi3.o: $(src)/idiv32.S FORCE 39 - $(call if_changed_dep,as_o_S) 39 + $(call if_changed_rule,as_o_S) 40 40 41 41 $(obj)/__udivsi3.o: $(src)/idiv32.S FORCE 42 - $(call if_changed_dep,as_o_S) 42 + $(call if_changed_rule,as_o_S) 43 43 44 44 $(obj)/__modsi3.o: $(src)/idiv32.S FORCE 45 - $(call if_changed_dep,as_o_S) 45 + $(call if_changed_rule,as_o_S) 46 46 47 47 $(obj)/__umodsi3.o: $(src)/idiv32.S FORCE 48 - $(call if_changed_dep,as_o_S) 48 + $(call if_changed_rule,as_o_S)