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