I think I found. It looks related to a change about os.link in Python 3.14
Python 3.13
link("c", "d") = 0
Python 3.14
linkat(AT_FDCWD, "c", AT_FDCWD, "d", AT_SYMLINK_FOLLOW) = -1 EPERM (Operation
not permitted)
If I call os.link with follow_symlinks=False on Python 3.14, it works:
linkat(AT_FDCWD, "c", AT_FDCWD, "d", 0) = 0
I'm going to check the Python source code and the related recent commits.
Julien

