svn commit: r362902 - in head/lib/csu: . aarch64 amd64 arm i386 mips powerpc powerpc64 riscv

John Baldwin jhb at FreeBSD.org
Fri Jul 3 00:09:44 UTC 2020


Author: jhb
Date: Fri Jul  3 00:09:41 2020
New Revision: 362902
URL: https://svnweb.freebsd.org/changeset/base/362902

Log:
  Consolidate duplicated logic in csu Makefiles to lib/csu/Makefile.inc.
  
  Reviewed by:	kib
  Sponsored by:	DARPA
  Differential Revision:	https://reviews.freebsd.org/D25537

Modified:
  head/lib/csu/Makefile.inc
  head/lib/csu/aarch64/Makefile
  head/lib/csu/amd64/Makefile
  head/lib/csu/arm/Makefile
  head/lib/csu/i386/Makefile
  head/lib/csu/mips/Makefile
  head/lib/csu/powerpc/Makefile
  head/lib/csu/powerpc64/Makefile
  head/lib/csu/riscv/Makefile

Modified: head/lib/csu/Makefile.inc
==============================================================================
--- head/lib/csu/Makefile.inc	Thu Jul  2 22:59:05 2020	(r362901)
+++ head/lib/csu/Makefile.inc	Fri Jul  3 00:09:41 2020	(r362902)
@@ -8,15 +8,52 @@ NO_WMISSING_VARIABLE_DECLARATIONS=
 
 .if !defined(BUILDING_TESTS)
 
+OBJS+=	Scrt1.o crt1.o gcrt1.o
 OBJS+=	crtbegin.o crtbeginS.o crtbeginT.o
 OBJS+=	crtend.o crtendS.o
+OBJS+=	crti.o crtn.o
 
+CRT1OBJS+=	crtbrand.o ignore_init_note.o
+
 ACFLAGS+=	-DLOCORE
 
 CFLAGS+=	-fno-asynchronous-unwind-tables
 CFLAGS+=	-fno-omit-frame-pointer
+CFLAGS+=	-I${.CURDIR:H}/common \
+		-I${SRCTOP}/lib/libc/include
 
 CFLAGS_CRTS=	-DSHARED ${PICFLAG}
+
+FILES=		${OBJS}
+FILESMODE=	${LIBMODE}
+FILESOWN=	${LIBOWN}
+FILESGRP=	${LIBGRP}
+FILESDIR=	${LIBDIR}
+# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
+.undef LIBRARIES_ONLY
+
+CLEANFILES+=	${OBJS} ${CRT1OBJS} crt1_c.o gcrt1_c.o Scrt1_c.o
+
+crt1.o:	crt1_c.o ${CRT1OBJS}
+	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
+.if ${MACHINE_ARCH} == "i386"
+	${OBJCOPY} --localize-symbol _start1 crt1.o
+.endif
+
+gcrt1_c.o: crt1_c.c
+	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
+
+gcrt1.o: gcrt1_c.o ${CRT1OBJS}
+	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
+
+Scrt1_c.o: crt1_c.c
+	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
+
+Scrt1.o: Scrt1_c.o ${CRT1OBJS}
+	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
+.if ${MACHINE_ARCH} == "i386"
+	${OBJCOPY} --localize-symbol _start1 crt1.o
+.endif
 
 crtbegin.o: crtbegin.c
 crtbeginS.o: crtbegin.c

Modified: head/lib/csu/aarch64/Makefile
==============================================================================
--- head/lib/csu/aarch64/Makefile	Thu Jul  2 22:59:05 2020	(r362901)
+++ head/lib/csu/aarch64/Makefile	Fri Jul  3 00:09:41 2020	(r362902)
@@ -2,37 +2,8 @@
 
 .PATH: ${.CURDIR:H}/common
 
-SRCS=		crti.S crtn.S
-OBJS=		${SRCS:N*.h:R:S/$/.o/g}
-OBJS+=		Scrt1.o crt1.o gcrt1.o
-CFLAGS+=	-I${.CURDIR:H}/common \
-		-I${SRCTOP}/lib/libc/include
 CFLAGS+=	-DCRT_IRELOC_SUPPRESS
 
-FILES=		${OBJS}
-FILESMODE=	${LIBMODE}
-FILESOWN=	${LIBOWN}
-FILESGRP=	${LIBGRP}
-FILESDIR=	${LIBDIR}
-# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
-.undef LIBRARIES_ONLY
-
-CLEANFILES=	${OBJS} crt1_c.o crt1_s.o gcrt1_c.o Scrt1_c.o
-CLEANFILES+=	crtbrand.o ignore_init_note.o
-
-gcrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-gcrt1.o: gcrt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
-
-crt1.o:	crt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
-
-Scrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-Scrt1.o: Scrt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
+CRT1OBJS+=	crt1_s.o
 
 .include <bsd.lib.mk>

Modified: head/lib/csu/amd64/Makefile
==============================================================================
--- head/lib/csu/amd64/Makefile	Thu Jul  2 22:59:05 2020	(r362901)
+++ head/lib/csu/amd64/Makefile	Fri Jul  3 00:09:41 2020	(r362902)
@@ -2,37 +2,7 @@
 
 .PATH: ${.CURDIR:H}/common
 
-SRCS=		crti.S crtn.S
-OBJS=		${SRCS:N*.h:R:S/$/.o/g}
-OBJS+=		Scrt1.o crt1.o gcrt1.o
-CFLAGS+=	-I${.CURDIR} -I${.CURDIR:H}/common \
-		-I${SRCTOP}/lib/libc/include
+CFLAGS+=	-I${.CURDIR}
 CFLAGS+=	-fno-omit-frame-pointer -DCRT_IRELOC_RELA
-
-FILES=		${OBJS}
-FILESMODE=	${LIBMODE}
-FILESOWN=	${LIBOWN}
-FILESGRP=	${LIBGRP}
-FILESDIR=	${LIBDIR}
-# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
-.undef LIBRARIES_ONLY
-
-CLEANFILES=	${OBJS} crt1_c.o gcrt1_c.o Scrt1_c.o
-CLEANFILES+=	crtbrand.o ignore_init_note.o
-
-gcrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-gcrt1.o: gcrt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o gcrt1.o -r crtbrand.o ignore_init_note.o gcrt1_c.o
-
-crt1.o:	crt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o crt1.o -r crtbrand.o ignore_init_note.o crt1_c.o
-
-Scrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-Scrt1.o: Scrt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o Scrt1.o -r crtbrand.o ignore_init_note.o Scrt1_c.o
 
 .include <bsd.lib.mk>

Modified: head/lib/csu/arm/Makefile
==============================================================================
--- head/lib/csu/arm/Makefile	Thu Jul  2 22:59:05 2020	(r362901)
+++ head/lib/csu/arm/Makefile	Fri Jul  3 00:09:41 2020	(r362902)
@@ -2,40 +2,8 @@
 
 .PATH: ${.CURDIR:H}/common
 
-SRCS=		crti.S crtn.S
-OBJS=		${SRCS:N*.h:R:S/$/.o/g}
-OBJS+=		Scrt1.o crt1.o gcrt1.o
-CFLAGS+=	-I${.CURDIR:H}/common \
-		-I${SRCTOP}/lib/libc/include
 CFLAGS+=	-DCRT_IRELOC_SUPPRESS
 
-FILES=		${OBJS}
-FILESMODE=	${LIBMODE}
-FILESOWN=	${LIBOWN}
-FILESGRP=	${LIBGRP}
-FILESDIR=	${LIBDIR}
-# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
-.undef LIBRARIES_ONLY
-
-CLEANFILES=	${OBJS} crt1_c.o crt1_s.o gcrt1_c.o Scrt1_c.o
-CLEANFILES+=	crtbrand.o ignore_init_note.o
-
-crt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-crt1.o:	crt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
-
-gcrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-gcrt1.o: gcrt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
-
-Scrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-Scrt1.o: Scrt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
+CRT1OBJS+=	crt1_s.o
 
 .include <bsd.lib.mk>

Modified: head/lib/csu/i386/Makefile
==============================================================================
--- head/lib/csu/i386/Makefile	Thu Jul  2 22:59:05 2020	(r362901)
+++ head/lib/csu/i386/Makefile	Fri Jul  3 00:09:41 2020	(r362902)
@@ -2,39 +2,9 @@
 
 .PATH: ${.CURDIR:H}/common
 
-SRCS=		crti.S crtn.S
-OBJS=		${SRCS:N*.h:R:S/$/.o/g}
-OBJS+=		Scrt1.o crt1.o gcrt1.o
-CFLAGS+=	-I${.CURDIR} -I${.CURDIR:H}/common \
-		-I${SRCTOP}/lib/libc/include
+CFLAGS+=	-I${.CURDIR}
 CFLAGS+=	-DCRT_IRELOC_REL
 
-FILES=		${OBJS}
-FILESMODE=	${LIBMODE}
-FILESOWN=	${LIBOWN}
-FILESGRP=	${LIBGRP}
-FILESDIR=	${LIBDIR}
-# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
-.undef LIBRARIES_ONLY
-
-CLEANFILES=	${OBJS} crt1_c.o crt1_s.o gcrt1_c.o Scrt1_c.o
-CLEANFILES+=	crtbrand.o ignore_init_note.o
-
-gcrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-gcrt1.o: gcrt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
-
-crt1.o:	crt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
-	${OBJCOPY} --localize-symbol _start1 crt1.o
-
-Scrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-Scrt1.o: Scrt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
-	${OBJCOPY} --localize-symbol _start1 Scrt1.o
+CRT1OBJS+=	crt1_s.o
 
 .include <bsd.lib.mk>

Modified: head/lib/csu/mips/Makefile
==============================================================================
--- head/lib/csu/mips/Makefile	Thu Jul  2 22:59:05 2020	(r362901)
+++ head/lib/csu/mips/Makefile	Fri Jul  3 00:09:41 2020	(r362902)
@@ -2,37 +2,6 @@
 
 .PATH: ${.CURDIR:H}/common
 
-SRCS=		crti.S crtn.S
-OBJS=		${SRCS:N*.h:R:S/$/.o/g}
-OBJS+=		Scrt1.o crt1.o gcrt1.o
-CFLAGS+=	-I${.CURDIR:H}/common \
-		-I${SRCTOP}/lib/libc/include
 CFLAGS+=	-DCRT_IRELOC_SUPPRESS
-
-FILES=		${OBJS}
-FILESMODE=	${LIBMODE}
-FILESOWN=	${LIBOWN}
-FILESGRP=	${LIBGRP}
-FILESDIR=	${LIBDIR}
-# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
-.undef LIBRARIES_ONLY
-
-CLEANFILES=	${OBJS} crt1_c.o gcrt1_c.o Scrt1_c.o
-CLEANFILES+=	crtbrand.o ignore_init_note.o
-
-gcrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-gcrt1.o: gcrt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o gcrt1.o -r crtbrand.o ignore_init_note.o gcrt1_c.o
-
-crt1.o:	crt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o crt1.o -r crtbrand.o ignore_init_note.o crt1_c.o
-
-Scrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-Scrt1.o: Scrt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o Scrt1.o -r crtbrand.o ignore_init_note.o Scrt1_c.o
 
 .include <bsd.lib.mk>

Modified: head/lib/csu/powerpc/Makefile
==============================================================================
--- head/lib/csu/powerpc/Makefile	Thu Jul  2 22:59:05 2020	(r362901)
+++ head/lib/csu/powerpc/Makefile	Fri Jul  3 00:09:41 2020	(r362902)
@@ -2,37 +2,7 @@
 
 .PATH: ${.CURDIR:H}/common
 
-SRCS=		crti.S crtn.S crtsavres.S
-OBJS=		${SRCS:N*.h:R:S/$/.o/g}
-OBJS+=		Scrt1.o crt1.o gcrt1.o
-CFLAGS+=	-I${.CURDIR:H}/common \
-		-I${SRCTOP}/lib/libc/include
+OBJS+=		crtsavres.o
 CFLAGS+=	-DCRT_IRELOC_SUPPRESS
-
-FILES=		${OBJS}
-FILESMODE=	${LIBMODE}
-FILESOWN=	${LIBOWN}
-FILESGRP=	${LIBGRP}
-FILESDIR=	${LIBDIR}
-# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
-.undef LIBRARIES_ONLY
-
-CLEANFILES=	${OBJS} crt1_c.o gcrt1_c.o Scrt1_c.o
-CLEANFILES+=	crtbrand.o ignore_init_note.o
-
-gcrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-gcrt1.o: gcrt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o gcrt1.o -r crtbrand.o ignore_init_note.o gcrt1_c.o
-
-crt1.o:	crt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o crt1.o -r crtbrand.o ignore_init_note.o crt1_c.o
-
-Scrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-Scrt1.o: Scrt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o Scrt1.o -r crtbrand.o ignore_init_note.o Scrt1_c.o
 
 .include <bsd.lib.mk>

Modified: head/lib/csu/powerpc64/Makefile
==============================================================================
--- head/lib/csu/powerpc64/Makefile	Thu Jul  2 22:59:05 2020	(r362901)
+++ head/lib/csu/powerpc64/Makefile	Fri Jul  3 00:09:41 2020	(r362902)
@@ -2,42 +2,14 @@
 
 .PATH: ${.CURDIR:H}/common
 
-SRCS=		crti.S crtn.S
-OBJS=		${SRCS:N*.h:R:S/$/.o/g}
-OBJS+=		Scrt1.o crt1.o crtsavres.o gcrt1.o
-CFLAGS+=	-I${.CURDIR} -I${.CURDIR:H}/common \
-		-I${SRCTOP}/lib/libc/include \
+OBJS+=		crtsavres.o
+CFLAGS+=	-I${.CURDIR} \
 		-mlongcall -DCRT_IRELOC_RELA
 
-FILES=		${OBJS}
-FILESMODE=	${LIBMODE}
-FILESOWN=	${LIBOWN}
-FILESGRP=	${LIBGRP}
-FILESDIR=	${LIBDIR}
-# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
-.undef LIBRARIES_ONLY
-
-CLEANFILES=	${OBJS} crt1_c.o gcrt1_c.o Scrt1_c.o
-CLEANFILES+=	crtbrand.o ignore_init_note.o
 CLEANFILES+=	crtsavres.S
 
 # On powerpc64 crtsavres is an empty file
 crtsavres.S:
 	touch ${.TARGET}
-
-gcrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-gcrt1.o: gcrt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o gcrt1.o -r crtbrand.o ignore_init_note.o gcrt1_c.o
-
-crt1.o:	crt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o crt1.o -r crtbrand.o ignore_init_note.o crt1_c.o
-
-Scrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-Scrt1.o: Scrt1_c.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o Scrt1.o -r crtbrand.o ignore_init_note.o Scrt1_c.o
 
 .include <bsd.lib.mk>

Modified: head/lib/csu/riscv/Makefile
==============================================================================
--- head/lib/csu/riscv/Makefile	Thu Jul  2 22:59:05 2020	(r362901)
+++ head/lib/csu/riscv/Makefile	Fri Jul  3 00:09:41 2020	(r362902)
@@ -2,37 +2,8 @@
 
 .PATH: ${.CURDIR:H}/common
 
-SRCS=		crti.S crtn.S
-OBJS=		${SRCS:N*.h:R:S/$/.o/g}
-OBJS+=		Scrt1.o crt1.o gcrt1.o
-CFLAGS+=	-I${.CURDIR:H}/common \
-		-I${SRCTOP}/lib/libc/include
 CFLAGS+=	-DCRT_IRELOC_SUPPRESS
 
-FILES=		${OBJS}
-FILESMODE=	${LIBMODE}
-FILESOWN=	${LIBOWN}
-FILESGRP=	${LIBGRP}
-FILESDIR=	${LIBDIR}
-# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
-.undef LIBRARIES_ONLY
-
-CLEANFILES=	${OBJS} crt1_c.o crt1_s.o gcrt1_c.o Scrt1_c.o
-CLEANFILES+=	crtbrand.o ignore_init_note.o
-
-gcrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-gcrt1.o: gcrt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
-
-crt1.o:	crt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
-
-Scrt1_c.o: crt1_c.c
-	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/crt1_c.c
-
-Scrt1.o: Scrt1_c.o crt1_s.o crtbrand.o ignore_init_note.o
-	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
+CRT1OBJS+=	crt1_s.o
 
 .include <bsd.lib.mk>


More information about the svn-src-head mailing list