[ARC] Fix PIE.
authorCupertino Miranda <cmiranda@synopsys.com>
Mon, 5 Dec 2016 11:16:52 +0000 (11:16 +0000)
committerClaudiu Zissulescu <claziss@gcc.gnu.org>
Mon, 5 Dec 2016 11:16:52 +0000 (12:16 +0100)
gcc/
2016-12-05  Cupertino Miranda  <cmiranda@synopsys.com>

* config/arc/arc.h (STARTFILE_SPEC): Use default linux specs.
(ENDFILE_SPEC): Likewise.

libgcc/
2016-12-05  Cupertino Miranda  <cmiranda@synopsys.com>

* config.host (arc*-*-linux-uclibc*): Use default extra
objects. Include linux-android header.
* config/arc/crti.S (_init): Declare symbol as function.
(_fini): Likewise.

From-SVN: r243245

gcc/ChangeLog
gcc/config.gcc
gcc/config/arc/arc.h
libgcc/ChangeLog
libgcc/config.host
libgcc/config/arc/crti.S

index c5095c2599cee0df8328c5c0e6e2623130f62ac5..ad903f94d832086f06ccbfde1cdec0314c04015e 100644 (file)
@@ -1,3 +1,8 @@
+2016-12-05  Cupertino Miranda  <cmiranda@synopsys.com>
+
+       * config/arc/arc.h (STARTFILE_SPEC): Use default linux specs.
+       (ENDFILE_SPEC): Likewise.
+
 2016-12-05  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * config/arc/arc-protos.h (insn_is_tls_gd_dispatch): Remove.
index 189073ecbb06b8dcd06702edfe26353150615b3e..e034bc30f3d01a888833f3f4b7d91ca96ebaaf7d 100644 (file)
@@ -1023,7 +1023,7 @@ arc*-*-elf*)
        ;;
 arc*-*-linux-uclibc*)
        extra_headers="arc-simd.h"
-       tm_file="arc/arc-arch.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
+       tm_file="arc/arc-arch.h dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file}"
        tmake_file="${tmake_file} arc/t-uClibc arc/t-arc"
        tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
        tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
index 64bd9e0212c88a55ae082fd108e1cdb68b720c8f..f9512c46680d80f9f47b4f467848d48051a729d0 100644 (file)
@@ -138,17 +138,15 @@ extern const char *arc_cpu_to_as (int argc, const char **argv);
 #define STARTFILE_SPEC "%{!shared:crt0.o%s} crti%O%s %{pg|p:crtg.o%s} " \
   "%(arc_tls_extra_start_spec) crtbegin.o%s"
 #else
-#define STARTFILE_SPEC   "%{!shared:%{!mkernel:crt1.o%s}} crti.o%s \
-  %{!shared:%{pg|p|profile:crtg.o%s} crtbegin.o%s} %{shared:crtbeginS.o%s}"
-
+#define STARTFILE_SPEC                                                 \
+  LINUX_OR_ANDROID_LD (GNU_USER_TARGET_STARTFILE_SPEC, ANDROID_STARTFILE_SPEC)
 #endif
 
 #if DEFAULT_LIBC != LIBC_UCLIBC
 #define ENDFILE_SPEC "%{pg|p:crtgend.o%s} crtend.o%s crtn%O%s"
 #else
-#define ENDFILE_SPEC "%{!shared:%{pg|p|profile:crtgend.o%s} crtend.o%s} \
-  %{shared:crtendS.o%s} crtn.o%s"
-
+#define ENDFILE_SPEC                                                   \
+  LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
 #endif
 
 #if DEFAULT_LIBC == LIBC_UCLIBC
index efadedf850fb82b2cbdabbfc0c8b9e42390793f7..d4a1bad2d840ecfb04adfcc599aee2196013d70f 100644 (file)
@@ -1,3 +1,10 @@
+2016-12-05  Cupertino Miranda  <cmiranda@synopsys.com>
+
+       * config.host (arc*-*-linux-uclibc*): Use default extra
+       objects. Include linux-android header.
+       * config/arc/crti.S (_init): Declare symbol as function.
+       (_fini): Likewise.
+
 2016-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/78379
index e7e5413f0d5ec510f4868f6d4ec8d175b392fd8e..b1a2be640a3a46f4f907736c4893c0e813b69ebe 100644 (file)
@@ -374,8 +374,8 @@ arc*-*-elf*)
        ;;
 arc*-*-linux-uclibc*)
        tmake_file="${tmake_file} t-slibgcc-libgcc t-slibgcc-nolc-override arc/t-arc700-uClibc arc/t-arc"
-       extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o libgmon.a crtg.o crtgend.o"
-       extra_parts="${extra_parts} crttls.o"
+       extra_parts="$extra_parts crti.o crtn.o libgmon.a crtg.o crtgend.o"
+       extra_parts="$extra_parts crttls.o"
        ;;
 arm-wrs-vxworks)
        tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
index 7f643056c9642dfb451eb2b5d23c7613e22d844e..6867ca99e83940ecd86434496c3e4b05ac800279 100644 (file)
@@ -31,11 +31,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        .section .init
        .global _init
        .word 0
+       .type   _init,@function
 _init:
        push_s  blink
 
        .section .fini
        .global _fini
        .word 0
+       .type   _fini,@function
 _fini:
        push_s  blink