head	1.27;
access;
symbols
	RELENG_8_4:1.27.0.2
	RELENG_9_1_0_RELEASE:1.24.2.2.2.2
	RELENG_9_1:1.24.2.2.0.2
	RELENG_9_1_BP:1.24.2.2
	RELENG_8_3_0_RELEASE:1.20.30.3.6.1
	RELENG_8_3:1.20.30.3.0.6
	RELENG_8_3_BP:1.20.30.3
	RELENG_9_0_0_RELEASE:1.24.2.1.2.1
	RELENG_9_0:1.24.2.1.0.2
	RELENG_9_0_BP:1.24.2.1
	RELENG_9:1.24.0.2
	RELENG_9_BP:1.24
	RELENG_7_4_0_RELEASE:1.20.18.2.2.1
	RELENG_8_2_0_RELEASE:1.20.30.3.4.1
	RELENG_7_4:1.20.18.2.0.2
	RELENG_7_4_BP:1.20.18.2
	RELENG_8_2:1.20.30.3.0.4
	RELENG_8_2_BP:1.20.30.3
	RELENG_8_1_0_RELEASE:1.20.30.3.2.1
	RELENG_8_1:1.20.30.3.0.2
	RELENG_8_1_BP:1.20.30.3
	RELENG_7_3_0_RELEASE:1.20.18.1.2.1
	RELENG_7_3:1.20.18.1.0.2
	RELENG_7_3_BP:1.20.18.1
	RELENG_8_0_0_RELEASE:1.20.30.1.2.1
	RELENG_8_0:1.20.30.1.0.2
	RELENG_8_0_BP:1.20.30.1
	RELENG_8:1.20.0.30
	RELENG_8_BP:1.20
	RELENG_7_2_0_RELEASE:1.20.28.1
	RELENG_7_2:1.20.0.28
	RELENG_7_2_BP:1.20
	RELENG_7_1_0_RELEASE:1.20.26.1
	RELENG_6_4_0_RELEASE:1.20.24.1
	RELENG_7_1:1.20.0.26
	RELENG_7_1_BP:1.20
	RELENG_6_4:1.20.0.24
	RELENG_6_4_BP:1.20
	RELENG_7_0_0_RELEASE:1.20
	RELENG_6_3_0_RELEASE:1.20
	RELENG_7_0:1.20.0.22
	RELENG_7_0_BP:1.20
	RELENG_6_3:1.20.0.20
	RELENG_6_3_BP:1.20
	RELENG_7:1.20.0.18
	RELENG_7_BP:1.20
	RELENG_6_2_0_RELEASE:1.20
	RELENG_6_2:1.20.0.16
	RELENG_6_2_BP:1.20
	RELENG_5_5_0_RELEASE:1.20
	RELENG_5_5:1.20.0.14
	RELENG_5_5_BP:1.20
	RELENG_6_1_0_RELEASE:1.20
	RELENG_6_1:1.20.0.12
	RELENG_6_1_BP:1.20
	RELENG_6_0_0_RELEASE:1.20
	RELENG_6_0:1.20.0.10
	RELENG_6_0_BP:1.20
	RELENG_6:1.20.0.8
	RELENG_6_BP:1.20
	RELENG_5_4_0_RELEASE:1.20
	RELENG_5_4:1.20.0.6
	RELENG_5_4_BP:1.20
	RELENG_4_11_0_RELEASE:1.6.2.5
	RELENG_4_11:1.6.2.5.0.8
	RELENG_4_11_BP:1.6.2.5
	RELENG_5_3_0_RELEASE:1.20
	RELENG_5_3:1.20.0.4
	RELENG_5_3_BP:1.20
	RELENG_5:1.20.0.2
	RELENG_5_BP:1.20
	RELENG_4_10_0_RELEASE:1.6.2.5
	RELENG_4_10:1.6.2.5.0.6
	RELENG_4_10_BP:1.6.2.5
	RELENG_5_2_1_RELEASE:1.19
	RELENG_5_2_0_RELEASE:1.19
	RELENG_5_2:1.19.0.2
	RELENG_5_2_BP:1.19
	RELENG_4_9_0_RELEASE:1.6.2.5
	RELENG_4_9:1.6.2.5.0.4
	RELENG_4_9_BP:1.6.2.5
	RELENG_5_1_0_RELEASE:1.18
	RELENG_5_1:1.18.0.2
	RELENG_5_1_BP:1.18
	RELENG_4_8_0_RELEASE:1.6.2.5
	RELENG_4_8:1.6.2.5.0.2
	RELENG_4_8_BP:1.6.2.5
	RELENG_5_0_0_RELEASE:1.17
	RELENG_5_0:1.17.0.2
	RELENG_5_0_BP:1.17
	RELENG_4_7_0_RELEASE:1.6.2.4
	RELENG_4_7:1.6.2.4.0.2
	RELENG_4_7_BP:1.6.2.4
	RELENG_4_6_2_RELEASE:1.6.2.2
	RELENG_4_6_1_RELEASE:1.6.2.2
	RELENG_4_6_0_RELEASE:1.6.2.2
	RELENG_4_6:1.6.2.2.0.8
	RELENG_4_6_BP:1.6.2.2
	RELENG_4_5_0_RELEASE:1.6.2.2
	RELENG_4_5:1.6.2.2.0.6
	RELENG_4_5_BP:1.6.2.2
	RELENG_4_4_0_RELEASE:1.6.2.2
	RELENG_4_4:1.6.2.2.0.4
	RELENG_4_4_BP:1.6.2.2
	RELENG_4_3_0_RELEASE:1.6.2.2
	RELENG_4_3:1.6.2.2.0.2
	RELENG_4_3_BP:1.6.2.2
	RELENG_4_2_0_RELEASE:1.6.2.2
	RELENG_4_1_1_RELEASE:1.6.2.1
	PRE_SMPNG:1.7
	RELENG_4_1_0_RELEASE:1.6.2.1
	RELENG_3_5_0_RELEASE:1.3.2.3
	RELENG_4_0_0_RELEASE:1.6
	RELENG_4:1.6.0.2
	RELENG_4_BP:1.6
	RELENG_3_4_0_RELEASE:1.3.2.3
	RELENG_3_3_0_RELEASE:1.3.2.3
	RELENG_3_2_PAO:1.3.2.2.0.2
	RELENG_3_2_PAO_BP:1.3.2.2
	RELENG_3_2_0_RELEASE:1.3.2.2
	RELENG_3_1_0_RELEASE:1.3
	RELENG_3:1.3.0.2
	RELENG_3_BP:1.3
	RELENG_3_0_0_RELEASE:1.2
	jdp_1_0:1.1.1.1
	JDP:1.1.1;
locks; strict;
comment	@# @;


1.27
date	2012.11.17.01.49.20;	author svnexp;	state Exp;
branches
	1.27.2.1;
next	1.26;

1.26
date	2012.04.20.21.00.39;	author dim;	state Exp;
branches;
next	1.25;

1.25
date	2012.03.11.20.04.09;	author kib;	state Exp;
branches;
next	1.24;

1.24
date	2011.01.13.20.44.31;	author dim;	state Exp;
branches
	1.24.2.1;
next	1.23;

1.23
date	2010.03.20.22.58.54;	author jilles;	state Exp;
branches;
next	1.22;

1.22
date	2010.01.02.09.58.07;	author ed;	state Exp;
branches;
next	1.21;

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

1.20
date	2004.01.20.13.31.35;	author ru;	state Exp;
branches
	1.20.8.1
	1.20.18.1
	1.20.24.1
	1.20.26.1
	1.20.28.1
	1.20.30.1;
next	1.19;

1.19
date	2003.06.04.11.21.18;	author bde;	state Exp;
branches;
next	1.18;

1.18
date	2003.05.04.18.34.00;	author obrien;	state Exp;
branches;
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.27.2.1
date	2012.11.17.01.49.20;	author svnexp;	state dead;
branches;
next	1.27.2.2;

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

1.24.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.24.2.1.2.1;
next	1.24.2.2;

1.24.2.2
date	2012.04.27.06.49.35;	author dim;	state Exp;
branches
	1.24.2.2.2.1;
next	1.24.2.3;

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

1.24.2.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.24.2.1.2.2;

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

1.24.2.2.2.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.24.2.2.2.2;

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

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

1.20.18.1
date	2010.01.19.20.19.52;	author kib;	state Exp;
branches
	1.20.18.1.2.1;
next	1.20.18.2;

1.20.18.2
date	2010.05.02.20.12.20;	author jilles;	state Exp;
branches
	1.20.18.2.2.1;
next	1.20.18.3;

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

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

1.20.18.2.2.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.20.18.2.2.2;

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

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

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

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

1.20.30.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.20.30.1.2.1;
next	1.20.30.2;

1.20.30.2
date	2009.12.27.20.39.58;	author kib;	state Exp;
branches;
next	1.20.30.3;

1.20.30.3
date	2010.03.23.23.25.17;	author jilles;	state Exp;
branches
	1.20.30.3.2.1
	1.20.30.3.4.1
	1.20.30.3.6.1;
next	1.20.30.4;

1.20.30.4
date	2012.11.17.10.36.01;	author svnexp;	state Exp;
branches;
next	;

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

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

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

1.20.30.3.6.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.20.30.3.6.2;

1.20.30.3.6.2
date	2012.11.17.08.24.41;	author svnexp;	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.6.2.6;

1.6.2.6
date	2012.11.17.07.23.19;	author svnexp;	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.27
log
@Switching exporter and resync
@
text
@# $FreeBSD: head/lib/csu/i386-elf/Makefile 234502 2012-04-20 21:00:39Z dim $

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

SRCS=		crti.S crtn.S
FILES=		${SRCS:N*.h:R:S/$/.o/g} gcrt1.o crt1.o Scrt1.o
FILESOWN=	${LIBOWN}
FILESGRP=	${LIBGRP}
FILESMODE=	${LIBMODE}
FILESDIR=	${LIBDIR}
CFLAGS+=	-I${.CURDIR}/../common \
		-I${.CURDIR}/../../libc/include
CLEANFILES=	${FILES} crt1_c.o crt1_s.o gcrt1_c.o Scrt1_c.o
CLEANFILES+=	crt1_c.s gcrt1_c.s Scrt1_c.s

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

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

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

gcrt1.o: gcrt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o gcrt1.o -r crt1_s.o gcrt1_c.o

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

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

crt1.o:	crt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o crt1.o -r crt1_s.o crt1_c.o
	objcopy --localize-symbol _start1 crt1.o

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

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

Scrt1.o: Scrt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o Scrt1.o -r crt1_s.o Scrt1_c.o
	objcopy --localize-symbol _start1 Scrt1.o

.include <bsd.prog.mk>
@


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


1.27.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 33
# $FreeBSD: releng/8.4/lib/csu/i386-elf/Makefile 205567 2010-03-23 23:25:17Z jilles $

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

SRCS=		crti.S crtn.S
FILES=		${SRCS:N*.h:R:S/$/.o/g} gcrt1.o crt1.o Scrt1.o
FILESOWN=	${LIBOWN}
FILESGRP=	${LIBGRP}
FILESMODE=	${LIBMODE}
FILESDIR=	${LIBDIR}
WARNS?=		6
CFLAGS+=	-I${.CURDIR}/../common \
		-I${.CURDIR}/../../libc/include
CLEANFILES=	${FILES} crt1_c.o crt1_s.o gcrt1_c.o Scrt1_c.o

gcrt1_c.o: crt1_c.c
	${CC} ${CFLAGS} -DGCRT -c -o gcrt1_c.o ${.CURDIR}/crt1_c.c

gcrt1.o: gcrt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o gcrt1.o -r crt1_s.o gcrt1_c.o

crt1.o:	crt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o crt1.o -r crt1_s.o crt1_c.o
	objcopy --localize-symbol _start1 crt1.o

Scrt1_c.o:	crt1_c.c
	${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1_c.o ${.CURDIR}/crt1_c.c

Scrt1.o: Scrt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o Scrt1.o -r crt1_s.o Scrt1_c.o
	objcopy --localize-symbol _start1 Scrt1.o

.include <bsd.prog.mk>
@


1.26
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.25
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
@d24 1
a24 1
	${CC} ${CFLAGS} -c -o ${.TARGET} gcrt1_c.s
d34 1
a34 1
	${CC} ${CFLAGS} -c -o ${.TARGET} crt1_c.s
d45 1
a45 1
	${CC} ${CFLAGS} -c -o ${.TARGET} Scrt1_c.s
@


1.24
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
@d21 1
a21 1
	sed -i "" -e '/\.note\.ABI-tag/s/progbits/note/' ${.TARGET}
d31 1
a31 1
	sed -i "" -e '/\.note\.ABI-tag/s/progbits/note/' ${.TARGET}
d42 1
a42 1
	sed -i "" -e '/\.note\.ABI-tag/s/progbits/note/' ${.TARGET}
@


1.24.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.24.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
@d24 1
a24 1
	${CC} ${ACFLAGS} -c -o ${.TARGET} gcrt1_c.s
d34 1
a34 1
	${CC} ${ACFLAGS} -c -o ${.TARGET} crt1_c.s
d45 1
a45 1
	${CC} ${ACFLAGS} -c -o ${.TARGET} Scrt1_c.s
@


1.24.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/i386-elf/Makefile 234726 2012-04-27 06:49:35Z dim $
@


1.24.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.24.2.2.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.1/lib/csu/i386-elf/Makefile 234726 2012-04-27 06:49:35Z dim $
@


1.24.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.24.2.1.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.0/lib/csu/i386-elf/Makefile 217375 2011-01-13 20:44:31Z dim $
@


1.23
log
@SVN rev 205398 on 2010-03-20 22:58:54Z by jilles

Do not create *.gmon files for PIE executables on i386.

Scrt1_c.o was accidentally compiled with -DGCRT (profiling), like gcrt1_c.o.
This problem is i386-specific, the other architectures are OK.

If you have problems with PIE executables such as samba and cups leaving
behind gmon files, rebuild them after installing this change.

PR:		ports/143924
Reviewed by:	kib
MFC after:	3 days
@
text
@d14 1
d16 9
a24 2
gcrt1_c.o: crt1_c.c
	${CC} ${CFLAGS} -DGCRT -c -o gcrt1_c.o ${.CURDIR}/crt1_c.c
d29 7
d40 6
a45 2
Scrt1_c.o:	crt1_c.c
	${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1_c.o ${.CURDIR}/crt1_c.c
@


1.22
log
@SVN rev 201381 on 2010-01-02 09:58:07Z by ed

Build lib/ with WARNS=6 by default.

Similar to libexec/, do the same with lib/. Make WARNS=6 the norm and
lower it when needed.

I'm setting WARNS?=0 for secure/. It seems secure/ includes the
Makefile.inc provided by lib/. I'm not going to touch that directory.
Most of the code there is contributed anyway.
@
text
@d26 1
a26 1
	${CC} ${CFLAGS} -DGCRT -fPIC -DPIC -c -o Scrt1_c.o ${.CURDIR}/crt1_c.c
@


1.21
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
@a10 1
WARNS?=		6
@


1.20
log
@The <bsd.files.mk> API seems the best to use here.
@
text
@d5 2
a6 2
SRCS=		crt1.c crti.S crtn.S
FILES=		${SRCS:N*.h:R:S/$/.o/g} gcrt1.o
d14 1
a14 1
CLEANFILES=	${FILES}
d16 16
a31 2
gcrt1.o: crt1.c
	${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.CURDIR}/crt1.c
@


1.20.8.1
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/6/lib/csu/i386-elf/Makefile 124752 2004-01-20 13:31:35Z ru $
@


1.20.18.1
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
@d5 2
a6 2
SRCS=		crti.S crtn.S
FILES=		${SRCS:N*.h:R:S/$/.o/g} gcrt1.o crt1.o Scrt1.o
d14 1
a14 1
CLEANFILES=	${FILES} crt1_c.o crt1_s.o gcrt1_c.o Scrt1_c.o
d16 2
a17 16
gcrt1_c.o: crt1_c.c
	${CC} ${CFLAGS} -DGCRT -c -o gcrt1_c.o ${.CURDIR}/crt1_c.c

gcrt1.o: gcrt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o gcrt1.o -r crt1_s.o gcrt1_c.o

crt1.o:	crt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o crt1.o -r crt1_s.o crt1_c.o
	objcopy --localize-symbol _start1 crt1.o

Scrt1_c.o:	crt1_c.c
	${CC} ${CFLAGS} -DGCRT -fPIC -DPIC -c -o Scrt1_c.o ${.CURDIR}/crt1_c.c

Scrt1.o: Scrt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o Scrt1.o -r crt1_s.o Scrt1_c.o
	objcopy --localize-symbol _start1 Scrt1.o
@


1.20.18.2
log
@SVN rev 207538 on 2010-05-02 20:12:20Z by jilles

MFC r205398: Do not create *.gmon files for PIE executables on i386.

Scrt1_c.o was accidentally compiled with -DGCRT (profiling), like gcrt1_c.o.
This problem is i386-specific, the other architectures are OK.

If you have problems with PIE executables such as samba and cups leaving
behind gmon files, rebuild them after installing this change.

PR:		ports/143924
@
text
@d27 1
a27 1
	${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1_c.o ${.CURDIR}/crt1_c.c
@


1.20.18.3
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/7/lib/csu/i386-elf/Makefile 207538 2010-05-02 20:12:20Z jilles $
@


1.20.18.2.2.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.20.18.2.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/7.4/lib/csu/i386-elf/Makefile 207538 2010-05-02 20:12:20Z jilles $
@


1.20.18.1.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.20.30.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.20.30.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
@d5 2
a6 2
SRCS=		crti.S crtn.S
FILES=		${SRCS:N*.h:R:S/$/.o/g} gcrt1.o crt1.o Scrt1.o
d14 1
a14 1
CLEANFILES=	${FILES} crt1_c.o crt1_s.o gcrt1_c.o Scrt1_c.o
d16 2
a17 16
gcrt1_c.o: crt1_c.c
	${CC} ${CFLAGS} -DGCRT -c -o gcrt1_c.o ${.CURDIR}/crt1_c.c

gcrt1.o: gcrt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o gcrt1.o -r crt1_s.o gcrt1_c.o

crt1.o:	crt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o crt1.o -r crt1_s.o crt1_c.o
	objcopy --localize-symbol _start1 crt1.o

Scrt1_c.o:	crt1_c.c
	${CC} ${CFLAGS} -DGCRT -fPIC -DPIC -c -o Scrt1_c.o ${.CURDIR}/crt1_c.c

Scrt1.o: Scrt1_c.o crt1_s.o
	${LD} ${LDFLAGS} -o Scrt1.o -r crt1_s.o Scrt1_c.o
	objcopy --localize-symbol _start1 Scrt1.o
@


1.20.30.3
log
@SVN rev 205567 on 2010-03-23 23:25:17Z by jilles

MFC r205398: Do not create *.gmon files for PIE executables on i386.

Scrt1_c.o was accidentally compiled with -DGCRT (profiling), like gcrt1_c.o.
This problem is i386-specific, the other architectures are OK.

If you have problems with PIE executables such as samba and cups leaving
behind gmon files, rebuild them after installing this change.

PR:		ports/143924
@
text
@d27 1
a27 1
	${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1_c.o ${.CURDIR}/crt1_c.c
@


1.20.30.4
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/i386-elf/Makefile 205567 2010-03-23 23:25:17Z jilles $
@


1.20.30.3.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.20.30.3.6.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/8.3/lib/csu/i386-elf/Makefile 205567 2010-03-23 23:25:17Z jilles $
@


1.20.30.3.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.20.30.3.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.20.30.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.20.28.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.20.26.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.20.24.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.19
log
@Removed garbage:
- -elf in CFLAGS had no effect except to reduce portability.
- -elf in LDFLAGS had even less effect, since LDFLAGS is not used.
- -Wall in CFLAGS had no effect except to reduce portability and break
  overriding of WARNS, since the setting of WARNS implies -Wall.
@
text
@d6 5
a10 2
OBJS=		${SRCS:N*.h:R:S/$/.o/g}
OBJS+=		gcrt1.o
d14 1
a14 4

all: ${OBJS}

CLEANFILES=	${OBJS}
d19 1
a19 5
realinstall:
	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
	    ${OBJS} ${DESTDIR}${LIBDIR}

.include <bsd.lib.mk>
@


1.18
log
@This is now Gcc 3.3 WARNS 6 clean.
@
text
@d9 1
a9 2
CFLAGS+=	-elf -Wall \
		-I${.CURDIR}/../common \
a10 1
LDFLAGS+=	-elf
@


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
@


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.6.2.6
log
@Switch importer
@
text
@d2 1
a2 1
# $FreeBSD: stable/4/lib/csu/i386-elf/Makefile 107187 2002-11-23 17:44:29Z ru $
@


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
@@
