Date: Fri, 2 Aug 2013 20:46:35 GMT From: Brooks Davis <brooks@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 231651 for review Message-ID: <201308022046.r72KkZwl078531@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@231651?ac=10 Change 231651 by brooks@brooks_zenith on 2013/08/02 20:46:24 Add support for WITH_LLVM_INSTRUMENTED and probably WITH_TESLA to bsd.prog.mk. Disabled instrumentation in rtld and bootstrap tools and disble building /rescue when either WITH_ option is set. Affected files ... .. //depot/projects/ctsrd/tesla/src/Makefile.inc1#16 edit .. //depot/projects/ctsrd/tesla/src/libexec/rtld-elf/Makefile#2 edit .. //depot/projects/ctsrd/tesla/src/share/mk/bsd.libnames.mk#4 edit .. //depot/projects/ctsrd/tesla/src/share/mk/bsd.prog.mk#9 edit .. //depot/projects/ctsrd/tesla/src/share/mk/sys.mk#14 edit .. //depot/projects/ctsrd/tesla/src/sys/boot/i386/Makefile.inc#2 edit Differences ... ==== //depot/projects/ctsrd/tesla/src/Makefile.inc1#16 (text+ko) ==== @@ -73,7 +73,7 @@ .if ${MK_KERBEROS} != "no" SUBDIR+=kerberos5 .endif -.if ${MK_RESCUE} != "no" +.if ${MK_RESCUE} != "no" && ${MK_LLVM_INSTRUMENTED} == "no" SUBDIR+=rescue .endif SUBDIR+=sbin @@ -237,7 +237,8 @@ DESTDIR= \ BOOTSTRAPPING=${OSRELDATE} \ SSP_CFLAGS= \ - -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN \ + -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LLVM_IR -DNO_LINT \ + -DWITHOUT_MAN \ -DNO_PIC -DNO_PROFILE -DNO_SHARED \ -DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD @@ -1270,7 +1271,7 @@ _gcc_tools= gnu/usr.bin/cc/cc_tools .endif -.if ${MK_RESCUE} != "no" +.if ${MK_RESCUE} != "no" && ${MK_LLVM_INSTRUMENTED} == "no" _rescue= rescue/rescue .endif ==== //depot/projects/ctsrd/tesla/src/libexec/rtld-elf/Makefile#2 (text+ko) ==== @@ -2,6 +2,7 @@ .include <bsd.own.mk> MK_SSP= no +NO_LLVM_IR= yes PROG?= ld-elf.so.1 SRCS= rtld_start.S \ ==== //depot/projects/ctsrd/tesla/src/share/mk/bsd.libnames.mk#4 (text+ko) ==== @@ -156,6 +156,7 @@ LIBTACPLUS?= ${DESTDIR}${LIBDIR}/libtacplus.a LIBTERMCAP?= ${DESTDIR}${LIBDIR}/libtermcap.a LIBTERMLIB?= "don't use LIBTERMLIB, use LIBTERMCAP" +LIBTESLA?= ${DESTDIR}${LIBDIR}/libtesla.a LIBTINFO?= "don't use LIBTINFO, use LIBNCURSES" LIBUFS?= ${DESTDIR}${LIBDIR}/libufs.a LIBUGIDFW?= ${DESTDIR}${LIBDIR}/libugidfw.a ==== //depot/projects/ctsrd/tesla/src/share/mk/bsd.prog.mk#9 (text+ko) ==== @@ -52,7 +52,27 @@ .endif .if defined(SRCS) && !empty(SRCS) +# XXX: currently tesla can't handle C++ so build C++ code normaly in the +# WITH_TESLA case. +.if defined(NO_LLVM_IR) || ${MK_LLVM_INSTRUMENTED} == "no" || \ + (${MK_TESLA} != "no" && defined(PROG_CXX)) OBJS+= ${SRCS:N*.h:R:S/$/.o/g} +.else +# XXX: should blow up if other SRCS types are found +OBJS+= ${SRCS:M*.bin:R:S/$/.o/g:N.o} ${SRCS:M*.[Ss]:R:S/$/.o/g:N.o} +LLVM_CFILES= ${SRCS:M*.c} \ + ${SRCS:M*.cc} ${SRCS:M*.cpp} ${SRCS:M*.cxx} ${SRCS:M*.C} \ + ${SRCS:M*.l:R:S/$/.c/:N.c} ${SRCS:M*.y:R:S/$/.c/:N.c} +OIRS= ${LLVM_CFILES:R:S/$/.o${LLVM_IR_TYPE}/} +INSTR_IRS= ${LLVM_CFILES:R:S/$/.instr${LLVM_IR_TYPE}/} +INSTR_OBJS= ${LLVM_CFILES:R:S/$/.instro/} +OBJS+= ${INSTR_OBJS} +CLEANFILES+= ${OIRS} ${INSTR_IRS} ${INSTR_OBJS} +.if ${MK_TESLA} != "no" +TESLA_FILES= ${LLVM_CFILES:R:S/$/.tesla/} +CLEANFILES+= ${TESLA_FILES} tesla.manifest +.endif +.endif .if target(beforelinking) beforelinking: ${OBJS} @@ -69,47 +89,15 @@ .endif .endif -# XXX: forced assignment due to make not figuring out how to make things -# from generated .c files (which are added to SRCS later). -CSRC_OBJS:= ${SRCS:M*.c:R:S/$/.object/:N.object} -CXXSRC_OBJS:= ${SRCS:M*.cc:R:S/$/.object/:N.object} \ - ${SRCS:M*.cpp:R:S/$/.object/:N.object} \ - ${SRCS:M*.cxx:R:S/$/.object/:N.object} \ - ${SRCS:M*.C:R:S/$/.object/:N.object} -SRC_OBJS= ${CSRC_OBJS} ${CXX_OBJS} - -TESLA_FILES= ${CSRC_OBJS:.object=.tesla} -OLLS= ${CSRC_OBJS:.object=.oll} -INSTRLLS= ${CSRC_OBJS:.object=.instrll} -INSTROBJS= ${CSRC_OBJS:.object=.instro} -CLEANFILES+= ${TESLA_FILES} tesla.manifest ${OLLS} ${INSTRLLS} ${INSTROBJS} \ - ${PROG}.instrumented - +.if ${MK_TESLA} != "no" tesla.manifest: ${TESLA_FILES} cat ${TESLA_FILES} > ${.TARGET} -tesla: ${PROG}.instrumented - -${PROG}.instrumented: ${INSTROBJS} - ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${INSTROBJS} ${LDADD} -ltesla - -.if defined(LLVM_IR) && !defined(NO_LLVM_IR) -LOBJS:= ${SRC_OBJS:.object=.obc} -CLEANFILES+= ${PROG}.bc ${LOBJS} - -.if !empty(LOBJS) -all: ${PROG}.bc -${PROG}.bc: ${LOBJS} - ${LLVM_LINK} -o ${.TARGET} ${LOBJS} - -all: ${PROG}.bc-opt -${PROG}.bc-opt: ${PROG}.bc -.if empty(OPT_PASSES) - cp ${PROG}.bc ${.TARGET} +DPADD+= ${LIBTESLA} +LDADD+= -ltesla .else - ${OPT} -o ${.TARGET} ${OPT_PASSES} ${PROG}.bc -.endif -.endif +tesla.manifest: + touch ${.TARGET} .endif .if ${MK_MAN} != "no" && !defined(MAN) && \ ==== //depot/projects/ctsrd/tesla/src/share/mk/sys.mk#14 (text+ko) ==== @@ -233,12 +233,6 @@ cp -fp ${.IMPSRC} ${.TARGET} chmod a+x ${.TARGET} -.c.obc: - ${CC} ${CFLAGS:N-O*} -emit-llvm -c ${.IMPSRC} -o ${.TARGET} - -.c.oll: - ${CC} ${CFLAGS:N-O*} -emit-llvm -S ${.IMPSRC} -o ${.TARGET} - .c.ln: ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \ touch ${.TARGET} @@ -255,6 +249,12 @@ ${CC} ${CFLAGS} -c ${.IMPSRC} ${CTFCONVERT_CMD} +.c.obc: + ${CC} ${CFLAGS:N-O*} -emit-llvm -c ${.IMPSRC} -o ${.TARGET} + +.c.oll: + ${CC} ${CFLAGS:N-O*} -emit-llvm -S ${.IMPSRC} -o ${.TARGET} + .c.tesla: ${TESLA} analyse ${.IMPSRC} -o ${.TARGET} -- ${CFLAGS} ${XFLAGS} -D TESLA @@ -264,6 +264,12 @@ .cc.o .cpp.o .cxx.o .C.o: ${CXX} ${CXXFLAGS} -c ${.IMPSRC} +.cc.obc .cpp.obc .cxx.obc .C.obc: + ${CC} ${CXXFLAGS:N-O*} -emit-llvm -c ${.IMPSRC} -o ${.TARGET} + +.c.oll: + ${CC} ${CXXFLAGS:N-O*} -emit-llvm -S ${.IMPSRC} -o ${.TARGET} + .m.o: ${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} ${CTFCONVERT_CMD} ==== //depot/projects/ctsrd/tesla/src/sys/boot/i386/Makefile.inc#2 (text+ko) ==== @@ -4,6 +4,8 @@ BINDIR?= /boot +NO_LLVM_IR= yes + LOADER_ADDRESS?=0x200000 CFLAGS+= -march=i386 -ffreestanding -mpreferred-stack-boundary=2 \ -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308022046.r72KkZwl078531>