Work on #580 and building on Debian 12
requested to merge jonathan-hanks/advligorts:deb12_build_and_issue580_clean_dual_use_headers into master
- Update dual use (kernel/userspace) including stddef.h (for size_t) to include linux/types.h in kernel mode or stddef.h in userspace mode.
- Update dual use (kernel/userspace) including stdalign.h (for alignas) to use a macro + builtin to define alignas in kernel mode.
- Uses the builtin _Alignas if C11 is available, otherwise tries to import stdalign.h which worked in older builds.
- Replace the deprecated pci_alloc_consistent with the function it calls dma_alloc_coherent. This is done due to removal of the pci_alloc_consistent function in kernel 5.17 or 5.18. The underlying function that was being called, dma_alloc_coherent, is available back to at least 4.19, so no versioning is done. See https://lore.kernel.org/lkml/20220106222804.GA330366@bhelgaas/t/ for documentation on the removal and replacement of pci_alloc_consistent.
- Changed portableInline.h to use static inline for if GNU_STDC_INLINE is defined, otherwise inline functions were not being found at link time.
- Changing the inline highlighted an issue with math includes. When the LIGO_INLINE changed to static inline a error is presented when including both math.h and inlineMath_x86_asm.h due to the sincos definition, one being static, one not.
- Update skeleton.st to define USE_STDLIB_MATH as it includes math.h
- Update the librts Makefile to define USE_STDLIB_MATH as it is in userspace and will include math.h
- Changing the inline highlighted an issue with math includes. When the LIGO_INLINE changed to static inline a error is presented when including both math.h and inlineMath_x86_asm.h due to the sincos definition, one being static, one not.