diff options
author | Helmut Grohne <helmut@subdivi.de> | 2016-08-09 18:11:49 +0200 |
---|---|---|
committer | Didier Raboud <odyx@debian.org> | 2018-12-10 09:53:21 +0100 |
commit | 7477e87c930e61476098303bd3f43ff89136a938 (patch) | |
tree | 51095de7e66697036902541193c5e49ef6847d22 | |
parent | 8ebedeeae3a5a4eade860a7918e2dfbbb8aa6f02 (diff) |
Build mantohtml with the build architecture compiler
mantohtml is run during build. Thus it needs to be built with the build
architecture compiler (or execution fails). The obvious part is switching to
CC_FOR_BUILD. That also depends on it not requiring any other cups components.
In particular, removing uses of strlcpy and replacing host architecture-
specific includes is thus needed.
Bug-Debian: https://bugs.debian.org/837936
-rw-r--r-- | Makedefs.in | 1 | ||||
-rw-r--r-- | configure.ac | 9 | ||||
-rw-r--r-- | man/Makefile | 7 | ||||
-rw-r--r-- | man/mantohtml.c | 15 |
4 files changed, 22 insertions, 10 deletions
diff --git a/Makedefs.in b/Makedefs.in index e4d828b50..85390d67a 100644 --- a/Makedefs.in +++ b/Makedefs.in @@ -22,6 +22,7 @@ CUPS_VERSION = @CUPS_VERSION@ AR = @AR@ AWK = @AWK@ CC = @LIBTOOL_CC@ @CC@ +CC_FOR_BUILD = @CC_FOR_BUILD@ CHMOD = @CHMOD@ CXX = @LIBTOOL_CXX@ @CXX@ DSO = @DSO@ diff --git a/configure.ac b/configure.ac index b79bc3c5d..b7c2f985e 100644 --- a/configure.ac +++ b/configure.ac @@ -19,6 +19,15 @@ sinclude(config-scripts/cups-common.m4) sinclude(config-scripts/cups-directories.m4) sinclude(config-scripts/cups-manpages.m4) +AC_MSG_CHECKING([for build system compiler]) +if test "$cross_compiling" = yes; then + CC_FOR_BUILD=${CC_FOR_BUILD-cc} +else + CC_FOR_BUILD=${CC} +fi +AC_MSG_RESULT(${CC_FOR_BUILD}) +AC_SUBST(CC_FOR_BUILD) + sinclude(config-scripts/cups-sharedlibs.m4) sinclude(config-scripts/cups-libtool.m4) sinclude(config-scripts/cups-compiler.m4) diff --git a/man/Makefile b/man/Makefile index 1335d7d2b..5d5d0ee4f 100644 --- a/man/Makefile +++ b/man/Makefile @@ -220,8 +220,5 @@ html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) mantohtml ./mantohtml `basename $$file .$(MAN8EXT)`.man >../doc/help/man-`basename $$file .$(MAN8EXT)`.html; \ done -mantohtml: mantohtml.o ../cups/$(LIBCUPSSTATIC) - $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ mantohtml.o \ - ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) \ - $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) - $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ +mantohtml: mantohtml.c + $(CC_FOR_BUILD) -o $@ $< diff --git a/man/mantohtml.c b/man/mantohtml.c index 2a9353a9f..6223f17d2 100644 --- a/man/mantohtml.c +++ b/man/mantohtml.c @@ -11,8 +11,10 @@ * Include necessary headers. */ -#include <cups/string-private.h> -#include <cups/array-private.h> +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> #include <unistd.h> @@ -811,7 +813,8 @@ main(int argc, /* I - Number of command-line args */ * Anchor for HTML output... */ - strlcpy(anchor, line + 4, sizeof(anchor)); + strncpy(anchor, line + 4, sizeof(anchor) - 1); + anchor[sizeof(anchor) - 1] = '\0'; } else if (strncmp(line, ".\\\"", 3)) { @@ -940,7 +943,8 @@ html_alternate(const char *s, /* I - String */ manfile[1024], /* Man page filename */ manurl[1024]; /* Man page URL */ - strlcpy(name, s, sizeof(name)); + strncpy(name, s, sizeof(name) - 1); + name[sizeof(name) - 1] = '\0'; if ((size_t)(end - s) < sizeof(name)) name[end - s] = '\0'; @@ -1173,7 +1177,8 @@ html_fputs(const char *s, /* I - String */ if (end[-1] == ',' || end[-1] == '.' || end[-1] == ')') end --; - strlcpy(temp, s, sizeof(temp)); + strncpy(temp, s, sizeof(temp) - 1); + temp[sizeof(temp) - 1] = '\0'; if ((size_t)(end -s) < sizeof(temp)) temp[end - s] = '\0'; |