libarchcap is deprecated. In your defence, this was not exactly obvious;
there is now a notice at the top of [1].
 
Thanks for the info, I was not aware of that as the last time I visited this was probably in July.

Long story short, libarchcap was written as part of the Android/Morello...
 
The user of libarchap is indeed an application ported back from the old Android stack.

I see you are making use of libarchcap in patch 13, fortunately it
should be straightforward to use the standard header <cheriintrin.h> [3]
directly instead. Section 7 of the CHERI C/C++ programming guide [4]
gives an overview of what this header provides.
 
Libarchcap shall be removed in V2 and I will follow your advice of using the API directly.

Kind regards,
Pawel


On Wed, 4 Jan 2023 at 10:20, Kevin Brodsky <kevin.brodsky@arm.com> wrote:
On 20/12/2022 16:29, Pawel Zalewski wrote:
> Add recipe for libarchcap.
>
> Signed-off-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
> ---
>  recipes-core/libarchcap/libarchcap.bb | 30 +++++++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
>  create mode 100644 recipes-core/libarchcap/libarchcap.bb
>
> diff --git a/recipes-core/libarchcap/libarchcap.bb b/recipes-core/libarchcap/libarchcap.bb
> new file mode 100644
> index 0000000..dbba851
> --- /dev/null
> +++ b/recipes-core/libarchcap/libarchcap.bb
> @@ -0,0 +1,30 @@
> +inherit llvm-morello-native
> +
> +SUMMARY      = "Libarchcap"
> +DESCRIPTION  = "Libarchcap"
> +HOMEPAGE     = "http://llvm.org"
> +LICENSE      = "ARM-Limited"
> +OUTPUTS_NAME = "libarchcap"
> +
> +PROVIDES     = "virtual/${OUTPUTS_NAME}"
> +
> +SRC_URI = " \
> +    git://git.morello-project.org/morello/android/platform/external/libarchcap;protocol=https;branch=${SRCBRANCH} \
> +    "

libarchcap is deprecated. In your defence, this was not exactly obvious;
there is now a notice at the top of [1].

Long story short, libarchcap was written as part of the Android/Morello
development as a higher-level abstraction for capability-related
operations, and was intended to become standardised in some way, but
that did not work out and a decision was made to stop using it. Its use
has been progressively eliminated from the Android codebase (see for
instance [2]) and it is now completely unused on the latest release.

I see you are making use of libarchcap in patch 13, fortunately it
should be straightforward to use the standard header <cheriintrin.h> [3]
directly instead. Section 7 of the CHERI C/C++ programming guide [4]
gives an overview of what this header provides.

I've added Ruben and Oli in Cc as they are directly working on
Android/Morello and know best about libarchcap.

Kevin

[1]
https://git.morello-project.org/morello/android/platform/external/libarchcap/
[2]
https://git.morello-project.org/morello/android/platform/external/libshim/-/merge_requests/37
[3]
https://git.morello-project.org/morello/llvm-project/-/blob/morello/master/clang/lib/Headers/cheriintrin.h
[4] https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-947.pdf

> +
> +
> +LIC_FILES_CHKSUM  = "file://LICENSE.txt;md5=dc35e02a115ff61453fb21eb8ec7da7f"
> +SRCBRANCH         = "morello/mainline"
> +SRCREV            = "${AUTOREV}"
> +PV                = "${PN}+git${SRCPV}"
> +
> +S             = "${WORKDIR}/git"
> +FILES:${PN}   = "${includedir}/${OUTPUTS_NAME}"
> +
> +do_configure[noexec] = "1"
> +do_compile[noexec]   = "1"
> +
> +do_install(){
> +    install -d ${D}${includedir}/${OUTPUTS_NAME}
> +    install -m 0744 ${S}/include/* ${D}${includedir}/${OUTPUTS_NAME}
> +}
> \ No newline at end of file