diff options
author | Jing Yu <jingyu@google.com> | 2012-02-15 15:40:16 -0800 |
---|---|---|
committer | Jing Yu <jingyu@google.com> | 2012-02-15 15:40:16 -0800 |
commit | 3f73d6ef90458b45bbbb33ef4c2b174d4662a22d (patch) | |
tree | 1b5f0d96c51b51168b3713058a1b62e92f1136eb /gcc-4.6/libffi | |
parent | d7030123e04baab5dbff9c9ee04c0de99bd9a774 (diff) | |
download | toolchain_gcc-3f73d6ef90458b45bbbb33ef4c2b174d4662a22d.tar.gz toolchain_gcc-3f73d6ef90458b45bbbb33ef4c2b174d4662a22d.tar.bz2 toolchain_gcc-3f73d6ef90458b45bbbb33ef4c2b174d4662a22d.zip |
Sync down FSF r184235@google/gcc-4_6_2-mobile branch
1) Get mostly new patches from FSF gcc-4.6 branch
2) Fix PR52129
3) Insert GNU-stack note for all ARM targets
Change-Id: I2b9926981210e517e4021242908074319a91d6bd
Diffstat (limited to 'gcc-4.6/libffi')
-rw-r--r-- | gcc-4.6/libffi/ChangeLog | 18 | ||||
-rwxr-xr-x | gcc-4.6/libffi/configure | 6 | ||||
-rw-r--r-- | gcc-4.6/libffi/src/arm/ffi.c | 6 | ||||
-rw-r--r-- | gcc-4.6/libffi/src/powerpc/darwin_closure.S | 7 |
4 files changed, 30 insertions, 7 deletions
diff --git a/gcc-4.6/libffi/ChangeLog b/gcc-4.6/libffi/ChangeLog index c679540e5..24c256cc7 100644 --- a/gcc-4.6/libffi/ChangeLog +++ b/gcc-4.6/libffi/ChangeLog @@ -1,3 +1,21 @@ +2011-11-20 Andreas Tobler <andreast@fgznet.ch> + + * configure: Regenerate. + +2011-10-26 Release Manager + + * GCC 4.6.2 released. + +2011-10-04 Andrew Haley <aph@redhat.com> + + * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache. + +2011-09-04 Iain Sandoe <iains@gcc.gnu.org> + + PR libffi/49594 + * src/powerpc/darwin_closure.S (stubs): Make the stub binding + helper reference track the architecture pointer size. + 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * testsuite/libffi.call/cls_double_va.c: Move PR number to comment. diff --git a/gcc-4.6/libffi/configure b/gcc-4.6/libffi/configure index 353cc7e4f..9e653c91a 100755 --- a/gcc-4.6/libffi/configure +++ b/gcc-4.6/libffi/configure @@ -9016,7 +9016,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes @@ -9929,7 +9929,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -9947,7 +9947,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) diff --git a/gcc-4.6/libffi/src/arm/ffi.c b/gcc-4.6/libffi/src/arm/ffi.c index 9a0a53c83..4e72c3bcd 100644 --- a/gcc-4.6/libffi/src/arm/ffi.c +++ b/gcc-4.6/libffi/src/arm/ffi.c @@ -341,12 +341,16 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, ({ unsigned char *__tramp = (unsigned char*)(TRAMP); \ unsigned int __fun = (unsigned int)(FUN); \ unsigned int __ctx = (unsigned int)(CTX); \ + unsigned char *insns = (unsigned char *)(CTX); \ *(unsigned int*) &__tramp[0] = 0xe92d000f; /* stmfd sp!, {r0-r3} */ \ *(unsigned int*) &__tramp[4] = 0xe59f0000; /* ldr r0, [pc] */ \ *(unsigned int*) &__tramp[8] = 0xe59ff000; /* ldr pc, [pc] */ \ *(unsigned int*) &__tramp[12] = __ctx; \ *(unsigned int*) &__tramp[16] = __fun; \ - __clear_cache((&__tramp[0]), (&__tramp[19])); \ + __clear_cache((&__tramp[0]), (&__tramp[19])); /* Clear data mapping. */ \ + __clear_cache(insns, insns + 3 * sizeof (unsigned int)); \ + /* Clear instruction \ + mapping. */ \ }) diff --git a/gcc-4.6/libffi/src/powerpc/darwin_closure.S b/gcc-4.6/libffi/src/powerpc/darwin_closure.S index 8c0e11a18..b43f9658f 100644 --- a/gcc-4.6/libffi/src/powerpc/darwin_closure.S +++ b/gcc-4.6/libffi/src/powerpc/darwin_closure.S @@ -534,7 +534,7 @@ L_ffi_closure_helper_DARWIN$stub: .lazy_symbol_pointer L_ffi_closure_helper_DARWIN$lazy_ptr: .indirect_symbol _ffi_closure_helper_DARWIN - .long dyld_stub_binding_helper + .g_long dyld_stub_binding_helper #if defined(__ppc64__) .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 @@ -553,7 +553,8 @@ L_darwin64_struct_ret_by_value_p$stub: .lazy_symbol_pointer L_darwin64_struct_ret_by_value_p$lazy_ptr: .indirect_symbol _darwin64_struct_ret_by_value_p - .long dyld_stub_binding_helper + .g_long dyld_stub_binding_helper + .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 .align 5 L_darwin64_pass_struct_floats$stub: @@ -570,6 +571,6 @@ L_darwin64_pass_struct_floats$stub: .lazy_symbol_pointer L_darwin64_pass_struct_floats$lazy_ptr: .indirect_symbol _darwin64_pass_struct_floats - .long dyld_stub_binding_helper + .g_long dyld_stub_binding_helper # endif #endif |