[libc] Make the errno macro resolve to the thread local variable directly.With modern architectures having a thread pointer and language supportingthread locals, there is no reason to use a functi
[libc] Make the errno macro resolve to the thread local variable directly.With modern architectures having a thread pointer and language supportingthread locals, there is no reason to use a function intermediary to accessthe thread local errno value.The entrypoint corresponding to errno has been replaced with an objectlibrary as there is no formal entrypoint for errno anymore.Reviewed By: jeffbailey, michaelrjDifferential Revision: https://reviews.llvm.org/D120920
show more ...
[libc][NFC] Move sys/mman entrypoints to the default build configs.Specifically, mmap and munmap have been moved to the default build listof entrypoints. To support this, certain deps and includes
[libc][NFC] Move sys/mman entrypoints to the default build configs.Specifically, mmap and munmap have been moved to the default build listof entrypoints. To support this, certain deps and includes have beenadjusted. The use of errno in some cases has been updated.
[libc] Move the x86_64 syscall functions to OSUtil.Reviewed By: michaelrj, lntueDifferential Revision: https://reviews.llvm.org/D116177
[libc] Switch to use a macro which does not insert a section for every libc function.Summary:The new macro also inserts the C alias for the C++ implementationswithout needing an objcopy based pos
[libc] Switch to use a macro which does not insert a section for every libc function.Summary:The new macro also inserts the C alias for the C++ implementationswithout needing an objcopy based post processing step. The CMakerules have been updated to reflect this. More CMake cleanup can betaken up in future rounds and appropriate TODOs have been added for them.Reviewers: mcgrathr, sivachandraSubscribers:
[libc] Add fully-qualified target names.Only targets setup by the special LLVM libc rules now have fullyqualified names. The naming style is similar to fully qualified names inPython.Reviewers:
[libc] Add fully-qualified target names.Only targets setup by the special LLVM libc rules now have fullyqualified names. The naming style is similar to fully qualified names inPython.Reviewers: abrachet, PaulkaToast, phosekDifferential Revision: https://reviews.llvm.org/D77340
[libc] Move the implementation of mmap and munmap into a linux specific area.This allows us to get rid of the PAGE_SIZE macro and use EXEC_PAGESIZEfrom linux/param.h.Few other points about this
[libc] Move the implementation of mmap and munmap into a linux specific area.This allows us to get rid of the PAGE_SIZE macro and use EXEC_PAGESIZEfrom linux/param.h.Few other points about this change:1. The linux syscall functions have been moved into a linux specific areainstead of src/unistd/syscall.h. The Linux syscall function from unistd.his a public vararg function. What we have currently are linux speciif internaloverloaded C++ functions. So, moving them to a Linux only area is moremeaningful.2. The implementations of mmap and munmap are now in a 'linux' directorywithin src/sys/mman. The idea here is that platform specificimplementations will live in a platform specific subdirectories like these.Infrastructure common to a platform will live in the platform's configdirectory. For example, the linux syscall implementations live inconfig/linux.Reviewers: abrachetTags: #libc-projectDifferential Revision: https://reviews.llvm.org/D73302