{"thread":{"id":"29788","subject":"Building GIT on older systems.","startedAt":"2012-02-29T20:22:21Z","lastAt":"2012-02-29T22:17:24Z","messageCount":5,"participants":["Tim Schumacher","Dan Johnson","Jeff King","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"185741","messageId":"CAFqtsHd=b=Ey8j1zTCC4-fut7rno3daQ2Q3HMs3k2SHFvE4dSQ@mail.gmail.com","threadId":"29788","inReplyTo":"CAFqtsHfrk89qHexg8VwMZnKwgWDqbseJNNKFSUkwDtVKX_t=5g@mail.gmail.com","subject":"Building GIT on older systems.","fromName":"Tim Schumacher","fromEmail":"schumact@gmail.com","sentAt":"2012-02-29T20:22:21Z","receivedAt":"2012-02-29T20:22:21Z","isPatch":false,"sender":{"key":"schumact@gmail.com","avatar":null},"body":"Hi All,\n\nAfter a long battle trying to get git to compile on my dev boxes I am\nseeking help from the gurus...  I have an old system, redhat linux\n7.3, with a 2.4.18 kernel with gcc 2.96 toolchain.  Unfortuneatly,\nupgrading is not currently an option.\n\nI have figured out so far that I can run the command\n\nmake NO_NSEC=true\n\nto get past the time struct compile error.\n\nAfter that, I was able to hand edit the Makefile to set\n\nBASIC_LDFLAGS = -ldl\n\nso linking the git-imap-send program succeeds (was failing to link\nagainst this library for some reason...).  I tried to run configure\nwith these options, but it did not seem to take, only setting\nNO_NSEC=true to the make command line seems to work.\n\nAnyway, now I get to the point in the build where it goes into the\nperl subdir and fails with:\n\n   SUBDIR perl\n/bin/sh: -c: line 3: syntax error near unexpected token\n`\"s<\\Q++LOCALEDIR++\\E></'\n/bin/sh: -c: line 3: `        -e \"pm_to_blib({qw{Git/I18N.pm\nblib/lib/Git/I18N.pm private-Error.pm blib/lib/Error.pm Git.pm\nblib/lib/Git.pm}},'blib/lib/auto','/usr/bin/perl -pe\n\"s<\\Q++LOCALEDIR++\\E></usr/local/git-1.7.9.2/share/locale>\"')\"'\nmake[2]: *** [pm_to_blib] Error 2\nmake[1]: *** [all] Error 2\nmake: *** [all] Error 2\n\nA couple questions I have so far:\n(1)  how can I make make output the actual command it is executing so\nI can try to debug things more quickly?\n(2)  how can I configure the Makefile to automatically set -ldl as\nwell as the NO_NSEC flag?\n(3)  My perl -v output: This is perl, v5.6.1 built for i386-linux.  Is\nthis sufficient?\n\nAny help is greatly appreciated!\n\nThanks,\nTim\n"},{"id":"185742","messageId":"CAPBPrnvFv4-r0m7-A5q5Lt7V5Ym2hEJaiNONBcUC=cxs6WuPxg@mail.gmail.com","threadId":"29788","inReplyTo":"CAFqtsHd=b=Ey8j1zTCC4-fut7rno3daQ2Q3HMs3k2SHFvE4dSQ@mail.gmail.com","subject":"Re: Building GIT on older systems.","fromName":"Dan Johnson","fromEmail":"computerdruid@gmail.com","sentAt":"2012-02-29T20:35:24Z","receivedAt":"2012-02-29T20:35:24Z","isPatch":false,"sender":{"key":"computerdruid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/34696?v=4"},"body":"On Wed, Feb 29, 2012 at 3:22 PM, Tim Schumacher <schumact@gmail.com> wrote:\n> [snip]\n> A couple questions I have so far:\n> (1)  how can I make make output the actual command it is executing so\n> I can try to debug things more quickly?\n\nTry running \"make V=1\".\n\nI'm not knowledgeable enough about the makefile or the perl\nrequirements of git to help with the other problems, though, so\nsomeone else will have to step up for that.\n\nGood luck!\n"},{"id":"185744","messageId":"20120229205510.GA628@sigill.intra.peff.net","threadId":"29788","inReplyTo":"CAFqtsHd=b=Ey8j1zTCC4-fut7rno3daQ2Q3HMs3k2SHFvE4dSQ@mail.gmail.com","subject":"Re: Building GIT on older systems.","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-02-29T20:55:10Z","receivedAt":"2012-02-29T20:55:10Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Feb 29, 2012 at 01:22:21PM -0700, Tim Schumacher wrote:\n\n> After a long battle trying to get git to compile on my dev boxes I am\n> seeking help from the gurus...  I have an old system, redhat linux\n> 7.3, with a 2.4.18 kernel with gcc 2.96 toolchain.  Unfortuneatly,\n> upgrading is not currently an option.\n\nThat's pretty old, but I would think git should be build-able on it with\nthe right Makefile flags set. We build on even older versions of\nSolaris.\n\n> I have figured out so far that I can run the command\n> \n> make NO_NSEC=true\n> \n> to get past the time struct compile error.\n\nAs an aside, you can put definitions like this into config.mak, which is\nread automatically by the Makefile. Then you don't have to specify them\non the command line for each 'make' invocation.\n\n> After that, I was able to hand edit the Makefile to set\n> \n> BASIC_LDFLAGS = -ldl\n> \n> so linking the git-imap-send program succeeds (was failing to link\n> against this library for some reason...). \n\nWhat was the link error? I don't know why imap-send would need to link\nagainst -ldl. However, you should be able to just put -ldl into the\nLDFLAGS on the command-line or in config.mak.\n\n> I tried to run configure with these options, but it did not seem to\n> take, only setting NO_NSEC=true to the make command line seems to\n> work.\n\nWas NO_NSEC set in the resulting config.mak.autogen?\n\n> Anyway, now I get to the point in the build where it goes into the\n> perl subdir and fails with:\n> \n>    SUBDIR perl\n> /bin/sh: -c: line 3: syntax error near unexpected token\n> `\"s<\\Q++LOCALEDIR++\\E></'\n> /bin/sh: -c: line 3: `        -e \"pm_to_blib({qw{Git/I18N.pm\n> blib/lib/Git/I18N.pm private-Error.pm blib/lib/Error.pm Git.pm\n> blib/lib/Git.pm}},'blib/lib/auto','/usr/bin/perl -pe\n> \"s<\\Q++LOCALEDIR++\\E></usr/local/git-1.7.9.2/share/locale>\"')\"'\n> make[2]: *** [pm_to_blib] Error 2\n> make[1]: *** [all] Error 2\n> make: *** [all] Error 2\n\nI haven't seen that before. The snippet mentioned in the error message\nis actually written to the Makefile by Makefile.PL. Can you show us the\nrelevant part of the Makefile (i.e., the command that contains\n\"++LOCALEDIR++\") so we can see if it's broken? My suspicion is that\nthere is an error in the generation of the Makefile by Makefile.PL.\n\nAlthough your perl is so old the first step may be either to turn off\nperl or upgrade to a newer version (see below).\n\n> A couple questions I have so far:\n> (1)  how can I make make output the actual command it is executing so\n> I can try to debug things more quickly?\n\nDoing \"make V=1\" will be more verbose. You can also use \"make -d\" to get\nmore output about which rules and commands are being followed, but its\noutput can be a bit overwhelming (and I don't think you have a make\nproblem, exactly).\n\n> (2)  how can I configure the Makefile to automatically set -ldl as\n> well as the NO_NSEC flag?\n\nPut it in LDFLAGS.\n\n> (3)  My perl -v output: This is perl, v5.6.1 built for i386-linux.  Is\n> this sufficient?\n\nThese days we require at least 5.8, mostly because no developers are using 5.6\nand support for it is bit-rotting. If your perl is that old, probably\nsetting NO_PERL is the best option. You will lose a few perl features\nlike interactive patch selection (\"git add -p\") and git-svn.\n\n-Peff\n"},{"id":"185745","messageId":"7vboohs6bc.fsf@alter.siamese.dyndns.org","threadId":"29788","inReplyTo":"CAFqtsHd=b=Ey8j1zTCC4-fut7rno3daQ2Q3HMs3k2SHFvE4dSQ@mail.gmail.com","subject":"Re: Building GIT on older systems.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-02-29T21:00:55Z","receivedAt":"2012-02-29T21:00:55Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Tim Schumacher <schumact@gmail.com> writes:\n\n> A couple questions I have so far:\n> (1)  how can I make make output the actual command it is executing so\n> I can try to debug things more quickly?\n\nmake V=1\n\n> (2)  how can I configure the Makefile to automatically set -ldl as\n> well as the NO_NSEC flag?\n\nconfig.mak\n\n> (3)  My perl -v output: This is perl, v5.6.1 built for i386-linux.  Is\n> this sufficient?\n\nI think our floor is set at somewhere around 5.8.3, but at the same time,\nmost of the essential parts of the system such as \"git fetch\" and \"git\ncheckout\", should be usable without any version of Perl.  An environment\nfor actual development of your software may want to use things such as\n\"add -i\" that require Perl, though.\n"},{"id":"185749","messageId":"4F4EA3F4.7040501@gmail.com","threadId":"29788","inReplyTo":"20120229205510.GA628@sigill.intra.peff.net","subject":"Re: Building GIT on older systems.","fromName":"Tim Schumacher","fromEmail":"schumact@gmail.com","sentAt":"2012-02-29T22:17:24Z","receivedAt":"2012-02-29T22:17:24Z","isPatch":false,"sender":{"key":"schumact@gmail.com","avatar":null},"body":"Hi Peff, thanks!\n\nComments in-line below.\n\n-Tim\n\nOn 2/29/2012 1:55 PM, Jeff King wrote:\n> On Wed, Feb 29, 2012 at 01:22:21PM -0700, Tim Schumacher wrote:\n>\n>> After a long battle trying to get git to compile on my dev boxes I am\n>> seeking help from the gurus...  I have an old system, redhat linux\n>> 7.3, with a 2.4.18 kernel with gcc 2.96 toolchain.  Unfortuneatly,\n>> upgrading is not currently an option.\n> That's pretty old, but I would think git should be build-able on it with\n> the right Makefile flags set. We build on even older versions of\n> Solaris.\n>\n>> I have figured out so far that I can run the command\n>>\n>> make NO_NSEC=true\n>>\n>> to get past the time struct compile error.\n> As an aside, you can put definitions like this into config.mak, which is\n> read automatically by the Makefile. Then you don't have to specify them\n> on the command line for each 'make' invocation.\n>\n>> After that, I was able to hand edit the Makefile to set\n>>\n>> BASIC_LDFLAGS = -ldl\n>>\n>> so linking the git-imap-send program succeeds (was failing to link\n>> against this library for some reason...).\n> What was the link error? I don't know why imap-send would need to link\n> against -ldl. However, you should be able to just put -ldl into the\n> LDFLAGS on the command-line or in config.mak.\n\nThe actual link errors were unresolved references to the dl* family of \nfunctions: dlopen, dlsym, etc.\n\n>> I tried to run configure with these options, but it did not seem to\n>> take, only setting NO_NSEC=true to the make command line seems to\n>> work.\n> Was NO_NSEC set in the resulting config.mak.autogen?\nNot sure.  I set up the config.mak though so it is sticking with that.\n>\n>> Anyway, now I get to the point in the build where it goes into the\n>> perl subdir and fails with:\n>>\n>>     SUBDIR perl\n>> /bin/sh: -c: line 3: syntax error near unexpected token\n>> `\"s<\\Q++LOCALEDIR++\\E></'\n>> /bin/sh: -c: line 3: `        -e \"pm_to_blib({qw{Git/I18N.pm\n>> blib/lib/Git/I18N.pm private-Error.pm blib/lib/Error.pm Git.pm\n>> blib/lib/Git.pm}},'blib/lib/auto','/usr/bin/perl -pe\n>> \"s<\\Q++LOCALEDIR++\\E></usr/local/git-1.7.9.2/share/locale>\"')\"'\n>> make[2]: *** [pm_to_blib] Error 2\n>> make[1]: *** [all] Error 2\n>> make: *** [all] Error 2\n> I haven't seen that before. The snippet mentioned in the error message\n> is actually written to the Makefile by Makefile.PL. Can you show us the\n> relevant part of the Makefile (i.e., the command that contains\n> \"++LOCALEDIR++\") so we can see if it's broken? My suspicion is that\n> there is an error in the generation of the Makefile by Makefile.PL.\n\nAround line 108 in my GIT_HOME/perl/perl.mak I have this:  (line numbers \nare from VI)\n\n     108 PM_FILTER = $(PERL) -pe \n\"s<\\Q++LOCALEDIR++\\E></home/tschumacher/share/locale>\"\n\nand later PM_FILTER is used as:\n\n     713\n     714 # --- MakeMaker pm_to_blib section:\n     715\n     716 pm_to_blib: $(TO_INST_PM)\n     717     @$(PERL) \"-I$(INST_ARCHLIB)\" \"-I$(INST_LIB)\" \\\n     718     \"-I$(PERL_ARCHLIB)\" \"-I$(PERL_LIB)\" -MExtUtils::Install \\\n     719         -e \n\"pm_to_blib({qw{$(PM_TO_BLIB)}},'$(INST_LIB)/auto','$(PM_FILTER)')\"\n     720     @$(TOUCH) $@\n     721\n\n\n> Although your perl is so old the first step may be either to turn off\n> perl or upgrade to a newer version (see below).\n>\n>> A couple questions I have so far:\n>> (1)  how can I make make output the actual command it is executing so\n>> I can try to debug things more quickly?\n> Doing \"make V=1\" will be more verbose. You can also use \"make -d\" to get\n> more output about which rules and commands are being followed, but its\n> output can be a bit overwhelming (and I don't think you have a make\n> problem, exactly).\n>\n>> (2)  how can I configure the Makefile to automatically set -ldl as\n>> well as the NO_NSEC flag?\n> Put it in LDFLAGS.\n>\n>> (3)  My perl -v output: This is perl, v5.6.1 built for i386-linux.  Is\n>> this sufficient?\n> These days we require at least 5.8, mostly because no developers are using 5.6\n> and support for it is bit-rotting. If your perl is that old, probably\n> setting NO_PERL is the best option. You will lose a few perl features\n> like interactive patch selection (\"git add -p\") and git-svn.\n>\n> -Peff\n\nI am trying to install a newer version of perl on this box and will \nretry the configure adding --with-perl option and see how it goes.\n"}]}