Craig A. Berry wrote:
At 8:49 AM -0500 3/16/06, John E. Malmberg wrote:

Craig A. Berry wrote:

At 7:02 AM -0500 3/16/06, John E. Malmberg wrote:


I have found that the link command for executables needs to be
changed for threaded Perl build. The additional qualifiers are
ignored for  shared images.

I am not sure how to modify configure.com and descrip.mms_template
etc  to do this.

When building a threaded Perl, the link command should be:

$LINK :== LINK/THREADS_ENABLE=(MULTIPLE,UPCALLS)

Setting the above command before building Perl is the current work
around that I am using.

This fixes t/op/threads.t to actually run test 4 instead of hanging.

Thanks for tracking this down.  The "workaround" should be to simply
answer yes to the question:

Enable multiple kernel threads and upcalls?

at configuration time.   We turn it off by default because there were
problems with these options when first released some years ago.  We
should probably turn it on by default for VMS 7.2 and later, or maybe
7.3.  One reason I've never done that is that I have only
single-processor systems to test on.

I will look at configure.com then.
I may have spoken too soon. It looks like this option only affects
compiling, not linking, so there may be a bit more configuration work
to do.

I looked at the code. Configure.com is setting up a special symbol that the procedure that converts descrip.mms_template to descrip.mms uses to change the linker behavior for it. This makes it harder to break apart the two flags.

I do not see how it changes the linker behavior for other images with main() modules that link against perlshr.

I also notice that the configure.com procedure is able to configure some types of threaded build options that there no longer is a way to build.

Also as I noted with my patch to thread.h, more stack is needed for
posix threads.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to