Grokbase
x

Marcus Holland-Moritz (mhx...@gmx.net)

Profile | Posts (430)

User Information

Display Name:Marcus Holland-Moritz
Partial Email Address:mhx...@gmx.net
Posts:
430 total
430 in Perl 5 Porters

5 Most Recent

All Posts
1) Marcus Holland-Moritz Re: [PATCH] buildperl.pl: allow older perl to compile with newer gcc
| +1 vote
Hi Sam, Thanks a lot for your explanation and for fixing this! Cheers, Marcus...
Perl 5 Porters
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
Hi Sam,

On 2009-11-09, at 00:10:29 +1300, Sam Vilain wrote:

> On Sun, 2009-11-08 at 11:29 +0100, Marcus Holland-Moritz wrote:
> > Still, the question is how/why 52d674631edd5d1237df7203efc4396c3b77f8e7
> > got tagged as perl-5.004_05, as it was almost one year before 5.004_05
> > was actually released:
> >
> >   Tim Bunce <Tim.Bunce@pobox.com> 
> > Fri, 15 May 1998 23:04:30 +0000 (23:04 +0000)
> >   p4raw-id: //depot/maint-5.004/perl@999
> >
> > "Update Porting/makerel script for perforce dir structure"
> >       Files:  Porting/makerel
> >
> > I've CC'd Sam who can hopefuly shed some light on where the tags stem from.
>
> Yes, looks like it was one that slipped through the cracks. There were
> no real tags in the Perforce repository, and I ended up using the table
> I found here for the list:
>
> http://cpansearch.perl.org/src/RGARCIA/Module-CoreList-2.13/lib/Module/CoreList.pm
>
> (search for '%patchlevel')
>
> As you can see the "5.00405" release has the wrong change associated
> with it, I produced a corrected tag for that, tagging exactly the commit
> you point out - and a patch to Module::CoreList. So, its omission in
> the official version seems to be another mistake.
>
> I've gone and updated the tag on camel to point to the new version;
> people who have the old version of the tag, and care, should 'git fetch
> origin tag perl-5.004_05'

Thanks a lot for your explanation and for fixing this!

Cheers,
Marcus

--
You are in the hall of the mountain king.

Attachment: signature.asc
2) Marcus Holland-Moritz Re: [PATCH] buildperl.pl: allow older perl to compile with newer gcc
| +1 vote
Hi Philippe, Looking at the date, I'm not surprised: mhx@r2d2 ~ $ perl -le'print~~gmtime[stat...
Perl 5 Porters
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
Hi Philippe,

On 2009-11-08, at 10:25:07 +0100, Philippe Bruhat (BooK) wrote:

> On Sun, Nov 08, 2009 at 09:52:57AM +0100, Philippe Bruhat (BooK) wrote:
> >
> > > The question is whether the 5.004_05 tag in the repo is
> > > correct. I'd say it should match the contents of the
> > > tarball that's available from CPAN.
> >
> > I've started to run a comparison of the content of the commits in the git
> > tree to the content of the CPAN archive, to find which one is the closest
> > to it...
> >
> > [after letting the script run a few hours]
> >
> > I already checked about 1400 commits and found nothing, this is harder
> > than I thought. :-)
>
> Of course, using diff -ru --strip-trailing-cr gives better results than a
> bare diff -ru. Starting the search in the right place (origin/maint-5.004)
> also speeds up things a lot. ;-)
>
> So, the commit that exactly matches the content
> of http://www.cpan.org/src/perl5.004_05.tar.gz is
> f21c173c5f797b475e2d34e9ddd0b93c58d36e12:
>
> $ git log -1 f21c173c5f797b475e2d34e9ddd0b93c58d36e12
> commit f21c173c5f797b475e2d34e9ddd0b93c58d36e12
> Author: Chip Salzenberg <chip@pobox.com>
>     Date:   Thu Apr 29 19:08:59 1999 +0000
>     
>         Fix a few scripts' permissions.
>         Update MANIFEST and, yet again, Changes.
>         
>         p4raw-id: //depot/maint-5.004/perl@3296

Looking at the date, I'm not surprised:

[email protected: m...@r2d2] ~ $ perl -le'print~~gmtime[stat shift]->[9]' perl5.004_05.tar.gz
  Thu Apr 29 20:04:24 1999

The commit was about one hour before the release of 5.004_05.

Still, the question is how/why 52d674631edd5d1237df7203efc4396c3b77f8e7
got tagged as perl-5.004_05, as it was almost one year before 5.004_05
was actually released:

  Tim Bunce <Tim.Bunce@pobox.com> 
  Fri, 15 May 1998 23:04:30 +0000 (23:04 +0000)
  p4raw-id: //depot/maint-5.004/perl@999

  "Update Porting/makerel script for perforce dir structure"
      Files:  Porting/makerel

I've CC'd Sam who can hopefuly shed some light on where the tags stem from.

Cheers,
Marcus

--
The economy depends about as much on economists as the weather does on
weather forecasters.
  -- Jean-Paul Kauffmann

Attachment: signature.asc
3) Marcus Holland-Moritz Re: [PATCH] buildperl.pl: allow older perl to compile with newer gcc
| +1 vote
Hi Philippe, Yes. My bad. I meant 5.004_05, but my fingers dared not to follow my brain ;) Can you...
Perl 5 Porters
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
Hi Philippe,

On 2009-11-08, at 01:01:14 +0100, Philippe Bruhat (BooK) wrote:

> On Sat, Nov 07, 2009 at 07:26:00AM +0100, Marcus Holland-Moritz wrote:
> > >
> > > diff --git a/cpan/Devel-PPPort/devel/buildperl.pl b/cpan/Devel-PPPort/devel/buildperl.pl
> > > index 49b7fbb..fefd480 100644
> > > --- a/cpan/Devel-PPPort/devel/buildperl.pl
> > > +++ b/cpan/Devel-PPPort/devel/buildperl.pl
> > > @@ -99,7 +99,7 @@ my @patch = (
> > >    },
> > >    {
> > >      perl => [
> > > -              qr/^5\.004_0[1234]$/,
> > > +              qr/^5\.004_0[12345]$/,
> > >              ],
> > >      subs => [
> > >                [ \&patch_doio ],
> >
> > any special reason why you added 5.005_05 for the doio patch?
>
> My patch is for 5.004_05, not 5.005_05.

Yes. My bad. I meant 5.004_05, but my fingers dared not to
follow my brain ;)

> > While this might sound like a dumb question at first -- I guess
> > you added it because it didn't compile for you -- I'd be glad
> > for some details, as *with* your change, it doesn't compile for
> > me...
>
> Indeed, I added that because it didn't compile for me.
>
> First of all, I create the archives using
>
> git archive --format=tar --prefix=$tag/ $tag^{tree} \
>     | gzip > /tmp/perl/source/$tag.tar.gz
>
> With $tag being perl-5.004_05 in this case.
>
> Maybe this tag doesn't generate the same archive as the one you're using?

Can you compare yours against the one from CPAN (which is
what I'm using):

http://www.cpan.org/src/perl5.004_05.tar.gz

> >   `sh  cflags libperl.a doio.o`  doio.c
> > CCCMD = cc -DPERL_CORE -c -Dbool=char -DHAS_BOOL -DDEBUGGING -g
> > doio.c:86: error: redefinition of 'union semun'
> >   make: *** [doio.o] Error 1
>
> The error I get *without* my change is:
>
>     `sh  cflags libperl.a doio.o`  doio.c
> CCCMD = cc -DPERL_CORE -c -Dbool=char -DHAS_BOOL -I/usr/local/include -O2
>     doio.c: In function ‘Perl_nextargv’:
> doio.c:505: attention : ignoring return value of ‘fchown’, declared with attribute warn_unused_result
>     doio.c: In function ‘Perl_do_ipcctl’:
> doio.c:1445: erreur: storage size of ‘unsemds’ isn’t known
> doio.c:1486: erreur: storage size of ‘semun’ isn’t known
>     make: *** [doio.o] Erreur 1
>     make all: 512
>
> > ...which is because this piece of code had been added between
> > 5.005_04 and 5.005_05 in perl.h...
> >
> > # ifndef HAS_UNION_SEMUN /* Provide the union semun. */
> >       union semun {
> >    int val;
> >    struct semid_ds *buf;
> >    unsigned short *array;
> >       };
> >   #   endif
> >
> > ...which was precisely why I excluded 5.004_05 from the doio
> > patch. So, maybe you can provide me with some details on why
> > exactly it doesn't work for you so we can find a solution
> > that works for both systems.
>
> When looking at the logs in the git tree, it seems that the patch
> you're talking about was added in bd89102fe7784367e3eeddc7cefae29defae903a:
>
> $ git log -n1 -p bd89102fe7784367e3eeddc7cefae29defae903a -- perl.h
> commit bd89102fe7784367e3eeddc7cefae29defae903a
> Author: Andy Dougherty <doughera@lafayette.edu>
>     Date:   Thu May 28 09:27:25 1998 -0400
>     
> [PATCH 5.004_65] Config_65-02-03.diff: SunOS and Solaris hints
> Date: Thu, 28 May 1998 13:27:25 -0400 (EDT)
> Subject: [PATCH 5.004_65] Config_65-03-04.diff: semctl probing
> Date: Thu, 28 May 1998 13:28:21 -0400 (EDT)
>         
>         p4raw-id: //depot/perl@1047
>     
>     diff --git a/perl.h b/perl.h
>     index fc96064..8645c39 100644
>     --- a/perl.h
>     +++ b/perl.h
>     @@ -2090,6 +2090,26 @@ enum {
> UNLOCK_SV_MUTEX; \
>          } while (0)
>      
>     +#ifdef HAS_SEM
>     +#   include <sys/ipc.h>
>     +#   include <sys/sem.h>
> +# ifndef HAS_UNION_SEMUN /* Provide the union semun. */
>     +    union semun {
>     +       int val;
>     +       struct semid_ds *buf;
>     +       unsigned short *array;
>     +    };
>     +#   endif
>     +#   ifdef USE_SEMCTL_SEMUN
> +# define Semctl(id, num, cmd, semun) semctl(id, num, cmd, semun)
>     +#   else
>     +#       ifdef USE_SEMCTL_SEMID_DS
> +# define Semctl(id, num, cmd, semun) semctl(id, num, cmd, semun.buf)
>     +#       endif
>     +#   endif
> +# ifndef Semctl /* Place our bets on the semun horse. */
> +# define Semctl(id, num, cmd, semun) semctl(id, num, cmd, semun)
>     +#   endif
>     +#endif
>      
>      #endif /* Include guard */
>     -
>
> What worries me is that this patch is for Perl 5.004_65.
> But the only 5.004_xx tags in the git tree are:
>
>     $ git tag -l 'perl-5.004*'
>     perl-5.004
>     perl-5.004_01
>     perl-5.004_02
>     perl-5.004_03
>     perl-5.004_04
>     perl-5.004_05
>
> Since the versions I see in the log messages go up to 5.004_71, it seems
> that some tags are missing...

IIRC, 5.004_50 and onwards were development releases (just
like 5.(7|9|11).x today). And just as 5.8.9 was released
after 5.9.5, for example, 5.004_05 was most probably
released after 5.004_65. (Indeed, checking in the APC I
can see a 5.004_65 tarball from 1998-05-15 while 5.004_05
is from 1999-04-29.)

The question is whether the 5.004_05 tag in the repo is
correct. I'd say it should match the contents of the
tarball that's available from CPAN.

> The best way to go with my patch is probably to ignore the parts related
> to 5.004_05, as obviously I didn't know what I was doing.

I indeed changed the behaviour of the doio patch back to
*not* patching 5.004_05. With this, I can build all perls
on my box.

Thanks for your work!

Cheers,
Marcus

--
Computer programmers do it byte by byte.

Attachment: signature.asc
4) Marcus Holland-Moritz Re: [PATCH] buildperl.pl: allow older perl to compile with newer gcc
| +1 vote
Hi Philippe, any special reason why you added 5.005_05 for the doio patch? While this might sound...
Perl 5 Porters
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
Hi Philippe,

On 2009-11-03, at 12:58:06 +0100, Philippe Bruhat (BooK) wrote:

> Perl versions tested to compile (under linux):
> - 5.004_05
> - 5.005 5.005_01 5.005_02 5.005_03 5.005_04
> - 5.6.0 5.6.1 5.6.2
> - 5.8.0 5.8.1 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.7 5.8.8 5.8.9-RC1 5.8.9
> - 5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5
> ---
> cpan/Devel-PPPort/devel/buildperl.pl | 71 +++++++++++++++++++++++++++++++++-
> 1 files changed, 69 insertions(+), 2 deletions(-)
>
> diff --git a/cpan/Devel-PPPort/devel/buildperl.pl b/cpan/Devel-PPPort/devel/buildperl.pl
> index 49b7fbb..fefd480 100644
> --- a/cpan/Devel-PPPort/devel/buildperl.pl
> +++ b/cpan/Devel-PPPort/devel/buildperl.pl
> @@ -99,7 +99,7 @@ my @patch = (
>    },
>    {
>      perl => [
> -              qr/^5\.004_0[1234]$/,
> +              qr/^5\.004_0[12345]$/,
>              ],
>      subs => [
>                [ \&patch_doio ],

any special reason why you added 5.005_05 for the doio patch?

While this might sound like a dumb question at first -- I guess
you added it because it didn't compile for you -- I'd be glad
for some details, as *with* your change, it doesn't compile for
me...

  `sh  cflags libperl.a doio.o`  doio.c
            CCCMD =  cc -DPERL_CORE -c -Dbool=char -DHAS_BOOL -DDEBUGGING -g   
  doio.c:86: error: redefinition of 'union semun'
  make: *** [doio.o] Error 1

...which is because this piece of code had been added between
5.005_04 and 5.005_05 in perl.h...

  #   ifndef HAS_UNION_SEMUN /* Provide the union semun. */
      union semun {
   int val;
   struct semid_ds *buf;
   unsigned short *array;
      };
  #   endif

...which was precisely why I excluded 5.004_05 from the doio
patch. So, maybe you can provide me with some details on why
exactly it doesn't work for you so we can find a solution
that works for both systems.

Thanks,
Marcus

--
The Gordian Maxim:
If a string has one end, it has another.

Attachment: signature.asc
5) Marcus Holland-Moritz Re: [PATCH] buildperl.pl: allow older perl to compile with newer gcc
| +1 vote
Hi Philippe, thanks for the patch, I've just applied it and I'm now re-building all my perls (5.003...
Perl 5 Porters
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
Hi Philippe,

thanks for the patch, I've just applied it and I'm now re-building
all my perls (5.003 .. 5.11.1). It will be part of the next release.

Cheers,
Marcus

--
C makes it easy for you to shoot yourself in the foot.  C++ makes that
harder, but when you do, it blows away your whole leg.
  -- Bjarne Stroustrup

Attachment: signature.asc

spacer
Profile | Posts (430)
Home > People > Marcus Holland-Moritz