NameDateSize

..11-Mar-202490

.gitignoreH A D06-Jul-202127

config.mk.distH A D01-Mar-20242.6 KiB

contributor-agreement.pdfH A D06-Jul-2021102.2 KiB

LICENSEH A D29-Jun-202313.2 KiB

MAINTAINERSH A D29-Jun-2023307

MakefileH A D29-Jun-20232 KiB

math/H01-Mar-202441

networking/H29-Jun-20239

pl/H29-Jun-20235

READMEH A D01-Mar-20242.1 KiB

README.contributorsH A D29-Jun-20232.1 KiB

string/H29-Jun-202310

README

1Arm Optimized Routines
2----------------------
3
4This repository contains implementations of library functions
5provided by Arm. The outbound license is available under a dual
6license, at the user���s election, as reflected in the LICENSE file.
7Contributions to this project are accepted, but Contributors have
8to sign an Assignment Agreement, please follow the instructions in
9contributor-agreement.pdf. This is needed so upstreaming code
10to projects that require copyright assignment is possible. Further
11contribution requirements are documented in README.contributors of
12the appropriate subdirectory.
13
14Regular quarterly releases are tagged as vYY.MM, the latest
15release is v24.01.
16
17Source code layout:
18
19build/          - build directory (created by make).
20math/           - math subproject sources.
21math/include/   - math library public headers.
22math/test/      - math test and benchmark related sources.
23math/tools/     - tools used for designing the algorithms.
24networking/     - networking subproject sources.
25networking/include/ - networking library public headers.
26networking/test/ - networking test and benchmark related sources.
27string/         - string routines subproject sources.
28string/include/ - string library public headers.
29string/test/    - string test and benchmark related sources.
30pl/...          - separately maintained performance library code.
31
32The steps to build the target libraries and run the tests:
33
34cp config.mk.dist config.mk
35# edit config.mk if necessary ...
36make
37make check
38
39Or building outside of the source directory:
40
41ln -s path/to/src/Makefile Makefile
42cp path/to/src/config.mk.dist config.mk
43echo 'srcdir = path/to/src' >> config.mk
44# further edits to config.mk
45make
46make check
47
48Or building and testing the math subproject only:
49
50make all-math
51make check-math
52
53The test system requires libmpfr and libmpc.
54For example on debian linux they can be installed as:
55
56sudo apt-get install libmpfr-dev libmpc-dev
57
58For cross build, CROSS_COMPILE should be set in config.mk and EMULATOR
59should be set for cross testing (e.g. using qemu-user or remote access
60to a target machine), see the examples in config.mk.dist.
61

README.contributors

1GENERIC CONTRIBUTION GUIDELINES
2===============================
3
41. Sub-projects are maintained independently and thus have independent
5   contribution rules. If there exists a README.contributors in the
6   sub-directory to which the contribution is made, it must be followed.
7
82. Legal:
9   - Contributors who are not employed by Arm must sign an Assignment Agreement.
10     See contributor-agreement.pdf.
11   - All code must be copyright owned by Arm Limited and the appropriate
12     copyright notice and license identifier must be present in every source
13     file.
14
153. Build:
16   - Build should only depend on GNU make and posix utilities (shell, awk, sed,
17     etc) and on a C toolchain.
18   - Build should pass with the default configuration (see config.mk.dist)
19     and other supported configurations, with both gcc and clang based
20     toolchains. (The build should not depend on a recent toolchain, the use
21     of a new feature should be possible to disable.)
22   - Currently there is no automated configuration, target specific configuration
23     should be done via make variables in config.mk. This is the user interface
24     to the build system, so it should be documented in sufficient detail and
25     kept reasonably stable.
26
274. Testing:
28   - On aarch64 the tests must pass. If the code may behave differently under
29     some supported configurations (e.g. CFLAGS) those should be tested.
30   - New symbols are expected to have new associated test code and ideally
31     benchmark code too.
32
334. Commits:
34   - Commit message should be descriptive and should not refer to Arm internal
35     information (such as Jira tickets, or internal discussions). Non-obvious
36     decisions should be recorded or explained in the commit message if they are
37     not explained in source comments.
38   - Ideally tools and scripts used to write the code should be added to the
39     repository or at least mentioned in the commit.
40   - Logically independent changes should not be mixed into the same commit.
41
425. Style:
43   - Unless otherwise required differently by the sub-project, follow the
44     clang-format tool using the style from the gcc contrib/ directory.
45