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:
Colin Cross 2015-02-12 18:23:08 +00:00 committed by Android Git Automerger
commit baf164221b
2 changed files with 5 additions and 32 deletions

View File

@ -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;

View File

@ -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