On 2004-07-28, at 10:56:49 +0200, Rafael Garcia-Suarez wrote:
> Currently the .so produced by MakeMaker-generated makefiles come
> with an empty rpath. This can cause some weird problems with
> recent glibcs. So I propose the following path to MakeMaker,
> that tests if LD_RUN_PATH is empty, and if it is, doesn't include
> an rpath in the produced .so file.
>
> It will break things for people who hack the LD_RUN_PATH in the
> generated Makefile, but these people are evil anyway.
>
> Patch against bleadperl. It will be most probably included in
> Mandrakelinux anyway.
>
> Index: lib/ExtUtils/MM_Unix.pm
> ===================================================================
> --- lib/ExtUtils/MM_Unix.pm (revision 3793)
> +++ lib/ExtUtils/MM_Unix.pm (working copy)
> @@ -1156,8 +1156,12 @@
> }
> }
>
> + my $ld_run_path_shell = "";
> + if ($self->{LD_RUN_PATH} ne "") {
> + $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
> + }
> push(@m,
> -' LD_RUN_PATH="$(LD_RUN_PATH)" $(LD) '.$ldrun.' $(LDDLFLAGS) '.$ldfrom.
> +' '.$ld_run_path_shell.'$(LD) '.$ldrun.' $(LDDLFLAGS) '.$ldfrom.
> ' $(OTHERLDFLAGS) -o $@ $(MYEXTLIB) $(PERL_ARCHIVE) '.$libs.' $(PERL_ARCHIVE_AFTER)
> $(EXPORT_LIST) $(INST_DYNAMIC_FIX)');
> push @m, '
> $(CHMOD) $(PERM_RWX) $@
I'd probably also remove the empty LD_RUN_PATH from the const_loadlibs
section (only when it is empty, of course), or at least add a comment.
Marcus
--
This universe shipped by weight, not by volume. Some expansion of the
contents may have occurred during shipment.