Commit d8a6e3ae authored by Jan Beulich's avatar Jan Beulich Committed by Linus Torvalds
Browse files

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: default avatarJan Beulich <jbeulich@suse.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 27600782
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
#ifndef _ASM_IA64_ASM_PROTOTYPES_H
#define _ASM_IA64_ASM_PROTOTYPES_H

#include <asm/cacheflush.h>
#include <asm/checksum.h>
#include <asm/esi.h>
#include <asm/ftrace.h>
#include <asm/page.h>
#include <asm/pal.h>
#include <asm/string.h>
#include <asm/uaccess.h>
#include <asm/unwind.h>
#include <asm/xor.h>

extern const char ia64_ivt[];

signed int __divsi3(signed int, unsigned int);
signed int __modsi3(signed int, unsigned int);

signed long long __divdi3(signed long long, unsigned long long);
signed long long __moddi3(signed long long, unsigned long long);

unsigned int __udivsi3(unsigned int, unsigned int);
unsigned int __umodsi3(unsigned int, unsigned int);

unsigned long long __udivdi3(unsigned long long, unsigned long long);
unsigned long long __umoddi3(unsigned long long, unsigned long long);

#endif /* _ASM_IA64_ASM_PROTOTYPES_H */
+8 −8
Original line number Diff line number Diff line
@@ -24,25 +24,25 @@ AFLAGS___modsi3.o = -DMODULO
AFLAGS___umodsi3.o	= -DUNSIGNED -DMODULO

$(obj)/__divdi3.o: $(src)/idiv64.S FORCE
	$(call if_changed_dep,as_o_S)
	$(call if_changed_rule,as_o_S)

$(obj)/__udivdi3.o: $(src)/idiv64.S FORCE
	$(call if_changed_dep,as_o_S)
	$(call if_changed_rule,as_o_S)

$(obj)/__moddi3.o: $(src)/idiv64.S FORCE
	$(call if_changed_dep,as_o_S)
	$(call if_changed_rule,as_o_S)

$(obj)/__umoddi3.o: $(src)/idiv64.S FORCE
	$(call if_changed_dep,as_o_S)
	$(call if_changed_rule,as_o_S)

$(obj)/__divsi3.o: $(src)/idiv32.S FORCE
	$(call if_changed_dep,as_o_S)
	$(call if_changed_rule,as_o_S)

$(obj)/__udivsi3.o: $(src)/idiv32.S FORCE
	$(call if_changed_dep,as_o_S)
	$(call if_changed_rule,as_o_S)

$(obj)/__modsi3.o: $(src)/idiv32.S FORCE
	$(call if_changed_dep,as_o_S)
	$(call if_changed_rule,as_o_S)

$(obj)/__umodsi3.o: $(src)/idiv32.S FORCE
	$(call if_changed_dep,as_o_S)
	$(call if_changed_rule,as_o_S)