am 362d6779
: Merge "Remove no-op sed step when compiling crtbrand.o"
* commit '362d677924a5f92190884ff225fe64820ad5d997': Remove no-op sed step when compiling crtbrand.o
This commit is contained in:
commit
baf164221b
@ -32,21 +32,6 @@
|
||||
|
||||
/*
|
||||
* Special ".note" entry to tag an Android binary and specify the ABI version.
|
||||
*
|
||||
* For all arches except sparc, gcc emits the section directive for the
|
||||
* following struct with a PROGBITS type. However, the section should be
|
||||
* of NOTE type, according to the Generic SysV ABI spec.
|
||||
*
|
||||
* Unfortunately, there is no clean way to tell gcc to use another section type,
|
||||
* so this C file (or the C file that includes it) must be compiled in multiple
|
||||
* steps:
|
||||
*
|
||||
* - Compile the .c file to a .s file.
|
||||
* - Edit the .s file to change the 'progbits' type to 'note', for the section
|
||||
* directive that defines the .note.ABI-tag section.
|
||||
* - Compile the .s file to an object file.
|
||||
*
|
||||
* These steps are done in the invididual Makefiles for each applicable arch.
|
||||
*/
|
||||
static const struct {
|
||||
int32_t namesz;
|
||||
|
22
libc/crt.mk
22
libc/crt.mk
@ -32,26 +32,14 @@ my_libc_crt_target_so_cflags := \
|
||||
my_libc_crt_target_ldflags := $(libc_crt_target_ldflags_$(my_arch))
|
||||
|
||||
|
||||
# See the comment in crtbrand.c for the reason why we need to generate
|
||||
# crtbrand.s before generating crtbrand.o.
|
||||
GEN := $($(my_2nd_arch_prefix)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.s
|
||||
$(GEN): PRIVATE_CC := $($(my_2nd_arch_prefix)TARGET_CC)
|
||||
$(GEN): PRIVATE_CFLAGS := $(my_libc_crt_target_so_cflags)
|
||||
$(GEN): $(LOCAL_PATH)/bionic/crtbrand.c
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) $(PRIVATE_CC) $(PRIVATE_CFLAGS) -S \
|
||||
-MD -MF $(@:%.s=%.d) -o $@ $<
|
||||
$(hide) sed -i -e '/\.note\.ABI-tag/s/progbits/note/' $@
|
||||
$(call transform-d-to-p-args,$(@:%.s=%.d),$(@:%.s=%.P))
|
||||
-include $(GEN:%.s=%.P)
|
||||
|
||||
|
||||
GEN := $($(my_2nd_arch_prefix)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
|
||||
$(GEN): PRIVATE_CC := $($(my_2nd_arch_prefix)TARGET_CC)
|
||||
$(GEN): PRIVATE_CFLAGS := $(my_libc_crt_target_so_cflags)
|
||||
$(GEN): $($(my_2nd_arch_prefix)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.s
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) $(PRIVATE_CC) $(PRIVATE_CFLAGS) -o $@ -c $<
|
||||
$(GEN): $(LOCAL_PATH)/bionic/crtbrand.c
|
||||
$(hide) $(PRIVATE_CC) $(PRIVATE_CFLAGS) \
|
||||
-MD -MF $(@:%.o=%.d) -o $@ -c $<
|
||||
$(transform-d-to-p)
|
||||
-include $(GEN:%.o=%.P)
|
||||
|
||||
|
||||
GEN := $($(my_2nd_arch_prefix)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_so.o
|
||||
|
Loading…
Reference in New Issue
Block a user