Mailing List Archive

Hello, hello, anyone there? (WAS perl5.001n on Unisys U6000)
In-Reply-To: <memo.222464@cix.compulink.co.uk>
Has anyone read my mail? If 5.002 is to be out soon, it would be nice if these
were fixed, especially as I have reported the second bug on several occasions.

> I have just tried to build perl5.001n on a Unisys U6000, and have found
> the following two problems:
>
> BUG 1
> Bug in Makemaker affecting extensions with subdirectories, i.e.
> ext/SDBM_file. A rule line in the generated makefile starts with "@ -cd"
> instead of "@- cd". I believe this has already been reported. Patch
> follows:
>
> BUG 2
> =====
> ODBM_file fails "make test" with the following message:
> lib/odbm.......Can't load '../lib/auto/ODBM_File/ODBM_File.so' for module
> ODBM_File: dynamic linker: ./perl: relocation error: symbol not found:
> _ecvt at ../lib
> /DynaLoader.pm line 136.
> at ../lib/ODBM_File.pm line 7

This is because although the hints file svr4.pl contains
$att{LIBS} = ['-ldbm -lucb -lc'];
it is ignored, and the value in Makefile.PL
WriteMakefile(LIBS => ["-ldbm -lucb"]);
is used instead. Modifying the value in Makefile.PL makes the problem go away,
but MakeMaker is so convoluted I wouldn't even know where to start looking, and
yes, I *have* read the pod, and am still none the wiser about how I would do
this with "new improved" OO MakeMaker. It is all very well to tell everyone to
override the MY:: methods instead of using %att, but it isn't much use without
a list of the overridable methods.

Alan Burlison aburlison@cix.compulink.co.uk
Re: Hello, hello, anyone there? (WAS perl5.001n on Unisys U6000) [ In reply to ]
On Thu, 9 Nov 1995, Alan Burlison wrote:

> In-Reply-To: <memo.222464@cix.compulink.co.uk>
> Has anyone read my mail? If 5.002 is to be out soon, it would be nice if these
> were fixed, especially as I have reported the second bug on several occasions.
>
> > I have just tried to build perl5.001n on a Unisys U6000, and have found
> > the following two problems:
> >
> > BUG 2
> > =====
> > ODBM_file fails "make test" with the following message:
>
> This is because although the hints file svr4.pl contains
> $att{LIBS} = ['-ldbm -lucb -lc'];
> it is ignored, and the value in Makefile.PL

I had forgotten about that one. If I remember correctly, the problem
is that your $osname isn't svr4. Try making a hintfile with the
name $osname.pl and see if MakeMaker reads it and uses it.

If that works, let me know and I'll add your hint file in. If it
doesn't, then MakeMaker's determination of the hint file is broken.

Andy Dougherty doughera@lafcol.lafayette.edu
--
To subscribe or unsubscribe, send your request (subscribe, unsubscribe)
in the BODY of a message to perl5-porters-request@africa.nicoh.com.
Re: Hello, hello, anyone there? (WAS perl5.001n on Unisys U6000) [ In reply to ]
>Has anyone read my mail?

WHy yes. The superuser did, and promptly deleted it . It was delicious;
thank you. :-) [Old unix joke]

O Makemaker folk: how come when I say to install VERSION => 1.3,
it thinks my files are named Socket-1.3.o, and so on and so forth.

I'm apparently missing some obvious feature of makemaker.


--tom
Re: Hello, hello, anyone there? (WAS perl5.001n on Unisys U6000) [ In reply to ]
In-Reply-To: <Pine.3.89.9511091104.A24037-0100000@lafcol>
> I had forgotten about that one. If I remember correctly, the problem
> is that your $osname isn't svr4. Try making a hintfile with the
> name $osname.pl and see if MakeMaker reads it and uses it.
>
> If that works, let me know and I'll add your hint file in. If it
> doesn't, then MakeMaker's determination of the hint file is broken.

I think that *used* to be the problem. When I run "perl Makefile.PL",
MakeMaker *says* that it is processing the svr4 hints file, so I think
you have fixed the way hint files are determined. The old problem used
to be that minor version numbers weren't stripped off, but from looking
at the code it now does this.

From reading the pod, it seems that the old $att{wotsit} = somevalue
mechanism for hints files is being depreciated, and some sort of method
override is to be used, although how you would get the same effect is mot
at all clear. Whatever the case, the hint in the svr4 file which adds
-lc to LD_RUN_PATH doesn't work. If I append it to the value in
Makefile.PL
the problem goes away, so somehow the (correct) value in the (correct)
svr4 hints file is not being picked up


Alan Burlison aburlison@cix.compulink.co.uk
Re: [MM] Hello, hello, anyone there? (WAS perl5.001n on Unisys U6000) [ In reply to ]
>>>>> " " == Alan Burlison <aburlison@cix.compulink.co.uk> writes:

> In-Reply-To: <memo.222464@cix.compulink.co.uk>
> Has anyone read my mail? If 5.002 is to be out soon, it would be nice if these
> were fixed, especially as I have reported the second bug on several occasions.

I'm very sorry, Alan, I got a lot of work to do the last few days, and
you are not the only one, I couldn't answer :-(

>> I have just tried to build perl5.001n on a Unisys U6000, and have found
>> the following two problems:
>>
>> BUG 1
>> Bug in Makemaker affecting extensions with subdirectories, i.e.
>> ext/SDBM_file. A rule line in the generated makefile starts with "@ -cd"
>> instead of "@- cd". I believe this has already been reported. Patch
>> follows:

That's fixed in 5.03 I think, at least in my copy.

>>
>> BUG 2
>> =====
>> ODBM_file fails "make test" with the following message:
>> lib/odbm.......Can't load '../lib/auto/ODBM_File/ODBM_File.so' for module
>> ODBM_File: dynamic linker: ./perl: relocation error: symbol not found:
>> _ecvt at ../lib
>> /DynaLoader.pm line 136.
>> at ../lib/ODBM_File.pm line 7

> This is because although the hints file svr4.pl contains
> $att{LIBS} = ['-ldbm -lucb -lc'];
> it is ignored, and the value in Makefile.PL
> WriteMakefile(LIBS => ["-ldbm -lucb"]);

The answer is:

When the hintsfile is checked, you can access the hash reference
$self, which is the thingie, that was called %att in former times. So
if you want to do the equivalent to

> $att{LIBS} = ['-ldbm -lucb -lc'];

you would now say

> $self->{LIBS} = ['-ldbm -lucb -lc'];

I'm very sorry, that I forgot to document that, I have done it now
(not only in this mail, but also in the pod.

> is used instead. Modifying the value in Makefile.PL makes the problem go away,
> but MakeMaker is so convoluted I wouldn't even know where to start looking, and
> yes, I *have* read the pod, and am still none the wiser about how I would do
> this with "new improved" OO MakeMaker. It is all very well to tell everyone to
> override the MY:: methods instead of using %att, but it isn't much use without
> a list of the overridable methods.

You're right again, the list currently is undocumented. The reason is,
that we yet have to decide, which subroutines SHOULD be
overridable. I'm studying all Makefile.PLs currently in use and I
won't disallow anything already in use by any Makefile.PL. But one day
we will freeze the interface, and then I can document the list. I want
to have MakeMaker be good enough, so no MY:: subroutines will be
needed at all. But I have to go through all existing MY:: subroutines
and offer alternatives. That'll take some time given my current work
situation.


> Alan Burlison aburlison@cix.compulink.co.uk


Thanks Alan for the reminder,
andreas
Re: [MM] Re: Hello, hello, anyone there? (WAS perl5.001n on Unisys U6000) [ In reply to ]
>>>>> " " == Tom Christiansen <tchrist@mox.perl.com> writes:

>> Has anyone read my mail?
> WHy yes. The superuser did, and promptly deleted it . It was delicious;
> thank you. :-) [Old unix joke]

> O Makemaker folk: how come when I say to install VERSION => 1.3,
> it thinks my files are named Socket-1.3.o, and so on and so forth.

Either you have to tell the extension a NAME attribute (NAME =>
Socket). We wanted to have a 'make checkmod' target, that could tell
you such, but that will have to wait.

> I'm apparently missing some obvious feature of makemaker.

Oh, you aren't the only one ;-)

> --tom

andreas
Re: [MM] Re: Hello, hello, anyone there? (WAS perl5.001n on Unisys U6000) [ In reply to ]
> From: Andreas Koenig <k@anna.mind.de>
>
> >>>>> " " == Tom Christiansen <tchrist@mox.perl.com> writes:
>
> >> Has anyone read my mail?
> > WHy yes. The superuser did, and promptly deleted it . It was delicious;
> > thank you. :-) [Old unix joke]
>
> > O Makemaker folk: how come when I say to install VERSION => 1.3,
> > it thinks my files are named Socket-1.3.o, and so on and so forth.
>
> Either you have to tell the extension a NAME attribute (NAME =>
> Socket). We wanted to have a 'make checkmod' target, that could tell
> you such, but that will have to wait.

Actually Tom's message sounds like a bug or at least something other
than just needing a NAME => ...

Tim.
Re: [MM] Hello, hello, anyone there? (WAS perl5.001n on Unisys U6000) [ In reply to ]
In-Reply-To: <199511101441.PAA07250@anna.mind.de>
> >> BUG 1
> >> Bug in Makemaker affecting extensions with subdirectories, i.e.
> >> ext/SDBM_file. A rule line in the generated makefile starts with
> > "@ -cd" >instead of "@- cd". I believe this has already been
> > reported. Patch >follows:
>
> That's fixed in 5.03 I think, at least in my copy.

Yes, I am sure someone else reported it and you said it had been fixed.

> >> BUG 2
> >> =====
[stuff]
> The answer is:
> When the hintsfile is checked, you can access the hash reference
> $self, which is the thingie, that was called %att in former times. So
> if you want to do the equivalent to
> > $att{LIBS} = ['-ldbm -lucb -lc'];
> you would now say
> > $self->{LIBS} = ['-ldbm -lucb -lc'];

I'll try that on monday & let you know if it fixes the problem. Many
thanks :-)

Alan Burlison aburlison@cix.compulink.co.uk