Re: Git 2.31.1, Solaris and error: conflicting types for 'inet_ntop'
flat view
From: Jeffrey Walton <hidden>
Date: 2021-03-28 01:05:43
On Sat, Mar 27, 2021 at 8:45 PM brian m. carlson [off-list ref] wrote:
On 2021-03-28 at 00:18:37, Jeffrey Walton wrote:quoted
Hi Everyone, I'm building the latest Git on Solaris 11.3. I use this patch for Solaris: https://github.com/noloader/Build-Scripts/blob/master/patch/git.patch. It ensures -lresolv -lsocket -lnsl (in that order). The build is having some trouble: /bin/gcc -o kwset.o -c -MF ./.depend/kwset.o.d -MQ kwset.o -MMD -MP -I/usr/local/include -DNDEBUG -DNO_UNALIGNED_LOADS=1 -g2 -O2 -m64 -march=native -fPIC -pthread -I. -D__EXTENSIONS__ -D__sun__ -DGIT_HOST_CPU="\"i86pc\"" -DUSE_LIBPCRE2 -I/usr/local/include -DHAVE_ALLOCA_H -I/usr/local/include -DUSE_CURL_FOR_IMAP_SEND -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -DNO_D_TYPE_IN_DIRENT -DNO_INET_NTOPSo you're defining NO_INET_NTOP.quoted
-DNO_INET_PTON -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_LIBCHARSET_H -DHAVE_STRINGS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM -DFREAD_READS_DIRECTORIES -Icompat/regex -DSHELL_PATH='"/bin/bash"' -DPAGER_ENV='"LESS=FRX LV=-c"' kwset.c In file included from cache.h:4:0, from json-writer.c:1: git-compat-util.h:823:13: error: conflicting types for 'inet_ntop' const char *inet_ntop(int af, const void *src, char *dst, size_t size);So we're defining one here.quoted
In file included from cache.h:4:0, from ident.c:8: git-compat-util.h:823:13: error: conflicting types for 'inet_ntop' const char *inet_ntop(int af, const void *src, char *dst, size_t size); ^ In file included from git-compat-util.h:226:0, from cache.h:4, from ident.c:8: /usr/include/arpa/inet.h:43:20: note: previous declaration of 'inet_ntop' was here extern const char *inet_ntop(int, const void *_RESTRICT_KYWD,And then so are your system headers. You probably want to avoid setting that option, and then things will probably work better.
I see what happened... I stopped Autoreconfing so the configure.ac
changes were not picked up. The original configure is being used.
I think Git is getting itself into that state.
Without the Autoreconf, I was able to sidestep the issue with:
if [[ "${IS_SOLARIS}" -eq 1 ]]; then
CONFIG_OPTS+=("ac_cv_func_inet_ntop=yes")
CONFIG_OPTS+=("ac_cv_func_inet_pton=yes")
fi
Jeff