On Thu, Sep 5, 2013 at 10:45 AM, Ian Romanick <[email protected]> wrote: > From: Ian Romanick <[email protected]> > > Commit 4c617fa7 added a use of strndup, and that broke this bulid with > various Windows compilers that don't support strndup. > > Signed-off-by: Ian Romanick <[email protected]> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68780 > Cc: Vinson Lee <[email protected]> > --- > CMakeLists.txt | 1 + > tests/util/piglit-util.c | 17 +++++++++++++++++ > tests/util/piglit-util.h | 4 ++++ > 3 files changed, 22 insertions(+) > > diff --git a/CMakeLists.txt b/CMakeLists.txt > index 13a984c..1ea2c80 100644 > --- a/CMakeLists.txt > +++ b/CMakeLists.txt > @@ -255,6 +255,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL > ${piglit_BINARY_DIR}/bin) > set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${piglit_BINARY_DIR}/bin) > > check_function_exists(strchrnul HAVE_STRCHRNUL) > +check_function_exists(strndup HAVE_STRNDUP) > check_function_exists(fopen_s HAVE_FOPEN_S) > check_function_exists(setrlimit HAVE_SETRLIMIT) > > diff --git a/tests/util/piglit-util.c b/tests/util/piglit-util.c > index 98fffa2..71d55a7 100644 > --- a/tests/util/piglit-util.c > +++ b/tests/util/piglit-util.c > @@ -216,6 +216,23 @@ char *strchrnul(const char *s, int c) > #endif > > > +#ifndef HAVE_STRNDUP > +char *strndup(const char *s, size_t n) > +{ > + const size_t len = strlen(s); > + const size_t size_to_copy = MIN2(n, len); > + > + char *const copy = malloc(size_to_copy + 1); > + if (copy != NULL) { > + memcpy(copy, s, size_to_copy); > + copy[size_to_copy] = '\0'; > + } > + > + return copy; > +} > +#endif > + > + > void > piglit_set_rlimit(unsigned long lim) > { > diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h > index f89eb6e..52f053e 100644 > --- a/tests/util/piglit-util.h > +++ b/tests/util/piglit-util.h > @@ -144,6 +144,10 @@ void piglit_report_subtest_result(enum piglit_result > result, > char *strchrnul(const char *s, int c); > #endif > > +#ifndef HAVE_STRNDUP > +char *strndup(const char *s, size_t n); > +#endif > + > extern void piglit_set_rlimit(unsigned long lim); > > char *piglit_load_text_file(const char *file_name, unsigned *size); > -- > 1.8.1.4 >
This patch fixes the MinGW build for me. Tested-by: Vinson Lee <[email protected]> _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
