* [PATCH v1] man/man2/adjtimex.2: Add include, macro and error for clock_adjtime
@ 2026-10-25 12:56 Georg Sauthoff
2026-10-25 18:49 ` Alejandro Colomar
2026-10-27 0:37 ` [PATCH v2 0/2] man/man2/adjtimex.2: Fix include+add error Georg Sauthoff
0 siblings, 2 replies; 6+ messages in thread
From: Georg Sauthoff @ 2026-10-25 12:56 UTC (permalink / raw)
To: Alejandro Colomar; +Cc: linux-man, Georg Sauthoff
GNU libc declares clock_adjtime() when including time.h, and not when
just sys/timex.h is included, iff support for GNU features is requested.
Verification:
$ for i in BLAH _GNU_SOURCE; do for j in sys/timex.h time.h; do echo -n "Testing $i and $j ... "; echo -e '#define '"$i"'\n#include <'"$j"'>\nvoid f(){clock_adjtime;}' | gcc -xc - -o /dev/null -c 2>/dev/null && echo OK || echo FAIL; done; done
Testing BLAH and sys/timex.h ... FAIL
Testing BLAH and time.h ... FAIL
Testing _GNU_SOURCE and sys/timex.h ... FAIL
Testing _GNU_SOURCE and time.h ... OK
(Test output is from a Fedora 43 system)
The ERANGE error can be verified either via trying to adjust the
frequency of a PHC by a value that is outside of [-X,X],
where X=`cat /sys/class/ptp/ptpX/max_adjustment`,
or via checking the kernel source code:
<https://elixir.bootlin.com/linux/v7.2.2/source/drivers/ptp/ptp_clock.c#L164>
Signed-off-by: Georg Sauthoff <mail@gms.tf>
---
man/man2/adjtimex.2 | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/man/man2/adjtimex.2 b/man/man2/adjtimex.2
index f12d9413e..528fd3a6f 100644
--- a/man/man2/adjtimex.2
+++ b/man/man2/adjtimex.2
@@ -17,9 +17,21 @@ .SH SYNOPSIS
.P
.BI "int adjtimex(struct timex *" "buf" );
.P
-.BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" );
-.P
.BI "int ntp_adjtime(struct timex *" buf );
+.P
+.BR #include <time.h>
+.P
+.BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" );
+.fi
+.P
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.P
+.BR clock_adjtime ():
+.nf
+ _GNU_SOURCE
.fi
.SH DESCRIPTION
Linux uses David L.\& Mills' clock adjustment algorithm (see RFC\ 5905).
@@ -534,6 +546,12 @@ .SH ERRORS
Under Linux, the
.B CAP_SYS_TIME
capability is required.
+.TP
+.B ERANGE
+The frequency offset supplied with
+.BR clock_adjtime ()
+is outside of the range clock clk_id supports.
+See also /sys/class/ptp/ptpX/max_adjustment when adjusting a PTP hardware clock.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
--
2.55.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v1] man/man2/adjtimex.2: Add include, macro and error for clock_adjtime 2026-10-25 12:56 [PATCH v1] man/man2/adjtimex.2: Add include, macro and error for clock_adjtime Georg Sauthoff @ 2026-10-25 18:49 ` Alejandro Colomar 2026-10-25 21:37 ` Georg Sauthoff 2026-10-27 0:37 ` [PATCH v2 0/2] man/man2/adjtimex.2: Fix include+add error Georg Sauthoff 1 sibling, 1 reply; 6+ messages in thread From: Alejandro Colomar @ 2026-10-25 18:49 UTC (permalink / raw) To: Georg Sauthoff Cc: Alejandro Colomar, linux-man, Arnd Bergmann, Richard Cochran, Nikola Forró, Laurent Georget, Jeff Epler, libc-alpha [-- Attachment #1: Type: text/plain, Size: 3179 bytes --] Hi Georg, > Date: 2026-10-25 13:56:56+0100 > From: Georg Sauthoff <mail@gms.tf> > Subject: [PATCH v1] man/man2/adjtimex.2: Add include, macro and error for clock_adjtime Please separate this into two patches, each of which does only one thing. The error seems unrelated to the include. I've CCed a few people that have worked in this manual page, in case they have feedback (and also libc-alpha@). > > GNU libc declares clock_adjtime() when including time.h, and not when > just sys/timex.h is included, iff support for GNU features is requested. > > Verification: > > $ for i in BLAH _GNU_SOURCE; do for j in sys/timex.h time.h; do echo -n "Testing $i and $j ... "; echo -e '#define '"$i"'\n#include <'"$j"'>\nvoid f(){clock_adjtime;}' | gcc -xc - -o /dev/null -c 2>/dev/null && echo OK || echo FAIL; done; done > Testing BLAH and sys/timex.h ... FAIL > Testing BLAH and time.h ... FAIL > Testing _GNU_SOURCE and sys/timex.h ... FAIL > Testing _GNU_SOURCE and time.h ... OK Agree. I wonder if this use of a different header is intentional and why. > (Test output is from a Fedora 43 system) > > The ERANGE error can be verified either via trying to adjust the > frequency of a PHC by a value that is outside of [-X,X], > where X=`cat /sys/class/ptp/ptpX/max_adjustment`, > or via checking the kernel source code: > > <https://elixir.bootlin.com/linux/v7.2.2/source/drivers/ptp/ptp_clock.c#L164> > > Signed-off-by: Georg Sauthoff <mail@gms.tf> > --- > man/man2/adjtimex.2 | 22 ++++++++++++++++++++-- > 1 file changed, 20 insertions(+), 2 deletions(-) > > diff --git a/man/man2/adjtimex.2 b/man/man2/adjtimex.2 > index f12d9413e..528fd3a6f 100644 > --- a/man/man2/adjtimex.2 > +++ b/man/man2/adjtimex.2 > @@ -17,9 +17,21 @@ .SH SYNOPSIS > .P > .BI "int adjtimex(struct timex *" "buf" ); > .P > -.BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" ); > -.P > .BI "int ntp_adjtime(struct timex *" buf ); > +.P > +.BR #include <time.h> BR is for alternating bold and roman, so this seems wrong. You probably want just B (see the include above). BTW, I would use .B #define _GNU_SOURCE .B #include <time.h> and then remove the Feature Test Macro text below. Have a lovely night! Alex > +.P > +.BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" ); > +.fi > +.P > +.RS -4 > +Feature Test Macro Requirements for glibc (see > +.BR feature_test_macros (7)): > +.RE > +.P > +.BR clock_adjtime (): > +.nf > + _GNU_SOURCE > .fi > .SH DESCRIPTION > Linux uses David L.\& Mills' clock adjustment algorithm (see RFC\ 5905). > @@ -534,6 +546,12 @@ .SH ERRORS > Under Linux, the > .B CAP_SYS_TIME > capability is required. > +.TP > +.B ERANGE > +The frequency offset supplied with > +.BR clock_adjtime () > +is outside of the range clock clk_id supports. > +See also /sys/class/ptp/ptpX/max_adjustment when adjusting a PTP hardware clock. > .SH ATTRIBUTES > For an explanation of the terms used in this section, see > .BR attributes (7). > -- > 2.55.0 > > -- <https://www.alejandro-colomar.es> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v1] man/man2/adjtimex.2: Add include, macro and error for clock_adjtime 2026-10-25 18:49 ` Alejandro Colomar @ 2026-10-25 21:37 ` Georg Sauthoff 0 siblings, 0 replies; 6+ messages in thread From: Georg Sauthoff @ 2026-10-25 21:37 UTC (permalink / raw) To: Alejandro Colomar Cc: Alejandro Colomar, linux-man, Arnd Bergmann, Richard Cochran, Nikola Forró, Laurent Georget, Jeff Epler, libc-alpha Hello, On Sun, Oct 25, 2026 at 07:49:32PM +0100, Alejandro Colomar wrote: > Hi Georg, > > > Date: 2026-10-25 13:56:56+0100 > > From: Georg Sauthoff <mail@gms.tf> > > Subject: [PATCH v1] man/man2/adjtimex.2: Add include, macro and error for clock_adjtime > > Please separate this into two patches, each of which does only one > thing. The error seems unrelated to the include. Ok. Yes, it's unrelated. It wasn't my intention to imply that both hunks are related. I'll split it and send both as version 2. > > diff --git a/man/man2/adjtimex.2 b/man/man2/adjtimex.2 > > index f12d9413e..528fd3a6f 100644 > > --- a/man/man2/adjtimex.2 > > +++ b/man/man2/adjtimex.2 > > @@ -17,9 +17,21 @@ .SH SYNOPSIS > > .P > > .BI "int adjtimex(struct timex *" "buf" ); > > .P > > -.BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" ); > > -.P > > .BI "int ntp_adjtime(struct timex *" buf ); > > +.P > > +.BR #include <time.h> > > BR is for alternating bold and roman, so this seems wrong. You probably > want just B (see the include above). FWIW, I copy and pasted the BR from another man page I picked as template which already references _GNU_SOURCE, cf. $ grep '^\.BR #include' . -r | wc -l 23 Ok, I change it to B. Also for consistency. > BTW, I would use > > .B #define _GNU_SOURCE > .B #include <time.h> > > and then remove the Feature Test Macro text below. Ok, no problem. Again, I just copied that style from another man page: $ grep '^\.BR feature_test_macros' . -r -A50 | grep '\<_GNU' | wc -l 62 The define style seems to be more popular, though: $ grep '#define _GNU_SOURCE' . -r | wc -l 153 Plus special space variant: $ grep '#define\\~_GNU_SOURCE' . -r | wc -l 2 I don't really have a preference between these styles and thus follow your suggestion. Best regards, Georg ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 0/2] man/man2/adjtimex.2: Fix include+add error 2026-10-25 12:56 [PATCH v1] man/man2/adjtimex.2: Add include, macro and error for clock_adjtime Georg Sauthoff 2026-10-25 18:49 ` Alejandro Colomar @ 2026-10-27 0:37 ` Georg Sauthoff 2026-10-27 0:37 ` [PATCH v2 1/2] man/man2/adjtimex.2: Add include and macro for clock_adjtime Georg Sauthoff 2026-10-27 0:37 ` [PATCH v2 2/2] man/man2/adjtimex.2: Add error " Georg Sauthoff 1 sibling, 2 replies; 6+ messages in thread From: Georg Sauthoff @ 2026-10-27 0:37 UTC (permalink / raw) To: Alejandro Colomar; +Cc: linux-man, Georg Sauthoff Hello, this series fixes the include instructions for clock_adjtime() and documents another error its invocation may yield. Changes v1 -> v2: - split patch into series - use define-style feature macro instead of extra section - fix font style macro usage Best regards, Georg Georg Sauthoff (2): man/man2/adjtimex.2: Add include and macro for clock_adjtime man/man2/adjtimex.2: Add error for clock_adjtime man/man2/adjtimex.2 | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) Range-diff against v1: 1: ddd4886f0 ! 1: 1f6278005 man/man2/adjtimex.2: Add include, macro and error for clock_adjtime @@ Metadata Author: Georg Sauthoff <mail@gms.tf> ## Commit message ## - man/man2/adjtimex.2: Add include, macro and error for clock_adjtime + man/man2/adjtimex.2: Add include and macro for clock_adjtime GNU libc declares clock_adjtime() when including time.h, and not when just sys/timex.h is included, iff support for GNU features is requested. @@ Commit message (Test output is from a Fedora 43 system) - The ERANGE error can be verified either via trying to adjust the - frequency of a PHC by a value that is outside of [-X,X], - where X=`cat /sys/class/ptp/ptpX/max_adjustment`, - or via checking the kernel source code: - - <https://elixir.bootlin.com/linux/v7.2.2/source/drivers/ptp/ptp_clock.c#L164> - ## man/man2/adjtimex.2 ## @@ man/man2/adjtimex.2: .SH SYNOPSIS .P @@ man/man2/adjtimex.2: .SH SYNOPSIS -.P .BI "int ntp_adjtime(struct timex *" buf ); +.P -+.BR #include <time.h> ++.BR #define\~_GNU_SOURCE " // See feature_test_macros(7)" ++.B #include <time.h> +.P +.BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" ); -+.fi -+.P -+.RS -4 -+Feature Test Macro Requirements for glibc (see -+.BR feature_test_macros (7)): -+.RE -+.P -+.BR clock_adjtime (): -+.nf -+ _GNU_SOURCE .fi .SH DESCRIPTION Linux uses David L.\& Mills' clock adjustment algorithm (see RFC\ 5905). -@@ man/man2/adjtimex.2: .SH ERRORS - Under Linux, the - .B CAP_SYS_TIME - capability is required. -+.TP -+.B ERANGE -+The frequency offset supplied with -+.BR clock_adjtime () -+is outside of the range clock clk_id supports. -+See also /sys/class/ptp/ptpX/max_adjustment when adjusting a PTP hardware clock. - .SH ATTRIBUTES - For an explanation of the terms used in this section, see - .BR attributes (7). -: --------- > 2: 578a02146 man/man2/adjtimex.2: Add error for clock_adjtime -- 2.55.0 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/2] man/man2/adjtimex.2: Add include and macro for clock_adjtime 2026-10-27 0:37 ` [PATCH v2 0/2] man/man2/adjtimex.2: Fix include+add error Georg Sauthoff @ 2026-10-27 0:37 ` Georg Sauthoff 2026-10-27 0:37 ` [PATCH v2 2/2] man/man2/adjtimex.2: Add error " Georg Sauthoff 1 sibling, 0 replies; 6+ messages in thread From: Georg Sauthoff @ 2026-10-27 0:37 UTC (permalink / raw) To: Alejandro Colomar; +Cc: linux-man, Georg Sauthoff GNU libc declares clock_adjtime() when including time.h, and not when just sys/timex.h is included, iff support for GNU features is requested. Verification: $ for i in BLAH _GNU_SOURCE; do for j in sys/timex.h time.h; do echo -n "Testing $i and $j ... "; echo -e '#define '"$i"'\n#include <'"$j"'>\nvoid f(){clock_adjtime;}' | gcc -xc - -o /dev/null -c 2>/dev/null && echo OK || echo FAIL; done; done Testing BLAH and sys/timex.h ... FAIL Testing BLAH and time.h ... FAIL Testing _GNU_SOURCE and sys/timex.h ... FAIL Testing _GNU_SOURCE and time.h ... OK (Test output is from a Fedora 43 system) Signed-off-by: Georg Sauthoff <mail@gms.tf> --- man/man2/adjtimex.2 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/man/man2/adjtimex.2 b/man/man2/adjtimex.2 index f12d9413e..5b9a0667b 100644 --- a/man/man2/adjtimex.2 +++ b/man/man2/adjtimex.2 @@ -17,9 +17,12 @@ .SH SYNOPSIS .P .BI "int adjtimex(struct timex *" "buf" ); .P -.BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" ); -.P .BI "int ntp_adjtime(struct timex *" buf ); +.P +.BR #define\~_GNU_SOURCE " // See feature_test_macros(7)" +.B #include <time.h> +.P +.BI "int clock_adjtime(clockid_t " clk_id, " struct timex *" "buf" ); .fi .SH DESCRIPTION Linux uses David L.\& Mills' clock adjustment algorithm (see RFC\ 5905). -- 2.55.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] man/man2/adjtimex.2: Add error for clock_adjtime 2026-10-27 0:37 ` [PATCH v2 0/2] man/man2/adjtimex.2: Fix include+add error Georg Sauthoff 2026-10-27 0:37 ` [PATCH v2 1/2] man/man2/adjtimex.2: Add include and macro for clock_adjtime Georg Sauthoff @ 2026-10-27 0:37 ` Georg Sauthoff 1 sibling, 0 replies; 6+ messages in thread From: Georg Sauthoff @ 2026-10-27 0:37 UTC (permalink / raw) To: Alejandro Colomar; +Cc: linux-man, Georg Sauthoff The ERANGE error can be verified either via trying to adjust the frequency of a PHC by a value that is outside of [-X,X], where X=`cat /sys/class/ptp/ptpX/max_adjustment`, or via checking the kernel source code: <https://elixir.bootlin.com/linux/v7.2.2/source/drivers/ptp/ptp_clock.c#L164> Signed-off-by: Georg Sauthoff <mail@gms.tf> --- man/man2/adjtimex.2 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/man/man2/adjtimex.2 b/man/man2/adjtimex.2 index 5b9a0667b..6b6ee98b0 100644 --- a/man/man2/adjtimex.2 +++ b/man/man2/adjtimex.2 @@ -537,6 +537,12 @@ .SH ERRORS Under Linux, the .B CAP_SYS_TIME capability is required. +.TP +.B ERANGE +The frequency offset supplied with +.BR clock_adjtime () +is outside of the range clock clk_id supports. +See also /sys/class/ptp/ptpX/max_adjustment when adjusting a PTP hardware clock. .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7). -- 2.55.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-10-27 0:38 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-10-25 12:56 [PATCH v1] man/man2/adjtimex.2: Add include, macro and error for clock_adjtime Georg Sauthoff 2026-10-25 18:49 ` Alejandro Colomar 2026-10-25 21:37 ` Georg Sauthoff 2026-10-27 0:37 ` [PATCH v2 0/2] man/man2/adjtimex.2: Fix include+add error Georg Sauthoff 2026-10-27 0:37 ` [PATCH v2 1/2] man/man2/adjtimex.2: Add include and macro for clock_adjtime Georg Sauthoff 2026-10-27 0:37 ` [PATCH v2 2/2] man/man2/adjtimex.2: Add error " Georg Sauthoff
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox