Powerpc is special here. powerpc and powerpc64 use different ABIs, so
their implementations aren't in the same files. Introduce LIBC_ARCH and use that in preference to MACHINE_CPUARCH. Tested by amd64 and powerpc64 builds (thanks nathanw@)
This commit is contained in:
parent
f4fbf9c859
commit
2c0959ae6b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=211774
@ -5,6 +5,15 @@ SHLIBDIR?= /lib
|
|||||||
|
|
||||||
.include <bsd.own.mk>
|
.include <bsd.own.mk>
|
||||||
|
|
||||||
|
# We have to special case powerpc and powerpc64, since they mostly have
|
||||||
|
# the same source implementation. libc is very different due to large
|
||||||
|
# ABI differences.
|
||||||
|
.if ${LIBC_ARCH} == "powerpc"
|
||||||
|
LIBC_ARCH=${MACHINE_ARCH}
|
||||||
|
.else
|
||||||
|
LIBC_ARCH=${LIBC_ARCH}
|
||||||
|
.endif
|
||||||
|
|
||||||
# All library objects contain FreeBSD revision strings by default; they may be
|
# All library objects contain FreeBSD revision strings by default; they may be
|
||||||
# excluded as a space-saving measure. To produce a library that does
|
# excluded as a space-saving measure. To produce a library that does
|
||||||
# not contain these strings, add -DSTRIP_FBSDID (see <sys/cdefs.h>) to CFLAGS
|
# not contain these strings, add -DSTRIP_FBSDID (see <sys/cdefs.h>) to CFLAGS
|
||||||
@ -15,7 +24,7 @@ LIB=c
|
|||||||
SHLIB_MAJOR= 7
|
SHLIB_MAJOR= 7
|
||||||
WARNS?= 2
|
WARNS?= 2
|
||||||
CFLAGS+=-I${.CURDIR}/include -I${.CURDIR}/../../include
|
CFLAGS+=-I${.CURDIR}/include -I${.CURDIR}/../../include
|
||||||
CFLAGS+=-I${.CURDIR}/${MACHINE_CPUARCH}
|
CFLAGS+=-I${.CURDIR}/${LIBC_ARCH}
|
||||||
CFLAGS+=-DNLS
|
CFLAGS+=-DNLS
|
||||||
CLEANFILES+=tags
|
CLEANFILES+=tags
|
||||||
INSTALL_PIC_ARCHIVE=
|
INSTALL_PIC_ARCHIVE=
|
||||||
@ -36,7 +45,7 @@ MDASM=
|
|||||||
MIASM=
|
MIASM=
|
||||||
NOASM=
|
NOASM=
|
||||||
|
|
||||||
.include "${.CURDIR}/${MACHINE_CPUARCH}/Makefile.inc"
|
.include "${.CURDIR}/${LIBC_ARCH}/Makefile.inc"
|
||||||
.include "${.CURDIR}/db/Makefile.inc"
|
.include "${.CURDIR}/db/Makefile.inc"
|
||||||
.include "${.CURDIR}/compat-43/Makefile.inc"
|
.include "${.CURDIR}/compat-43/Makefile.inc"
|
||||||
.include "${.CURDIR}/gdtoa/Makefile.inc"
|
.include "${.CURDIR}/gdtoa/Makefile.inc"
|
||||||
@ -49,14 +58,14 @@ NOASM=
|
|||||||
.include "${.CURDIR}/net/Makefile.inc"
|
.include "${.CURDIR}/net/Makefile.inc"
|
||||||
.include "${.CURDIR}/nls/Makefile.inc"
|
.include "${.CURDIR}/nls/Makefile.inc"
|
||||||
.include "${.CURDIR}/posix1e/Makefile.inc"
|
.include "${.CURDIR}/posix1e/Makefile.inc"
|
||||||
.if ${MACHINE_CPUARCH} != "amd64" && \
|
.if ${LIBC_ARCH} != "amd64" && \
|
||||||
${MACHINE_CPUARCH} != "ia64" && \
|
${LIBC_ARCH} != "ia64" && \
|
||||||
${MACHINE_ARCH} != "powerpc64" && \
|
${LIBC_ARCH} != "powerpc64" && \
|
||||||
${MACHINE_CPUARCH} != "sparc64" && \
|
${LIBC_ARCH} != "sparc64" && \
|
||||||
${MACHINE_CPUARCH} != "mips"
|
${LIBC_ARCH} != "mips"
|
||||||
.include "${.CURDIR}/quad/Makefile.inc"
|
.include "${.CURDIR}/quad/Makefile.inc"
|
||||||
.endif
|
.endif
|
||||||
.if ${MACHINE_ARCH} == "mips" && \
|
.if ${LIBC_ARCH} == "mips" && \
|
||||||
(!defined(TARGET_ABI) || ${TARGET_ABI} == "o32")
|
(!defined(TARGET_ABI) || ${TARGET_ABI} == "o32")
|
||||||
.include "${.CURDIR}/quad/Makefile.inc"
|
.include "${.CURDIR}/quad/Makefile.inc"
|
||||||
.endif
|
.endif
|
||||||
@ -70,7 +79,7 @@ NOASM=
|
|||||||
.include "${.CURDIR}/rpc/Makefile.inc"
|
.include "${.CURDIR}/rpc/Makefile.inc"
|
||||||
.include "${.CURDIR}/uuid/Makefile.inc"
|
.include "${.CURDIR}/uuid/Makefile.inc"
|
||||||
.include "${.CURDIR}/xdr/Makefile.inc"
|
.include "${.CURDIR}/xdr/Makefile.inc"
|
||||||
.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "mips"
|
.if ${LIBC_ARCH} == "arm" || ${LIBC_ARCH} == "mips"
|
||||||
.include "${.CURDIR}/softfloat/Makefile.inc"
|
.include "${.CURDIR}/softfloat/Makefile.inc"
|
||||||
.endif
|
.endif
|
||||||
.if ${MK_NIS} != "no"
|
.if ${MK_NIS} != "no"
|
||||||
@ -115,14 +124,14 @@ KQSRCS= adddi3.c anddi3.c ashldi3.c ashrdi3.c cmpdi2.c divdi3.c iordi3.c \
|
|||||||
KSRCS= bcmp.c ffs.c ffsl.c fls.c flsl.c index.c mcount.c rindex.c \
|
KSRCS= bcmp.c ffs.c ffsl.c fls.c flsl.c index.c mcount.c rindex.c \
|
||||||
strcat.c strcmp.c strcpy.c strlen.c strncpy.c
|
strcat.c strcmp.c strcpy.c strlen.c strncpy.c
|
||||||
|
|
||||||
libkern: libkern.gen libkern.${MACHINE_CPUARCH}
|
libkern: libkern.gen libkern.${LIBC_ARCH}
|
||||||
|
|
||||||
libkern.gen: ${KQSRCS} ${KSRCS}
|
libkern.gen: ${KQSRCS} ${KSRCS}
|
||||||
cp -p ${.CURDIR}/quad/quad.h ${.ALLSRC} ${DESTDIR}/sys/libkern
|
cp -p ${.CURDIR}/quad/quad.h ${.ALLSRC} ${DESTDIR}/sys/libkern
|
||||||
|
|
||||||
libkern.${MACHINE_CPUARCH}:: ${KMSRCS}
|
libkern.${LIBC_ARCH}:: ${KMSRCS}
|
||||||
.if defined(KMSRCS) && !empty(KMSRCS)
|
.if defined(KMSRCS) && !empty(KMSRCS)
|
||||||
cp -p ${.ALLSRC} ${DESTDIR}/sys/libkern/${MACHINE_CPUARCH}
|
cp -p ${.ALLSRC} ${DESTDIR}/sys/libkern/${LIBC_ARCH}
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.include <bsd.lib.mk>
|
.include <bsd.lib.mk>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
# compat-43 sources
|
# compat-43 sources
|
||||||
.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/compat-43 ${.CURDIR}/compat-43
|
.PATH: ${.CURDIR}/${LIBC_ARCH}/compat-43 ${.CURDIR}/compat-43
|
||||||
|
|
||||||
SRCS+= creat.c gethostid.c getwd.c killpg.c sethostid.c setpgrp.c \
|
SRCS+= creat.c gethostid.c getwd.c killpg.c sethostid.c setpgrp.c \
|
||||||
setrgid.c setruid.c sigcompat.c
|
setrgid.c setruid.c sigcompat.c
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
# machine-independent gen sources
|
# machine-independent gen sources
|
||||||
.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/gen ${.CURDIR}/gen
|
.PATH: ${.CURDIR}/${LIBC_ARCH}/gen ${.CURDIR}/gen
|
||||||
|
|
||||||
SRCS+= __getosreldate.c __xuname.c \
|
SRCS+= __getosreldate.c __xuname.c \
|
||||||
_once_stub.c _pthread_stubs.c _rand48.c _spinlock_stub.c \
|
_once_stub.c _pthread_stubs.c _rand48.c _spinlock_stub.c \
|
||||||
@ -38,9 +38,7 @@ SRCS+= __getosreldate.c __xuname.c \
|
|||||||
SYM_MAPS+=${.CURDIR}/gen/Symbol.map
|
SYM_MAPS+=${.CURDIR}/gen/Symbol.map
|
||||||
|
|
||||||
# machine-dependent gen sources
|
# machine-dependent gen sources
|
||||||
.if exists(${.CURDIR}/${MACHINE_CPUARCH}/gen/Makefile.inc)
|
.sinclude "${.CURDIR}/${LIBC_ARCH}/gen/Makefile.inc"
|
||||||
.include "${.CURDIR}/${MACHINE_CPUARCH}/gen/Makefile.inc"
|
|
||||||
.endif
|
|
||||||
|
|
||||||
MAN+= alarm.3 arc4random.3 \
|
MAN+= alarm.3 arc4random.3 \
|
||||||
basename.3 check_utility_compat.3 clock.3 \
|
basename.3 check_utility_compat.3 clock.3 \
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
# locale sources
|
# locale sources
|
||||||
.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/locale ${.CURDIR}/locale
|
.PATH: ${.CURDIR}/${LIBC_ARCH}/locale ${.CURDIR}/locale
|
||||||
|
|
||||||
SRCS+= ascii.c big5.c btowc.c collate.c collcmp.c euc.c fix_grouping.c \
|
SRCS+= ascii.c big5.c btowc.c collate.c collcmp.c euc.c fix_grouping.c \
|
||||||
gb18030.c gb2312.c gbk.c isctype.c iswctype.c \
|
gb18030.c gb2312.c gbk.c isctype.c iswctype.c \
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
# Quad support, if needed
|
# Quad support, if needed
|
||||||
.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/quad ${.CURDIR}/quad
|
.PATH: ${.CURDIR}/${LIBC_ARCH}/quad ${.CURDIR}/quad
|
||||||
|
|
||||||
.if ${MACHINE_CPUARCH} == "i386"
|
.if ${LIBC_ARCH} == "i386"
|
||||||
|
|
||||||
SRCS+= cmpdi2.c divdi3.c moddi3.c qdivrem.c ucmpdi2.c udivdi3.c umoddi3.c
|
SRCS+= cmpdi2.c divdi3.c moddi3.c qdivrem.c ucmpdi2.c udivdi3.c umoddi3.c
|
||||||
|
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
SOFTFLOAT_BITS?=64
|
SOFTFLOAT_BITS?=64
|
||||||
.PATH: ${MACHINE_CPUARCH}/softfloat \
|
.PATH: ${LIBC_ARCH}/softfloat \
|
||||||
${.CURDIR}/softfloat/bits${SOFTFLOAT_BITS} ${.CURDIR}/softfloat
|
${.CURDIR}/softfloat/bits${SOFTFLOAT_BITS} ${.CURDIR}/softfloat
|
||||||
|
|
||||||
CFLAGS+= -I${.CURDIR}/${MACHINE_CPUARCH}/softfloat -I${.CURDIR}/softfloat
|
CFLAGS+= -I${.CURDIR}/${LIBC_ARCH}/softfloat -I${.CURDIR}/softfloat
|
||||||
CFLAGS+= -DSOFTFLOAT_FOR_GCC
|
CFLAGS+= -DSOFTFLOAT_FOR_GCC
|
||||||
|
|
||||||
SRCS+= softfloat.c
|
SRCS+= softfloat.c
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
# machine-independent stdlib sources
|
# machine-independent stdlib sources
|
||||||
.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/stdlib ${.CURDIR}/stdlib
|
.PATH: ${.CURDIR}/${LIBC_ARCH}/stdlib ${.CURDIR}/stdlib
|
||||||
|
|
||||||
MISRCS+=_Exit.c a64l.c abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c \
|
MISRCS+=_Exit.c a64l.c abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c \
|
||||||
bsearch.c div.c exit.c getenv.c getopt.c getopt_long.c \
|
bsearch.c div.c exit.c getenv.c getopt.c getopt_long.c \
|
||||||
@ -16,7 +16,7 @@ MISRCS+=_Exit.c a64l.c abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c \
|
|||||||
SYM_MAPS+= ${.CURDIR}/stdlib/Symbol.map
|
SYM_MAPS+= ${.CURDIR}/stdlib/Symbol.map
|
||||||
|
|
||||||
# machine-dependent stdlib sources
|
# machine-dependent stdlib sources
|
||||||
.sinclude "${.CURDIR}/${MACHINE_CPUARCH}/stdlib/Makefile.inc"
|
.sinclude "${.CURDIR}/${LIBC_ARCH}/stdlib/Makefile.inc"
|
||||||
|
|
||||||
MAN+= a64l.3 abort.3 abs.3 alloca.3 atexit.3 atof.3 atoi.3 atol.3 bsearch.3 \
|
MAN+= a64l.3 abort.3 abs.3 alloca.3 atexit.3 atof.3 atoi.3 atol.3 bsearch.3 \
|
||||||
div.3 exit.3 getenv.3 getopt.3 getopt_long.3 getsubopt.3 \
|
div.3 exit.3 getenv.3 getopt.3 getopt_long.3 getsubopt.3 \
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# @(#)Makefile.inc 8.1 (Berkeley) 6/4/93
|
# @(#)Makefile.inc 8.1 (Berkeley) 6/4/93
|
||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/string ${.CURDIR}/string
|
.PATH: ${.CURDIR}/${LIBC_ARCH}/string ${.CURDIR}/string
|
||||||
|
|
||||||
CFLAGS+= -I${.CURDIR}/locale
|
CFLAGS+= -I${.CURDIR}/locale
|
||||||
|
|
||||||
@ -26,9 +26,7 @@ SYM_MAPS+= ${.CURDIR}/string/Symbol.map
|
|||||||
|
|
||||||
|
|
||||||
# machine-dependent string sources
|
# machine-dependent string sources
|
||||||
.if exists(${.CURDIR}/${MACHINE_CPUARCH}/string/Makefile.inc)
|
.sinclude "${.CURDIR}/${LIBC_ARCH}/string/Makefile.inc"
|
||||||
.include "${.CURDIR}/${MACHINE_CPUARCH}/string/Makefile.inc"
|
|
||||||
.endif
|
|
||||||
|
|
||||||
MAN+= bcmp.3 bcopy.3 bstring.3 bzero.3 ffs.3 index.3 memccpy.3 memchr.3 \
|
MAN+= bcmp.3 bcopy.3 bstring.3 bzero.3 ffs.3 index.3 memccpy.3 memchr.3 \
|
||||||
memcmp.3 memcpy.3 memmem.3 memmove.3 memset.3 strcasecmp.3 strcat.3 \
|
memcmp.3 memcpy.3 memmem.3 memmove.3 memset.3 strcasecmp.3 strcat.3 \
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
# sys sources
|
# sys sources
|
||||||
.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/sys ${.CURDIR}/sys
|
.PATH: ${.CURDIR}/${LIBC_ARCH}/sys ${.CURDIR}/sys
|
||||||
|
|
||||||
# Include the generated makefile containing the *complete* list
|
# Include the generated makefile containing the *complete* list
|
||||||
# of syscall names in MIASM.
|
# of syscall names in MIASM.
|
||||||
@ -13,9 +13,7 @@
|
|||||||
# MDASM names override the default syscall names in MIASM.
|
# MDASM names override the default syscall names in MIASM.
|
||||||
# NOASM will prevent the default syscall code from being generated.
|
# NOASM will prevent the default syscall code from being generated.
|
||||||
#
|
#
|
||||||
.if exists(${.CURDIR}/${MACHINE_CPUARCH}/sys/Makefile.inc)
|
.sinclude "${.CURDIR}/${LIBC_ARCH}/sys/Makefile.inc"
|
||||||
.include "${.CURDIR}/${MACHINE_CPUARCH}/sys/Makefile.inc"
|
|
||||||
.endif
|
|
||||||
|
|
||||||
# Sources common to both syscall interfaces:
|
# Sources common to both syscall interfaces:
|
||||||
SRCS+= stack_protector.c stack_protector_compat.c __error.c
|
SRCS+= stack_protector.c stack_protector_compat.c __error.c
|
||||||
|
Loading…
Reference in New Issue
Block a user