1 # SPDX-License-Identifier: GPL-2.0
3 # Makefile for alpha-specific library files..
6 asflags-y
:= $(KBUILD_CFLAGS
)
9 # Many of these routines have implementations tuned for ev6.
10 # Choose them iff we're targeting ev6 specifically.
11 ev6-
$(CONFIG_ALPHA_EV6
) := ev6-
13 # Several make use of the cttz instruction introduced in ev67.
14 ev67-
$(CONFIG_ALPHA_EV67
) := ev67-
16 lib-y
= __divqu.o __remqu.o __divlu.o __remlu.o \
30 $(ev6-y
)clear_user.o \
31 $(ev6-y
)csum_ipv6_magic.o \
32 $(ev6-y
)clear_page.o \
35 callback_srm.o srm_puts.o srm_printk.o \
38 lib-
$(CONFIG_SMP
) += dec_and_lock.o
40 # The division routines are built from single source, with different defines.
41 AFLAGS___divqu.o
= -DDIV
42 AFLAGS___remqu.o
= -DREM
43 AFLAGS___divlu.o
= -DDIV
-DINTSIZE
44 AFLAGS___remlu.o
= -DREM
-DINTSIZE
46 $(addprefix $(obj
)/,__divqu.o __remqu.o __divlu.o __remlu.o
): \
47 $(src
)/$(ev6-y
)divide.S FORCE
48 $(call if_changed_rule
,as_o_S
)
50 # There are direct branches between {str*cpy,str*cat} and stx*cpy.
51 # Ensure the branches are within range by merging these objects.
53 LDFLAGS_stycpy.o
:= -r
54 LDFLAGS_styncpy.o
:= -r
56 $(obj
)/stycpy.o
: $(obj
)/strcpy.o
$(obj
)/$(ev67-y
)strcat.o \
57 $(obj
)/$(ev6-y
)stxcpy.o FORCE
60 $(obj
)/styncpy.o
: $(obj
)/strncpy.o
$(obj
)/$(ev67-y
)strncat.o \
61 $(obj
)/$(ev6-y
)stxncpy.o FORCE