* [PATCH] manual: scripts/documented.sh updated
@ 2023-02-24 14:34 Girish Joshi
2023-02-27 17:56 ` Florian Weimer
0 siblings, 1 reply; 14+ messages in thread
From: Girish Joshi @ 2023-02-24 14:34 UTC (permalink / raw)
To: Girish Joshi via Libc-alpha
[-- Attachment #1: Type: text/plain, Size: 381 bytes --]
Hello,
As per the Missing Functions section of master Todo list[1],
scripts/documented.sh needs to be updated.
Could someone please review this patch?
It removes the reference to linuxthreads/*.taxi files from the script
and removes the individual email address from the output.
Thanks!
Girish Joshi
girishjoshi.io
[1]: https://sourceware.org/glibc/wiki/Development_Todo/Master
[-- Attachment #2: 0001-manual-scripts-documented.sh-updated.patch --]
[-- Type: text/x-patch, Size: 2160 bytes --]
From 8f589f12be85655d5bb5f69b07753ca7aa87bc16 Mon Sep 17 00:00:00 2001
From: Girish Joshi <girish946@gmail.com>
Date: Fri, 24 Feb 2023 19:50:38 +0530
Subject: [PATCH] manual: scripts/documented.sh updated
As mentioned in the master todo list,
References for linuxthreads are removed from scripts/documented.sh.
Also removed the individual email address from the html output.
---
scripts/documented.sh | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/scripts/documented.sh b/scripts/documented.sh
index 7d1ffd4a92..7d9a044295 100644
--- a/scripts/documented.sh
+++ b/scripts/documented.sh
@@ -1,9 +1,17 @@
#!/bin/sh
+
+# usage: scripts/documented.sh <path to glibc build directory>
+# for example:
+# scripts/documented.sh $HOME/build/glibc
+
+
bindir=$1
VERSION=1.0
-grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
+# Collect the documented functions from manual/*.texi files.
+
+grep -E -h @deftypefu?nx? manual/*.texi |
sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
@@ -14,7 +22,9 @@ sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' |
sed -e '/^alloca$/d' |
sort -u > DOCUMENTED
-nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
+# Generate the HTML doc
+
+nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/nptl/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
sed 's/\(@.*\)//' |
cut -b 12- |
@@ -95,7 +105,6 @@ cat <<EOF
</table></center>
<hr>
- <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address>
Generated on $(date) with documented.sh version $VERSION
</body>
</html>
--
2.39.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2023-02-24 14:34 [PATCH] manual: scripts/documented.sh updated Girish Joshi
@ 2023-02-27 17:56 ` Florian Weimer
2023-03-05 6:14 ` Girish Joshi
0 siblings, 1 reply; 14+ messages in thread
From: Florian Weimer @ 2023-02-27 17:56 UTC (permalink / raw)
To: Girish Joshi via Libc-alpha; +Cc: Girish Joshi
* Girish Joshi via Libc-alpha:
> Hello,
> As per the Missing Functions section of master Todo list[1],
> scripts/documented.sh needs to be updated.
>
> Could someone please review this patch?
> It removes the reference to linuxthreads/*.taxi files from the script
> and removes the individual email address from the output.
The script still doesn't seem to work, probably because the symbol names
are not extract properly:
43120 T _dl_mcount_wrapper 43140 T _dl_mcount_wrapper_c 43320 W clogf 43320 W clogf32
435c0 T _dl_find_object 43740 T realpath 43770 T quick_exit 43790 T _IO_vfscanf
437c0 T _pthread_cleanup_pus 437d0 T _pthread_cleanup_pop 437d0 W cprojf 437d0 W cprojf32
_dl_find_object is documented.
_IO_vfscanf should be recognized as an alias of vfscanf, but this is
more of an RFE than a bug fix.
Thanks,
Florian
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2023-02-27 17:56 ` Florian Weimer
@ 2023-03-05 6:14 ` Girish Joshi
2023-03-05 6:55 ` Girish Joshi
2023-03-11 14:48 ` Joe Simmons-Talbott
0 siblings, 2 replies; 14+ messages in thread
From: Girish Joshi @ 2023-03-05 6:14 UTC (permalink / raw)
To: Florian Weimer; +Cc: Girish Joshi via Libc-alpha
[-- Attachment #1: Type: text/plain, Size: 1317 bytes --]
Hi Florian,
Thanks for the review.
Turns out `diff` was not working with the given input files, this
patch fixes that.
I'm not sure if there is a list of people who volunteered to document
some specific functions.
So that comment from the output html is removed.
Thanks!
Girish Joshi
On Mon, Feb 27, 2023 at 11:26 PM Florian Weimer <fweimer@redhat.com> wrote:
>
> * Girish Joshi via Libc-alpha:
>
> > Hello,
> > As per the Missing Functions section of master Todo list[1],
> > scripts/documented.sh needs to be updated.
> >
> > Could someone please review this patch?
> > It removes the reference to linuxthreads/*.taxi files from the script
> > and removes the individual email address from the output.
>
> The script still doesn't seem to work, probably because the symbol names
> are not extract properly:
>
> 43120 T _dl_mcount_wrapper 43140 T _dl_mcount_wrapper_c 43320 W clogf 43320 W clogf32
> 435c0 T _dl_find_object 43740 T realpath 43770 T quick_exit 43790 T _IO_vfscanf
> 437c0 T _pthread_cleanup_pus 437d0 T _pthread_cleanup_pop 437d0 W cprojf 437d0 W cprojf32
>
> _dl_find_object is documented.
>
> _IO_vfscanf should be recognized as an alias of vfscanf, but this is
> more of an RFE than a bug fix.
>
> Thanks,
> Florian
>
[-- Attachment #2: 0001-manual-scripts-documented.sh-updated.patch --]
[-- Type: text/x-patch, Size: 4244 bytes --]
From 5148c65ac07688dc5c3ee79a9b0f054232d64df3 Mon Sep 17 00:00:00 2001
From: Girish Joshi <girish946@gmail.com>
Date: Sun, 5 Mar 2023 11:15:00 +0530
Subject: [PATCH] manual: scripts/documented.sh updated
References for linuxthreads are removed from scripts/documented.sh.
Also removed the individual email address from the html output.
Fixed the steps to retrive undocumented functions
---
scripts/documented.sh | 44 +++++++++++++++++++++++++++++++------------
1 file changed, 32 insertions(+), 12 deletions(-)
mode change 100644 => 100755 scripts/documented.sh
diff --git a/scripts/documented.sh b/scripts/documented.sh
old mode 100644
new mode 100755
index 7d1ffd4a92..dda6a32283
--- a/scripts/documented.sh
+++ b/scripts/documented.sh
@@ -1,9 +1,15 @@
#!/bin/sh
bindir=$1
-VERSION=1.0
+# usage: scripts/documented.sh <path to glibc build directory>
+# for example:
+# scripts/documented.sh $HOME/build/glibc
-grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
+VERSION=1.1
+
+# Collect the documented functions from manual/*.texi files.
+
+grep -E -h @deftypefu?nx? manual/*.texi |
sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
@@ -12,9 +18,12 @@ sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/^__fsetlocking$/d' |
sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' |
sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' |
sed -e '/^alloca$/d' |
+sed -r '/^\s*$/d' |
sort -u > DOCUMENTED
-nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
+
+# extract the exported symbols from the libraries.
+nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/nptl/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
sed 's/\(@.*\)//' |
cut -b 12- |
@@ -25,6 +34,9 @@ sed -e '/^_mcleanup$/d' -e '/^_rpc_dtablesize$/d' -e '/^_seterr_reply$/d' |
sed -e '/^_nss/d' -e '/^_setjmp$/d' |
sort -u > AVAILABLE
+# remove offset details from nm output
+cat AVAILABLE | cut -b 9- | sort -u > AVAILABLE_WITHOUT_OFFSET
+
cat <<EOF
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
@@ -39,9 +51,7 @@ cat <<EOF
which are not yet documented in the manual. This list is
automatically created and therefore might contain errors. Please
check the latest manual (available from the CVS archive) before
- starting to work. It might also be good to let me know in
- advanace on which functions you intend to work to avoid
- duplication.</p>
+ starting to work.</p>
<p>A few comments:</p>
@@ -52,15 +62,23 @@ cat <<EOF
<li>Similarly for the LFS functions (those ending in 64).</li>
</ul>
- <p>The function sombody already volunteered to document are marked
- with a reference to the person.</p>
<center><table>
EOF
n=0
-diff -y --width=60 --suppress-common-lines DOCUMENTED AVAILABLE |
-expand | cut -b 33- | sed '/^[[:space:]]*$/d' |
+
+# get the list of undocumented functions
+grep -Fvx -f DOCUMENTED AVAILABLE_WITHOUT_OFFSET > UNDOCUMENTED_WITHOUT_OFFSET
+
+# get undocumented functions with offset info
+for func in `cat UNDOCUMENTED_WITHOUT_OFFSET`
+do
+ grep " $func$" AVAILABLE >> UNDOCUMENTED
+done
+
+diff -y --width=120 --suppress-common-lines DOCUMENTED UNDOCUMENTED |
+expand | cut -b 61- | sed '/^[[:space:]]*$/d' |
while read name; do
line="$line
<td><tt>$name</tt></td>"
@@ -95,8 +113,10 @@ cat <<EOF
</table></center>
<hr>
- <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address>
-Generated on $(date) with documented.sh version $VERSION
+ Generated on $(date) with documented.sh version $VERSION
</body>
</html>
EOF
+
+# cleanup the files
+rm -rf UNDOCUMENTED_WITHOUT_OFFSET AVAILABLE_WITHOUT_OFFSET AVAILABLE
--
2.39.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2023-03-05 6:14 ` Girish Joshi
@ 2023-03-05 6:55 ` Girish Joshi
2023-03-11 14:48 ` Joe Simmons-Talbott
1 sibling, 0 replies; 14+ messages in thread
From: Girish Joshi @ 2023-03-05 6:55 UTC (permalink / raw)
To: Florian Weimer; +Cc: Girish Joshi via Libc-alpha
Also,
> On Mon, Feb 27, 2023 at 11:26 PM Florian Weimer <fweimer@redhat.com> wrote:
> _IO_vfscanf should be recognized as an alias of vfscanf, but this is
> more of an RFE than a bug fix.
I'll try to figure out a way to mark such functions as aliases, as of
now the script does not do that.
Thanks,
Girish Joshi
On Sun, Mar 5, 2023 at 11:44 AM Girish Joshi <girish946@gmail.com> wrote:
>
> Hi Florian,
> Thanks for the review.
> Turns out `diff` was not working with the given input files, this
> patch fixes that.
> I'm not sure if there is a list of people who volunteered to document
> some specific functions.
> So that comment from the output html is removed.
>
> Thanks!
> Girish Joshi
>
> >
> > * Girish Joshi via Libc-alpha:
> >
> > > Hello,
> > > As per the Missing Functions section of master Todo list[1],
> > > scripts/documented.sh needs to be updated.
> > >
> > > Could someone please review this patch?
> > > It removes the reference to linuxthreads/*.taxi files from the script
> > > and removes the individual email address from the output.
> >
> > The script still doesn't seem to work, probably because the symbol names
> > are not extract properly:
> >
> > 43120 T _dl_mcount_wrapper 43140 T _dl_mcount_wrapper_c 43320 W clogf 43320 W clogf32
> > 435c0 T _dl_find_object 43740 T realpath 43770 T quick_exit 43790 T _IO_vfscanf
> > 437c0 T _pthread_cleanup_pus 437d0 T _pthread_cleanup_pop 437d0 W cprojf 437d0 W cprojf32
> >
> > _dl_find_object is documented.
> >
> > _IO_vfscanf should be recognized as an alias of vfscanf, but this is
> > more of an RFE than a bug fix.
> >
> > Thanks,
> > Florian
> >
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2023-03-05 6:14 ` Girish Joshi
2023-03-05 6:55 ` Girish Joshi
@ 2023-03-11 14:48 ` Joe Simmons-Talbott
2024-03-30 18:54 ` Girish Joshi
1 sibling, 1 reply; 14+ messages in thread
From: Joe Simmons-Talbott @ 2023-03-11 14:48 UTC (permalink / raw)
To: Girish Joshi; +Cc: Florian Weimer, Girish Joshi via Libc-alpha
On Sun, Mar 05, 2023 at 11:44:22AM +0530, Girish Joshi via Libc-alpha wrote:
> Hi Florian,
> Thanks for the review.
> Turns out `diff` was not working with the given input files, this
> patch fixes that.
> I'm not sure if there is a list of people who volunteered to document
> some specific functions.
> So that comment from the output html is removed.
>
> Thanks!
> Girish Joshi
>
> On Mon, Feb 27, 2023 at 11:26 PM Florian Weimer <fweimer@redhat.com> wrote:
> >
> > * Girish Joshi via Libc-alpha:
> >
> > > Hello,
> > > As per the Missing Functions section of master Todo list[1],
> > > scripts/documented.sh needs to be updated.
> > >
> > > Could someone please review this patch?
> > > It removes the reference to linuxthreads/*.taxi files from the script
> > > and removes the individual email address from the output.
> >
> > The script still doesn't seem to work, probably because the symbol names
> > are not extract properly:
> >
> > 43120 T _dl_mcount_wrapper 43140 T _dl_mcount_wrapper_c 43320 W clogf 43320 W clogf32
> > 435c0 T _dl_find_object 43740 T realpath 43770 T quick_exit 43790 T _IO_vfscanf
> > 437c0 T _pthread_cleanup_pus 437d0 T _pthread_cleanup_pop 437d0 W cprojf 437d0 W cprojf32
> >
> > _dl_find_object is documented.
> >
> > _IO_vfscanf should be recognized as an alias of vfscanf, but this is
> > more of an RFE than a bug fix.
> >
> > Thanks,
> > Florian
> >
> From 5148c65ac07688dc5c3ee79a9b0f054232d64df3 Mon Sep 17 00:00:00 2001
> From: Girish Joshi <girish946@gmail.com>
> Date: Sun, 5 Mar 2023 11:15:00 +0530
> Subject: [PATCH] manual: scripts/documented.sh updated
>
> References for linuxthreads are removed from scripts/documented.sh.
> Also removed the individual email address from the html output.
>
> Fixed the steps to retrive undocumented functions
> ---
> scripts/documented.sh | 44 +++++++++++++++++++++++++++++++------------
> 1 file changed, 32 insertions(+), 12 deletions(-)
> mode change 100644 => 100755 scripts/documented.sh
>
> diff --git a/scripts/documented.sh b/scripts/documented.sh
> old mode 100644
> new mode 100755
> index 7d1ffd4a92..dda6a32283
> --- a/scripts/documented.sh
> +++ b/scripts/documented.sh
> @@ -1,9 +1,15 @@
> #!/bin/sh
> bindir=$1
>
> -VERSION=1.0
> +# usage: scripts/documented.sh <path to glibc build directory>
> +# for example:
> +# scripts/documented.sh $HOME/build/glibc
>
> -grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
> +VERSION=1.1
> +
> +# Collect the documented functions from manual/*.texi files.
> +
> +grep -E -h @deftypefu?nx? manual/*.texi |
> sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
> sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
> sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
> @@ -12,9 +18,12 @@ sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/^__fsetlocking$/d' |
> sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' |
> sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' |
> sed -e '/^alloca$/d' |
> +sed -r '/^\s*$/d' |
> sort -u > DOCUMENTED
>
> -nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
> +
> +# extract the exported symbols from the libraries.
> +nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/nptl/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
> grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
> sed 's/\(@.*\)//' |
> cut -b 12- |
You can change this to 'cut -v 20-' and avoid the extra
AVAILABLE_WITHOUT_OFFSET part.
Thanks,
Joe
> @@ -25,6 +34,9 @@ sed -e '/^_mcleanup$/d' -e '/^_rpc_dtablesize$/d' -e '/^_seterr_reply$/d' |
> sed -e '/^_nss/d' -e '/^_setjmp$/d' |
> sort -u > AVAILABLE
>
> +# remove offset details from nm output
> +cat AVAILABLE | cut -b 9- | sort -u > AVAILABLE_WITHOUT_OFFSET
> +
> cat <<EOF
> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
> <html>
> @@ -39,9 +51,7 @@ cat <<EOF
> which are not yet documented in the manual. This list is
> automatically created and therefore might contain errors. Please
> check the latest manual (available from the CVS archive) before
> - starting to work. It might also be good to let me know in
> - advanace on which functions you intend to work to avoid
> - duplication.</p>
> + starting to work.</p>
>
> <p>A few comments:</p>
>
> @@ -52,15 +62,23 @@ cat <<EOF
> <li>Similarly for the LFS functions (those ending in 64).</li>
> </ul>
>
> - <p>The function sombody already volunteered to document are marked
> - with a reference to the person.</p>
>
> <center><table>
> EOF
>
> n=0
> -diff -y --width=60 --suppress-common-lines DOCUMENTED AVAILABLE |
> -expand | cut -b 33- | sed '/^[[:space:]]*$/d' |
> +
> +# get the list of undocumented functions
> +grep -Fvx -f DOCUMENTED AVAILABLE_WITHOUT_OFFSET > UNDOCUMENTED_WITHOUT_OFFSET
> +
> +# get undocumented functions with offset info
> +for func in `cat UNDOCUMENTED_WITHOUT_OFFSET`
> +do
> + grep " $func$" AVAILABLE >> UNDOCUMENTED
> +done
> +
> +diff -y --width=120 --suppress-common-lines DOCUMENTED UNDOCUMENTED |
> +expand | cut -b 61- | sed '/^[[:space:]]*$/d' |
> while read name; do
> line="$line
> <td><tt>$name</tt></td>"
> @@ -95,8 +113,10 @@ cat <<EOF
> </table></center>
>
> <hr>
> - <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address>
> -Generated on $(date) with documented.sh version $VERSION
> + Generated on $(date) with documented.sh version $VERSION
> </body>
> </html>
> EOF
> +
> +# cleanup the files
> +rm -rf UNDOCUMENTED_WITHOUT_OFFSET AVAILABLE_WITHOUT_OFFSET AVAILABLE
> --
> 2.39.2
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2023-03-11 14:48 ` Joe Simmons-Talbott
@ 2024-03-30 18:54 ` Girish Joshi
2024-04-01 16:33 ` Joe Talbott
0 siblings, 1 reply; 14+ messages in thread
From: Girish Joshi @ 2024-03-30 18:54 UTC (permalink / raw)
To: Joe Simmons-Talbott; +Cc: Florian Weimer, Girish Joshi via Libc-alpha
[-- Attachment #1: Type: text/plain, Size: 6812 bytes --]
Thanks Joe, I've updated the script.
It's just that the output now does not contain the addresses and the
T/W info about the symbol is not present.
Do we need that info about each symbol in the output?
Thanks!
Girish Joshi
girishjoshi.io
On Sat, Mar 11, 2023 at 8:18 PM Joe Simmons-Talbott
<joetalbott@gmail.com> wrote:
>
> On Sun, Mar 05, 2023 at 11:44:22AM +0530, Girish Joshi via Libc-alpha wrote:
> > Hi Florian,
> > Thanks for the review.
> > Turns out `diff` was not working with the given input files, this
> > patch fixes that.
> > I'm not sure if there is a list of people who volunteered to document
> > some specific functions.
> > So that comment from the output html is removed.
> >
> > Thanks!
> > Girish Joshi
> >
> > On Mon, Feb 27, 2023 at 11:26 PM Florian Weimer <fweimer@redhat.com> wrote:
> > >
> > > * Girish Joshi via Libc-alpha:
> > >
> > > > Hello,
> > > > As per the Missing Functions section of master Todo list[1],
> > > > scripts/documented.sh needs to be updated.
> > > >
> > > > Could someone please review this patch?
> > > > It removes the reference to linuxthreads/*.taxi files from the script
> > > > and removes the individual email address from the output.
> > >
> > > The script still doesn't seem to work, probably because the symbol names
> > > are not extract properly:
> > >
> > > 43120 T _dl_mcount_wrapper 43140 T _dl_mcount_wrapper_c 43320 W clogf 43320 W clogf32
> > > 435c0 T _dl_find_object 43740 T realpath 43770 T quick_exit 43790 T _IO_vfscanf
> > > 437c0 T _pthread_cleanup_pus 437d0 T _pthread_cleanup_pop 437d0 W cprojf 437d0 W cprojf32
> > >
> > > _dl_find_object is documented.
> > >
> > > _IO_vfscanf should be recognized as an alias of vfscanf, but this is
> > > more of an RFE than a bug fix.
> > >
> > > Thanks,
> > > Florian
> > >
>
> > From 5148c65ac07688dc5c3ee79a9b0f054232d64df3 Mon Sep 17 00:00:00 2001
> > From: Girish Joshi <girish946@gmail.com>
> > Date: Sun, 5 Mar 2023 11:15:00 +0530
> > Subject: [PATCH] manual: scripts/documented.sh updated
> >
> > References for linuxthreads are removed from scripts/documented.sh.
> > Also removed the individual email address from the html output.
> >
> > Fixed the steps to retrive undocumented functions
> > ---
> > scripts/documented.sh | 44 +++++++++++++++++++++++++++++++------------
> > 1 file changed, 32 insertions(+), 12 deletions(-)
> > mode change 100644 => 100755 scripts/documented.sh
> >
> > diff --git a/scripts/documented.sh b/scripts/documented.sh
> > old mode 100644
> > new mode 100755
> > index 7d1ffd4a92..dda6a32283
> > --- a/scripts/documented.sh
> > +++ b/scripts/documented.sh
> > @@ -1,9 +1,15 @@
> > #!/bin/sh
> > bindir=$1
> >
> > -VERSION=1.0
> > +# usage: scripts/documented.sh <path to glibc build directory>
> > +# for example:
> > +# scripts/documented.sh $HOME/build/glibc
> >
> > -grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
> > +VERSION=1.1
> > +
> > +# Collect the documented functions from manual/*.texi files.
> > +
> > +grep -E -h @deftypefu?nx? manual/*.texi |
> > sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
> > sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
> > sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
> > @@ -12,9 +18,12 @@ sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/^__fsetlocking$/d' |
> > sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' |
> > sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' |
> > sed -e '/^alloca$/d' |
> > +sed -r '/^\s*$/d' |
> > sort -u > DOCUMENTED
> >
> > -nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
> > +
> > +# extract the exported symbols from the libraries.
> > +nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/nptl/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
> > grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
> > sed 's/\(@.*\)//' |
> > cut -b 12- |
>
> You can change this to 'cut -v 20-' and avoid the extra
> AVAILABLE_WITHOUT_OFFSET part.
>
> Thanks,
> Joe
> > @@ -25,6 +34,9 @@ sed -e '/^_mcleanup$/d' -e '/^_rpc_dtablesize$/d' -e '/^_seterr_reply$/d' |
> > sed -e '/^_nss/d' -e '/^_setjmp$/d' |
> > sort -u > AVAILABLE
> >
> > +# remove offset details from nm output
> > +cat AVAILABLE | cut -b 9- | sort -u > AVAILABLE_WITHOUT_OFFSET
> > +
> > cat <<EOF
> > <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
> > <html>
> > @@ -39,9 +51,7 @@ cat <<EOF
> > which are not yet documented in the manual. This list is
> > automatically created and therefore might contain errors. Please
> > check the latest manual (available from the CVS archive) before
> > - starting to work. It might also be good to let me know in
> > - advanace on which functions you intend to work to avoid
> > - duplication.</p>
> > + starting to work.</p>
> >
> > <p>A few comments:</p>
> >
> > @@ -52,15 +62,23 @@ cat <<EOF
> > <li>Similarly for the LFS functions (those ending in 64).</li>
> > </ul>
> >
> > - <p>The function sombody already volunteered to document are marked
> > - with a reference to the person.</p>
> >
> > <center><table>
> > EOF
> >
> > n=0
> > -diff -y --width=60 --suppress-common-lines DOCUMENTED AVAILABLE |
> > -expand | cut -b 33- | sed '/^[[:space:]]*$/d' |
> > +
> > +# get the list of undocumented functions
> > +grep -Fvx -f DOCUMENTED AVAILABLE_WITHOUT_OFFSET > UNDOCUMENTED_WITHOUT_OFFSET
> > +
> > +# get undocumented functions with offset info
> > +for func in `cat UNDOCUMENTED_WITHOUT_OFFSET`
> > +do
> > + grep " $func$" AVAILABLE >> UNDOCUMENTED
> > +done
> > +
> > +diff -y --width=120 --suppress-common-lines DOCUMENTED UNDOCUMENTED |
> > +expand | cut -b 61- | sed '/^[[:space:]]*$/d' |
> > while read name; do
> > line="$line
> > <td><tt>$name</tt></td>"
> > @@ -95,8 +113,10 @@ cat <<EOF
> > </table></center>
> >
> > <hr>
> > - <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address>
> > -Generated on $(date) with documented.sh version $VERSION
> > + Generated on $(date) with documented.sh version $VERSION
> > </body>
> > </html>
> > EOF
> > +
> > +# cleanup the files
> > +rm -rf UNDOCUMENTED_WITHOUT_OFFSET AVAILABLE_WITHOUT_OFFSET AVAILABLE
> > --
> > 2.39.2
> >
>
[-- Attachment #2: 0001-manual-scripts-documented.sh-updated.patch --]
[-- Type: text/x-patch, Size: 4100 bytes --]
From a564f1afee1e1f5f74a5852882e8c582cf0ae97d Mon Sep 17 00:00:00 2001
From: Girish Joshi <girish946@gmail.com>
Date: Sun, 31 Mar 2024 00:17:34 +0530
Subject: [PATCH] manual: scripts/documented.sh updated
References for linuxthreads are removed from scripts/documented.sh.
Fixed the steps to retrive undocumented functions
Also removed the individual email address from the html output.
Signed-off-by: Girish Joshi <girish946@gmail.com>
---
scripts/documented.sh | 41 ++++++++++++++++++++++++++++-------------
1 file changed, 28 insertions(+), 13 deletions(-)
mode change 100644 => 100755 scripts/documented.sh
diff --git a/scripts/documented.sh b/scripts/documented.sh
old mode 100644
new mode 100755
index 24bb7b3e54..372a28ebf0
--- a/scripts/documented.sh
+++ b/scripts/documented.sh
@@ -1,9 +1,15 @@
#!/bin/sh
bindir=$1
-VERSION=1.0
+# usage: scripts/documented.sh <path to glibc build directory>
+# for example:
+# scripts/documented.sh $HOME/build/glibc
-grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
+VERSION=1.1
+
+# Collect the documented functions from manual/*.texi files.
+
+grep -E -h @deftypefu?nx? manual/*.texi |
sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
@@ -12,12 +18,14 @@ sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/^__fsetlocking$/d' |
sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' |
sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' |
sed -e '/^alloca$/d' |
+sed -r '/^\s*$/d' |
sort -u > DOCUMENTED
-nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/login/libutil.so |
+# extract the exported symbols from the libraries.
+nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/nptl/libpthread.so $bindir/dlfcn/libdl.so $bindir/login/libutil.so |
grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
sed 's/\(@.*\)//' |
-cut -b 12- |
+cut -b 20- |
sed -e '/^_IO/d' -e '/^_dl/d' -e '/^_pthread/d' -e '/^_obstack/d' |
sed -e '/^_argp/d' -e '/^_authenticate$/d' -e '/^_environ$/d' |
sed -e '/^_errno$/d' -e '/^_h_errno$/d' -e '/^_longjmp$/d' |
@@ -39,9 +47,7 @@ cat <<EOF
which are not yet documented in the manual. This list is
automatically created and therefore might contain errors. Please
check the latest manual (available from the CVS archive) before
- starting to work. It might also be good to let me know in
- advanace on which functions you intend to work to avoid
- duplication.</p>
+ starting to work.</p>
<p>A few comments:</p>
@@ -52,15 +58,22 @@ cat <<EOF
<li>Similarly for the LFS functions (those ending in 64).</li>
</ul>
- <p>The function sombody already volunteered to document are marked
- with a reference to the person.</p>
<center><table>
EOF
n=0
-diff -y --width=60 --suppress-common-lines DOCUMENTED AVAILABLE |
-expand | cut -b 33- | sed '/^[[:space:]]*$/d' |
+# get the list of undocumented functions
+grep -Fvx -f DOCUMENTED AVAILABLE> UNDOCUMENTED_WITHOUT_OFFSET
+
+# get undocumented functions with offset info
+for func in `cat UNDOCUMENTED_WITHOUT_OFFSET`
+do
+ grep "$func$" AVAILABLE >> UNDOCUMENTED
+done
+
+diff -y --width=120 --suppress-common-lines DOCUMENTED UNDOCUMENTED |
+expand | cut -b 61- | sed '/^[[:space:]]*$/d' |
while read name; do
line="$line
<td><tt>$name</tt></td>"
@@ -95,8 +108,10 @@ cat <<EOF
</table></center>
<hr>
- <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address>
-Generated on $(date) with documented.sh version $VERSION
+ Generated on $(date) with documented.sh version $VERSION
</body>
</html>
EOF
+
+# cleanup the files
+rm -rf UNDOCUMENTED_WITHOUT_OFFSET UNDOCUMENTED AVAILABLE DOCUMENTED
--
2.43.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2024-03-30 18:54 ` Girish Joshi
@ 2024-04-01 16:33 ` Joe Talbott
2024-04-02 4:01 ` Girish Joshi
2024-04-11 17:18 ` Adhemerval Zanella Netto
0 siblings, 2 replies; 14+ messages in thread
From: Joe Talbott @ 2024-04-01 16:33 UTC (permalink / raw)
To: Girish Joshi; +Cc: Florian Weimer, Girish Joshi via Libc-alpha
[-- Attachment #1: Type: text/plain, Size: 7517 bytes --]
On Sat, Mar 30, 2024 at 2:54 PM Girish Joshi <girish946@gmail.com> wrote:
>
> Thanks Joe, I've updated the script.
> It's just that the output now does not contain the addresses and the
> T/W info about the symbol is not present.
> Do we need that info about each symbol in the output?
I guess that information is useful. I'm attaching a patch that
reverts to 'cut -b 12' and does the grep and diff with a copy of
AVAILABLE that does not have the offsets and waits until it builds the
HTML table to get the matching line with the offset.
Thanks,
Joe
>
> Thanks!
> Girish Joshi
> girishjoshi.io
>
> On Sat, Mar 11, 2023 at 8:18 PM Joe Simmons-Talbott
> <joetalbott@gmail.com> wrote:
> >
> > On Sun, Mar 05, 2023 at 11:44:22AM +0530, Girish Joshi via Libc-alpha wrote:
> > > Hi Florian,
> > > Thanks for the review.
> > > Turns out `diff` was not working with the given input files, this
> > > patch fixes that.
> > > I'm not sure if there is a list of people who volunteered to document
> > > some specific functions.
> > > So that comment from the output html is removed.
> > >
> > > Thanks!
> > > Girish Joshi
> > >
> > > On Mon, Feb 27, 2023 at 11:26 PM Florian Weimer <fweimer@redhat.com> wrote:
> > > >
> > > > * Girish Joshi via Libc-alpha:
> > > >
> > > > > Hello,
> > > > > As per the Missing Functions section of master Todo list[1],
> > > > > scripts/documented.sh needs to be updated.
> > > > >
> > > > > Could someone please review this patch?
> > > > > It removes the reference to linuxthreads/*.taxi files from the script
> > > > > and removes the individual email address from the output.
> > > >
> > > > The script still doesn't seem to work, probably because the symbol names
> > > > are not extract properly:
> > > >
> > > > 43120 T _dl_mcount_wrapper 43140 T _dl_mcount_wrapper_c 43320 W clogf 43320 W clogf32
> > > > 435c0 T _dl_find_object 43740 T realpath 43770 T quick_exit 43790 T _IO_vfscanf
> > > > 437c0 T _pthread_cleanup_pus 437d0 T _pthread_cleanup_pop 437d0 W cprojf 437d0 W cprojf32
> > > >
> > > > _dl_find_object is documented.
> > > >
> > > > _IO_vfscanf should be recognized as an alias of vfscanf, but this is
> > > > more of an RFE than a bug fix.
> > > >
> > > > Thanks,
> > > > Florian
> > > >
> >
> > > From 5148c65ac07688dc5c3ee79a9b0f054232d64df3 Mon Sep 17 00:00:00 2001
> > > From: Girish Joshi <girish946@gmail.com>
> > > Date: Sun, 5 Mar 2023 11:15:00 +0530
> > > Subject: [PATCH] manual: scripts/documented.sh updated
> > >
> > > References for linuxthreads are removed from scripts/documented.sh.
> > > Also removed the individual email address from the html output.
> > >
> > > Fixed the steps to retrive undocumented functions
> > > ---
> > > scripts/documented.sh | 44 +++++++++++++++++++++++++++++++------------
> > > 1 file changed, 32 insertions(+), 12 deletions(-)
> > > mode change 100644 => 100755 scripts/documented.sh
> > >
> > > diff --git a/scripts/documented.sh b/scripts/documented.sh
> > > old mode 100644
> > > new mode 100755
> > > index 7d1ffd4a92..dda6a32283
> > > --- a/scripts/documented.sh
> > > +++ b/scripts/documented.sh
> > > @@ -1,9 +1,15 @@
> > > #!/bin/sh
> > > bindir=$1
> > >
> > > -VERSION=1.0
> > > +# usage: scripts/documented.sh <path to glibc build directory>
> > > +# for example:
> > > +# scripts/documented.sh $HOME/build/glibc
> > >
> > > -grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
> > > +VERSION=1.1
> > > +
> > > +# Collect the documented functions from manual/*.texi files.
> > > +
> > > +grep -E -h @deftypefu?nx? manual/*.texi |
> > > sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
> > > sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
> > > sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
> > > @@ -12,9 +18,12 @@ sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/^__fsetlocking$/d' |
> > > sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' |
> > > sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' |
> > > sed -e '/^alloca$/d' |
> > > +sed -r '/^\s*$/d' |
> > > sort -u > DOCUMENTED
> > >
> > > -nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
> > > +
> > > +# extract the exported symbols from the libraries.
> > > +nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/nptl/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
> > > grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
> > > sed 's/\(@.*\)//' |
> > > cut -b 12- |
> >
> > You can change this to 'cut -v 20-' and avoid the extra
> > AVAILABLE_WITHOUT_OFFSET part.
> >
> > Thanks,
> > Joe
> > > @@ -25,6 +34,9 @@ sed -e '/^_mcleanup$/d' -e '/^_rpc_dtablesize$/d' -e '/^_seterr_reply$/d' |
> > > sed -e '/^_nss/d' -e '/^_setjmp$/d' |
> > > sort -u > AVAILABLE
> > >
> > > +# remove offset details from nm output
> > > +cat AVAILABLE | cut -b 9- | sort -u > AVAILABLE_WITHOUT_OFFSET
> > > +
> > > cat <<EOF
> > > <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
> > > <html>
> > > @@ -39,9 +51,7 @@ cat <<EOF
> > > which are not yet documented in the manual. This list is
> > > automatically created and therefore might contain errors. Please
> > > check the latest manual (available from the CVS archive) before
> > > - starting to work. It might also be good to let me know in
> > > - advanace on which functions you intend to work to avoid
> > > - duplication.</p>
> > > + starting to work.</p>
> > >
> > > <p>A few comments:</p>
> > >
> > > @@ -52,15 +62,23 @@ cat <<EOF
> > > <li>Similarly for the LFS functions (those ending in 64).</li>
> > > </ul>
> > >
> > > - <p>The function sombody already volunteered to document are marked
> > > - with a reference to the person.</p>
> > >
> > > <center><table>
> > > EOF
> > >
> > > n=0
> > > -diff -y --width=60 --suppress-common-lines DOCUMENTED AVAILABLE |
> > > -expand | cut -b 33- | sed '/^[[:space:]]*$/d' |
> > > +
> > > +# get the list of undocumented functions
> > > +grep -Fvx -f DOCUMENTED AVAILABLE_WITHOUT_OFFSET > UNDOCUMENTED_WITHOUT_OFFSET
> > > +
> > > +# get undocumented functions with offset info
> > > +for func in `cat UNDOCUMENTED_WITHOUT_OFFSET`
> > > +do
> > > + grep " $func$" AVAILABLE >> UNDOCUMENTED
> > > +done
> > > +
> > > +diff -y --width=120 --suppress-common-lines DOCUMENTED UNDOCUMENTED |
> > > +expand | cut -b 61- | sed '/^[[:space:]]*$/d' |
> > > while read name; do
> > > line="$line
> > > <td><tt>$name</tt></td>"
> > > @@ -95,8 +113,10 @@ cat <<EOF
> > > </table></center>
> > >
> > > <hr>
> > > - <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address>
> > > -Generated on $(date) with documented.sh version $VERSION
> > > + Generated on $(date) with documented.sh version $VERSION
> > > </body>
> > > </html>
> > > EOF
> > > +
> > > +# cleanup the files
> > > +rm -rf UNDOCUMENTED_WITHOUT_OFFSET AVAILABLE_WITHOUT_OFFSET AVAILABLE
> > > --
> > > 2.39.2
> > >
> >
[-- Attachment #2: documented-jst.patch --]
[-- Type: text/x-patch, Size: 3759 bytes --]
diff --git a/scripts/documented.sh b/scripts/documented.sh
old mode 100644
new mode 100755
index 24bb7b3e54..94633a78ea
--- a/scripts/documented.sh
+++ b/scripts/documented.sh
@@ -1,9 +1,15 @@
#!/bin/sh
bindir=$1
-VERSION=1.0
+# usage: scripts/documented.sh <path to glibc build directory>
+# for example:
+# scripts/documented.sh $HOME/build/glibc
-grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
+VERSION=1.1
+
+# Collect the documented functions from manual/*.texi files.
+
+grep -E -h @deftypefu?nx? manual/*.texi |
sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
@@ -12,9 +18,11 @@ sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/^__fsetlocking$/d' |
sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' |
sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' |
sed -e '/^alloca$/d' |
+sed -r '/^\s*$/d' |
sort -u > DOCUMENTED
-nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/login/libutil.so |
+# extract the exported symbols from the libraries.
+nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/nptl/libpthread.so $bindir/dlfcn/libdl.so $bindir/login/libutil.so |
grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
sed 's/\(@.*\)//' |
cut -b 12- |
@@ -23,7 +31,10 @@ sed -e '/^_argp/d' -e '/^_authenticate$/d' -e '/^_environ$/d' |
sed -e '/^_errno$/d' -e '/^_h_errno$/d' -e '/^_longjmp$/d' |
sed -e '/^_mcleanup$/d' -e '/^_rpc_dtablesize$/d' -e '/^_seterr_reply$/d' |
sed -e '/^_nss/d' -e '/^_setjmp$/d' |
-sort -u > AVAILABLE
+sort -u > AVAILABLE_WITH_OFFSET
+
+# Build a list of available functions with out the offsets
+cat AVAILABLE_WITH_OFFSET | cut -d ' ' -f 3 >AVAILABLE
cat <<EOF
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
@@ -39,9 +50,7 @@ cat <<EOF
which are not yet documented in the manual. This list is
automatically created and therefore might contain errors. Please
check the latest manual (available from the CVS archive) before
- starting to work. It might also be good to let me know in
- advanace on which functions you intend to work to avoid
- duplication.</p>
+ starting to work.</p>
<p>A few comments:</p>
@@ -52,18 +61,20 @@ cat <<EOF
<li>Similarly for the LFS functions (those ending in 64).</li>
</ul>
- <p>The function sombody already volunteered to document are marked
- with a reference to the person.</p>
<center><table>
EOF
n=0
-diff -y --width=60 --suppress-common-lines DOCUMENTED AVAILABLE |
-expand | cut -b 33- | sed '/^[[:space:]]*$/d' |
+# get the list of undocumented functions
+grep -Fvx -f DOCUMENTED AVAILABLE> UNDOCUMENTED
+
+diff -y --width=120 --suppress-common-lines DOCUMENTED UNDOCUMENTED |
+expand | cut -b 61- | sed '/^[[:space:]]*$/d' |
while read name; do
+ with_offset=`grep -w $name AVAILABLE_WITH_OFFSET`;
line="$line
-<td><tt>$name</tt></td>"
+<td><tt>$with_offset</tt></td>"
n=$(expr $n + 1)
if [ $n -eq 4 ]; then
echo "<tr>
@@ -95,8 +106,10 @@ cat <<EOF
</table></center>
<hr>
- <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address>
-Generated on $(date) with documented.sh version $VERSION
+ Generated on $(date) with documented.sh version $VERSION
</body>
</html>
EOF
+
+# cleanup the files
+rm -rf UNDOCUMENTED_WITHOUT_OFFSET UNDOCUMENTED AVAILABLE AVAILABLE_WITH_OFFSET DOCUMENTED
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2024-04-01 16:33 ` Joe Talbott
@ 2024-04-02 4:01 ` Girish Joshi
2024-04-03 15:44 ` Girish Joshi
2024-04-11 17:18 ` Adhemerval Zanella Netto
1 sibling, 1 reply; 14+ messages in thread
From: Girish Joshi @ 2024-04-02 4:01 UTC (permalink / raw)
To: Joe Talbott; +Cc: Florian Weimer, Girish Joshi via Libc-alpha
On Mon, Apr 1, 2024 at 10:03 PM Joe Talbott <joetalbott@gmail.com> wrote:
>
> I guess that information is useful. I'm attaching a patch that
> reverts to 'cut -b 12' and does the grep and diff with a copy of
> AVAILABLE that does not have the offsets and waits until it builds the
> HTML table to get the matching line with the offset.
Thanks Joe,
I Just realized that this patch is archived on the patchwork. So the
latest changes are not reflected there.
Girish Joshi
girishjoshi.io
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2024-04-02 4:01 ` Girish Joshi
@ 2024-04-03 15:44 ` Girish Joshi
2024-04-03 17:10 ` Adhemerval Zanella Netto
0 siblings, 1 reply; 14+ messages in thread
From: Girish Joshi @ 2024-04-03 15:44 UTC (permalink / raw)
To: Joe Talbott; +Cc: Florian Weimer, Girish Joshi via Libc-alpha
Hello,
Could someone please review this patch?
Thanks!
Girish Joshi
girishjoshi.io
On Tue, Apr 2, 2024 at 9:31 AM Girish Joshi <girish946@gmail.com> wrote:
>
> On Mon, Apr 1, 2024 at 10:03 PM Joe Talbott <joetalbott@gmail.com> wrote:
> >
> > I guess that information is useful. I'm attaching a patch that
> > reverts to 'cut -b 12' and does the grep and diff with a copy of
> > AVAILABLE that does not have the offsets and waits until it builds the
> > HTML table to get the matching line with the offset.
>
> Thanks Joe,
> I Just realized that this patch is archived on the patchwork. So the
> latest changes are not reflected there.
>
> Girish Joshi
> girishjoshi.io
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2024-04-03 15:44 ` Girish Joshi
@ 2024-04-03 17:10 ` Adhemerval Zanella Netto
2024-04-04 13:58 ` Girish Joshi
2024-04-10 18:35 ` Girish Joshi
0 siblings, 2 replies; 14+ messages in thread
From: Adhemerval Zanella Netto @ 2024-04-03 17:10 UTC (permalink / raw)
To: libc-alpha
On 03/04/24 12:44, Girish Joshi wrote:
> Hello,
> Could someone please review this patch?
>
> Thanks!
> Girish Joshi
> girishjoshi.io
>
> On Tue, Apr 2, 2024 at 9:31 AM Girish Joshi <girish946@gmail.com> wrote:
>>
>> On Mon, Apr 1, 2024 at 10:03 PM Joe Talbott <joetalbott@gmail.com> wrote:
>>>
>>> I guess that information is useful. I'm attaching a patch that
>>> reverts to 'cut -b 12' and does the grep and diff with a copy of
>>> AVAILABLE that does not have the offsets and waits until it builds the
>>> HTML table to get the matching line with the offset.
>>
>> Thanks Joe,
>> I Just realized that this patch is archived on the patchwork. So the
>> latest changes are not reflected there.
>>
>> Girish Joshi
>> girishjoshi.io
I will take a look.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2024-04-03 17:10 ` Adhemerval Zanella Netto
@ 2024-04-04 13:58 ` Girish Joshi
2024-04-07 8:13 ` Girish Joshi
2024-04-10 18:35 ` Girish Joshi
1 sibling, 1 reply; 14+ messages in thread
From: Girish Joshi @ 2024-04-04 13:58 UTC (permalink / raw)
To: Adhemerval Zanella Netto; +Cc: libc-alpha
On Wed, Apr 3, 2024 at 10:41 PM Adhemerval Zanella Netto
<adhemerval.zanella@linaro.org> wrote:
>
> I will take a look.
Thanks Adhemerval.
Girish Joshi
girishjoshi.io
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2024-04-04 13:58 ` Girish Joshi
@ 2024-04-07 8:13 ` Girish Joshi
0 siblings, 0 replies; 14+ messages in thread
From: Girish Joshi @ 2024-04-07 8:13 UTC (permalink / raw)
To: Adhemerval Zanella Netto; +Cc: libc-alpha
[-- Attachment #1: Type: text/plain, Size: 792 bytes --]
Hello Florian,
On Mon, Feb 27, 2023 at 11:26 PM Florian Weimer <fweimer@redhat.com> wrote:
> _IO_vfscanf should be recognized as an alias of vfscanf, but this is
> more of an RFE than a bug fix.
I was able to write a small python script that gets the list of
aliases in the given binaries and the html.
Not sure if this can be a separate script or should it be a part of
the same thing?
Please let me know if it can be a separate script, I'll post a patch for it.
Thanks!
Girish Joshi
girishjoshi.io
On Thu, Apr 4, 2024 at 7:28 PM Girish Joshi <girish946@gmail.com> wrote:
>
> On Wed, Apr 3, 2024 at 10:41 PM Adhemerval Zanella Netto
> <adhemerval.zanella@linaro.org> wrote:
> >
> > I will take a look.
> Thanks Adhemerval.
>
> Girish Joshi
> girishjoshi.io
[-- Attachment #2: aliases.py --]
[-- Type: text/x-python, Size: 3095 bytes --]
#!/bin/env python
import sys
import subprocess
# list of binaries to check for aliases
input_bins = [
"libc.so",
"math/libm.so",
"rt/librt.so",
"nptl/libpthread.so",
"dlfcn/libdl.so",
"login/libutil.so",
]
base_cmd = "readelf -Ws "
function_identifier = "FUNC"
base_html_body = """
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>glibc functions aliases</title>
</head>
<body>
<center><h1>aliases <tt>glibc</tt> functions</h1></center>
<center><p>The following table includes names of the function in glibc
which are aliases of each other. This list is
automatically created and therefore might contain errors.</center>
"""
def get_aliases(bin, glibc_build_dir):
"""
Get aliases of functions in the given binary.
Aliases are functions that are mapped to the same address.
Parameters:
bin (str): binary to check for aliases
glibc_build_dir (str): path to glibc build directory
Returns:
dict: dictionary of aliases.
"""
# prepare the command string
cmd = f"{base_cmd} {glibc_build_dir}/{bin}"
# get the output of readelf
output = subprocess.check_output(cmd, shell=True)
lines = output.decode().split("\n")
aliases = {}
# parse the output to get the aliases
for i in lines:
details = [j for j in i.split(" ") if j]
if len(details) > 7 and function_identifier in details[3]:
if details[1] in aliases:
aliases[details[1]].append(details[7])
else:
aliases[details[1]] = [details[7]]
aliases = {i: aliases[i] for i in aliases if len(aliases[i]) > 1}
return aliases
def generate_html(aliases, binary, html_body):
"""
Generate html for the given aliases.
Parameters:
aliases (dict): dictionary of aliases
binary (str): binary name
html_body (str): html body
Returns:
str: html body
"""
row = (
"""
<br>
<center><h1><b>Binary:</b> <tt>
"""
+ binary
+ """</tt><br></h1></center>
<center><table border="1 | 0" >
<td><tt>location</tt></td>
<td><tt>funtions</tt></td>
"""
)
for i in aliases:
row += f" <tr><td>0x{i}</td>\n"
row += " <td>\n"
for j in aliases[i]:
row += f" {j}<br>\n"
row += " </td>\n"
row += " </tr>\n </table></center>\n"
html_body = row
return html_body
if __name__ == "__main__":
if len(sys.argv) == 1:
print("Usage: aliases.py <glibc-build-dir>")
sys.exit(1)
# remove trailing slash if present
glib_build_dir = sys.argv[1].strip("/")
try:
html_body = base_html_body
for bin in input_bins:
aliases = get_aliases(bin, glib_build_dir)
html_body += generate_html(aliases, bin, html_body)
html_body += " </body>\n</html>"
print(html_body)
except subprocess.CalledProcessError as ex:
print(f"error: {ex}")
sys.exit(1)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2024-04-03 17:10 ` Adhemerval Zanella Netto
2024-04-04 13:58 ` Girish Joshi
@ 2024-04-10 18:35 ` Girish Joshi
1 sibling, 0 replies; 14+ messages in thread
From: Girish Joshi @ 2024-04-10 18:35 UTC (permalink / raw)
To: Adhemerval Zanella Netto; +Cc: libc-alpha
ping.
Girish Joshi
girishjoshi.io
On Wed, Apr 3, 2024 at 10:41 PM Adhemerval Zanella Netto
<adhemerval.zanella@linaro.org> wrote:
>
>
>
> On 03/04/24 12:44, Girish Joshi wrote:
> > Hello,
> > Could someone please review this patch?
> >
> > Thanks!
> > Girish Joshi
> > girishjoshi.io
> >
> > On Tue, Apr 2, 2024 at 9:31 AM Girish Joshi <girish946@gmail.com> wrote:
> >>
> >> On Mon, Apr 1, 2024 at 10:03 PM Joe Talbott <joetalbott@gmail.com> wrote:
> >>>
> >>> I guess that information is useful. I'm attaching a patch that
> >>> reverts to 'cut -b 12' and does the grep and diff with a copy of
> >>> AVAILABLE that does not have the offsets and waits until it builds the
> >>> HTML table to get the matching line with the offset.
> >>
> >> Thanks Joe,
> >> I Just realized that this patch is archived on the patchwork. So the
> >> latest changes are not reflected there.
> >>
> >> Girish Joshi
> >> girishjoshi.io
>
> I will take a look.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] manual: scripts/documented.sh updated
2024-04-01 16:33 ` Joe Talbott
2024-04-02 4:01 ` Girish Joshi
@ 2024-04-11 17:18 ` Adhemerval Zanella Netto
1 sibling, 0 replies; 14+ messages in thread
From: Adhemerval Zanella Netto @ 2024-04-11 17:18 UTC (permalink / raw)
To: Joe Talbott, Girish Joshi; +Cc: Florian Weimer, Girish Joshi via Libc-alpha
On 01/04/24 13:33, Joe Talbott wrote:
> On Sat, Mar 30, 2024 at 2:54 PM Girish Joshi <girish946@gmail.com> wrote:
>>
>> Thanks Joe, I've updated the script.
>> It's just that the output now does not contain the addresses and the
>> T/W info about the symbol is not present.
>> Do we need that info about each symbol in the output?
>
> I guess that information is useful. I'm attaching a patch that
> reverts to 'cut -b 12' and does the grep and diff with a copy of
> AVAILABLE that does not have the offsets and waits until it builds the
> HTML table to get the matching line with the offset.
>
> Thanks,
> Joe
>>
>> Thanks!
>> Girish Joshi
>> girishjoshi.io
>>
>> On Sat, Mar 11, 2023 at 8:18 PM Joe Simmons-Talbott
>> <joetalbott@gmail.com> wrote:
>>>
>>> On Sun, Mar 05, 2023 at 11:44:22AM +0530, Girish Joshi via Libc-alpha wrote:
>>>> Hi Florian,
>>>> Thanks for the review.
>>>> Turns out `diff` was not working with the given input files, this
>>>> patch fixes that.
>>>> I'm not sure if there is a list of people who volunteered to document
>>>> some specific functions.
>>>> So that comment from the output html is removed.
>>>>
>>>> Thanks!
>>>> Girish Joshi
>>>>
>>>> On Mon, Feb 27, 2023 at 11:26 PM Florian Weimer <fweimer@redhat.com> wrote:
>>>>>
>>>>> * Girish Joshi via Libc-alpha:
>>>>>
>>>>>> Hello,
>>>>>> As per the Missing Functions section of master Todo list[1],
>>>>>> scripts/documented.sh needs to be updated.
>>>>>>
>>>>>> Could someone please review this patch?
>>>>>> It removes the reference to linuxthreads/*.taxi files from the script
>>>>>> and removes the individual email address from the output.
>>>>>
>>>>> The script still doesn't seem to work, probably because the symbol names
>>>>> are not extract properly:
>>>>>
>>>>> 43120 T _dl_mcount_wrapper 43140 T _dl_mcount_wrapper_c 43320 W clogf 43320 W clogf32
>>>>> 435c0 T _dl_find_object 43740 T realpath 43770 T quick_exit 43790 T _IO_vfscanf
>>>>> 437c0 T _pthread_cleanup_pus 437d0 T _pthread_cleanup_pop 437d0 W cprojf 437d0 W cprojf32
>>>>>
>>>>> _dl_find_object is documented.
>>>>>
>>>>> _IO_vfscanf should be recognized as an alias of vfscanf, but this is
>>>>> more of an RFE than a bug fix.
>>>>>
>>>>> Thanks,
>>>>> Florian
>>>>>
>>>
>>>> From 5148c65ac07688dc5c3ee79a9b0f054232d64df3 Mon Sep 17 00:00:00 2001
>>>> From: Girish Joshi <girish946@gmail.com>
>>>> Date: Sun, 5 Mar 2023 11:15:00 +0530
>>>> Subject: [PATCH] manual: scripts/documented.sh updated
>>>>
>>>> References for linuxthreads are removed from scripts/documented.sh.
>>>> Also removed the individual email address from the html output.
>>>>
>>>> Fixed the steps to retrive undocumented functions
>>>> ---
>>>> scripts/documented.sh | 44 +++++++++++++++++++++++++++++++------------
>>>> 1 file changed, 32 insertions(+), 12 deletions(-)
>>>> mode change 100644 => 100755 scripts/documented.sh
>>>>
>>>> diff --git a/scripts/documented.sh b/scripts/documented.sh
>>>> old mode 100644
>>>> new mode 100755
>>>> index 7d1ffd4a92..dda6a32283
>>>> --- a/scripts/documented.sh
>>>> +++ b/scripts/documented.sh
>>>> @@ -1,9 +1,15 @@
>>>> #!/bin/sh
>>>> bindir=$1
>>>>
>>>> -VERSION=1.0
>>>> +# usage: scripts/documented.sh <path to glibc build directory>
>>>> +# for example:
>>>> +# scripts/documented.sh $HOME/build/glibc
>>>>
>>>> -grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
>>>> +VERSION=1.1
>>>> +
>>>> +# Collect the documented functions from manual/*.texi files.
>>>> +
>>>> +grep -E -h @deftypefu?nx? manual/*.texi |
>>>> sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
>>>> sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
>>>> sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
>>>> @@ -12,9 +18,12 @@ sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/^__fsetlocking$/d' |
>>>> sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' |
>>>> sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' |
>>>> sed -e '/^alloca$/d' |
>>>> +sed -r '/^\s*$/d' |
>>>> sort -u > DOCUMENTED
>>>>
>>>> -nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
>>>> +
>>>> +# extract the exported symbols from the libraries.
>>>> +nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/nptl/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
>>>> grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
>>>> sed 's/\(@.*\)//' |
>>>> cut -b 12- |
>>>
>>> You can change this to 'cut -v 20-' and avoid the extra
>>> AVAILABLE_WITHOUT_OFFSET part.
>>>
>>> Thanks,
>>> Joe
>>>> @@ -25,6 +34,9 @@ sed -e '/^_mcleanup$/d' -e '/^_rpc_dtablesize$/d' -e '/^_seterr_reply$/d' |
>>>> sed -e '/^_nss/d' -e '/^_setjmp$/d' |
>>>> sort -u > AVAILABLE
>>>>
>>>> +# remove offset details from nm output
>>>> +cat AVAILABLE | cut -b 9- | sort -u > AVAILABLE_WITHOUT_OFFSET
>>>> +
>>>> cat <<EOF
>>>> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
>>>> <html>
>>>> @@ -39,9 +51,7 @@ cat <<EOF
>>>> which are not yet documented in the manual. This list is
>>>> automatically created and therefore might contain errors. Please
>>>> check the latest manual (available from the CVS archive) before
>>>> - starting to work. It might also be good to let me know in
>>>> - advanace on which functions you intend to work to avoid
>>>> - duplication.</p>
>>>> + starting to work.</p>
>>>>
>>>> <p>A few comments:</p>
>>>>
>>>> @@ -52,15 +62,23 @@ cat <<EOF
>>>> <li>Similarly for the LFS functions (those ending in 64).</li>
>>>> </ul>
>>>>
>>>> - <p>The function sombody already volunteered to document are marked
>>>> - with a reference to the person.</p>
>>>>
>>>> <center><table>
>>>> EOF
>>>>
>>>> n=0
>>>> -diff -y --width=60 --suppress-common-lines DOCUMENTED AVAILABLE |
>>>> -expand | cut -b 33- | sed '/^[[:space:]]*$/d' |
>>>> +
>>>> +# get the list of undocumented functions
>>>> +grep -Fvx -f DOCUMENTED AVAILABLE_WITHOUT_OFFSET > UNDOCUMENTED_WITHOUT_OFFSET
>>>> +
>>>> +# get undocumented functions with offset info
>>>> +for func in `cat UNDOCUMENTED_WITHOUT_OFFSET`
>>>> +do
>>>> + grep " $func$" AVAILABLE >> UNDOCUMENTED
>>>> +done
>>>> +
>>>> +diff -y --width=120 --suppress-common-lines DOCUMENTED UNDOCUMENTED |
>>>> +expand | cut -b 61- | sed '/^[[:space:]]*$/d' |
>>>> while read name; do
>>>> line="$line
>>>> <td><tt>$name</tt></td>"
>>>> @@ -95,8 +113,10 @@ cat <<EOF
>>>> </table></center>
>>>>
>>>> <hr>
>>>> - <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address>
>>>> -Generated on $(date) with documented.sh version $VERSION
>>>> + Generated on $(date) with documented.sh version $VERSION
>>>> </body>
>>>> </html>
>>>> EOF
>>>> +
>>>> +# cleanup the files
>>>> +rm -rf UNDOCUMENTED_WITHOUT_OFFSET AVAILABLE_WITHOUT_OFFSET AVAILABLE
>>>> --
>>>> 2.39.2
>>>>
>>>
The issues from previous reviews seems not to be present and the output is
an improvement over the current status. LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
PS: next time please send the patch as inline as well (it is easier to
comment). Also for newer version send a new message with a vX.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2024-04-11 17:18 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-24 14:34 [PATCH] manual: scripts/documented.sh updated Girish Joshi
2023-02-27 17:56 ` Florian Weimer
2023-03-05 6:14 ` Girish Joshi
2023-03-05 6:55 ` Girish Joshi
2023-03-11 14:48 ` Joe Simmons-Talbott
2024-03-30 18:54 ` Girish Joshi
2024-04-01 16:33 ` Joe Talbott
2024-04-02 4:01 ` Girish Joshi
2024-04-03 15:44 ` Girish Joshi
2024-04-03 17:10 ` Adhemerval Zanella Netto
2024-04-04 13:58 ` Girish Joshi
2024-04-07 8:13 ` Girish Joshi
2024-04-10 18:35 ` Girish Joshi
2024-04-11 17:18 ` Adhemerval Zanella Netto
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).