git: 061ce1c392f0 - stable/13 - Move extra suffix-transformation rules into bsd.suffixes-extra.mk
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 26 Apr 2025 11:32:22 UTC
The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=061ce1c392f0223c6ff6578c9649e79da89f9796 commit 061ce1c392f0223c6ff6578c9649e79da89f9796 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2025-04-22 18:26:56 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2025-04-26 11:31:20 +0000 Move extra suffix-transformation rules into bsd.suffixes-extra.mk To make it possible to use the .SUFFIXES list and suffix-transformation rules from bsd.lib.mk in other places, move them to a separate file, bsd.suffixes-extra.mk. Note that we cannot add the list and rules to bsd.suffixes.mk, since that file also gets included by sys.mk, which applies to non-source builds. That would require a whole ports exp-run. No functional change intended. Reviewed by: brooks, emaste MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D49965 (cherry picked from commit 9c4f1497dae7832e2727682e9161ca9572e56dfe) --- share/mk/Makefile | 1 + share/mk/bsd.lib.mk | 97 +-------------------------------------- share/mk/bsd.suffixes-extra.mk | 101 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 103 insertions(+), 96 deletions(-) diff --git a/share/mk/Makefile b/share/mk/Makefile index 001323fab053..b98db631800c 100644 --- a/share/mk/Makefile +++ b/share/mk/Makefile @@ -51,6 +51,7 @@ FILES= \ bsd.progs.mk \ bsd.snmpmod.mk \ bsd.subdir.mk \ + bsd.suffixes-extra.mk \ bsd.suffixes-posix.mk \ bsd.suffixes.mk \ bsd.symver.mk \ diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index 4a580e0ed32a..f9407f0f40ce 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -133,102 +133,7 @@ CFLAGS += -mno-relax .include <bsd.libnames.mk> -# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries -# .pico used for PIC object files -# .nossppico used for NOSSP PIC object files -# .pieo used for PIE object files -.SUFFIXES: .out .o .bc .ll .po .pico .nossppico .pieo .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln - -.if !defined(PICFLAG) -PICFLAG=-fpic -PIEFLAG=-fpie -.endif - -PO_FLAG=-pg - -.c.po: - ${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} - -.c.pico: - ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} - -.c.nossppico: - ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS:C/^-fstack-protector.*$//} ${CFLAGS:C/^-fstack-protector.*$//} -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} - -.c.pieo: - ${CC} ${PIEFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} - -.cc.po .C.po .cpp.po .cxx.po: - ${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} - -.cc.pico .C.pico .cpp.pico .cxx.pico: - ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} - -.cc.nossppico .C.nossppico .cpp.nossppico .cxx.nossppico: - ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS:C/^-fstack-protector.*$//} ${CXXFLAGS:C/^-fstack-protector.*$//} -c ${.IMPSRC} -o ${.TARGET} - -.cc.pieo .C.pieo .cpp.pieo .cxx.pieo: - ${CXX} ${PIEFLAG} ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} - -.f.po: - ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} - ${CTFCONVERT_CMD} - -.f.pico: - ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} - ${CTFCONVERT_CMD} - -.f.nossppico: - ${FC} ${PICFLAG} -DPIC ${FFLAGS:C/^-fstack-protector.*$//} -o ${.TARGET} -c ${.IMPSRC} - ${CTFCONVERT_CMD} - -.s.po .s.pico .s.nossppico .s.pieo: - ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} - ${CTFCONVERT_CMD} - -.asm.po: - ${CC:N${CCACHE_BIN}} -x assembler-with-cpp -DPROF ${PO_CFLAGS} \ - ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} - -.asm.pico: - ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ - ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} - -.asm.nossppico: - ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ - ${CFLAGS:C/^-fstack-protector.*$//} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} - -.asm.pieo: - ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PIEFLAG} -DPIC \ - ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} - -.S.po: - ${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \ - -o ${.TARGET} - ${CTFCONVERT_CMD} - -.S.pico: - ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \ - -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} - -.S.nossppico: - ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS:C/^-fstack-protector.*$//} ${ACFLAGS} \ - -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} - -.S.pieo: - ${CC:N${CCACHE_BIN}} ${PIEFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \ - -c ${.IMPSRC} -o ${.TARGET} - ${CTFCONVERT_CMD} +.include <bsd.suffixes-extra.mk> _LIBDIR:=${LIBDIR} _SHLIBDIR:=${SHLIBDIR} diff --git a/share/mk/bsd.suffixes-extra.mk b/share/mk/bsd.suffixes-extra.mk new file mode 100644 index 000000000000..78f9a0f69e80 --- /dev/null +++ b/share/mk/bsd.suffixes-extra.mk @@ -0,0 +1,101 @@ +.if !target(__<bsd.suffixes-extra.mk>__) +__<bsd.suffixes-extra.mk>__: .NOTMAIN + +# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries +# .pico used for PIC object files +# .nossppico used for NOSSP PIC object files +# .pieo used for PIE object files +.SUFFIXES: .out .o .bc .ll .po .pico .nossppico .pieo .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln + +.if !defined(PICFLAG) +PICFLAG=-fpic +PIEFLAG=-fpie +.endif + +PO_FLAG=-pg + +.c.po: + ${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.c.pico: + ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.c.nossppico: + ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS:C/^-fstack-protector.*$//} ${CFLAGS:C/^-fstack-protector.*$//} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.c.pieo: + ${CC} ${PIEFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.cc.po .C.po .cpp.po .cxx.po: + ${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} + +.cc.pico .C.pico .cpp.pico .cxx.pico: + ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} + +.cc.nossppico .C.nossppico .cpp.nossppico .cxx.nossppico: + ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS:C/^-fstack-protector.*$//} ${CXXFLAGS:C/^-fstack-protector.*$//} -c ${.IMPSRC} -o ${.TARGET} + +.cc.pieo .C.pieo .cpp.pieo .cxx.pieo: + ${CXX} ${PIEFLAG} ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} + +.f.po: + ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} + ${CTFCONVERT_CMD} + +.f.pico: + ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} + ${CTFCONVERT_CMD} + +.f.nossppico: + ${FC} ${PICFLAG} -DPIC ${FFLAGS:C/^-fstack-protector.*$//} -o ${.TARGET} -c ${.IMPSRC} + ${CTFCONVERT_CMD} + +.s.po .s.pico .s.nossppico .s.pieo: + ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} + ${CTFCONVERT_CMD} + +.asm.po: + ${CC:N${CCACHE_BIN}} -x assembler-with-cpp -DPROF ${PO_CFLAGS} \ + ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.asm.pico: + ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ + ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.asm.nossppico: + ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ + ${CFLAGS:C/^-fstack-protector.*$//} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.asm.pieo: + ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PIEFLAG} -DPIC \ + ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.S.po: + ${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \ + -o ${.TARGET} + ${CTFCONVERT_CMD} + +.S.pico: + ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \ + -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.S.nossppico: + ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS:C/^-fstack-protector.*$//} ${ACFLAGS} \ + -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.S.pieo: + ${CC:N${CCACHE_BIN}} ${PIEFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \ + -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + +.endif # !target(__<bsd.suffixes-extra.mk>__)