develooper Front page | perl.perl5.porters | Postings from January 2009

Re: [PATCH: perl@8482] partial support for dynaloading on OS/390

Thread Previous | Thread Next
Nicholas Clark
January 24, 2009 09:43
Re: [PATCH: perl@8482] partial support for dynaloading on OS/390
Message ID:
On Fri, Jan 19, 2001 at 06:12:05PM -0800, Peter Prymmer wrote:
> The following patch comes courtesy of the fine work done by John Goodyear
> and the other folks at MSDW.  It adds one new dl_dllload.xs file to the
> tar ball, but my suspicion is that the VM/ESA folks could set their hints
> to let dlsrc='dl_dllload.xs' and that we may be able to get rid of the
> dl_vmesa.xs file (Hello Neale?  Comments on that?)
> Files affected:
>   MANIFEST      # mention new file
>   Makefile.SH   # extra GROK!THIS spit for new $DPERL_EXTERNAL_GLOB var

Why is this needed?

As far as I can tell, all that it does is:

> +# However the easiest way to experiment with dynamic loading is with:
> +#  Configure -Dusedl
> +# You can even override some of this with things like:
> +#  Configure -Dusedl -Ddlext=so -Ddlsrc=dl_dllload.xs.
>  case "$usedl" in

implicitly remove -DDPERL_EXTERNAL_GLOB from the C compiler flags for opmini.o
for no dynamic linking

> +'')
> +    usedl='n' 
> +    case "$dlext" in
> +    '') dlext='none' ;;
> +    esac
> +    ;;

or explicitly add it for all files if dynamic linking is selected

> +define)

> +    ccflags="$ccflags -D_SHR_ENVIRON -DPERL_EXTERNAL_GLOB -Wc,dll"

> +    cccdlflags='-c -Wc,dll,EXPORTALL'
> +    # You might add '-Wl,EDIT=NO' to get rid of the symbol
> +    # information at the end of the executable.
> +    #
> +    # The following will need to be modified for the installed libperl.x
> +    ccdlflags="-W l,dll `pwd`/libperl.x"
> +    ldflags=''
> +    lddlflags='-W l,dll'
> +    ;;
>  esac
> -#case "$dlsrc" in
> -#'') dlsrc='none' ;;
> -#esac
> +# even on static builds using LIBPATH should be OK.
>  case "$ldlibpthname" in
>  '') ldlibpthname=LIBPATH ;;
>  esac

What is it with OS/390 that for a static build it must not have
-DDPERL_EXTERNAL_GLOB set for opmini.o?

And how come this doesn't break things even more horribly, as without that set,
opmini.o and hence miniperl is going to try to load File::Glob for glob(),
which is going to fail horribly even for static linking, because ./miniperl
is needed to be in working order to *build* File::Glob ?

I think that it's broken. As is, it prevents me simplifying something.

Nicholas Clark

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About