Skip to content

[libc] document supported os ranges #118863

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Dec 5, 2024

Conversation

SchrodingerZhu
Copy link
Contributor

@SchrodingerZhu SchrodingerZhu commented Dec 5, 2024

LLVM-libc does not guarantee backward compatibility with operating systems that have reached their EOL.
Compatibility patches for obsolete operating systems will not be accepted.

For Linux, we support kernel versions as listed on kernel.org, including
longterm (not passed EOL date), stable, and mainline versions. We actively adapt new features
from linux-next.

For Windows, we plan to support products within their lifecycle. Please refer to
Search Product and Services Lifecycle Information for more information.

@llvmbot
Copy link
Member

llvmbot commented Dec 5, 2024

@llvm/pr-subscribers-libc

Author: Schrodinger ZHU Yifan (SchrodingerZhu)

Changes

LLVM-libc does not guarantee backward compatibility with operating systems that reaches their EOL.
Compatibility patch for obsolete operating systems will not be accepted.

For Linux, we support kernel versions as listed on kernel.org, including
longterm, stable, and mainline versions. We actively adapt new features
from linux-next.

For Windows, we support products within their lifecycle. Please refer to
Search Product and Services Lifecycle Information for more information.


Full diff: https://github.com/llvm/llvm-project/pull/118863.diff

1 Files Affected:

  • (modified) libc/docs/index.rst (+10)
diff --git a/libc/docs/index.rst b/libc/docs/index.rst
index 6f759aa215b62c..c4cb12be1377e8 100644
--- a/libc/docs/index.rst
+++ b/libc/docs/index.rst
@@ -40,6 +40,16 @@ and MacOS have limited support (may be broken).  The Fuchsia platform is
 slowly replacing functions from its bundled libc with functions from this
 project.
 
+LLVM-libc does not guarantee backward compatibility with operating systems that reaches their EOL.
+Compatibility patch for obsolete operating systems will not be accepted.
+
+For Linux, we support kernel versions as listed on `kernel.org <https://kernel.org/>`_, including
+``longterm``, ``stable``, and ``mainline`` versions. We actively adapt new features
+from ``linux-next``.
+
+For Windows, we support products within their lifecycle. Please refer to 
+`Search Product and Services Lifecycle Information <https://learn.microsoft.com/en-us/lifecycle/products/?products=windows>`_ for more information.
+
 ABI Compatibility
 =================
 

@nickdesaulniers
Copy link
Member

For implications to the codebase, this means that for our syscall wrappers, we have checks that SYS_<foo> is defined. If foo has been supported by all supported architectures for all versions of LTS linux, then we should not clutter the code with prepropecessor guards.

https://www.chromium.org/chromium-os/developer-library/reference/linux-constants/syscalls/ talks a little about this, but doesn't have the kernel version info. I swear on hacker news recently someone linked to a library from chromeos that was trying to do syscall wrappers. It looked interesting, but I cannot find it.

Also, we should stop looking at the host's kernel headers when building llvm-libc for linux, and always require they be passed in. Otherwise, we'll have the wrong syscall numbers when cross compiling.

SchrodingerZhu and others added 3 commits December 5, 2024 15:52
Co-authored-by: Nick Desaulniers <[email protected]>
Co-authored-by: Nick Desaulniers <[email protected]>
Co-authored-by: Nick Desaulniers <[email protected]>
@nickdesaulniers
Copy link
Member

but doesn't have the kernel version info.

https://syscalls.mebeim.net/?table=x86/64/x64/latest looks handy.

Comment on lines 50 to 51
For Windows, we support products within their lifecycle. Please refer to
`Search Product and Services Lifecycle Information <https://learn.microsoft.com/en-us/lifecycle/products/?products=windows>`_ for more information.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we want to claim windows support until it's in a more stable place. Maybe rephrase to "For Windows we plan to support products within their lifecycle, but support is limited currently."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

applied!

@SchrodingerZhu SchrodingerZhu merged commit 2dba66b into llvm:main Dec 5, 2024
6 of 7 checks passed
@SchrodingerZhu SchrodingerZhu deleted the libc/win/doc branch December 5, 2024 23:25
@petrhosek
Copy link
Member

https://www.chromium.org/chromium-os/developer-library/reference/linux-constants/syscalls/ talks a little about this, but doesn't have the kernel version info. I swear on hacker news recently someone linked to a library from chromeos that was trying to do syscall wrappers. It looked interesting, but I cannot find it.

https://chromium.googlesource.com/linux-syscall-support/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants