Plankton has asked for the wisdom of the Perl Monks concerning the following question:

Dear Monks,

Is my Perl (5.6.1) just too old to be built on RHEL4AS? I am not very experienced in having to build Perl so I will show what I am doing just incase that's the problem:

localhost:/usr/OLD/perl/src/perl-5.6.1$ mv config.sh config.sh_BU localhost:/usr/OLD/perl/src/perl-5.6.1$ mv Policy.sh Policy.sh_BU localhost:/usr/OLD/perl/src/perl-5.6.1$ sh Configure -Dcc=gcc -Dprefix +=/usr/OLD/perl -de ... lots of output that looks just fine to me ... localhost:/usr/OLD/perl/src/perl-5.6.1$ make make: *** No rule to make target `<built-in>', needed by `miniperlmain +.o'. Stop.

... WHAM I fall right on my face!

What gcc am I using ?

localhost:~$ gcc -v Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.6/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man -- +infodir=/usr/share/info --enable-shared --enable-threads=posix --disa +ble-checking --with-system-zlib --enable-__cxa_atexit --disable-libun +wind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux Thread model: posix gcc version 3.4.6 20060404 (Red Hat 3.4.6-9)

What 's my kernel?

localhost:~$ uname -a Linux localhost 2.6.9-67.0.7.ELsmp #1 SMP Wed Feb 27 04:48:20 EST 2008 + i686 athlon i386 GNU/Linux

I know what many of you are saying, "Why doesn't he just upgrade?", well I want to but I help in showing that 5.6.1 is just way to old for 2.6 Linux Kernel.

Thanks!

Replies are listed 'Best First'.
Re: Is 5.6.1 just too old to be built?
by jettero (Monsignor) on Apr 17, 2009 at 17:27 UTC
    gcc changed an error message since that source was last ... er... worked upon. There's actually a shellscript work around for this:

    My patch is actually for perl 5.8, but something really similar should work on 5.6

    -Paul

      Thanks Paul

      with some small amount of tweaking your patch worked!

      localhost:/usr/SD/perl/src/perl-5.6.1$ cat planktons_patch_to_makedepe +nd.SH --- makedepend.SH_BU 2009-04-17 13:43:34.000000000 -0400 +++ makedepend.SH 2009-04-17 13:58:32.000000000 -0400 @@ -121,7 +121,7 @@ *.y) filebase=`basename $file .y` ;; esac case "$file" in - */*) finc="-I`echo $file | sed 's#/[^/]*$##`" ;; + */*) finc="-I`echo $file | sed 's#/[^/]*$##'`" ;; *) finc= ;; esac $echo "Finding dependencies for $filebase$_o." @@ -154,6 +154,10 @@ $cppstdin $finc -I. $cppflags $cppminus <UU/$file.c | $sed \ -e '1d' \ + -e '/^#.*<builtin>/d' \ + -e '/^#.*<built-in>/d' \ + -e '/^#.*<command line>/d' \ + -e '/^#.*<command-line>/d' \ -e '/^#.*<stdin>/d' \ -e '/^#.*"-"/d' \ -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \

Re: Is 5.6.1 just too old to be built?
by FunkyMonk (Bishop) on Apr 17, 2009 at 20:23 UTC
    xdg set up a public git repo of older perls, patched to (amongst other things) work with newer gcc's. You can read his announcement here.
      Oh, that's interesting. Well here's two patches we should probably send in. :)

      -Paul

Re: Is 5.6.1 just too old to be built?
by eyepopslikeamosquito (Archbishop) on Apr 18, 2009 at 00:24 UTC
Re: Is 5.6.1 just too old to be built?
by trwww (Priest) on Apr 18, 2009 at 00:12 UTC

    Is my Perl (5.6.1) just too old to be built on RHEL4AS?

    Not from my experience. I'm slowly migrating a redhat 7.2 server on to a system with a proper migration path for code and so on, so I've had to build 5.6 several times now. Works fine every time.

    I use CentOS, so theres not much difference at all between my systems and yours:

    $ perl -v This is perl, v5.6.2 built for i686-linux $ uname -a + Linux dev.waveright.com 2.6.9-78.0.5.ELsmp #1 SMP Wed Oct 8 07:12:03 E +DT 2008 i686 i686 i386 GNU/Linux $ cat /etc/redhat-release CentOS release 4.7 (Final) $ gcc -v Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.6/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man -- +infodir=/usr/share/info --enable-shared --enable-threads=posix --disa +ble-checking --with-system-zlib --enable-__cxa_atexit --disable-libun +wind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux Thread model: posix gcc version 3.4.6 20060404 (Red Hat 3.4.6-10)

    regards,

    UPDATE: I get source code from here.

Re: Is 5.6.1 just too old to be built?
by Anonymous Monk on Apr 18, 2009 at 01:37 UTC
Re: Is 5.6.1 just too old to be built?
by JavaFan (Canon) on Apr 19, 2009 at 19:41 UTC
    Is my Perl (5.6.1) just too old to be built on RHEL4AS?
    Quite likely. The main reason 5.6.2 was released was that 5.6.1 no longer build with certain newer versions of certain compilers. And considering that commercial vendors usually understand the value of backwards compatability much better than many open source products, I wouldn't be at all surprised if was gcc that triggered the release of 5.6.2. And RedHat uses gcc.

    Is there a reason you need 5.6.1? Or even 5.6.2? 5.6.1 is 8 years old. That's not as old as the perl6 effort, but perl5 has progressed quite a bit in the past 8 years. You might want to try 5.10.0 or 5.8.9 instead.