{"thread":{"id":"37427","subject":"problem with def of inet_ntop() in git-compat-util.h as well as other places","startedAt":"2014-08-27T19:15:05Z","lastAt":"2014-08-30T15:25:51Z","messageCount":11,"participants":["dev","Jeff King","Jonathan Nieder","brian m. carlson"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"248425","messageId":"1024776344.30870.1409166905539.JavaMail.vpopmail@webmail2.networksolutionsemail.com","threadId":"37427","inReplyTo":null,"subject":"problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"dev","fromEmail":"dev@cor0.com","sentAt":"2014-08-27T19:15:05Z","receivedAt":"2014-08-27T19:15:05Z","isPatch":false,"sender":{"key":"dev@cor0.com","avatar":null},"body":"\n\nper :\n\n\n  http://pubs.opengroup.org/onlinepubs/009695399/functions/inet_ntop.html\n\n\nThe last parameter is not unsigned long but socklen_t size.\n\nThis causes a problem on things like Solaris :\n\n * new build flags\n    CC credential-store.o\n\"git-compat-util.h\", line 516: error: identifier redeclared: inet_ntop\n        current : function(int, pointer to const void, pointer to char,\nunsigned long) returning pointer to const char\n        previous: function(int, pointer to const void, pointer to char,\nunsigned int) returning pointer to const char :\n\"/usr/include/arpa/inet.h\", line 68\ncc: acomp failed for credential-store.c\ngmake: *** [credential-store.o] Error 2\n\n\n\nTherefore I hacked around it with a #ifdef __SunOS_5_10 for the sake of\ngetting the build done.\n\n\nHowever ran into a problem, again, with compat/inet_ntop.c which seems\nto be not needed at all since inet_ntop() handles both IPv6 and IPv4\njust fine.   Really I don't see why this file gets carted around so much\nas it is even in the Apache svn codebase as well.\n\nNot needed.\n\nTherefore I commented out the inet_ntop() function entirely therein.\n\nAlso the Makefile's generated are all borked full of GCCism \"CFLAGS = -g\n-O2 -Wall\"  which means very little on some OS wherein the gcc compiler\nis not the default.  Love GCC. I bootstrap it all the time. However this\nis Solaris and am using ORacle Studio 12.3 compilers and therefore the\nCFLAGS in the Makefiles are just silly.  Lastly, the linkage to libintl\nshould look in /usr/local/lib if the LD_LIBRARY_PATH and other env vars\nare setup correctly. However the Makefile's seem to miss this fact and\n-lintl needs to be manually hacked into place.\n\nStill doesn't \"just build\" yet.  Getting there :-\\\n\ndev\n"},{"id":"248429","messageId":"20140827192848.GC7561@peff.net","threadId":"37427","inReplyTo":"1024776344.30870.1409166905539.JavaMail.vpopmail@webmail2.networksolutionsemail.com","subject":"Re: problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2014-08-27T19:28:48Z","receivedAt":"2014-08-27T19:28:48Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Aug 27, 2014 at 03:15:05PM -0400, dev wrote:\n\n> This causes a problem on things like Solaris :\n> \n>  * new build flags\n>     CC credential-store.o\n> \"git-compat-util.h\", line 516: error: identifier redeclared: inet_ntop\n>         current : function(int, pointer to const void, pointer to char,\n> unsigned long) returning pointer to const char\n>         previous: function(int, pointer to const void, pointer to char,\n> unsigned int) returning pointer to const char :\n> \"/usr/include/arpa/inet.h\", line 68\n> cc: acomp failed for credential-store.c\n> gmake: *** [credential-store.o] Error 2\n\nThat declaration should only be used if you have NO_INET_NTOP defined by\nthe Makefile. That is not defined by default for Solaris. Have you\nspecified it yourself, or are you using the autoconf script? If the\nlatter, I suspect its test for inet_ntop needs to be fixed.\n\n> However ran into a problem, again, with compat/inet_ntop.c which seems\n> to be not needed at all since inet_ntop() handles both IPv6 and IPv4\n> just fine.   Really I don't see why this file gets carted around so much\n> as it is even in the Apache svn codebase as well.\n\nAgain, that should not be compiled at all unless you have NO_INET_NTOP\nset. Fixing that should solve both of your problems.\n\n> Also the Makefile's generated are all borked full of GCCism \"CFLAGS = -g\n> -O2 -Wall\"  which means very little on some OS wherein the gcc compiler\n> is not the default.\n\nYes, this is a potential portability problem we've discussed before, but\nliterally nobody has ever complained. I suspect it's a combination of\nmany compilers accepting those arguments (e.g., clang is fine with it)\nand people on exotic compilers accepting that \"make CFLAGS=\" is a\nreasonable starting point (you can also put \"CFLAGS = \" into your\nconfig.mak if you do not want to remember to include it on each make\ninvocation).\n\n> is Solaris and am using ORacle Studio 12.3 compilers and therefore the\n> CFLAGS in the Makefiles are just silly.  Lastly, the linkage to libintl\n> should look in /usr/local/lib if the LD_LIBRARY_PATH and other env vars\n> are setup correctly. However the Makefile's seem to miss this fact and\n> -lintl needs to be manually hacked into place.\n\nI do not usually see Makefiles peeking at LD_LIBRARY_PATH, which is for\nruntime resolution. Do you need to set LDFLAGS in your environment (or\nin config.mak)?\n\n-Peff\n"},{"id":"248430","messageId":"20140827193128.GX20185@google.com","threadId":"37427","inReplyTo":"1024776344.30870.1409166905539.JavaMail.vpopmail@webmail2.networksolutionsemail.com","subject":"Re: problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2014-08-27T19:31:29Z","receivedAt":"2014-08-27T19:31:29Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\ndev wrote:\n\n>     CC credential-store.o\n> \"git-compat-util.h\", line 516: error: identifier redeclared: inet_ntop\n>\tcurrent : function(int, pointer to const void, pointer to char, unsigned long) returning pointer to const char\n>\tprevious: function(int, pointer to const void, pointer to char, unsigned int) returning pointer to const char :\n>\t\"/usr/include/arpa/inet.h\", line 68\n\nWhy is NO_INET_NTOP set?  What commands are you using to build?  If\nyou are using autoconf, what does your config.mak.autogen say?\n\nPuzzled,\nJonathan\n"},{"id":"248435","messageId":"805178325.32077.1409168920760.JavaMail.vpopmail@webmail2.networksolutionsemail.com","threadId":"37427","inReplyTo":"20140827192848.GC7561@peff.net","subject":"Re: problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"dev","fromEmail":"dev@cor0.com","sentAt":"2014-08-27T19:48:40Z","receivedAt":"2014-08-27T19:48:40Z","isPatch":false,"sender":{"key":"dev@cor0.com","avatar":null},"body":"Good day gentlemen. With coffee in hand I am taking a crack and getting\ngit to compile out of the sources neatly and therefore I have hit a\nfew bumps.  Inline comments below :\n\nOn August 27, 2014 at 3:28 PM Jeff King <peff@peff.net> wrote:\n> On Wed, Aug 27, 2014 at 03:15:05PM -0400, dev wrote:\n>\n> > This causes a problem on things like Solaris :\n> >\n> >  * new build flags\n> >     CC credential-store.o\n> > \"git-compat-util.h\", line 516: error: identifier redeclared:\n> > inet_ntop\n> >         current : function(int, pointer to const void, pointer to\n> > char,\n> > unsigned long) returning pointer to const char\n> >         previous: function(int, pointer to const void, pointer to\n> > char,\n> > unsigned int) returning pointer to const char :\n> > \"/usr/include/arpa/inet.h\", line 68\n> > cc: acomp failed for credential-store.c\n> > gmake: *** [credential-store.o] Error 2\n>\n> That declaration should only be used if you have NO_INET_NTOP defined\n> by\n> the Makefile.\n\nwow.\n\nOKay, in that case there seems to be another problem which, as you say,\nwould fix a few things in one shot. So we have inet_ntop() in the basic\nsocket function libs in Solaris for sure so we should not see\nNO_INET_NTOP\ndefined.  But we are.  :-\\\n\n> That is not defined by default for Solaris. Have you\n> specified it yourself, or are you using the autoconf script? If the\n> latter, I suspect its test for inet_ntop needs to be fixed.\n\nI am going to extract the tarball once again and start fresh.\n\n\n$ mdigest -a sha256 $SRC/git-2.0.4.tar.gz\ndd9df02b7dcc75f9777c4f802c6b8562180385ddde4e3b8479e079f99cd1d1c9\n /usr/local/src/git-2.0.4.tar.gz\n\n$ gzip -dc $SRC/git-2.0.4.tar.gz | tar -xf -\n$ mv git-2.0.4 git-2.0.4_SunOS5.10_sparcv9.002\n$\n$ cd git-2.0.4_SunOS5.10_sparcv9.002\n$\n$ echo $CFLAGS\n-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64\n-xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc\n-g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1\n-xtarget=ultraT2 -xcache=8/16/4:4096/64/16\n$\n$ env | sort | grep LD\nBUILD=/usr/local/build\nLD=/usr/ccs/bin/sparcv9/ld\nLD_LIBRARY_PATH=/usr/local/lib:/usr/local/ssl/lib\nLD_OPTIONS=-64 -Qy\n-R/usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib\n-L/usr/local/lib/$ISALIST:/usr/local/ssl/lib$ISALIST:/usr/local/lib:/usr/local/ssl/lib\nLD_RUN_PATH=/usr/local/lib:/usr/local/ssl/lib\nOLDPWD=/usr/local/build\n\n\n\n\nI ran configure like so :\n\n\n$ ./configure --enable-pthreads --with-openssl --with-libpcre\n--with-curl --with-expat --with-iconv=/usr/local\n--with-editor=/usr/xpg4/bin/vi --with-shell=/usr/local/bin/bash\n--with-perl=/usr/local/bin/perl --with-zlib=/usr/local\nconfigure: Setting lib to 'lib' (the default)\nconfigure: Will try -pthread then -lpthread to enable POSIX Threads\nconfigure: CHECKS for site configuration\nconfigure: Setting ICONVDIR to /usr/local\nconfigure: Setting DEFAULT_EDITOR to /usr/xpg4/bin/vi\nconfigure: Setting SHELL_PATH to /usr/local/bin/bash\nconfigure: Setting PERL_PATH to /usr/local/bin/perl\nconfigure: Setting ZLIB_PATH to /usr/local\nconfigure: CHECKS for programs\nchecking whether the C compiler works... yes\nchecking for C compiler default output file name... a.out\nchecking for suffix of executables...\nchecking whether we are cross compiling... no\nchecking for suffix of object files... o\nchecking whether we are using the GNU C compiler... no\nchecking whether /opt/solarisstudio12.3/bin/cc accepts -g... yes\nchecking for /opt/solarisstudio12.3/bin/cc option to accept ISO C89...\nnone needed\nchecking for inline... inline\nchecking if linker supports -R... yes\nchecking for gtar... no\nchecking for tar... tar\nchecking for gnudiff... no\nchecking for gdiff... gdiff\nchecking for asciidoc... no\nconfigure: CHECKS for libraries\nchecking for SHA1_Init in -lcrypto... yes\nchecking for pcre_version in -lpcre... yes\nchecking for curl_global_init in -lcurl... yes\nchecking for XML_ParserCreate in -lexpat... yes\nchecking for iconv in -liconv... yes\nchecking for deflateBound in -lz... yes\nchecking for socket in -lc... no\nchecking for inet_ntop... no\nchecking for inet_ntop in -lresolv... no\nchecking for inet_pton... no\nchecking for inet_pton in -lresolv... no\nchecking for hstrerror... no\nchecking for hstrerror in -lresolv... yes\nchecking for basename in -lc... yes\nchecking for gettext in -lc... yes\nchecking how to run the C preprocessor... /opt/solarisstudio12.3/bin/cc\n-E\nchecking for grep that handles long lines and -e... /usr/xpg4/bin/grep\nchecking for egrep... /usr/xpg4/bin/grep -E\nchecking for ANSI C header files... yes\nchecking for sys/types.h... yes\nchecking for sys/stat.h... yes\nchecking for stdlib.h... yes\nchecking for string.h... yes\nchecking for memory.h... yes\nchecking for strings.h... yes\nchecking for inttypes.h... yes\nchecking for stdint.h... yes\nchecking for unistd.h... yes\nchecking libintl.h usability... yes\nchecking libintl.h presence... yes\nchecking for libintl.h... yes\nconfigure: CHECKS for header files\nchecking sys/select.h usability... yes\nchecking sys/select.h presence... yes\nchecking for sys/select.h... yes\nchecking sys/poll.h usability... yes\nchecking sys/poll.h presence... yes\nchecking for sys/poll.h... yes\nchecking for inttypes.h... (cached) yes\nchecking for old iconv()... yes\nconfigure: CHECKS for typedefs, structures, and compiler characteristics\nchecking for socklen_t... yes\nchecking for struct dirent.d_ino... yes\nchecking for struct dirent.d_type... no\nchecking for struct passwd.pw_gecos... yes\nchecking for struct sockaddr_storage... yes\nchecking for struct addrinfo... yes\nchecking for getaddrinfo... yes\nchecking for library containing getaddrinfo... none required\nchecking whether the platform regex can handle null bytes... no\nchecking whether system succeeds to read fopen'ed directory... no\nchecking whether snprintf() and/or vsnprintf() return bogus value... no\nconfigure: CHECKS for library functions\nchecking libgen.h usability... yes\nchecking libgen.h presence... yes\nchecking for libgen.h... yes\nchecking paths.h usability... no\nchecking paths.h presence... no\nchecking for paths.h... no\nchecking libcharset.h usability... yes\nchecking libcharset.h presence... yes\nchecking for libcharset.h... yes\nchecking for strings.h... (cached) yes\nchecking for locale_charset in -liconv... yes\nchecking for strcasestr... no\nchecking for memmem... no\nchecking for strlcpy... yes\nchecking for library containing strlcpy... none required\nchecking for uintmax_t... yes\nchecking for strtoumax... yes\nchecking for library containing strtoumax... none required\nchecking for setenv... yes\nchecking for library containing setenv... none required\nchecking for unsetenv... yes\nchecking for library containing unsetenv... none required\nchecking for mkdtemp... yes\nchecking for library containing mkdtemp... none required\nchecking for mkstemps... no\nchecking for initgroups... yes\nchecking for library containing initgroups... none required\nchecking for POSIX Threads with ''... yes\nconfigure: creating ./config.status\nconfig.status: creating config.mak.autogen\nconfig.status: executing config.mak.autogen commands\n$\n\nThen I see in some Makefile's :\n\n$ find . -type f -name Makefile | xargs grep \"^CFLAGS\" | cut -f2 -d\\:\nCFLAGS = -g -O2 -Wall\nCFLAGS = -g -O2 -Wall\nCFLAGS = -g -O2 -Wall\nCFLAGS = -g -O2 -Wall\nCFLAGS = -O2 -Wall\n$\n\n\nSo CFLAGS is ignored entirely.\n\n\nAlso in the Makefile at the top level I see :\n\n\nifdef NO_INET_NTOP\n        LIB_OBJS += compat/inet_ntop.o\n        BASIC_CFLAGS += -DNO_INET_NTOP\nendif\nifdef NO_INET_PTON\n        LIB_OBJS += compat/inet_pton.o\n        BASIC_CFLAGS += -DNO_INET_PTON\nendif\n\n\nNo reason for either of those to be defined, but I bet that you are\nright\nand they are ... and should not be.\n\n> > Also the Makefile's generated are all borked full of GCCism \"CFLAGS\n> > = -g\n> > -O2 -Wall\"  which means very little on some OS wherein the gcc\n> > compiler\n> > is not the default.\n>\n> Yes, this is a potential portability problem we've discussed before,\n> but\n> literally nobody has ever complained.\n\n* wave *\n\n> I suspect it's a combination of\n> many compilers accepting those arguments (e.g., clang is fine with it)\n> and people on exotic compilers accepting that \"make CFLAGS=\" is a\n> reasonable starting point (you can also put \"CFLAGS = \" into your\n> config.mak if you do not want to remember to include it on each make\n> invocation).\n\nA config.mak file eh ?\n\nI must look for that.\n\n> > is Solaris and am using ORacle Studio 12.3 compilers and therefore\n> > the\n> > CFLAGS in the Makefiles are just silly.  Lastly, the linkage to\n> > libintl\n> > should look in /usr/local/lib if the LD_LIBRARY_PATH and other env\n> > vars\n> > are setup correctly. However the Makefile's seem to miss this fact\n> > and\n> > -lintl needs to be manually hacked into place.\n>\n> I do not usually see Makefiles peeking at LD_LIBRARY_PATH, which is\n> for\n> runtime resolution. Do you need to set LDFLAGS in your environment (or\n> in config.mak)?\n\n\nYep, you're right of course. You can see I have no LDFLAGS defined.\nGuess\nI need that.\n\nAnyways, thanks for the input. I would love to see this \"just build\" and\nwith a few more emails and some tinkering it should right?\n\ndev\n"},{"id":"248439","messageId":"20140827200612.GA10469@peff.net","threadId":"37427","inReplyTo":"805178325.32077.1409168920760.JavaMail.vpopmail@webmail2.networksolutionsemail.com","subject":"Re: problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2014-08-27T20:06:12Z","receivedAt":"2014-08-27T20:06:12Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Aug 27, 2014 at 03:48:40PM -0400, dev wrote:\n\n> $ gzip -dc $SRC/git-2.0.4.tar.gz | tar -xf -\n> $ mv git-2.0.4 git-2.0.4_SunOS5.10_sparcv9.002\n> $\n> $ cd git-2.0.4_SunOS5.10_sparcv9.002\n> $\n> $ echo $CFLAGS\n> -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64\n> -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc\n> -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1\n> -xtarget=ultraT2 -xcache=8/16/4:4096/64/16\n\nNote that git's Makefile will not read CFLAGS from the environment (you\nhave to give it to make on the command-line, or put it in config.mak).\nHowever, running \"./configure\" with that in the environment should put\nthe result into config.mak.autogen.\n\n> $ env | sort | grep LD\n> BUILD=/usr/local/build\n> LD=/usr/ccs/bin/sparcv9/ld\n> LD_LIBRARY_PATH=/usr/local/lib:/usr/local/ssl/lib\n> LD_OPTIONS=-64 -Qy\n> -R/usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib\n> -L/usr/local/lib/$ISALIST:/usr/local/ssl/lib$ISALIST:/usr/local/lib:/usr/local/ssl/lib\n\nI have never seen LD_OPTIONS before. The usual variable for this is\nLDFLAGS, and note that it is handled in the environment the same way as\nCFLAGS above.\n\n> checking for inet_ntop... no\n> checking for inet_ntop in -lresolv... no\n\nWell, that's likely the source of some of your problems. The config.log\ncan probably tell you more about why the check does not find inet_ntop.\n\n> Then I see in some Makefile's :\n> \n> $ find . -type f -name Makefile | xargs grep \"^CFLAGS\" | cut -f2 -d\\:\n> CFLAGS = -g -O2 -Wall\n> CFLAGS = -g -O2 -Wall\n> CFLAGS = -g -O2 -Wall\n> CFLAGS = -g -O2 -Wall\n> CFLAGS = -O2 -Wall\n> $\n> \n> So CFLAGS is ignored entirely.\n\nNo, it's not. The Makefiles are not generated by autoconf, because\nautoconf is not required to build git (most of us do not use it at all).\nInstead, the static Makefile includes config.mak.autogen, which is\ngenerated by autoconf when you run \"./configure\" (and which overrides\nthe default in the Makefile). Try grepping for CFLAGS in that file.\n\n> Also in the Makefile at the top level I see :\n> \n> ifdef NO_INET_NTOP\n>         LIB_OBJS += compat/inet_ntop.o\n>         BASIC_CFLAGS += -DNO_INET_NTOP\n> endif\n> ifdef NO_INET_PTON\n>         LIB_OBJS += compat/inet_pton.o\n>         BASIC_CFLAGS += -DNO_INET_PTON\n> endif\n> \n> No reason for either of those to be defined, but I bet that you are\n> right\n> and they are ... and should not be.\n\nI think they are defined by your config.mak.autogen, based on the output\nyou showed above.\n\n> Anyways, thanks for the input. I would love to see this \"just build\" and\n> with a few more emails and some tinkering it should right?\n\nI do not see anything that drastic that needs changed. Building\n_without_ running ./configure might even just work (it has sane defaults\nfor many operating systems), though you would need to pass along the\nbits from your environment, like:\n\n  make CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LD_OPTIONS\"\n\nYou would potentially also need to turn off a few feature flags manually\n(e.g., NO_EXPAT, NO_GETTEXT). There's a complete list at the top of the\nMakefile. The configure script can usually figure these out for you, but\nthe static Makefile does not.\n\n-Peff\n"},{"id":"248444","messageId":"597210348.36175.1409173228026.JavaMail.vpopmail@webmail2.networksolutionsemail.com","threadId":"37427","inReplyTo":"20140827200612.GA10469@peff.net","subject":"Re: problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"dev","fromEmail":"dev@cor0.com","sentAt":"2014-08-27T21:00:28Z","receivedAt":"2014-08-27T21:00:28Z","isPatch":false,"sender":{"key":"dev@cor0.com","avatar":null},"body":"\n\nOn August 27, 2014 at 4:06 PM Jeff King <peff@peff.net> wrote:\n> On Wed, Aug 27, 2014 at 03:48:40PM -0400, dev wrote:\n>\n> > $ gzip -dc $SRC/git-2.0.4.tar.gz | tar -xf -\n> > $ mv git-2.0.4 git-2.0.4_SunOS5.10_sparcv9.002\n> > $\n> > $ cd git-2.0.4_SunOS5.10_sparcv9.002\n> > $\n> > $ echo $CFLAGS\n> > -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64\n> > -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee\n> > -mc\n> > -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf\n> > -xunroll=1\n> > -xtarget=ultraT2 -xcache=8/16/4:4096/64/16\n>\n> Note that git's Makefile will not read CFLAGS from the environment\n> (you\n> have to give it to make on the command-line, or put it in config.mak).\n> However, running \"./configure\" with that in the environment should put\n> the result into config.mak.autogen.\n\n\nWell I have heard now a few times of this config.mak file and when I\nextract the source tarball I see :\n\n$ ls -lap config*\n-rw-r--r--   1 dclarke  adbs       44502 Jul 30 22:10 config.c\n-rw-r--r--   1 dclarke  adbs         540 Jul 30 22:10 config.mak.in\n-rw-r--r--   1 dclarke  adbs       15447 Jul 30 22:10 config.mak.uname\n-rwxr-x---   1 dclarke  adbs      217698 Jul 30 22:10 configure\n-rw-r--r--   1 dclarke  adbs       32144 Jul 30 22:10 configure.ac\n\n\nSo I guess I have to create a config.mak file from somewhere.\n\n>From the INSTALL file I see that most of these variables are in the\npre-written and supposedly ready to run Makefile.  OKay.  I think I\nhad better crack that open and see what I need to change in there.\nMost likely CFLAGS and a way to locate OpenSSL libs etc but who knows.\n\n> I have never seen LD_OPTIONS before. The usual variable for this is\n> LDFLAGS, and note that it is handled in the environment the same way\n> as\n> CFLAGS above.\n\nThe problem is that this is not Linux and not GNU ld and therefore :\n\nhttp://docs.oracle.com/cd/E19253-01/817-1984/6mhm7pl1l/index.html\n\nSo if I want to ensure that things like ELF headers contain the correct\nstuff to locate libraries ( never ever use LD_LIBRARY_PATH as it is\nthe kiss of death ) then I need things like LD_OPTIONS and others.\n\nSo I will work through this from the Makefile provided and see if I\ncan get the CFLAGS that I want as well as other env vars.\n\n> > So CFLAGS is ignored entirely.\n>\n> No, it's not. The Makefiles are not generated by autoconf, because\n> autoconf is not required to build git (most of us do not use it at\n> all).\n\nI should try that on Solaris once to see what happens.  Make popcorn.\nSee below.\n\n> Instead, the static Makefile includes config.mak.autogen, which is\n> generated by autoconf when you run \"./configure\" (and which overrides\n> the default in the Makefile). Try grepping for CFLAGS in that file.\n>\n> > Also in the Makefile at the top level I see :\n> >\n> > ifdef NO_INET_NTOP\n> >         LIB_OBJS += compat/inet_ntop.o\n> >         BASIC_CFLAGS += -DNO_INET_NTOP\n> > endif\n> > ifdef NO_INET_PTON\n> >         LIB_OBJS += compat/inet_pton.o\n> >         BASIC_CFLAGS += -DNO_INET_PTON\n> > endif\n> >\n> > No reason for either of those to be defined, but I bet that you are\n> > right\n> > and they are ... and should not be.\n>\n> I think they are defined by your config.mak.autogen, based on the\n> output\n> you showed above.\n>\n> > Anyways, thanks for the input. I would love to see this \"just build\"\n> > and\n> > with a few more emails and some tinkering it should right?\n>\n> I do not see anything that drastic that needs changed. Building\n> _without_ running ./configure might even just work (it has sane\n> defaults\n> for many operating systems),\n\n\n$ make\nmake: Fatal error in reader: Makefile, line 345: Unexpected end of line\nseen\n\n\nInstant fail.\n\nLet's try GNU make :\n\n$ gmake\nGIT_VERSION = 2.0.4\n    * new build flags\n    CC credential-store.o\ncc: -W option with unknown program all\ngmake: *** [credential-store.o] Error 1\n$\n\nMore instant fail.\n\nLet's keep trying ...\n\n> though you would need to pass along the\n> bits from your environment, like:\n>\n>   make CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LD_OPTIONS\"\n\nSounds good ... let's see :\n\ngmake CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LD_OPTIONS\"\n.\n.\n.  good things seem to happen ...\n.\n    LINK git-credential-store\ncc: Warning: Option -64 passed to ld, if ld is invoked, ignored\notherwise\ncc: Warning: multiple use of -Q option, previous one discarded.\nld: warning: option -Q appears more than once, first setting taken\nUndefined                       first referenced\n symbol                             in file\nlibiconv_close                      libgit.a(utf8.o)  (symbol belongs to\nimplicit dependency /usr/local/lib/libiconv.so.2)\nlibiconv_open                       libgit.a(utf8.o)  (symbol belongs to\nimplicit dependency /usr/local/lib/libiconv.so.2)\nlibiconv                            libgit.a(utf8.o)  (symbol belongs to\nimplicit dependency /usr/local/lib/libiconv.so.2)\nld: fatal: symbol referencing errors. No output written to\ngit-credential-store\ngmake: *** [git-credential-store] Error 2\n$\n\nSo this is not Linux and so a pile of fiddling is required. Welcome to\nthe world of Oracle Solaris where nothing from the Linux world ever\n\"just works\".  It looks like somewhere along the line the idea of\nlinking\nwith -liconv or perhaps -lintl was lost.  Not sure yet.\n\n> You would potentially also need to turn off a few feature flags\n> manually\n> (e.g., NO_EXPAT, NO_GETTEXT). There's a complete list at the top of\n> the\n> Makefile. The configure script can usually figure these out for you,\n> but\n> the static Makefile does not.\n\nFor now I want to keep chugging along to see if I can get a default\nno-hack\nbuild and then go back and start over with things in the Makefile to see\nif I can get the whole process to make the binaries that I want with\nthe required bits in the ELF headers and correctly NEEDed libs etc.\n\ndev\n"},{"id":"248455","messageId":"20140827222803.GZ20185@google.com","threadId":"37427","inReplyTo":"597210348.36175.1409173228026.JavaMail.vpopmail@webmail2.networksolutionsemail.com","subject":"Re: problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2014-08-27T22:28:03Z","receivedAt":"2014-08-27T22:28:03Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi again,\n\ndev wrote:\n\n> So I guess I have to create a config.mak file from somewhere.\n\nSorry, let's take a step back.\n\nWhat exact commands do you use to build, starting from a pristine\nextracted tarball?  What output do you get back?\n\n[...]\n> Undefined                       first referenced\n>  symbol                             in file\n> libiconv_close                      libgit.a(utf8.o)  (symbol belongs to implicit dependency /usr/local/lib/libiconv.so.2)\n\nSounds like NEEDS_LIBICONV should be set on Solaris.  You can test\nthis by passing NEEDS_LIBICONV=YesPlease on the gmake command line and\nseeing what happens.\n\nBut it seems odd --- was iconv once part of libc on Solaris and then\nmoved out or something?  There have been lots of people building git\non Solaris over the years (and writing patches to fix other build\nproblems) without needing to set that flag.\n\n[...]\n>> You would potentially also need to turn off a few feature flags manually\n\nThe options for tweaking the build are described at the top of the\nMakefile.\n\nThanks again,\nJonathan\n"},{"id":"248472","messageId":"1506847499.57192.1409201670955.JavaMail.vpopmail@webmail2.networksolutionsemail.com","threadId":"37427","inReplyTo":"20140827222803.GZ20185@google.com","subject":"Re: problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"dev","fromEmail":"dev@cor0.com","sentAt":"2014-08-28T04:54:30Z","receivedAt":"2014-08-28T04:54:30Z","isPatch":false,"sender":{"key":"dev@cor0.com","avatar":null},"body":"\n\nOn August 27, 2014 at 6:28 PM Jonathan Nieder <jrnieder@gmail.com>\nwrote:\n> Hi again,\n>\n> dev wrote:\n>\n> > So I guess I have to create a config.mak file from somewhere.\n>\n> Sorry, let's take a step back.\n>\n> What exact commands do you use to build, starting from a pristine\n> extracted tarball?  What output do you get back?\n\n$ ls $SRC/git*\n/usr/local/src/git-2.0.4.tar.gz\n\n$ gzip -dc /usr/local/src/git-2.0.4.tar.gz | tar -xf -\n$ mv git-2.0.4 git-2.0.4_SunOS5.10_sparcv9.002\n$ cd git-2.0.4_SunOS5.10_sparcv9.002\n\n$ gmake CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LD_OPTIONS\"\n    * new build flags\n    CC credential-store.o\n    * new link flags\n    CC abspath.o\n    CC advice.o\n    CC alias.o\n    CC alloc.o\n    CC archive.o\n    CC archive-tar.o\n    CC archive-zip.o\n    CC argv-array.o\n    * new prefix flags\n    CC attr.o\n    CC base85.o\n    CC bisect.o\n    CC blob.o\n    CC branch.o\n    CC bulk-checkin.o\n    CC bundle.o\n    CC cache-tree.o\n    CC color.o\n    CC column.o\n    CC combine-diff.o\n    CC commit.o\n    CC compat/obstack.o\n. . .\n    AR xdiff/lib.a\n    LINK git-credential-store\ncc: Warning: Option -64 passed to ld, if ld is invoked, ignored\notherwise\ncc: Warning: multiple use of -Q option, previous one discarded.\nld: warning: option -Q appears more than once, first setting taken\nUndefined                       first referenced\n symbol                             in file\nlibiconv_close                      libgit.a(utf8.o)  (symbol belongs to\nimplicit dependency /usr/local/lib/libiconv.so.2)\nlibiconv_open                       libgit.a(utf8.o)  (symbol belongs to\nimplicit dependency /usr/local/lib/libiconv.so.2)\nlibiconv                            libgit.a(utf8.o)  (symbol belongs to\nimplicit dependency /usr/local/lib/libiconv.so.2)\nld: fatal: symbol referencing errors. No output written to\ngit-credential-store\ngmake: *** [git-credential-store] Error 2\n$\n\n> Sounds like NEEDS_LIBICONV should be set on Solaris.  You can test\n> this by passing NEEDS_LIBICONV=YesPlease on the gmake command line and\n> seeing what happens.\n\nThat looks to be the ticket to a binary.\n\nEntire build completes with piles of warnings but I get a git binary :\n\n$ file git\ngit: ELF 64-bit MSB executable, SPARC V9, total store ordering, version\n1, dynamically linked (uses shared libs), not stripped\n\n\n$ ldd git\n        libz.so.1 =>     /usr/local/lib/libz.so.1\n        libiconv.so.2 =>         /usr/local/lib/libiconv.so.2\n        libintl.so.8 =>  /usr/local/lib/libintl.so.8\n        libsocket.so.1 =>        /lib/64/libsocket.so.1\n        libnsl.so.1 =>   /lib/64/libnsl.so.1\n        libcrypto.so.1.0.0 =>    /usr/local/ssl/lib/libcrypto.so.1.0.0\n        libpthread.so.1 =>       /lib/64/libpthread.so.1\n        libc.so.1 =>     /lib/64/libc.so.1\n        libmp.so.2 =>    /lib/64/libmp.so.2\n        libmd.so.1 =>    /lib/64/libmd.so.1\n        libscf.so.1 =>   /lib/64/libscf.so.1\n        libdl.so.1 =>    /lib/64/libdl.so.1\n        libz.so.1 (SUNW_1.1) =>  (version not found)\n        libdoor.so.1 =>  /lib/64/libdoor.so.1\n        libuutil.so.1 =>         /lib/64/libuutil.so.1\n        libgen.so.1 =>   /lib/64/libgen.so.1\n        libm.so.2 =>     /lib/64/libm.so.2\n        /platform/SUNW,T5240/lib/sparcv9/libc_psr.so.1\n        /platform/SUNW,T5240/lib/sparcv9/libmd_psr.so.1\n\n\nGreat, a problem with some libz.so.1 that we don't even need since we\nhave libz in /usr/local/lib just fine.  I have to look into that.\n\nOtherwise :\n\n$ ./git --version\ngit version 2.0.4\n\n\n$ elfdump -devl git\n\nELF Header\n  ei_magic:   { 0x7f, E, L, F }\n  ei_class:   ELFCLASS64          ei_data:       ELFDATA2MSB\n  ei_osabi:   ELFOSABI_SOLARIS    ei_abiversion: EAV_SUNW_CURRENT\n  e_machine:  EM_SPARCV9          e_version:     EV_CURRENT\n  e_type:     ET_EXEC\n  e_flags:    [ EF_SPARCV9_TSO EF_SPARC_SUN_US1 EF_SPARC_SUN_US3 ]\n  e_entry:           0x10002d960  e_ehsize:     64  e_shstrndx:  31\n  e_shoff:              0xe327d0  e_shentsize:  64  e_shnum:     32\n  e_phoff:                  0x40  e_phentsize:  56  e_phnum:     5\n\nVersion Needed Section:  .SUNW_version\n     index  file                        version\n       [2]  libsocket.so.1              SUNW_1.4\n       [3]                              SUNW_1.1             [ INFO ]\n       [4]                              SUNW_0.7             [ INFO ]\n       [5]  libnsl.so.1                 SUNW_0.7\n       [6]                              SUNWprivate_1.1\n       [7]  libpthread.so.1             SUNW_1.2\n       [8]                              SUNW_0.9             [ INFO ]\n       [9]  libc.so.1                   SUNW_1.22\n      [10]                              SUNW_1.19            [ INFO ]\n      [11]                              SUNW_1.18            [ INFO ]\n      [12]                              SUNW_1.1             [ INFO ]\n      [13]                              SUNW_0.9             [ INFO ]\n      [14]                              SUNW_0.7             [ INFO ]\n      [15]                              SUNWprivate_1.1\n\nDynamic Section:  .dynamic\n     index  tag                value\n       [0]  NEEDED            0x11ecb             libz.so.1\n       [1]  NEEDED            0x11ed5             libiconv.so.2\n       [2]  NEEDED            0x11ee3             libintl.so.8\n       [3]  NEEDED            0x11e3b             libsocket.so.1\n       [4]  NEEDED            0x11e65             libnsl.so.1\n       [5]  NEEDED            0x11ef0             libcrypto.so.1.0.0\n       [6]  NEEDED            0x11e81             libpthread.so.1\n       [7]  NEEDED            0x11ea3             libc.so.1\n       [8]  INIT              0x1003e2b88\n       [9]  FINI              0x1003e2b98\n      [10]  RUNPATH           0x11f03\n            /usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib:/usr/local/lib/SALIST:/usr/local/ssl/lib/SALIST:/usr/local/lib:/usr/local/ssl/lib\n      [11]  RPATH             0x11f03\n            /usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib:/usr/local/lib/SALIST:/usr/local/ssl/lib/SALIST:/usr/local/lib:/usr/local/ssl/lib\n      [12]  HASH              0x100000178\n      [13]  STRTAB            0x100018a98\n      [14]  STRSZ             0x121ab\n      [15]  SYMTAB            0x100006408\n      [16]  SYMENT            0x18\n      [17]  CHECKSUM          0xaca0\n      [18]  VERNEED           0x10002ac48\n      [19]  VERNEEDNUM        0x4\n      [20]  PLTRELSZ          0x12f0\n      [21]  PLTREL            0x7\n      [22]  JMPREL            0x10002c670\n      [23]  RELA              0x10002c5f8\n      [24]  RELASZ            0x1368\n      [25]  RELAENT           0x18\n      [26]  DEBUG             0\n      [27]  FLAGS             0                   0\n      [28]  FLAGS_1           0                   0\n      [29]  SUNW_STRPAD       0x200\n      [30]  SUNW_LDMACH       0x2b                EM_SPARCV9\n      [31]  PLTGOT            0x10053d900\n   [32-42]  NULL              0\n$\n\nFunny I don't see libcurl anywhere. Thought that was needed? Also the\nRUNPATH\nand RPATH look duplicated and slightly borked but the initial data there\nis correct enough to locate all the libs except for some strange libz\nissue.\n\nWhat I need to do now is run some tests. Really I should keep going\nto get linkage with libssh2 and libcurl as well as correct perl in\nthe /usr/local/bin directory. I'll have to keep tweaking with the\nvarious magic on the \"gmake\" command I guess.\n\n> But it seems odd --- was iconv once part of libc on Solaris and then\n> moved out or something?\n\nThere are plenty of dependencies and therefore I have GNU libiconv thus\n:\n\n$ which iconv\n/usr/local/bin/iconv\n\n$ /usr/local/bin/iconv --version\niconv (GNU libiconv 1.14)\nCopyright (C) 2000-2011 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later\n<http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\nWritten by Bruno Haible.\n\n\n$ ldd /usr/local/bin/iconv\n        libintl.so.8 =>  /usr/local/lib/libintl.so.8\n        libiconv.so.2 =>         /usr/local/lib/libiconv.so.2\n        libc.so.1 =>     /lib/64/libc.so.1\n        libm.so.2 =>     /lib/64/libm.so.2\n        /platform/SUNW,T5240/lib/sparcv9/libc_psr.so.1\n\n\n> There have been lots of people building git\n> on Solaris over the years (and writing patches to fix other build\n> problems) without needing to set that flag.\n\nWell I see what I see and am extracting from a tarball and reporting\nprecisely what is happening. Traditionally git has been a nightmare\nto build on anything but linux. That is just my experience.  Let's\nnot even talk about OpenBSD.  A real nightmare.\n\ndev\n"},{"id":"248475","messageId":"438501037.62058.1409208700534.JavaMail.vpopmail@webmail2.networksolutionsemail.com","threadId":"37427","inReplyTo":"20140827222803.GZ20185@google.com","subject":"Re: problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"dev","fromEmail":"dev@cor0.com","sentAt":"2014-08-28T06:51:40Z","receivedAt":"2014-08-28T06:51:40Z","isPatch":false,"sender":{"key":"dev@cor0.com","avatar":null},"body":"\n\nOn August 27, 2014 at 6:28 PM Jonathan Nieder <jrnieder@gmail.com>\nwrote:\n> Hi again,\n>\n> dev wrote:\n>\n> > So I guess I have to create a config.mak file from somewhere.\n>\n> Sorry, let's take a step back.\n\nActually I think we have some real progress to report here.  After\nscanning through the various magic incantations in the Makefile and\nsome trial and error I arrived at this gem :\n\n$ date\nThu Aug 28 06:10:43 GMT 2014\n\n$ ls $SRC/git*\n/usr/local/src/git-2.0.4.tar.gz\n$ gzip -dc /usr/local/src/git-2.0.4.tar.gz | tar -xf -\n$ mv git-2.0.4 git-2.0.4_SunOS5.10_sparcv9.005\n$ cd git-2.0.4_SunOS5.10_sparcv9.005\n\n$ gmake CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LD_OPTIONS\" NEEDS_LIBICONV=Yes \\\n> SHELL_PATH=/usr/local/bin/bash \\\n> SANE_TOOL_PATH=/usr/local/bin \\\n> USE_LIBPCRE=1 LIBPCREDIR=/usr/local CURLDIR=/usr/local \\\n> EXPATDIR=/usr/local NEEDS_LIBINTL_BEFORE_LIBICONV=1 \\\n> NEEDS_SOCKET=1 NEEDS_RESOLV=1 USE_NSEC=1 \\\n> PERL_PATH=/usr/local/bin/perl \\\n> NO_PYTHON=1 DEFAULT_PAGER=/usr/xpg4/bin/more \\\n> DEFAULT_EDITOR=/usr/local/bin/vim DEFAULT_HELP_FORMAT=man \\\n> prefix=/usr/local\nGIT_VERSION = 2.0.4\n    * new build flags\n    CC credential-store.o\n    * new link flags\n    CC abspath.o\n    CC advice.o\n    CC alias.o\n.\n.\n.\n    GEN bin-wrappers/test-wildmatch\n    GEN git-remote-testgit\n$\n\nA full build.  Furthermore it looks like all the right bits are linked\nin and a test clone from a few open source projects works well.\n\n$ file git\ngit: ELF 64-bit MSB executable, SPARC V9, total store ordering, version\n1, dynamically linked (uses shared libs), not stripped\n$ ldd git\n        libpcre.so.1 =>  /usr/local/lib/libpcre.so.1\n        libz.so.1 =>     /usr/local/lib/libz.so.1\n        libintl.so.8 =>  /usr/local/lib/libintl.so.8\n        libiconv.so.2 =>         /usr/local/lib/libiconv.so.2\n        libsocket.so.1 =>        /lib/64/libsocket.so.1\n        libnsl.so.1 =>   /lib/64/libnsl.so.1\n        libresolv.so.2 =>        /lib/64/libresolv.so.2\n        libcrypto.so.1.0.0 =>    /usr/local/ssl/lib/libcrypto.so.1.0.0\n        libpthread.so.1 =>       /lib/64/libpthread.so.1\n        libc.so.1 =>     /lib/64/libc.so.1\n        libmp.so.2 =>    /lib/64/libmp.so.2\n        libmd.so.1 =>    /lib/64/libmd.so.1\n        libscf.so.1 =>   /lib/64/libscf.so.1\n        libdl.so.1 =>    /lib/64/libdl.so.1\n        libz.so.1 (SUNW_1.1) =>  (version not found)\n        libdoor.so.1 =>  /lib/64/libdoor.so.1\n        libuutil.so.1 =>         /lib/64/libuutil.so.1\n        libgen.so.1 =>   /lib/64/libgen.so.1\n        libm.so.2 =>     /lib/64/libm.so.2\n        /platform/SUNW,T5240/lib/sparcv9/libc_psr.so.1\n        /platform/SUNW,T5240/lib/sparcv9/libmd_psr.so.1\n$\n\nIgnore the misleading libz issue.  I really don't think it is a\nproblem however I may dig into it. That is libz.so.1 which is needed\nby libcrypto.so.1.0.0 from OpenSSL 1.0.1i and I just don't see\nan issue given that OpenSSL 1.0.1i passes all its tests.\n\nI did run a few clone tests :\n\n$ pwd\n/export/home/dev/git_test\n$ $BUILD/git-2.0.4_SunOS5.10_sparcv9.005/git clone --verbose\ngit://cmake.org/cmake.git\nCloning into 'cmake'...\nwarning: templates not found /usr/local/share/git-core/templates\nremote: Counting objects: 162733, done.\nremote: Compressing objects: 100% (41726/41726), done.\nremote: Total 162733 (delta 124662), reused 157579 (delta 119831)\nReceiving objects: 100% (162733/162733), 37.31 MiB | 1001.00 KiB/s,\ndone.\nResolving deltas: 100% (124662/124662), done.\nChecking connectivity... done.\nChecking out files: 100% (7410/7410), done.\n$\n$ cd cmake/\n$ $BUILD/git-2.0.4_SunOS5.10_sparcv9.005/git status\nOn branch master\nYour branch is up-to-date with 'origin/master'.\n\nnothing to commit, working directory clean\n$ cd ..\n\n$ $BUILD/git-2.0.4_SunOS5.10_sparcv9.005/git clone --verbose\ngit://git.apache.org/httpd.git\nCloning into 'httpd'...\nwarning: templates not found /usr/local/share/git-core/templates\nremote: Counting objects: 391450, done.\nremote: Compressing objects: 100% (80188/80188), done.\nremote: Total 391450 (delta 331921), reused 367848 (delta 309308)\nReceiving objects: 100% (391450/391450), 111.46 MiB | 420.00 KiB/s,\ndone.\nResolving deltas: 100% (331921/331921), done.\nChecking connectivity... done.\nChecking out files: 100% (3495/3495), done.\n\n\nSo that looks pretty good thus far.\n\nI must say thank you for the guidance.  All I need to do now is figure\nout a way to run a test over SSH with a dummy repo of some sort.\n\ndev\n"},{"id":"248533","messageId":"20140829000502.GC53982@vauxhall.crustytoothpaste.net","threadId":"37427","inReplyTo":"1506847499.57192.1409201670955.JavaMail.vpopmail@webmail2.networksolutionsemail.com","subject":"Re: problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2014-08-29T00:05:02Z","receivedAt":"2014-08-29T00:05:02Z","isPatch":false,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On Thu, Aug 28, 2014 at 12:54:30AM -0400, dev wrote:\n> Funny I don't see libcurl anywhere. Thought that was needed? Also the\n> RUNPATH\n> and RPATH look duplicated and slightly borked but the initial data there\n> is correct enough to locate all the libs except for some strange libz\n> issue.\n\nThe main git binary is not linked with libcurl, only the HTTP and FTP\nprograms.  You'd want to check git-remote-http, for instance.\n-- \nbrian m. carlson / brian with sandals: Houston, Texas, US\n+1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only\nOpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187\n"},{"id":"248650","messageId":"1333134044.25621.1409412351761.JavaMail.vpopmail@webmail2.networksolutionsemail.com","threadId":"37427","inReplyTo":"20140829000502.GC53982@vauxhall.crustytoothpaste.net","subject":"Re: problem with def of inet_ntop() in git-compat-util.h as well as other places","fromName":"dev","fromEmail":"dev@cor0.com","sentAt":"2014-08-30T15:25:51Z","receivedAt":"2014-08-30T15:25:51Z","isPatch":false,"sender":{"key":"dev@cor0.com","avatar":null},"body":"\n\nOn August 28, 2014 at 8:05 PM \"brian m. carlson\"\n<sandals@crustytoothpaste.net> wrote:\n> On Thu, Aug 28, 2014 at 12:54:30AM -0400, dev wrote:\n> > Funny I don't see libcurl anywhere. Thought that was needed? Also\n> > the\n> > RUNPATH\n> > and RPATH look duplicated and slightly borked but the initial data\n> > there\n> > is correct enough to locate all the libs except for some strange\n> > libz\n> > issue.\n>\n> The main git binary is not linked with libcurl, only the HTTP and FTP\n> programs.  You'd want to check git-remote-http, for instance.\n\n\nwow ... you're right.  I had to go check to verify :\n\n$ elfdump -d /usr/local/bin/git\n\nDynamic Section:  .dynamic\n     index  tag                value\n       [0]  NEEDED            0x11ef7             libpcre.so.1\n       [1]  NEEDED            0x11f04             libz.so.1\n       [2]  NEEDED            0x11f0e             libintl.so.8\n       [3]  NEEDED            0x11f1b             libiconv.so.2\n       [4]  NEEDED            0x11e67             libsocket.so.1\n       [5]  NEEDED            0x11e91             libnsl.so.1\n       [6]  NEEDED            0x11f29             libresolv.so.2\n       [7]  NEEDED            0x11f38             libcrypto.so.1.0.0\n       [8]  NEEDED            0x11ead             libpthread.so.1\n       [9]  NEEDED            0x11ecf             libc.so.1\n      [10]  INIT              0x1003e2f28\n      [11]  FINI              0x1003e2f38\n      [12]  RUNPATH           0x11f4b\n            /usr/local/lib:/usr/local/ssl/lib\n      [13]  RPATH             0x11f4b\n            /usr/local/lib:/usr/local/ssl/lib\n      [14]  HASH              0x100000178\n      [15]  STRTAB            0x100018b08\n      [16]  STRSZ             0x1216d\n      [17]  SYMTAB            0x100006418\n      [18]  SYMENT            0x18\n      [19]  CHECKSUM          0x2dce\n      [20]  VERNEED           0x10002ac78\n      [21]  VERNEEDNUM        0x4\n      [22]  PLTRELSZ          0x1338\n      [23]  PLTREL            0x7\n      [24]  JMPREL            0x10002c6c0\n      [25]  RELA              0x10002c630\n      [26]  RELASZ            0x13c8\n      [27]  RELAENT           0x18\n      [28]  DEBUG             0\n      [29]  FLAGS             0                   0\n      [30]  FLAGS_1           0                   0\n      [31]  SUNW_STRPAD       0x200\n      [32]  SUNW_LDMACH       0x2b                EM_SPARCV9\n      [33]  PLTGOT            0x10053dc00\n   [34-44]  NULL              0\n\n\ncool.\n"}]}