Re: Warnings for documentation of private elements of a structure.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 01.01.2017 um 15:05 schrieb Jonathan Cameron <jic23@xxxxxxxxxx>:

> Hi All,
> 
> I have very little idea how the internals of the kernel-doc processing
> code work, but was wondering if it would be possible to suppress warnings
> of the type:
> 
> ./include/linux/iio/buffer.h:142: warning: Excess struct/union/enum/typedef member 'ref' description in 'iio_buffer'
> 
> when the member is there but has been marked private.

It seems we have different ./include/linux/iio/buffer.h, I can't
reproduce this or similar message. So I guess what you mean ...

In scripts/kernel_doc there is some handling of privates in
function 'dump_struct' ...

	# ignore members marked private:
	$members =~ s/\/\*\s*private:.*?\/\*\s*public:.*?\*\///gosi;
	$members =~ s/\/\*\s*private:.*//gosi;

Can you give a detailed example, to see what goes wrong?

> I don't really want to end up deliberately having different formatting
> for documentation of internal structure elements and public API ones.
> 
> Obviously I can just ignore the warnings, but they do swamp any real issues
> once you start dealing with large structures.
> 
> Any thoughts?

Yes, even if they are OT ...

IMO we should no longer investigate in the kernel_doc perl script, which
is at it ends. Instead we should merge the python version from my linuxdoc
project (BTW: with, we get man-pages from and lint of kernel-doc comments).

To see how this python version works, run:

 pip install [--user] git+http://github.com/return42/linuxdoc.git

And apply the patch attached below. For a detailed description
of this patch read:

 https://return42.github.io/linuxdoc/linux.html

-- Markus --


----

diff --git a/Documentation/Makefile.sphinx b/Documentation/Makefile.sphinx
index 707c653..b9eea4c 100644
--- a/Documentation/Makefile.sphinx
+++ b/Documentation/Makefile.sphinx
@@ -37,8 +37,7 @@ HAVE_PDFLATEX := $(shell if which $(PDFLATEX) >/dev/null 2>&1; then echo 1; else
PAPEROPT_a4     = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
KERNELDOC       = $(srctree)/scripts/kernel-doc
-KERNELDOC_CONF  = -D kerneldoc_srctree=$(srctree) -D kerneldoc_bin=$(KERNELDOC)
-ALLSPHINXOPTS   =  $(KERNELDOC_CONF) $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)
+ALLSPHINXOPTS   =  $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .

@@ -93,9 +92,12 @@ xmldocs:
# no-ops for the Sphinx toolchain
sgmldocs:
psdocs:
-mandocs:
installmandocs:

+mandocs:
+	@$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,kernel-doc-man,$(var),man,$(var)))
+
+
cleandocs:
	$(Q)rm -rf $(BUILDDIR)
	$(Q)$(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) -C Documentation/media clean
diff --git a/Documentation/conf.py b/Documentation/conf.py
index 1ac958c..b5903c6 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -34,7 +34,13 @@ from load_config import loadConfig
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
-extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include', 'cdomain']
+extensions = [
+    'linuxdoc.rstKernelDoc',
+    'linuxdoc.rstFlatTable',
+    'linuxdoc.kernel_include',
+    'linuxdoc.manKernelDoc',
+    'linuxdoc.cdomain',
+    'sphinx.ext.todo', ]

# The name of the math extension changed on Sphinx 1.4
if major == 1 and minor > 3:
@@ -133,7 +139,7 @@ pygments_style = 'sphinx'
#keep_warnings = False

# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
+todo_include_todos = True

primary_domain = 'C'
highlight_language = 'none'
@@ -385,10 +391,7 @@ latex_documents = [

# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
-man_pages = [
-    (master_doc, 'thelinuxkernel', 'The Linux Kernel Documentation',
-     [author], 1)
-]
+man_pages = []

# If true, show URL addresses after external links.
#man_show_urls = False
@@ -505,8 +508,9 @@ pdf_documents = [
# kernel-doc extension configuration for running Sphinx directly (e.g. by Read
# the Docs). In a normal build, these are supplied from the Makefile via command
# line arguments.
-kerneldoc_bin = '../scripts/kernel-doc'
-kerneldoc_srctree = '..'
+kernel_doc_verbose_warn = False
+kernel_doc_raise_error = False
+kernel_doc_mode = "reST"

# ------------------------------------------------------------------------------
# Since loadConfig overwrites settings from the global namespace, it has to be
diff --git a/Documentation/index.rst b/Documentation/index.rst
index cb5d776..066104e 100644
--- a/Documentation/index.rst
+++ b/Documentation/index.rst
@@ -72,3 +72,5 @@ Indices and tables
==================

* :ref:`genindex`
+
+.. todolist::



--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux