[v3,0/7] Fix some libm static issues
[platform/upstream/glibc.git] / scripts / documented.sh
1 #!/bin/sh
2 bindir=$1
3
4 VERSION=1.0
5
6 grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
7 sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
8 sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
9 sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
10 sed -e '/^pthread_cleanup/d' -e '/^IFTODT$/d' -e '/^DTTOIF$/d' |
11 sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/^__fsetlocking$/d' |
12 sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' |
13 sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' |
14 sed -e '/^alloca$/d' |
15 sort -u > DOCUMENTED
16
17 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 |
18 grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
19 sed 's/\(@.*\)//' |
20 cut -b 12- |
21 sed -e '/^_IO/d' -e '/^_dl/d' -e '/^_pthread/d' -e '/^_obstack/d' |
22 sed -e '/^_argp/d' -e '/^_authenticate$/d' -e '/^_environ$/d' |
23 sed -e '/^_errno$/d' -e '/^_h_errno$/d' -e '/^_longjmp$/d' |
24 sed -e '/^_mcleanup$/d' -e '/^_rpc_dtablesize$/d' -e '/^_seterr_reply$/d' |
25 sed -e '/^_nss/d' -e '/^_setjmp$/d' |
26 sort -u > AVAILABLE
27
28 cat <<EOF
29 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
30 <html>
31   <head>
32     <title>Undocumented glibc functions</title>
33   </head>
34
35   <body>
36     <center><h1>Undocumented <tt>glibc</tt> functions</h1></center>
37
38     <p>The following table includes names of the function in glibc
39     which are not yet documented in the manual.  This list is
40     automatically created and therefore might contain errors.  Please
41     check the latest manual (available from the CVS archive) before
42     starting to work.  It might also be good to let me know in
43     advanace on which functions you intend to work to avoid
44     duplication.</p>
45
46     <p>A few comments:</p>
47
48     <ul>
49       <li>Some functions in the list are much less important than
50       others.  Please prioritize.</li>
51
52       <li>Similarly for the LFS functions (those ending in 64).</li>
53     </ul>
54
55     <p>The function sombody already volunteered to document are marked
56     with a reference to the person.</p>
57
58     <center><table>
59 EOF
60
61 n=0
62 diff -y --width=60 --suppress-common-lines DOCUMENTED AVAILABLE |
63 expand | cut -b 33- | sed '/^[[:space:]]*$/d' |
64 while read name; do
65   line="$line
66 <td><tt>$name</tt></td>"
67   n=$(expr $n + 1)
68   if [ $n -eq 4 ]; then
69     echo "<tr>
70 $line
71 </tr>"
72     line=""
73     n=0
74   fi
75 done
76 if [ $n -gt 0 ]; then
77   if [ $n -eq 1 ]; then
78     line="$line
79 <td></td>"
80   fi
81   if [ $n -eq 2 ]; then
82     line="$line
83 <td></td>"
84   fi
85   if [ $n -eq 3 ]; then
86     line="$line
87 <td></td>"
88   fi
89   echo "<tr>
90 $line
91 </tr>"
92 fi
93
94 cat <<EOF
95     </table></center>
96
97     <hr>
98     <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address>
99 Generated on $(date) with documented.sh version $VERSION
100   </body>
101 </html>
102 EOF