[BACK]Return to Makefile CVS log [TXT][DIR] Up to [local] / src / lib / csu

File: [local] / src / lib / csu / Makefile (download)

Revision 1.36, Sun Nov 14 00:45:38 2021 UTC (2 years, 6 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, HEAD
Changes since 1.35: +7 -1 lines

Split out the hppa and mips64 versions of boot.h similar to how I
split ld.so/boot.c in 2019:
 * delete extraneous #includes
 * delete jmprel handling on non-hppa
 * delete RELOC_GOT() and DT_PROC bits on non-mips64

ok visa@

#	$OpenBSD: Makefile,v 1.36 2021/11/14 00:45:38 guenther Exp $

OBJS=		crt0.o gcrt0.o
OBJS+=		crtbegin.o crtend.o
OBJS+=		crtbeginS.o crtendS.o
OBJS+=		rcrt0.o
SRCS=		crt0.c crtbegin.c crtbeginS.c crtend.c crtendS.c

CFLAGS+=	-I${.CURDIR}/${MACHINE_CPU}
CFLAGS+=	-I${.CURDIR}/../../libexec/ld.so
CFLAGS+=	-I${.CURDIR}/../../libexec/ld.so/${MACHINE_CPU}

# XXX "use -fno-omit-frame-pointer; the reason is almost crazy; pr#287"
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
CFLAGS+=	-fno-omit-frame-pointer
.endif

.ifdef NOPIC
PICFLAG=
.elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64"
# The objects for shared libraries need to work for all possible
# libraries, so force big PIC where it matters.
# Arguably m88k should do this too, but maybe there aren't any
# libraries big enough to need it there?
PICFLAG=	-fPIC
.endif

.if exists(${.CURDIR}/${MACHINE_CPU}/boot_md.h)
CFLAGS+=	-DBOOT_H=\"boot_md.h\"
.else
CFLAGS+=	-DBOOT_H=\"boot.h\"
.endif

RCFLAGS=-DRCRT0
# amd64 can access the stack protector before relocation has occurred.
# Other archs aren't so lucky
.if ${MACHINE_ARCH} != "amd64"
RCFLAGS+=-fno-stack-protector 
.endif

# Prevent use of builtins in _dl_boot_bind().
.if ${MACHINE_CPU} == "mips64" || ${MACHINE_CPU} == "powerpc"
RCFLAGS+=-fno-builtin
.endif

.if ${MACHINE_CPU} == "powerpc64"
RCFLAGS+= -mno-vsx -mno-altivec
.endif

# Prevent use of jump tables in _dl_boot_bind().
.if ${MACHINE_CPU} == "mips64" || ${MACHINE_CPU} == "powerpc" || \
    ${MACHINE_CPU} == "powerpc64"
RCFLAGS+=-fno-jump-tables
.endif

DEPS = ${OBJS:.o=.d}
DFLAGS += -MF ${.TARGET:R}.d

all: ${OBJS}

crt0.o: crt0.c
	@echo ${COMPILE.c} ${.CURDIR}/crt0.c -o ${.TARGET}
	@${COMPILE.c} ${DFLAGS} ${.CURDIR}/crt0.c -o ${.TARGET}.o
	@${LD} -x -r -o ${.TARGET} ${.TARGET}.o
	@rm -f ${.TARGET}.o

gcrt0.o: crt0.c
	@echo ${COMPILE.c} -DMCRT0 ${.CURDIR}/crt0.c -o ${.TARGET}
	@${COMPILE.c} ${DFLAGS} -DMCRT0 ${.CURDIR}/crt0.c -o ${.TARGET}.o
	@${LD} -x -r -o ${.TARGET} ${.TARGET}.o
	@rm -f ${.TARGET}.o

rcrt0.o: crt0.c
	@echo ${COMPILE.c} ${RCFLAGS} ${.CURDIR}/crt0.c -o ${.TARGET}
	@${COMPILE.c} ${DFLAGS} ${RCFLAGS} ${.CURDIR}/crt0.c -o ${.TARGET}.o
	@${LD} -x -r -o ${.TARGET} ${.TARGET}.o
	@rm -f ${.TARGET}.o

crtbegin.o: crtbegin.c
	@echo ${COMPILE.c} ${.CURDIR}/crtbegin.c -o ${.TARGET}
	@${COMPILE.c} ${DFLAGS} ${.CURDIR}/crtbegin.c -o ${.TARGET}.o
	@${LD} -x -r -o ${.TARGET} ${.TARGET}.o
	@rm -f ${.TARGET}.o

crtbeginS.o: crtbeginS.c
	@echo ${COMPILE.c} ${PICFLAG} ${.CURDIR}/crtbeginS.c -o ${.TARGET}
	@${COMPILE.c} ${DFLAGS} ${PICFLAG} ${.CURDIR}/crtbeginS.c -o ${.TARGET}.o
	@${LD} -x -r -o ${.TARGET} ${.TARGET}.o
	@rm -f ${.TARGET}.o

crtend.o: crtend.c
	@echo ${COMPILE.c} ${.CURDIR}/crtend.c -o ${.TARGET}
	@${COMPILE.c} ${DFLAGS} ${.CURDIR}/crtend.c -o ${.TARGET}.o
	@${LD} -x -r -o ${.TARGET} ${.TARGET}.o
	@rm -f ${.TARGET}.o

crtendS.o: crtendS.c
	@echo ${COMPILE.c} ${PICFLAG} ${.CURDIR}/crtendS.c -o ${.TARGET}
	@${COMPILE.c} ${DFLAGS} ${PICFLAG} ${.CURDIR}/crtendS.c -o ${.TARGET}.o
	@${LD} -x -r -o ${.TARGET} ${.TARGET}.o
	@rm -f ${.TARGET}.o

realinstall:
	${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m 444 ${OBJS} \
	    ${DESTDIR}/usr/lib

.include <bsd.prog.mk>