|
@@ -20,12 +20,8 @@ lib-y = __divqu.o __remqu.o __divlu.o __remlu.o \
|
|
|
checksum.o \
|
|
|
csum_partial_copy.o \
|
|
|
$(ev67-y)strlen.o \
|
|
|
- $(ev67-y)strcat.o \
|
|
|
- strcpy.o \
|
|
|
- $(ev67-y)strncat.o \
|
|
|
- strncpy.o \
|
|
|
- $(ev6-y)stxcpy.o \
|
|
|
- $(ev6-y)stxncpy.o \
|
|
|
+ stycpy.o \
|
|
|
+ styncpy.o \
|
|
|
$(ev67-y)strchr.o \
|
|
|
$(ev67-y)strrchr.o \
|
|
|
$(ev6-y)memchr.o \
|
|
@@ -49,3 +45,17 @@ AFLAGS___remlu.o = -DREM -DINTSIZE
|
|
|
$(addprefix $(obj)/,__divqu.o __remqu.o __divlu.o __remlu.o): \
|
|
|
$(src)/$(ev6-y)divide.S FORCE
|
|
|
$(call if_changed_rule,as_o_S)
|
|
|
+
|
|
|
+# There are direct branches between {str*cpy,str*cat} and stx*cpy.
|
|
|
+# Ensure the branches are within range by merging these objects.
|
|
|
+
|
|
|
+LDFLAGS_stycpy.o := -r
|
|
|
+LDFLAGS_styncpy.o := -r
|
|
|
+
|
|
|
+$(obj)/stycpy.o: $(obj)/strcpy.o $(obj)/$(ev67-y)strcat.o \
|
|
|
+ $(obj)/$(ev6-y)stxcpy.o FORCE
|
|
|
+ $(call if_changed,ld)
|
|
|
+
|
|
|
+$(obj)/styncpy.o: $(obj)/strncpy.o $(obj)/$(ev67-y)strncat.o \
|
|
|
+ $(obj)/$(ev6-y)stxncpy.o FORCE
|
|
|
+ $(call if_changed,ld)
|