Module Name: src Committed By: riz Date: Mon Aug 13 17:09:50 UTC 2012
Modified Files: src/external/gpl3/gcc/dist/gcc/config [netbsd-6]: netbsd-elf.h src/lib/csu/sparc64 [netbsd-6]: Makefile crt0.c src/lib/csu/sparc_elf [netbsd-6]: Makefile crt0.c Log Message: Pull up following revision(s) (requested by martin in ticket #475): lib/csu/sparc_elf/Makefile: revision 1.7 external/gpl3/gcc/dist/gcc/config/netbsd-elf.h: revision 1.4 lib/csu/sparc64/Makefile: revision 1.9 lib/csu/sparc_elf/crt0.c: revision 1.15 lib/csu/sparc64/crt0.c: revision 1.27 Make this position independend (for -pie executables) Slightly simplify and make position independend. Part of fixing PR port-sparc64/46724. pay attention to -pie: link crt{begin,end}S.o. this fixes -fpie on sparc and sparc64, and probably others. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.2.4.1 \ src/external/gpl3/gcc/dist/gcc/config/netbsd-elf.h cvs rdiff -u -r1.8 -r1.8.4.1 src/lib/csu/sparc64/Makefile cvs rdiff -u -r1.26 -r1.26.6.1 src/lib/csu/sparc64/crt0.c cvs rdiff -u -r1.6 -r1.6.44.1 src/lib/csu/sparc_elf/Makefile cvs rdiff -u -r1.14 -r1.14.6.1 src/lib/csu/sparc_elf/crt0.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/gpl3/gcc/dist/gcc/config/netbsd-elf.h diff -u src/external/gpl3/gcc/dist/gcc/config/netbsd-elf.h:1.2 src/external/gpl3/gcc/dist/gcc/config/netbsd-elf.h:1.2.4.1 --- src/external/gpl3/gcc/dist/gcc/config/netbsd-elf.h:1.2 Tue Jun 21 02:41:36 2011 +++ src/external/gpl3/gcc/dist/gcc/config/netbsd-elf.h Mon Aug 13 17:09:49 2012 @@ -52,8 +52,11 @@ along with GCC; see the file COPYING3. %{!p:crt0%O%s}}} \ %:if-exists(crti%O%s) \ %{static:%:if-exists-else(crtbeginT%O%s crtbegin%O%s)} \ - %{!static: \ - %{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}}" + %{!static: \ + %{!shared: \ + %{!pie:crtbegin%O%s} \ + %{pie:crtbeginS%O%s}} \ + %{shared:crtbeginS%O%s}}" #undef STARTFILE_SPEC #define STARTFILE_SPEC NETBSD_STARTFILE_SPEC @@ -64,7 +67,10 @@ along with GCC; see the file COPYING3. C++ file-scope static objects deconstructed after exiting "main". */ #define NETBSD_ENDFILE_SPEC \ - "%{!shared:crtend%O%s} %{shared:crtendS%O%s} \ + "%{!shared: \ + %{!pie:crtend%O%s} \ + %{pie:crtendS%O%s}} \ + %{shared:crtendS%O%s} \ %:if-exists(crtn%O%s)" #undef ENDFILE_SPEC Index: src/lib/csu/sparc64/Makefile diff -u src/lib/csu/sparc64/Makefile:1.8 src/lib/csu/sparc64/Makefile:1.8.4.1 --- src/lib/csu/sparc64/Makefile:1.8 Sat Jul 16 23:07:50 2011 +++ src/lib/csu/sparc64/Makefile Mon Aug 13 17:09:49 2012 @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.8 2011/07/16 23:07:50 mrg Exp $ +# $NetBSD: Makefile,v 1.8.4.1 2012/08/13 17:09:49 riz Exp $ -#Uncomment the next line to enable the new .init fallthru CPPFLAGS+= -I${.CURDIR}/../sparc_elf +CFLAGS+= -fPIC ELFSIZE=64 Index: src/lib/csu/sparc64/crt0.c diff -u src/lib/csu/sparc64/crt0.c:1.26 src/lib/csu/sparc64/crt0.c:1.26.6.1 --- src/lib/csu/sparc64/crt0.c:1.26 Mon Mar 7 05:09:11 2011 +++ src/lib/csu/sparc64/crt0.c Mon Aug 13 17:09:50 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: crt0.c,v 1.26 2011/03/07 05:09:11 joerg Exp $ */ +/* $NetBSD: crt0.c,v 1.26.6.1 2012/08/13 17:09:50 riz Exp $ */ /* * Copyright (c) 1995 Christopher G. Demetriou @@ -45,8 +45,6 @@ */ __asm("\n\ - .data\n\ -__data_start: ! Start of data section\n\ .text\n\ .align 4\n\ .global _start\n\ @@ -55,11 +53,9 @@ __data_start: ! Start of data sectio .register %g2,#scratch\n\ _start:\n\ __start:\n\ - setx __data_start, %o0, %g4 ! Point %g4 to start of data section\n\ - clr %g4 ! egcs thinks this is zero. XXX\n\ + clr %g4 ! XXX depends on memory model used \n\ clr %fp\n\ add %sp, 8*16 + 0x7ff, %o0 ! start of stack\n\ - mov %g1, %o1 ! Cleanup routine\n\ mov %g3, %o1 ! XXXX our rtld uses %g3\n\ mov %g2, %o2 ! XXXX obj from rtld.\n\ ba,pt %icc, ___start ! XXXX jump over the retl egcs 2.96 inserts\n\ @@ -115,7 +111,7 @@ ___start(char **sp, * NOTE: Leave the RCS ID _after_ _start(), in case it gets placed in .text. */ #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: crt0.c,v 1.26 2011/03/07 05:09:11 joerg Exp $"); +__RCSID("$NetBSD: crt0.c,v 1.26.6.1 2012/08/13 17:09:50 riz Exp $"); #endif /* LIBC_SCCS and not lint */ #include "common.c" Index: src/lib/csu/sparc_elf/Makefile diff -u src/lib/csu/sparc_elf/Makefile:1.6 src/lib/csu/sparc_elf/Makefile:1.6.44.1 --- src/lib/csu/sparc_elf/Makefile:1.6 Fri May 19 19:11:12 2006 +++ src/lib/csu/sparc_elf/Makefile Mon Aug 13 17:09:49 2012 @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.6 2006/05/19 19:11:12 christos Exp $ +# $NetBSD: Makefile,v 1.6.44.1 2012/08/13 17:09:49 riz Exp $ -#Uncomment the next line to enable the new .init fallthru CPPFLAGS+= -I${.CURDIR} +CFLAGS+= -fPIC .include "${.CURDIR}/../common_elf/Makefile.inc" Index: src/lib/csu/sparc_elf/crt0.c diff -u src/lib/csu/sparc_elf/crt0.c:1.14 src/lib/csu/sparc_elf/crt0.c:1.14.6.1 --- src/lib/csu/sparc_elf/crt0.c:1.14 Mon Mar 7 05:09:11 2011 +++ src/lib/csu/sparc_elf/crt0.c Mon Aug 13 17:09:49 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: crt0.c,v 1.14 2011/03/07 05:09:11 joerg Exp $ */ +/* $NetBSD: crt0.c,v 1.14.6.1 2012/08/13 17:09:49 riz Exp $ */ /* * Copyright (c) 1998 Christos Zoulas @@ -56,7 +56,7 @@ _start:\n\ sub %sp, 24, %sp ! expand to standard stack frame size\n\ mov %g3, %o3\n\ mov %g2, %o4\n\ - call ___start\n\ + ba ___start\n\ mov %g1, %o5\n\ "); @@ -100,7 +100,7 @@ ___start(int argc, char **argv, char **e * NOTE: Leave the RCS ID _after_ __start(), in case it gets placed in .text. */ #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: crt0.c,v 1.14 2011/03/07 05:09:11 joerg Exp $"); +__RCSID("$NetBSD: crt0.c,v 1.14.6.1 2012/08/13 17:09:49 riz Exp $"); #endif /* LIBC_SCCS and not lint */ #include "common.c"