x86: fix full_x86-eng build
The latest merge conflict resolution worked only for ARM, but not for x86 Both ARM and x86 builds have been tested with this fix. Change-Id: I4ec1f1b0ea32fa86e7e2515b221133473d6550a3 NOTE: Care has been taken to not change the compiler flags for ARM builds. In particular, when building crtbegin_so.so, the -fPIC flag is only used for x86 (previous reports indicate that it breaks the ARM build at runtime for obscure reasons).
This commit is contained in:
parent
afc92c7023
commit
2d2dbd3024
@ -555,18 +555,24 @@ ifneq ($(filter arm x86,$(TARGET_ARCH)),)
|
|||||||
# that will call __cxa_finalize(&__dso_handle) in order to ensure that
|
# that will call __cxa_finalize(&__dso_handle) in order to ensure that
|
||||||
# static C++ destructors are properly called on dlclose().
|
# static C++ destructors are properly called on dlclose().
|
||||||
#
|
#
|
||||||
|
|
||||||
|
libc_crt_target_so_cflags := $(libc_crt_target_cflags)
|
||||||
|
ifeq ($(TARGET_ARCH),x86)
|
||||||
|
# This flag must be added for x86 targets, but not for ARM
|
||||||
|
libc_crt_target_so_cflags += -fPIC
|
||||||
|
endif
|
||||||
GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_so.o
|
GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_so.o
|
||||||
$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin_so.S
|
$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin_so.S
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
$(TARGET_CC) $(libc_crt_target_cflags) -o $@ -c $<
|
$(TARGET_CC) $(libc_crt_target_so_cflags) -o $@ -c $<
|
||||||
ALL_GENERATED_SOURCES += $(GEN)
|
ALL_GENERATED_SOURCES += $(GEN)
|
||||||
|
|
||||||
GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_so.o
|
GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_so.o
|
||||||
$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend_so.S
|
$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend_so.S
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
$(TARGET_CC) $(libc_crt_target_cflags) -o $@ -c $<
|
$(TARGET_CC) $(libc_crt_target_so_cflags) -o $@ -c $<
|
||||||
ALL_GENERATED_SOURCES += $(GEN)
|
ALL_GENERATED_SOURCES += $(GEN)
|
||||||
endif # TARGET_ARCH == x86
|
endif # TARGET_ARCH == x86 || TARGET_ARCH == arm
|
||||||
|
|
||||||
|
|
||||||
GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_static.o
|
GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_static.o
|
||||||
|
48
libc/arch-x86/bionic/__stack_chk_fail_local.S
Normal file
48
libc/arch-x86/bionic/__stack_chk_fail_local.S
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2011 The Android Open Source Project
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||||
|
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* Contributed by: Intel Corporation
|
||||||
|
*/
|
||||||
|
|
||||||
|
.text
|
||||||
|
.p2align 4,,15
|
||||||
|
.globl __stack_chk_fail_local
|
||||||
|
.hidden __stack_chk_fail_local
|
||||||
|
.type __stack_chk_fail_local, @function
|
||||||
|
|
||||||
|
__stack_chk_fail_local:
|
||||||
|
#ifdef __PIC__
|
||||||
|
pushl %ebx
|
||||||
|
call __x86.get_pc_thunk.bx
|
||||||
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
||||||
|
call __stack_chk_fail@PLT
|
||||||
|
#else /* PIC */
|
||||||
|
jmp __stack_chk_fail
|
||||||
|
#endif /* not PIC */
|
||||||
|
|
||||||
|
.size __stack_chk_fail_local, .-__stack_chk_fail_local
|
@ -6,3 +6,10 @@
|
|||||||
|
|
||||||
.section .fini_array, "aw"
|
.section .fini_array, "aw"
|
||||||
.long 0
|
.long 0
|
||||||
|
|
||||||
|
.section .eh_frame,"a",@progbits
|
||||||
|
.align 4
|
||||||
|
.type __FRAME_END__, @object
|
||||||
|
.size __FRAME_END__, 4
|
||||||
|
__FRAME_END__:
|
||||||
|
.zero 4
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
|
|
||||||
.section .init_array, "aw"
|
.section .init_array, "aw"
|
||||||
.long 0
|
.long 0
|
||||||
|
|
||||||
.section .fini_array, "aw"
|
.section .fini_array, "aw"
|
||||||
.long 0
|
.long 0
|
||||||
|
|
||||||
|
.section .eh_frame,"a",@progbits
|
||||||
|
.align 4
|
||||||
|
.type __FRAME_END__, @object
|
||||||
|
.size __FRAME_END__, 4
|
||||||
|
__FRAME_END__:
|
||||||
|
.zero 4
|
||||||
|
Loading…
x
Reference in New Issue
Block a user