Joachim Wuttke [Tue, 23 Apr 2024 07:53:03 +0000 (09:53 +0200)]
elf.5, ld.so.8: Undeprecate DT_RPATH; explain DT_RPATH vs DT_RUNPATH
In elf.5 and ld.so.8, remove deprecation of DT_RPATH
In elf.5, amend the description of DT_RUNPATH and DT_RPATH.
Rationale:
There is no credible path towards removal of DT_RPATH.
Lots of software depend on DT_RPATH as is.
It is used e.g. for testing and in binary installers.
Cc: Joseph Myers <josmyers@redhat.com> Cc: Mike Frysinger <vapier@gentoo.org> Cc: <bug-binutils@gnu.org> Signed-off-by: Joachim Wuttke <j.wuttke@fz-juelich.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
In this project, it doesn't matter, but in some cases, it's useful that
check doesn't imply build, such as in liba2i.git. Cherry-picking this
change reduces differences in build systems.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Cherry-picked-from: liba2i.git 7246995b3464 ("share/mk/: distcheck: 'check' must be run after 'build'")
Link: <https://git.kernel.org/pub/scm/libs/liba2i/liba2i.git/> Signed-off-by: Alejandro Colomar <alx@kernel.org>
Let's update the list with the latest file-systems that added support.
You can easily verify this by "git grep FS_ALLOW_IDMAP" on the given
Linux version to see that the fs is listed and then checkout the
previous Linux version to see that it is not listed, therefore it was
added in that version.
Add documentation for the new MPOL_WEIGHTED_INTERLEAVE mode in the same
manual pages that mention MPOL_INTERLEAVE; namely, mbind(2),
set_mempolicy(2), and get_mempolicy(2).
Descriptions were based on the changes introduced in this patch:
<https://lore.kernel.org/all/20240202170238.90004-4-gregory.price@memverge.com/>
nixpkgs does not provide /usr/bin/env, so they had to work around it by
specifying just env. Since make(1) accepts program names instead of
paths, we can as well use bash directly, which is simpler.
Link: <https://github.com/NixOS/nixpkgs/pull/300797> Reported-by: Sergei Trofimovich <slyich@gmail.com> Cc: Mario Rodas <https://github.com/marsam> Cc: Eli Schwartz <eschwartz93@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
install(1) doesn't work well in Darwin. It seems to be unable to handle
</dev/stdin>. The problem seems to be that Darwin's stdin misbehaves.
I've only workarounded the install target, and not the dist target,
since it's unlikely that one would run it in such a broken system. But
since installing the pages is a common operation that everybody needs,
let's work around it here.
Fixes: 30c38a8bf8ae ("*.mk: Pipe to install(1)")
Link: <https://github.com/NixOS/nixpkgs/pull/300797> Closes: <https://bugzilla.kernel.org/show_bug.cgi?id=218730> Reported-by: Sergei Trofimovich <slyich@gmail.com> Reported-by: Mario Rodas <https://github.com/marsam> Cc: Eli Schwartz <eschwartz93@gmail.com> Cc: Pádraig Brady <P@draigBrady.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
proc.5: Refer to split-out manual pages for detailed description
Back in August 2023 various parts of proc(5) were split out into
separate manpages. The final cleanup in 92cdcec79df0 ("proc.5: Clean up
after making sashimi of this page") missed to as well refer to the split
out manpages and retained the wording that details are found further
below in the manpages for the various files.
Fixes: 92cdcec79df0 ("proc.5: Clean up after making sashimi of this page") Signed-off-by: Salvatore Bonaccorso <carnil@debian.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
Revert "debian/debhelper.in/glibc-doc.{links,manpages}, debian/local/manpages/pthread_*: drop the man pages for libpthread functions, as they are now included in manpages-dev. Closes: #1068188."
Import pthread_*.3 link pages' git history from debian/glibc.git
These are the link pages, which I forgot to import in 87183bb8e9ec
("Import debian/local/manpages/pthread_*.3 git history from debian/glibc")
They aren't files in the debian repository, but they were generated at
build time, which is the reason I missed them.
Here's the process:
$ git clone git@salsa.debian.org:glibc-team/glibc.git
$ cd glibc/
$ git filter-repo --path debian/debhelper.in/glibc-doc.links
$ git tag | xargs git tag -d
$ git branch | xargs git branch -D
$ git remote add man file:///home/alx/src/linux/man-pages/man-pages/.bare.git
$ git fetch man
$ git rebase man/contrib
Subsequent commits will move the pages to the appropriate place.
Fixes: 87183bb8e9ec ("Import debian/local/manpages/pthread_*.3 git history from debian/glibc")
Link: <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1068188>
Link: <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1068166>
Link: <https://lore.kernel.org/linux-man/703ec07e-dd2b-bbc6-f1bc-f495e53b764f@gmail.com/T/> Cc: Marcos Fouces <marcos@debian.org> Cc: Sven Joachim <svenjoac@gmx.de> Cc: Bas Couwenberg <sebastic@xs4all.nl> Cc: Andreas Beckmann <anbe@debian.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
debian/debhelper.in/glibc-doc.{links,manpages}, debian/local/manpages/pthread_*: drop the man pages for libpthread functions, as they are now included in manpages-dev. Closes: #1068188.
Aurelien Jarno [Tue, 15 Aug 2006 20:40:10 +0000 (20:40 +0000)]
* Backport from experimental (thanks Denis):
- Remove the GNU Libc Reference manual from glibc-doc because it is
not DFSG-free. (Closes: #181494)
The whole glibc-2.3.6/manual directory is removed from glibc-2.3.6.ds1.tar.bz2.
- debian/control: Drop Build-Depends: texinfo, texi2html.
- debian/control: Drop references to the antique libc-doc package.
- all/cvs-manual-memory.diff: removed.
- all/cvs-manual-string.diff: removed.
share/mk/: Remove support for installing compressed pages
I don't like compressed pages: they make it more difficult/slow to grep
them. This was added to make it easier for users to install compressed
pages even when installing from source, but probably nobody cares at all
these days about a few KiB per page; drive space got cheap. Also, some
of the algorithms were added just for benchmarking (for demonstrating
that they were bad in this case), and not for real use.
This reduces a use of compression tools, which seem to be dangerous
these days.
Michael Weiß [Wed, 3 Apr 2024 11:42:23 +0000 (13:42 +0200)]
init_module.2: Document MODULE_INIT_COMPRESS_FILE flag
finit_module() supports the MODULE_INIT_COMPRESS_FILE flag since
Linux 5.17. See commit b1ae6dc41eaaa ("module: add in-kernel support
for decompressing")
During implementation of a secure module loader in GyroidOS, we
wanted to filter unsafe module parameters. To verify that only the
two documented flags which are disabling sanity checks are unsafe,
we had a look in the current kernel implementation.
We discovered that this new flag MODULE_INIT_COMPRESS_FILE was added.
Having a deeper look at the code, we also discovered that a new error
code EOPNOTSUPP is possible within newer kernels.
The inital commit only supported gzip and xz compression algorithms.
Support for zstd was added in Linux 6.2 by commit 169a58ad824d8
("module/decompress: Support zstd in-kernel decompression")
Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Stephen Boyd <swboyd@chromium.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
sigwait.3: Note sigprocmask(2) requirement, explicitly link sigtimedwait(2)/NOTES
This comes from a real user complaint. sigwait(3) is the most obvious
of the family, and it doesn't mention any of the usage details.
Most of these can be crosslinked, but not mentioning the sigprocmask(2)
requirement is malice.
Elliott Hughes [Sat, 30 Mar 2024 00:10:26 +0000 (17:10 -0700)]
getpagesize.2, syscalls.2: Modernization
Remove the HP-UX portability advice, since getpagesize() is a slightly
better option than sysconf() for Linux systems.
Explain why this function exists, and why this man page is in the wrong
section. (The previous text tried to do both at the same, which was
confusing.) Also explain how the vast majority of architectures that
don't have a syscall (but do support multiple page sizes) actually work.
Also de-emphasize the glibc 2.0 bug, since most people don't need to
worry about compatibility with versions of glibc from 1997.
Finally, change "not on x86" in syscalls.2 to say where there _is_ a
syscall.
share/mk/: build-book, build-man, install-man: Specify version and date
Each page has its own date.
Add new 'build-man' target, which stamps the date and version in the
pages (in $builddir, not the source ones).
Build-system internal stuff:
$CURDIR will be used for the build system, while $srcdir will be
used for the project root of the repository. This helps use
this build system in other projects.
It gets out of date easily, and it's always more accurate to actually
read the makefiles, or run a command that parses them for us.
In the case of .PHONY targets, or available variables, here are two
commands that can help: