xref: /aosp_15_r20/external/arm-optimized-routines/string/README.contributors (revision 412f47f9e737e10ed5cc46ec6a8d7fa2264f8a14)
1*412f47f9SXin LiSTYLE REQUIREMENTS
2*412f47f9SXin Li==================
3*412f47f9SXin Li
4*412f47f9SXin Li1. Most code in this sub-directory is expected to be upstreamed into glibc so
5*412f47f9SXin Li   the GNU Coding Standard and glibc specific conventions should be followed
6*412f47f9SXin Li   to ease upstreaming.
7*412f47f9SXin Li
8*412f47f9SXin Li2. ABI and symbols: the code should be written so it is suitable for inclusion
9*412f47f9SXin Li   into a libc with minimal changes. This e.g. means that internal symbols
10*412f47f9SXin Li   should be hidden and in the implementation reserved namespace according to
11*412f47f9SXin Li   ISO C and POSIX rules. If possible the built shared libraries and static
12*412f47f9SXin Li   library archives should be usable to override libc symbols at link time (or
13*412f47f9SXin Li   at runtime via LD_PRELOAD). This requires the symbols to follow the glibc ABI
14*412f47f9SXin Li   (other than symbol versioning), this cannot be done reliably for static
15*412f47f9SXin Li   linking so this is a best effort requirement.
16*412f47f9SXin Li
17*412f47f9SXin Li3. API: include headers should be suitable for benchmarking and testing code
18*412f47f9SXin Li   and should not conflict with libc headers.
19*412f47f9SXin Li
20*412f47f9SXin Li
21*412f47f9SXin LiCONTRIBUTION GUIDELINES FOR string SUB-DIRECTORY
22*412f47f9SXin Li================================================
23*412f47f9SXin Li1. Code:
24*412f47f9SXin Li   - The assumptions of the code must be clearly documented.
25*412f47f9SXin Li
26*412f47f9SXin Li   - Assembly style should be consistent across different implementations.
27*412f47f9SXin Li
28*412f47f9SXin Li
29*412f47f9SXin Li2. Performance:
30*412f47f9SXin Li   - Benchmarking is needed on several microarchitectures.
31