mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-28 02:32:47 +00:00
tools/build: Support building with glibc 2.38
Ubuntu 23.10 uses glibc 2.38. This adds strlcpy and strlcmp so we need to remove them from the cross build environment. Reviewed by: jrtc27 (earlier version), arichardson Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D42303
This commit is contained in:
parent
f39010b139
commit
ceefd491c7
@ -196,9 +196,15 @@ SRCS+= strtonum.c merge.c heapsort.c reallocf.c
|
|||||||
SRCS+= rpmatch.c
|
SRCS+= rpmatch.c
|
||||||
|
|
||||||
.if ${.MAKE.OS} == "Linux"
|
.if ${.MAKE.OS} == "Linux"
|
||||||
# On Linux, glibc does not provide strlcpy,strlcat or strmode.
|
# On Linux, glibc does not provide strmode. It only provides strlcpy
|
||||||
|
# and strlcat from glibc 2.38.
|
||||||
.PATH: ${LIBC_SRCTOP}/string
|
.PATH: ${LIBC_SRCTOP}/string
|
||||||
SRCS+= strlcpy.c strlcat.c strmode.c
|
SRCS+= strmode.c
|
||||||
|
# Assume if strlcpy exists so does strlcat
|
||||||
|
_WITH_EXPLICIT_STRLCPY!= cat ${HOST_INCLUDE_ROOT}/strings.h ${HOST_INCLUDE_ROOT}/string.h | grep -c strlcpy || true
|
||||||
|
.if ${_WITH_EXPLICIT_STRLCPY} == 0
|
||||||
|
SRCS+= strlcpy.c strlcat.c
|
||||||
|
.endif
|
||||||
# On Linux, glibc provides ffs* but not fls*
|
# On Linux, glibc provides ffs* but not fls*
|
||||||
SRCS+= fls.c flsl.c flsll.c
|
SRCS+= fls.c flsl.c flsll.c
|
||||||
# Compile the fgetln/fgetwln/closefrom fallback code from libbsd:
|
# Compile the fgetln/fgetwln/closefrom fallback code from libbsd:
|
||||||
|
@ -47,8 +47,11 @@
|
|||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
|
#if !defined(__GLIBC__) || \
|
||||||
|
(defined(__GLIBC__) && (!__GLIBC_PREREQ(2, 38) || !defined(_GNU_SOURCE)))
|
||||||
size_t strlcpy(char *dst, const char *src, size_t siz);
|
size_t strlcpy(char *dst, const char *src, size_t siz);
|
||||||
size_t strlcat(char *dst, const char *src, size_t siz);
|
size_t strlcat(char *dst, const char *src, size_t siz);
|
||||||
|
#endif
|
||||||
char *strnstr(const char *str, const char *find, size_t str_len);
|
char *strnstr(const char *str, const char *find, size_t str_len);
|
||||||
void strmode(mode_t mode, char *str);
|
void strmode(mode_t mode, char *str);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user