head	1.24;
access;
symbols
	RELENG_8_4:1.24.0.2
	RELENG_9_1_0_RELEASE:1.21.2.2.2.2
	RELENG_9_1:1.21.2.2.0.2
	RELENG_9_1_BP:1.21.2.2
	RELENG_8_3_0_RELEASE:1.19.2.2.6.1
	RELENG_8_3:1.19.2.2.0.6
	RELENG_8_3_BP:1.19.2.2
	RELENG_9_0_0_RELEASE:1.21.2.1.2.1
	RELENG_9_0:1.21.2.1.0.2
	RELENG_9_0_BP:1.21.2.1
	RELENG_9:1.21.0.2
	RELENG_9_BP:1.21
	RELENG_7_4_0_RELEASE:1.18.20.2.4.1
	RELENG_8_2_0_RELEASE:1.19.2.2.4.1
	RELENG_7_4:1.18.20.2.0.4
	RELENG_7_4_BP:1.18.20.2
	RELENG_8_2:1.19.2.2.0.4
	RELENG_8_2_BP:1.19.2.2
	RELENG_8_1_0_RELEASE:1.19.2.2.2.1
	RELENG_8_1:1.19.2.2.0.2
	RELENG_8_1_BP:1.19.2.2
	RELENG_7_3_0_RELEASE:1.18.20.2.2.1
	RELENG_7_3:1.18.20.2.0.2
	RELENG_7_3_BP:1.18.20.2
	RELENG_8_0_0_RELEASE:1.19.2.1.2.1
	RELENG_8_0:1.19.2.1.0.2
	RELENG_8_0_BP:1.19.2.1
	RELENG_8:1.19.0.2
	RELENG_8_BP:1.19
	RELENG_7_2_0_RELEASE:1.18.20.1.4.1
	RELENG_7_2:1.18.20.1.0.4
	RELENG_7_2_BP:1.18.20.1
	RELENG_7_1_0_RELEASE:1.18.20.1.2.1
	RELENG_6_4_0_RELEASE:1.18.26.1
	RELENG_7_1:1.18.20.1.0.2
	RELENG_7_1_BP:1.18.20.1
	RELENG_6_4:1.18.0.26
	RELENG_6_4_BP:1.18
	RELENG_7_0_0_RELEASE:1.18
	RELENG_6_3_0_RELEASE:1.18
	RELENG_7_0:1.18.0.24
	RELENG_7_0_BP:1.18
	RELENG_6_3:1.18.0.22
	RELENG_6_3_BP:1.18
	RELENG_7:1.18.0.20
	RELENG_7_BP:1.18
	RELENG_6_2_0_RELEASE:1.18
	RELENG_6_2:1.18.0.18
	RELENG_6_2_BP:1.18
	RELENG_5_5_0_RELEASE:1.18
	RELENG_5_5:1.18.0.16
	RELENG_5_5_BP:1.18
	RELENG_6_1_0_RELEASE:1.18
	RELENG_6_1:1.18.0.14
	RELENG_6_1_BP:1.18
	RELENG_6_0_0_RELEASE:1.18
	RELENG_6_0:1.18.0.12
	RELENG_6_0_BP:1.18
	RELENG_6:1.18.0.10
	RELENG_6_BP:1.18
	RELENG_5_4_0_RELEASE:1.18
	RELENG_5_4:1.18.0.8
	RELENG_5_4_BP:1.18
	RELENG_5_3_0_RELEASE:1.18
	RELENG_5_3:1.18.0.6
	RELENG_5_3_BP:1.18
	RELENG_5:1.18.0.4
	RELENG_5_BP:1.18
	RELENG_5_2_1_RELEASE:1.18
	RELENG_5_2_0_RELEASE:1.18
	RELENG_5_2:1.18.0.2
	RELENG_5_2_BP:1.18
	RELENG_5_1_0_RELEASE:1.17
	RELENG_5_1:1.17.0.4
	RELENG_5_1_BP:1.17
	old_RELENG_4_8_0_RELEASE:1.6.2.5
	old_RELENG_4_8:1.6.2.5.0.2
	old_RELENG_4_8_BP:1.6.2.5
	old_RELENG_5_0_0_RELEASE:1.17
	old_RELENG_5_0:1.17.0.2
	old_RELENG_5_0_BP:1.17
	old_RELENG_4_7_0_RELEASE:1.6.2.4
	old_RELENG_4_7:1.6.2.4.0.2
	old_RELENG_4_7_BP:1.6.2.4
	old_RELENG_4_6_2_RELEASE:1.6.2.2
	old_RELENG_4_6_1_RELEASE:1.6.2.2
	old_RELENG_4_6_0_RELEASE:1.6.2.2
	old_RELENG_4_6:1.6.2.2.0.8
	old_RELENG_4_6_BP:1.6.2.2
	old_RELENG_4_5_0_RELEASE:1.6.2.2
	old_RELENG_4_5:1.6.2.2.0.6
	old_RELENG_4_5_BP:1.6.2.2
	old_RELENG_4_4_0_RELEASE:1.6.2.2
	old_RELENG_4_4:1.6.2.2.0.4
	old_RELENG_4_4_BP:1.6.2.2
	old_RELENG_4_3_0_RELEASE:1.6.2.2
	old_RELENG_4_3:1.6.2.2.0.2
	old_RELENG_4_3_BP:1.6.2.2
	old_RELENG_4_2_0_RELEASE:1.6.2.2
	old_RELENG_4_1_1_RELEASE:1.6.2.1
	old_PRE_SMPNG:1.7
	old_RELENG_4_1_0_RELEASE:1.6.2.1
	old_RELENG_3_5_0_RELEASE:1.3.2.3
	old_RELENG_4_0_0_RELEASE:1.6
	old_RELENG_4:1.6.0.2
	old_RELENG_4_BP:1.6
	old_RELENG_3_4_0_RELEASE:1.3.2.3
	old_RELENG_3_3_0_RELEASE:1.3.2.3
	old_RELENG_3_2_PAO:1.3.2.2.0.2
	old_RELENG_3_2_PAO_BP:1.3.2.2
	old_RELENG_3_2_0_RELEASE:1.3.2.2
	old_RELENG_3_1_0_RELEASE:1.3
	old_RELENG_3:1.3.0.2
	old_RELENG_3_BP:1.3
	old_RELENG_3_0_0_RELEASE:1.2
	old_jdp_1_0:1.1.1.1
	old_JDP:1.1.1;
locks; strict;
comment	@# @;


1.24
date	2012.11.17.01.49.20;	author svnexp;	state Exp;
branches
	1.24.2.1;
next	1.23;

1.23
date	2012.04.20.21.00.39;	author dim;	state Exp;
branches;
next	1.22;

1.22
date	2012.03.11.20.04.09;	author kib;	state Exp;
branches;
next	1.21;

1.21
date	2011.01.13.20.44.31;	author dim;	state Exp;
branches
	1.21.2.1;
next	1.20;

1.20
date	2009.12.02.16.34.20;	author kib;	state Exp;
branches;
next	1.19;

1.19
date	2008.08.22.09.23.39;	author kib;	state Exp;
branches
	1.19.2.1;
next	1.18;

1.18
date	2003.06.30.12.53.39;	author ru;	state Exp;
branches
	1.18.10.1
	1.18.20.1
	1.18.26.1;
next	1.17;

1.17
date	2002.07.29.09.40.11;	author ru;	state Exp;
branches;
next	1.16;

1.16
date	2002.05.13.15.27.58;	author ru;	state Exp;
branches;
next	1.15;

1.15
date	2002.05.13.11.51.10;	author ru;	state Exp;
branches;
next	1.14;

1.14
date	2002.05.13.10.53.23;	author ru;	state Exp;
branches;
next	1.13;

1.13
date	2002.05.12.16.21.22;	author ru;	state Exp;
branches;
next	1.12;

1.12
date	2002.05.11.17.45.02;	author obrien;	state Exp;
branches;
next	1.11;

1.11
date	2002.04.29.13.07.20;	author bde;	state Exp;
branches;
next	1.10;

1.10
date	2002.03.29.22.43.41;	author markm;	state Exp;
branches;
next	1.9;

1.9
date	2001.10.27.08.30.36;	author obrien;	state Exp;
branches;
next	1.8;

1.8
date	2000.10.28.21.26.47;	author obrien;	state Exp;
branches;
next	1.7;

1.7
date	2000.05.20.17.47.29;	author jdp;	state Exp;
branches;
next	1.6;

1.6
date	99.08.27.23.57.56;	author peter;	state Exp;
branches
	1.6.2.1;
next	1.5;

1.5
date	99.03.15.21.56.54;	author jdp;	state Exp;
branches;
next	1.4;

1.4
date	99.03.12.17.33.26;	author jdp;	state Exp;
branches;
next	1.3;

1.3
date	99.01.09.21.50.56;	author jdp;	state Exp;
branches
	1.3.2.1;
next	1.2;

1.2
date	98.09.07.23.31.59;	author jdp;	state Exp;
branches;
next	1.1;

1.1
date	98.03.07.20.27.10;	author jdp;	state Exp;
branches
	1.1.1.1;
next	;

1.24.2.1
date	2012.11.17.01.49.20;	author svnexp;	state dead;
branches;
next	1.24.2.2;

1.24.2.2
date	2013.03.28.13.02.56;	author svnexp;	state Exp;
branches;
next	;

1.21.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.21.2.1.2.1;
next	1.21.2.2;

1.21.2.2
date	2012.04.27.06.49.35;	author dim;	state Exp;
branches
	1.21.2.2.2.1;
next	1.21.2.3;

1.21.2.3
date	2012.11.17.11.36.15;	author svnexp;	state Exp;
branches;
next	;

1.21.2.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.21.2.1.2.2;

1.21.2.1.2.2
date	2012.11.17.08.36.15;	author svnexp;	state Exp;
branches;
next	;

1.21.2.2.2.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.21.2.2.2.2;

1.21.2.2.2.2
date	2012.11.17.08.47.05;	author svnexp;	state Exp;
branches;
next	;

1.19.2.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.19.2.1.2.1;
next	1.19.2.2;

1.19.2.2
date	2009.12.27.20.39.58;	author kib;	state Exp;
branches
	1.19.2.2.2.1
	1.19.2.2.4.1
	1.19.2.2.6.1;
next	1.19.2.3;

1.19.2.3
date	2012.11.17.10.36.00;	author svnexp;	state Exp;
branches;
next	;

1.19.2.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.19.2.2.2.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.19.2.2.4.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.19.2.2.6.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.19.2.2.6.2;

1.19.2.2.6.2
date	2012.11.17.08.24.41;	author svnexp;	state Exp;
branches;
next	;

1.18.10.1
date	2009.06.16.18.14.48;	author emaste;	state Exp;
branches;
next	1.18.10.2;

1.18.10.2
date	2012.11.17.07.39.31;	author svnexp;	state Exp;
branches;
next	;

1.18.20.1
date	2008.08.29.09.02.53;	author kib;	state Exp;
branches
	1.18.20.1.2.1
	1.18.20.1.4.1;
next	1.18.20.2;

1.18.20.2
date	2010.01.19.20.19.52;	author kib;	state Exp;
branches
	1.18.20.2.2.1
	1.18.20.2.4.1;
next	1.18.20.3;

1.18.20.3
date	2012.11.17.08.01.45;	author svnexp;	state Exp;
branches;
next	;

1.18.20.1.2.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.18.20.1.4.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.18.20.2.2.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.18.20.2.4.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.18.20.2.4.2;

1.18.20.2.4.2
date	2012.11.17.08.16.40;	author svnexp;	state Exp;
branches;
next	;

1.18.26.1
date	2008.10.02.02.57.24;	author kensmith;	state Exp;
branches;
next	;

1.6.2.1
date	2000.07.10.09.15.28;	author obrien;	state Exp;
branches;
next	1.6.2.2;

1.6.2.2
date	2000.10.30.20.32.24;	author obrien;	state Exp;
branches;
next	1.6.2.3;

1.6.2.3
date	2002.07.19.18.46.25;	author ru;	state Exp;
branches;
next	1.6.2.4;

1.6.2.4
date	2002.08.07.16.31.48;	author ru;	state Exp;
branches;
next	1.6.2.5;

1.6.2.5
date	2002.11.23.17.44.29;	author ru;	state Exp;
branches;
next	;

1.3.2.1
date	99.04.14.20.43.26;	author jdp;	state Exp;
branches;
next	1.3.2.2;

1.3.2.2
date	99.04.14.20.52.55;	author jdp;	state Exp;
branches;
next	1.3.2.3;

1.3.2.3
date	99.08.29.14.55.14;	author peter;	state Exp;
branches;
next	;

1.1.1.1
date	98.03.07.20.27.10;	author jdp;	state Exp;
branches;
next	;


desc
@@


1.24
log
@Switching exporter and resync
@
text
@# $FreeBSD: head/lib/csu/amd64/Makefile 234502 2012-04-20 21:00:39Z dim $

.PATH: ${.CURDIR}/../common

SRCS=		crt1.c crti.S crtn.S
OBJS=		${SRCS:N*.h:R:S/$/.o/g}
OBJS+=		Scrt1.o gcrt1.o
CFLAGS+=	-I${.CURDIR}/../common \
		-I${.CURDIR}/../../libc/include
CFLAGS+=	-fno-omit-frame-pointer

all: ${OBJS}

CLEANFILES=	${OBJS}
CLEANFILES+=	crt1.s gcrt1.s Scrt1.s

# See the comment in lib/csu/common/crtbrand.c for the reason crt1.c is not
# directly compiled to .o files.

crt1.s: crt1.c
	${CC} ${CFLAGS} -S -o ${.TARGET} ${.CURDIR}/crt1.c
	sed ${SED_FIX_NOTE} ${.TARGET}

crt1.o: crt1.s
	${CC} ${ACFLAGS} -c -o ${.TARGET} crt1.s

gcrt1.s: crt1.c
	${CC} ${CFLAGS} -DGCRT -S -o ${.TARGET} ${.CURDIR}/crt1.c
	sed ${SED_FIX_NOTE} ${.TARGET}

gcrt1.o: gcrt1.s
	${CC} ${ACFLAGS} -c -o ${.TARGET} gcrt1.s

Scrt1.s: crt1.c
	${CC} ${CFLAGS} -fPIC -DPIC -S -o ${.TARGET} ${.CURDIR}/crt1.c
	sed ${SED_FIX_NOTE} ${.TARGET}

Scrt1.o: Scrt1.s
	${CC} ${ACFLAGS} -c -o ${.TARGET} Scrt1.s

realinstall:
	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
	    ${OBJS} ${DESTDIR}${LIBDIR}

.include <bsd.lib.mk>
@


1.24.2.1
log
@file Makefile was added on branch RELENG_8_4 on 2013-03-28 13:02:56 +0000
@
text
@d1 45
@


1.24.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 26
# $FreeBSD: releng/8.4/lib/csu/amd64/Makefile 201058 2009-12-27 20:39:58Z kib $

.PATH: ${.CURDIR}/../common

SRCS=		crt1.c crti.S crtn.S
OBJS=		${SRCS:N*.h:R:S/$/.o/g}
OBJS+=		Scrt1.o gcrt1.o
CFLAGS+=	-I${.CURDIR}/../common \
		-I${.CURDIR}/../../libc/include
CFLAGS+=	-fno-omit-frame-pointer

all: ${OBJS}

CLEANFILES=	${OBJS}

gcrt1.o: crt1.c
	${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.CURDIR}/crt1.c

Scrt1.o: crt1.c
	${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.CURDIR}/crt1.c

realinstall:
	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
	    ${OBJS} ${DESTDIR}${LIBDIR}

.include <bsd.lib.mk>
@


1.23
log
@SVN rev 234502 on 2012-04-20 21:00:39Z by dim

After r217375, some startup objects under lib/csu are built in a special
way: first they are compiled to assembly, then some sed'ing is done on
the assembly, and lastly the assembly is compiled to an object file.

This last step is done using ${CC}, and not ${AS}, because when the
compiler is clang, it outputs directives that are too advanced for our
old gas.  So we use clang's integrated assembler instead.  (When the
compiler is gcc, it just calls gas, and nothing is different, except one
extra fork.)

However, in the .s to .o rules in lib/csu/$ARCH/Makefile, I still passed
CFLAGS to the compiler, instead of ACFLAGS, which are specifically for
compiling .s files.

In case you are using '-g' for debug info anywhere in your CFLAGS, it
causes the .s files to already contain debug information in the assembly
itself.  In the next step, the .s files are also compiled using '-g',
and if the compiler is clang, it complains: "error: input can't have
.file dwarf directives when -g is used to generate dwarf debug info for
assembly code".

Fix this by using ${ACFLAGS} for compiling the .s files instead.

Reported by:	jasone
MFC after:	1 week
@
text
@d1 1
a1 1
# $FreeBSD$
@


1.22
log
@SVN rev 232832 on 2012-03-11 20:04:09Z by kib

Stop calling _init/_fini methods from crt1 for dynamic binaries.  Do
call preinit, init and fini arrays methods from crt1 for static binaries.

Mark new crt1 with FreeBSD-specific ELF note.

Move some common crt1 code into new MI file ignore_init.c, to reduce
duplication.  Also, conservatively adjust nearby sources for style.

Reviewed by:	kan
Tested by:	andrew (arm), flo (sparc64)
MFC after:	3 weeks
@
text
@d25 1
a25 1
	${CC} ${CFLAGS} -c -o ${.TARGET} crt1.s
d32 1
a32 1
	${CC} ${CFLAGS} -c -o ${.TARGET} gcrt1.s
d39 1
a39 1
	${CC} ${CFLAGS} -c -o ${.TARGET} Scrt1.s
@


1.21
log
@SVN rev 217375 on 2011-01-13 20:44:31Z by dim

Apply a workaround for a binutils issue with the .note.ABI-tag section
generated from lib/csu/common/crtbrand.c (which ultimately ends up in
executables and shared libraries, via crt1.o, gcrt1.o or Scrt1.o).

For all arches except sparc, gcc emits the section directive for the
abitag struct in crtbrand.c with a PROGBITS type.  However, newer
versions of binutils (after 2.16.90) require the section to be of NOTE
type, to guarantee that the .note.ABI-tag section correctly ends up in
the first page of the final executable.

Unfortunately, there is no clean way to tell gcc to use another section
type, so crtbrand.c (or the C files that include 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.

Reviewed by:	kib
@
text
@d22 1
a22 1
	sed -i "" -e '/\.note\.ABI-tag/s/progbits/note/' ${.TARGET}
d29 1
a29 1
	sed -i "" -e '/\.note\.ABI-tag/s/progbits/note/' ${.TARGET}
d36 1
a36 1
	sed -i "" -e '/\.note\.ABI-tag/s/progbits/note/' ${.TARGET}
@


1.21.2.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.21.2.2
log
@SVN rev 234726 on 2012-04-27 06:49:35Z by dim

MFC r234502:

After r217375, some startup objects under lib/csu are built in a special
way: first they are compiled to assembly, then some sed'ing is done on
the assembly, and lastly the assembly is compiled to an object file.

This last step is done using ${CC}, and not ${AS}, because when the
compiler is clang, it outputs directives that are too advanced for our
old gas.  So we use clang's integrated assembler instead.  (When the
compiler is gcc, it just calls gas, and nothing is different, except one
extra fork.)

However, in the .s to .o rules in lib/csu/$ARCH/Makefile, I still passed
CFLAGS to the compiler, instead of ACFLAGS, which are specifically for
compiling .s files.

In case you are using '-g' for debug info anywhere in your CFLAGS, it
causes the .s files to already contain debug information in the assembly
itself.  In the next step, the .s files are also compiled using '-g',
and if the compiler is clang, it complains: "error: input can't have
.file dwarf directives when -g is used to generate dwarf debug info for
assembly code".

Fix this by using ${ACFLAGS} for compiling the .s files instead.

Reported by:	jasone
@
text
@d25 1
a25 1
	${CC} ${ACFLAGS} -c -o ${.TARGET} crt1.s
d32 1
a32 1
	${CC} ${ACFLAGS} -c -o ${.TARGET} gcrt1.s
d39 1
a39 1
	${CC} ${ACFLAGS} -c -o ${.TARGET} Scrt1.s
@


1.21.2.3
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/lib/csu/amd64/Makefile 234726 2012-04-27 06:49:35Z dim $
@


1.21.2.2.2.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.21.2.2.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.1/lib/csu/amd64/Makefile 234726 2012-04-27 06:49:35Z dim $
@


1.21.2.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.21.2.1.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.0/lib/csu/amd64/Makefile 217375 2011-01-13 20:44:31Z dim $
@


1.20
log
@SVN rev 200038 on 2009-12-02 16:34:20Z by kib

Properly support -fPIE by linking PIE binaries with specially-built
Scrt1.o instead of crt1.o, since the later is built as non-PIC.

Separate i386-elf crt1.c into the pure assembler part and C code,
supplying all data extracted by assembler stub as explicit parameters [1].
Hide and localize _start1 symbol used as an interface between asm and
C code.

In collaboration with:	kan
Inspired by:	PR i386/127387 [1]
Prodded and tested by:	rdivacky [1]
MFC after:	3 weeks
@
text
@d15 1
d17 2
a18 2
gcrt1.o: crt1.c
	${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.CURDIR}/crt1.c
d20 20
a39 2
Scrt1.o: crt1.c
	${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.CURDIR}/crt1.c
@


1.19
log
@SVN rev 181997 on 2008-08-22 09:23:39Z by kib

Add -fno-omit-frame-pointer to CFLAGS used to compile crt1.c on amd64.

For gcc' __builtin_frame_address() to work, all call frames need to save
frame pointer. In particular, this is important for the upper frame that
should terminate the chain.

No objections from:	jhb
PR:	amd64/126543
MFC after:	1 week
@
text
@d7 1
a7 1
OBJS+=		gcrt1.o
d19 3
@


1.19.2.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.19.2.2
log
@SVN rev 201058 on 2009-12-27 20:39:58Z by kib

MFC r200038:
Properly support -fPIE by linking PIE binaries with specially-built
Scrt1.o instead of crt1.o, since the later is built as non-PIC.

Separate i386-elf crt1.c into the pure assembler part and C code,
supplying all data extracted by assembler stub as explicit parameters.
Hide and localize _start1 symbol used as an interface between asm and
C code.
@
text
@d7 1
a7 1
OBJS+=		Scrt1.o gcrt1.o
a18 3
Scrt1.o: crt1.c
	${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.CURDIR}/crt1.c

@


1.19.2.3
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/8/lib/csu/amd64/Makefile 201058 2009-12-27 20:39:58Z kib $
@


1.19.2.2.6.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.19.2.2.6.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/8.3/lib/csu/amd64/Makefile 201058 2009-12-27 20:39:58Z kib $
@


1.19.2.2.4.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.19.2.2.2.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.19.2.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.18
log
@MFi386: revision 1.19.
@
text
@d10 1
@


1.18.10.1
log
@SVN rev 194301 on 2009-06-16 18:14:48Z by emaste

MFC r181997 by kib:

  Add -fno-omit-frame-pointer to CFLAGS used to compile crt1.c on amd64.

  For gcc' __builtin_frame_address() to work, all call frames need to save
  frame pointer. In particular, this is important for the upper frame that
  should terminate the chain.
@
text
@a9 1
CFLAGS+=	-fno-omit-frame-pointer
@


1.18.10.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/6/lib/csu/amd64/Makefile 194301 2009-06-16 18:14:48Z emaste $
@


1.18.26.1
log
@SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)
@
text
@@


1.18.20.1
log
@SVN rev 182438 on 2008-08-29 09:02:53Z by kib

MFC r181997:
Add -fno-omit-frame-pointer to CFLAGS used to compile crt1.c on amd64.
@
text
@a9 1
CFLAGS+=	-fno-omit-frame-pointer
@


1.18.20.2
log
@SVN rev 202648 on 2010-01-19 20:19:52Z by kib

MFC r200038:
Properly support -fPIE by linking PIE binaries with specially-built
Scrt1.o instead of crt1.o.

Separate i386-elf crt1.c into the pure assembler part and C code.

Tested by:	Mykola Dzham <i levsha me>
@
text
@d7 1
a7 1
OBJS+=		Scrt1.o gcrt1.o
a18 3
Scrt1.o: crt1.c
	${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.CURDIR}/crt1.c

@


1.18.20.3
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/7/lib/csu/amd64/Makefile 202648 2010-01-19 20:19:52Z kib $
@


1.18.20.2.4.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.18.20.2.4.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/7.4/lib/csu/amd64/Makefile 202648 2010-01-19 20:19:52Z kib $
@


1.18.20.2.2.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.18.20.1.4.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.18.20.1.2.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.17
log
@Drop support for COPY, -c has been the default mode of install(1)
for a long time now.

Approved by:	bde
@
text
@d8 1
a8 2
CFLAGS+=	-elf -Wall \
		-I${.CURDIR}/../common \
a9 1
LDFLAGS+=	-elf
@


1.16
log
@Fixed CLEANFILES after bsd.lib.mk sweep.
@
text
@d21 1
a21 1
	${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
@


1.15
log
@SOBJS are not used here for a long time, and were just
pessimising the `install'.
@
text
@d15 2
@


1.14
log
@Major cleanup of bsd.lib.mk.

Get rid of the INTERNALSTATICLIB knob and just use plain INTERNALLIB.
INTERNALLIB now means to build static library only and don't install
anything.  Added a NOINSTALLLIB knob for libpam/modules.  To not
build any library at all, just do not set LIB.
@
text
@d13 1
a13 1
all: ${OBJS} ${SOBJS}
a18 1
.for file in ${OBJS} ${SOBJS}
d20 1
a20 2
	    ${file} ${DESTDIR}${LIBDIR}/${file:S/.So$/S.o/}
.endfor
@


1.13
log
@Revert the last change.  The corresponding bsd.lib.mk changes were
already backed out.
@
text
@a11 5
NOMAN=		true
NOPIC=		true
NOPROFILE=	true
INTERNALLIB=	true

@


1.12
log
@Use the simpler NOMAN rather than NOMAN, NOPIC, NOPROFILE, INTERNALLIB.
@
text
@d12 4
a15 1
NOLIB=		true
@


1.11
log
@Removed "-fkeep-inline-functions" from CFLAGS, since it now has no effect
except to generate spurious warnings about a system header <sys/param.h>
having some inline functions (the bswap family).  This backs out the main
part of rev.1.5 (which was the only part left).  The problem fixed by
rev.1.5 of the Makefile went away in rev.1.5 of ../common/crtbegin.c
when the references to do_ctors() and do_dtors() in the latter were moved
from inline asm to C code.

This leaves the problem that implementation details cause warnings.

Discussed with:	jdp
@
text
@d12 1
a12 4
NOMAN=		true
NOPIC=		true
NOPROFILE=	true
INTERNALLIB=	true
@


1.10
log
@Do not use __progname directly (except in [gs]etprogname(3)).
Also, make an internal _getprogname() that is used only inside
libc. For libc, getprogname(3) is a weak symbol in case a
function of the same name is defined in userland.
@
text
@d8 1
a8 1
CFLAGS+=	-elf -Wall -fkeep-inline-functions \
@


1.9
log
@minor style updating
@
text
@d9 2
a10 1
		-I${.CURDIR}/../common
@


1.8
log
@* Bring back the guts of crt{i,n}.S.  This allows C++ exceptions to work
when using the egcs and gcc-devel ports, along with GCC built from stock
public FSF sources.  With out this change, FreeBSD will be removed from
the list of systems GCC 3.0 must be evaluated on before release.  With
the effort some of us put into getting FreeBSD on this list, we should
not turn this effort into a waste, else we might not be worth fighting
for in the future.  (note that Alpha and IA-64 versions of crt{i,n}.S
are needed)

* Switch from our own crt{begin,in} to those created from GCC's crtstuff.c.
This will allow us to switch to DWARF2 exceptions in the future, along with
staying in sync with any future GCC requirements.

* Break out our ELF branding bits into a seperate file.  Currently this
is now included by our crt1.c files (since this functionality was part of
our native crtbegin.c).  Later crtbrand.o will be merged in the creation
of crti.o.
@
text
@d1 3
a3 3
#
# $FreeBSD: src/lib/csu/i386-elf/Makefile,v 1.7 2000/05/20 17:47:29 jdp Exp $
#
a15 1
.PATH:		${.CURDIR}/../common
d19 1
a19 1
gcrt1.o:	crt1.c
@


1.7
log
@Take crtbegin.c and crtend.c from the new machine-independent
"common" sister directory.
@
text
@d2 1
a2 1
# $FreeBSD: src/lib/csu/i386-elf/Makefile,v 1.6 1999/08/27 23:57:56 peter Exp $
d5 1
a5 1
SRCS=		crt1.c crtbegin.c crtend.c crti.S crtn.S
d8 2
a9 2
SOBJS=		crtbegin.So crtend.So
CFLAGS+=	-elf -Wall -fkeep-inline-functions
@


1.6
log
@$Id$ -> $FreeBSD$
@
text
@d2 1
a2 1
# $FreeBSD$
d15 2
@


1.6.2.1
log
@MFC: use the MI versions of crtbegin and crtend from the "common" directory.

* This fixes the ordering of global constructors and destructors on the
  Alpha.
* This makes crt{i,n}.S empty shells (for link command line compatibility).
@
text
@a15 2
.PATH:		${.CURDIR}/../common

@


1.6.2.2
log
@MFC.

* Bring back the guts of crt{i,n}.S.  This allows C++ exceptions to work
when using the egcs and gcc-devel ports, along with GCC built from stock
public FSF sources.  With out this change, FreeBSD will be removed from
the list of systems GCC 3.0 must be evaluated on before release.

* Switch from our own crt{begin,in} to those created from GCC's crtstuff.c.

* Break out our ELF branding bits into a seperate file.  Currently this
is now included by our crt1.c files (since this functionality was part of
our native crtbegin.c).  Later crtbrand.o will be merged in the creation
of crti.o.
@
text
@d5 1
a5 1
SRCS=		crt1.c crti.S crtn.S
d8 2
a9 2
CFLAGS+=	-elf -Wall -fkeep-inline-functions \
		-I${.CURDIR}/../common
@


1.6.2.3
log
@MFC: new bsd.lib.mk API.
@
text
@d11 4
d18 1
a18 3
all: ${OBJS}

CLEANFILES=	${OBJS}
d24 1
a24 1
.for file in ${OBJS}
d26 1
a26 1
	    ${OBJS} ${DESTDIR}${LIBDIR}
@


1.6.2.4
log
@MFC: Drop support for COPY.
@
text
@d23 1
a23 1
	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
@


1.6.2.5
log
@Complete the MFC of rev. 1.15.

PR:		i386/45644
Submitted by:	Sascha Blank <sblank@@tiscali.de>
@
text
@d22 1
d25 1
@


1.5
log
@Add "-fkeep-inline-functions" to CFLAGS so that higher optimization
levels (-O3 and above) won't remove essential code.  Many thanks
to Dmitrij Tejblum <dima@@tejblum.dnttm.rssi.ru> for pointing out
that it was the optimizer's removal of this code that caused make
world with -O3 to break.  With this change, make buildworld now
completes.
@
text
@d2 1
a2 1
#	$Id: Makefile,v 1.4 1999/03/12 17:33:26 jdp Exp $
@


1.4
log
@Move the code for the ".init" and ".fini" sections outside of a
C function so the compiler won't try to emit line numbers for it
with "-g", breaking the build.  This has the nice side-effect of
making crtbegin.o and crtbeginS.o a little bit smaller.

Remove "-Wno-unused" from the Makefile.  Replace it with "__unused"
on particular function and variable declarations.
@
text
@d2 1
a2 1
#	$Id: Makefile,v 1.3 1999/01/09 21:50:56 jdp Exp $
d9 1
a9 2
CFLAGS+=	-elf
CFLAGS+=	-Wall
@


1.3
log
@Switch to using ".So" as the extension for PIC object files rather
than ".so".  The old extension conflicted with well-established
naming conventions for dynamically loadable modules.

The "clean" targets continue to remove ".so" files too, to deal with
old systems.
@
text
@d2 1
a2 1
#	$Id: Makefile,v 1.2 1998/09/07 23:31:59 jdp Exp $
d10 1
a10 1
CFLAGS+=	-Wall -Wno-unused
@


1.3.2.1
log
@MFC: Fix compilation with "-g", and eliminate the need for
"-Wno-unused" in the Makefile.
@
text
@d2 1
a2 1
#	$Id: Makefile,v 1.4 1999/03/12 17:33:26 jdp Exp $
d10 1
a10 1
CFLAGS+=	-Wall
@


1.3.2.2
log
@MFC 1.4 -> 1.5: Fix breakage at -O3.
@
text
@d2 1
a2 1
#	$Id: Makefile,v 1.3.2.1 1999/04/14 20:43:26 jdp Exp $
d9 2
a10 1
CFLAGS+=	-elf -Wall -fkeep-inline-functions
@


1.3.2.3
log
@$Id$ -> $FreeBSD$
@
text
@d2 1
a2 1
# $FreeBSD$
@


1.2
log
@Make profiling work for ELF.  gprof now autodetects the format of
the executable file, so it will work for both a.out and ELF format
files.  I have split the object format specific code into separate
source files.  It's cleaner than it was before, but it's still
pretty crufty.

Don't cheat on your make world for this update.  A lot of things
have to be rebuilt for it to work, including the compiler and all
of the profiled libraries.
@
text
@d2 1
a2 1
#	$Id: Makefile,v 1.1.1.1 1998/03/07 20:27:10 jdp Exp $
d8 1
a8 1
SOBJS=		crtbegin.so crtend.so
d25 1
a25 1
	    ${file} ${DESTDIR}${LIBDIR}/${file:S/.so$/S.o/}
@


1.1
log
@Initial revision
@
text
@d2 1
a2 1
#	$Id: Makefile,v 1.6 1996/04/12 02:24:34 jdp Exp $
d7 1
d18 3
@


1.1.1.1
log
@Import C startup files for ELF support.

Submitted by:	John Polstra <jdp@@polstra.com>
@
text
@@
