DocBook: Use a fixed encoding for output
Currently the encoding of documents generated by DocBook depends on the current locale. Make the output reproducible independently of the locale, by setting the encoding to UTF-8 (LC_CTYPE=C.UTF-8) by preference, or ASCII (LC_CTYPE=C) as a fallback. LC_CTYPE can normally be overridden by LC_ALL, but the top-level Makefile unsets that. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> [jc: added check-lc_ctype to .gitignore] Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
c51edfb10e
commit
b479bfd00e
|
@ -69,6 +69,12 @@ installmandocs: mandocs
|
|||
KERNELDOCXMLREF = $(srctree)/scripts/kernel-doc-xml-ref
|
||||
KERNELDOC = $(srctree)/scripts/kernel-doc
|
||||
DOCPROC = $(objtree)/scripts/docproc
|
||||
CHECK_LC_CTYPE = $(objtree)/scripts/check-lc_ctype
|
||||
|
||||
# Use a fixed encoding - UTF-8 if the C library has support built-in
|
||||
# or ASCII if not
|
||||
LC_CTYPE := $(call try-run, LC_CTYPE=C.UTF-8 $(CHECK_LC_CTYPE),C.UTF-8,C)
|
||||
export LC_CTYPE
|
||||
|
||||
XMLTOFLAGS = -m $(srctree)/$(src)/stylesheet.xsl
|
||||
XMLTOFLAGS += --skip-validation
|
||||
|
|
2
Makefile
2
Makefile
|
@ -1336,7 +1336,7 @@ $(help-board-dirs): help-%:
|
|||
# Documentation targets
|
||||
# ---------------------------------------------------------------------------
|
||||
%docs: scripts_basic FORCE
|
||||
$(Q)$(MAKE) $(build)=scripts build_docproc
|
||||
$(Q)$(MAKE) $(build)=scripts build_docproc build_check-lc_ctype
|
||||
$(Q)$(MAKE) $(build)=Documentation/DocBook $@
|
||||
|
||||
else # KBUILD_EXTMOD
|
||||
|
|
|
@ -8,6 +8,7 @@ unifdef
|
|||
ihex2fw
|
||||
recordmcount
|
||||
docproc
|
||||
check-lc_ctype
|
||||
sortextable
|
||||
asn1_compiler
|
||||
extract-cert
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
# conmakehash: Create chartable
|
||||
# conmakehash: Create arrays for initializing the kernel console tables
|
||||
# docproc: Used in Documentation/DocBook
|
||||
# check-lc_ctype: Used in Documentation/DocBook
|
||||
|
||||
HOST_EXTRACFLAGS += -I$(srctree)/tools/include
|
||||
|
||||
|
@ -27,14 +28,16 @@ HOSTLOADLIBES_extract-cert = -lcrypto
|
|||
always := $(hostprogs-y) $(hostprogs-m)
|
||||
|
||||
# The following hostprogs-y programs are only build on demand
|
||||
hostprogs-y += unifdef docproc
|
||||
hostprogs-y += unifdef docproc check-lc_ctype
|
||||
|
||||
# These targets are used internally to avoid "is up to date" messages
|
||||
PHONY += build_unifdef build_docproc
|
||||
PHONY += build_unifdef build_docproc build_check-lc_ctype
|
||||
build_unifdef: $(obj)/unifdef
|
||||
@:
|
||||
build_docproc: $(obj)/docproc
|
||||
@:
|
||||
build_check-lc_ctype: $(obj)/check-lc_ctype
|
||||
@:
|
||||
|
||||
subdir-$(CONFIG_MODVERSIONS) += genksyms
|
||||
subdir-y += mod
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* Check that a specified locale works as LC_CTYPE. Used by the
|
||||
* DocBook build system to probe for C.UTF-8 support.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
return !setlocale(LC_CTYPE, "");
|
||||
}
|
Loading…
Reference in New Issue