retitle 758471 explicit LD settings in subdirectory Makefile.PL files can't be
overridden from the command line
tag 758471 patch
thanks
On Sun, Aug 24, 2014 at 11:19:10AM -0700, Niko Tyni wrote:
> severity 758471 normal
> thanks
>
> On Sun, Aug 17, 2014 at 11:21:19PM +0300, Niko Tyni wrote:
> > Package: perl
> > Version: 5.20.0-4
> > Severity: important
> > Tags: security
> >
> > There seems to be a regression from the 5.18 packages in passing linker
> > build flags into subdirectory builds. At least libwx-perl is now built
> > with the default linker and flags in all its subdirectories, resulting in
> > "less hardenedness" (softening?).
>
> It looks like libwx-perl is a special case because it's explicitly
> setting LD in Wx::build::MakeMaker::Any_wx_config::get_flags():
> $config{LD} = $ENV{CXX} || Alien::wxWidgets->linker;
>
> Our 5.18 patch to ExtUtils::MakeMaker allowed overriding this
> via the command line, but the fix adopted upstream doesn't.
Patch attached. This is essentially the same thing we used for 5.18.
--
Niko Tyni [email protected]
>From 0e3da8193b706becc60dd1243ffeecef27c5b324 Mon Sep 17 00:00:00 2001
From: Niko Tyni <[email protected]>
Date: Sun, 24 Aug 2014 12:56:11 -0700
Subject: [PATCH] Pass LD settings through to subdirectories
[rt.cpan.org #28632] fixed most of passing LD down to subdirectory
Makefile.PL files. However, there are some distributions (at least Wx)
that explicitly set LD. Those still can't be overridden from the
command line. Adding LD to the PASTHRU list fixes this.
Bug-Debian: https://bugs.debian.org/758471
---
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
index c19a5f9..fb59448 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
@@ -2746,7 +2746,7 @@ sub pasthru {
$sep .= "\\\n\t";
foreach my $key (qw(LIB LIBPERL_A LINKTYPE OPTIMIZE
- PREFIX INSTALL_BASE)
+ LD PREFIX INSTALL_BASE)
)
{
next unless defined $self->{$key};
--
2.1.0