Git 2.31.1, Solaris and error: conflicting types for 'inet_ntop'

5 messages, 3 authors, 2021-03-28 · open the first message on its own page

Git 2.31.1, Solaris and error: conflicting types for 'inet_ntop'

From: Jeffrey Walton <hidden>
Date: 2021-03-28 00:27:19

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_NTOP
-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);
             ^
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,
                    ^
In file included from git-compat-util.h:226:0,
                 from cache.h:4,
                 from json-writer.c:1:
/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,
                    ^
In file included from cache.h:4:0,
                 from hex.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);
             ^
In file included from git-compat-util.h:226:0,
                 from cache.h:4,
                 from hex.c:1:
/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,
                    ^
In file included from cache.h:4:0,
                 from kwset.c:35:
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 kwset.c:35:
/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,
                    ^
gmake: *** [hex.o] Error 1

Jeff

Re: Git 2.31.1, Solaris and error: conflicting types for 'inet_ntop'

From: brian m. carlson <hidden>
Date: 2021-03-28 00:47:31

On 2021-03-28 at 00:18:37, Jeffrey Walton wrote:
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_NTOP
So you're defining NO_INET_NTOP.
-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.
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.
-- 
brian m. carlson (he/him or they/them)
Houston, Texas, US

Re: Git 2.31.1, Solaris and error: conflicting types for 'inet_ntop'

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_NTOP
So 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

Re: Git 2.31.1, Solaris and error: conflicting types for 'inet_ntop'

From: brian m. carlson <hidden>
Date: 2021-03-28 01:27:38

On 2021-03-28 at 01:04:32, Jeffrey Walton wrote:
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
Most developers don't use the autoconf stuff and just use the makefile.
config.mak.uname doesn't have NO_INET_NTOP set for SunOS.

If the autoconf scripts or config.mak.uname need fixing, which is
possible, a patch would definitely be welcome.
-- 
brian m. carlson (he/him or they/them)
Houston, Texas, US

Re: Git 2.31.1, Solaris and error: conflicting types for 'inet_ntop'

From: Jeff King <hidden>
Date: 2021-03-28 07:23:31

On Sun, Mar 28, 2021 at 01:26:10AM +0000, brian m. carlson wrote:
On 2021-03-28 at 01:04:32, Jeffrey Walton wrote:
quoted
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
Most developers don't use the autoconf stuff and just use the makefile.
config.mak.uname doesn't have NO_INET_NTOP set for SunOS.

If the autoconf scripts or config.mak.uname need fixing, which is
possible, a patch would definitely be welcome.
This all seemed vaguely familiar, and indeed it came up about a year
ago:

  https://lore.kernel.org/git/CAH8yC8m3JFvEcfFF3z1rrRnEPK-adHGObmkOhNZiph7QJKUWqA@mail.gmail.com/

Maybe worth resurrecting this patch (at the very least it needed a
signoff):

  https://lore.kernel.org/git/CAH8yC8kaWXbN+RYMJnM9em7KKW54+N07JtyS1MZk0qppD=m2BA@mail.gmail.com/

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help