From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-3.8 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id B2CB71F4C6 for ; Sat, 2 Nov 2019 02:03:32 +0000 (UTC) From: Eric Wong To: mwrap-perl@80x24.org Subject: [PATCH 5/7] script/mwrap-perl: more portable Mwrap.so detection Date: Sat, 2 Nov 2019 02:03:29 +0000 Message-Id: <20191102020331.28050-6-e@80x24.org> In-Reply-To: <20191102020331.28050-1-e@80x24.org> References: <20191102020331.28050-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: @DynaLoader::dl_shared_objects is a documented interface in DynaLoader(3pm), so we can use that instead of relying on /proc/$$/maps on Linux. --- script/mwrap-perl | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/script/mwrap-perl b/script/mwrap-perl index 5e5eec4..8d372eb 100644 --- a/script/mwrap-perl +++ b/script/mwrap-perl @@ -3,22 +3,8 @@ # License: GPL-2.0+ use strict; use Devel::Mwrap; -my $so; -if ($^O eq 'linux') { - my $maps = do { - open my $fh, '<', "/proc/$$/maps" or - die "/proc/$$/maps not accessible: $!\n"; - local $/; - <$fh>; - }; - if ($maps =~ m![ \t](/[^\n]+?/Mwrap\.so)$!sm) { - $so = $1; - } else { - die "Mwrap.so not found in: $so\n"; - } -} else { - die "unsupported OS ($^O ne 'linux')"; -} +my ($so) = grep(m!/Mwrap\.so\z!, @DynaLoader::dl_shared_objects); +defined($so) or die 'Mwrap.so not loaded'; my $cur = $ENV{LD_PRELOAD}; if (defined $cur) { my @cur = split(/[: \t]+/, $cur);