git: 5425ba833257 - main - truncate(1): Fix cross-build CI failure due to missing fspacectl
Ka Ho Ng
khng at FreeBSD.org
Tue Aug 24 09:59:46 UTC 2021
On 2021/8/24 5:18 PM, Ka Ho Ng wrote:
> The branch main has been updated by khng:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=5425ba8332571e57f9fe623346cb9d83293264d4
>
> commit 5425ba8332571e57f9fe623346cb9d83293264d4
> Author: Ka Ho Ng <khng at FreeBSD.org>
> AuthorDate: 2021-08-24 08:26:04 +0000
> Commit: Ka Ho Ng <khng at FreeBSD.org>
> CommitDate: 2021-08-24 09:08:28 +0000
>
> truncate(1): Fix cross-build CI failure due to missing fspacectl
>
> For other platforms, fspacectl(2) is absent. This commit masks out the
> calls to fspacectl(2) and replace them with a ENODEV errno.
>
> Sponsored by: The FreeBSD Foundation
> Differential Revision: https://reviews.freebsd.org/D31619
> ---
> tools/build/Makefile | 5 +++++
> tools/build/fcntl.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
> tools/build/fspacectl.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 97 insertions(+)
>
> diff --git a/tools/build/Makefile b/tools/build/Makefile
> index 948a5f9dfdb2..3b49eb44475e 100644
> --- a/tools/build/Makefile
> +++ b/tools/build/Makefile
> @@ -88,6 +88,11 @@ INCS+= strings.h
> SRCS+= explicit_bzero.c
> .endif
>
> +_WITH_FSPACECTL!= grep -c fspacectl ${HOST_INCLUDE_ROOT}/fcntl.h || true
> +.if ${_WITH_FSPACECTL} == 0
> +INCS+= fcntl.h
> +SRCS+= fspacectl.c
> +.endif
>
> .if exists(${HOST_INCLUDE_ROOT}/capsicum_helpers.h)
> _WITH_CAPH_ENTER!= grep -c caph_enter ${HOST_INCLUDE_ROOT}/capsicum_helpers.h || true
> diff --git a/tools/build/fcntl.h b/tools/build/fcntl.h
> new file mode 100644
> index 000000000000..3f88a4bf73d3
> --- /dev/null
> +++ b/tools/build/fcntl.h
> @@ -0,0 +1,48 @@
> +/*-
> + * Copyright (c) 2016 Jilles Tjoelker <jilles at FreeBSD.org>
> + * All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + * notice, this list of conditions and the following disclaimer in the
> + * documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> + * SUCH DAMAGE.
> + *
> + * $FreeBSD$
> + */
> +
> +#ifndef _LEGACY_SYS_FCNTL_H_
> +#define _LEGACY_SYS_FCNTL_H_
> +
> +#include_next <fcntl.h>
> +
> +struct spacectl_range {
> + off_t r_offset;
> + off_t r_len;
> +};
> +
> +#define SPACECTL_DEALLOC 1
> +
> +#define SPACECTL_F_SUPPORTED 0
> +
> +__BEGIN_DECLS
> +int fspacectl(int, int, const struct spacectl_range *, int,
> + struct spacectl_range *);
> +__END_DECLS
> +
> +#endif /* !_LEGACY_SYS_STAT_H_ */
> diff --git a/tools/build/fspacectl.c b/tools/build/fspacectl.c
> new file mode 100644
> index 000000000000..c17802c51e01
> --- /dev/null
> +++ b/tools/build/fspacectl.c
> @@ -0,0 +1,44 @@
> +/*-
> + * Copyright (c) 2021 The FreeBSD Foundation
> + *
> + * This software was developed by Ka Ho Ng <khng at FreeBSD.org>
> + * under sponsorship from the FreeBSD Foundation.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + * notice, this list of conditions and the following disclaimer in the
> + * documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> + * SUCH DAMAGE.
> + */
> +
> +#include <sys/cdefs.h>
> +__FBSDID("$FreeBSD$");
> +
> +#include <errno.h>
> +#include <fcntl.h>
> +
> +/*
> + * This is currently a stub implementation of fspacectl(2).
> + */
> +int
> +fspacectl(int fd, int cmd, const struct spacectl_range *rqsr, int flags,
> + struct spacectl_range *rmsr)
> +{
> + errno = ENOSYS;
> + return (-1);
> +}
> \ No newline at end of file
>
s/ENODEV/ENOSYS
Ka Ho
More information about the dev-commits-src-main
mailing list