> From: Hans-Bernhard Bröker > To: cygwin@cygwin.com > Cc: > Date: 2016/4/10, Sun 16:10 > Subject: Re: Query of type of memcpy (and sys_errlist) on Cygwin > > Am 10.04.2016 um 05:14 schrieb Tatsuro MATSUOKA: >> Hello >> The topic was discussed on gnuplot mailing list. >> > http://gnuplot.10905.n7.nabble.com/stdfn-h-error-conflicting-types-for-memcopy-and-sys-errlist-on-Cygwin-build-td20061.html >> Frorm discussion there (the topic is now pending.) , >> I decided ask here. >> In compling gnuplot I have met errors: >> ../../gnuplot/src/stdfn.h:67:8: error: conflicting types for > 'memcpy' >> char * memcpy __PROTO((char *, char *, size_t)); > > Before everybody gets entirely confused, let me interject that this is quite > certainly not an actual problem about the memcpy() declaration itself, but > rather an extremely surprising failure of an autoconf-generated configure > script. > > The configure script in question never failed like that in years of usage. > Well, setting aside occasional, remarkably stubborn rebase problems with > Cygwin's Perl DLLs, that is. See the thread "makeinfo causes perl > error ? Cygwin X86 download today" from last week, also started by Tatsuro > Matsuoka.
The zipped config.log is available here: http://www.geocities.jp/tmacchant2/config.log.20160411.zip Related part of config.log configure:9591: checking for memcpy configure:9591: gcc -o conftest.exe -g -O2 -I/usr/local/include -L/usr/local/lib -lcerf conftest.c >&5 conftest.c:86:6: warning: conflicting types for built-in function 'memcpy' char memcpy (); ^ /usr/lib/gcc/x86_64-pc-cygwin/5.3.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lcerf collect2: error: ld returned 1 exit status configure:9591: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "gnuplot" | #define PACKAGE_TARNAME "gnuplot" | #define PACKAGE_VERSION "5.1" | #define PACKAGE_STRING "gnuplot 5.1" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define DEVELOPMENT_VERSION 1 | #define PACKAGE "gnuplot" | #define VERSION "5.1" | #define VERSION_MAJOR "5.1" | #define PATCHLEVEL "0" | #define PROTOTYPES 1 | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define __EXTENSIONS__ 1 | #define _ALL_SOURCE 1 | #define _GNU_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define _TANDEM_SOURCE 1 | #define HAVE_STRINGIZE 1 | #define HAVE_OFF_T 1 | #define HAVE_FSEEKO 1 | #define X_DISPLAY_MISSING 1 | #define STDC_HEADERS 1 | #define HAVE_DIRENT_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FLOAT_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LOCALE_H 1 | #define HAVE_MATH_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_TIME_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_SOCKET_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TIMEB_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_MALLOC_H 1 | #define HAVE_POLL_H 1 | #define HAVE_TERMIOS_H 1 | #define HAVE_DIRENT_H 1 | #define HAVE_DLFCN_H 1 | #define HAVE__BOOL 1 | #define HAVE_STDBOOL_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_TIME_T_IN_TIME_H 1 | /* end confdefs.h. */ | /* Define memcpy to an innocuous variant, in case <limits.h> declares memcpy. | For example, HP-UX 11i <limits.h> declares gettimeofday. */ | #define memcpy innocuous_memcpy | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char memcpy (); below. | Prefer <limits.h> to <assert.h> if __STDC__ is defined, since | <limits.h> exists even on freestanding compilers. */ | | #ifdef __STDC__ | # include <limits.h> | #else | # include <assert.h> | #endif | | #undef memcpy | | /* Override any GCC internal prototype to avoid an error. | Use char because int might match the return type of a GCC | builtin and then its argument prototype would still apply. */ | #ifdef __cplusplus | extern "C" | #endif | char memcpy (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_memcpy || defined __stub___memcpy | choke me | #endif | | int | main () | { | return memcpy (); | ; | return 0; | } configure:9591: result: no Tatsuro -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple