Provide strnlen on platforms where it's missing. --- cctools-855/otool/ofile_print.c.orig 2015-01-14 18:33:14.000000000 +0100 +++ cctools-855/otool/ofile_print.c 2015-01-14 18:34:03.000000000 +0100 @@ -3647,6 +3647,40 @@ printf(" pad %u\n", ec->pad); } +/* borrowed from gnulib */ +#include + +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 +/* Find the length of STRING, but scan at most MAXLEN characters. + * Copyright (C) 2005-2007, 2009-2015 Free Software Foundation, Inc. + * Written by Simon Josefsson. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . */ + +#include + +/* Find the length of STRING, but scan at most MAXLEN characters. + * If no '\0' terminator is found in that many characters, return MAXLEN. */ + +size_t +strnlen (const char *string, size_t maxlen) +{ + const char *end = memchr (string, '\0', maxlen); + return end ? (size_t) (end - string) : maxlen; +} +#endif + /* * print an LC_LINKER_OPTION command. The linker_option_command structure * specified must be aligned correctly and in the host byte sex. The lc is