freebsd-src/lib/libsys/Makefile
Brooks Davis 1fd880742a libsys: add a libsys.h
This declares an API for libsys which currently consists of
__sys_<foo>() declarations for system call stubs and function pointer
typedefs of the form __sys_<foo>_t.  The vast majority of the
implementation resides in a generated _libsys.h which ensures that all
system call stub declarations match syscalls.master.

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D44387
2024-04-16 17:48:07 +01:00

78 lines
1.8 KiB
Makefile

PACKAGE= clibs
SHLIBDIR?= /lib
.include <src.opts.mk>
LIBC_SRCTOP?= ${.CURDIR}/../libc
LIBSYS_SRCTOP?= ${.CURDIR}
# Pick the current architecture directory for libsys. In general, this is named
# MACHINE_CPUARCH, but some ABIs are different enough to require their own
# libsys, so allow a directory named MACHINE_ARCH to override this (though
# treat powerpc64le and powerpc64 the same).
# Note: This is copied from libc/Makefile
M=${MACHINE_ARCH:S/powerpc64le/powerpc64/}
.if exists(${LIBC_SRCTOP}/${M})
LIBC_ARCH=${M}
.else
LIBC_ARCH=${MACHINE_CPUARCH}
.endif
LIB=sys
SHLIB_MAJOR= 7
WARNS?= 2
MK_SSP= no
INCS= libsys.h _libsys.h
CFLAGS+=-I${LIBSYS_SRCTOP}/include -I${LIBC_SRCTOP}/include
CFLAGS+=-I${LIBSYS_SRCTOP}/${LIBC_ARCH}
CFLAGS+=-I${LIBC_SRCTOP}/${LIBC_ARCH}
.PATH: ${LIBC_SRCTOP}/string
SRCS+= memcpy.c memset.c strlcpy.c
CLEANFILES+=tags
INSTALL_PIC_ARCHIVE=
#XXX? BUILD_NOSSP_PIC_ARCHIVE=
PRECIOUSLIB=
# Use a more efficient TLS model for libc since we can reasonably assume that
# it will be loaded during program startup.
CFLAGS+= -ftls-model=initial-exec
#
# Link with static libcompiler_rt.a.
#
LDFLAGS+= -nodefaultlibs
LDFLAGS+= -Wl,-Bsymbolic
LIBADD+= compiler_rt
.if ${MK_SSP} != "no" && \
(${LIBC_ARCH} == "i386" || ${LIBC_ARCH:Mpowerpc*} != "")
LIBADD+= ssp_nonshared
.endif
# Define (empty) variables so that make doesn't give substitution
# errors if the included makefiles don't change these:
MDASM=
MIASM=
NOASM=
SYM_MAPS+= ${LIBSYS_SRCTOP}/Symbol.map
SRCS+= auxv.c
.include "${LIBSYS_SRCTOP}/Makefile.sys"
SYM_MAPS+= ${LIBSYS_SRCTOP}/Symbol.thr.map
.PATH: ${LIBSYS_SRCTOP}/${MACHINE_CPUARCH}
.sinclude "${LIBSYS_SRCTOP}/${MACHINE_CPUARCH}/Makefile.thr"
.if !${SRCS:M_umtx_op_err.S}
SRCS+=_umtx_op_err.c
.endif
VERSION_DEF=${LIBC_SRCTOP}/Versions.def
SYMBOL_MAPS=${SYM_MAPS}
.include <bsd.lib.mk>