From 27c4490521261f7f53f494140d8a2b2a239306ef Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Wed, 14 Mar 2018 10:37:26 +0100 Subject: [PATCH] util/postprocess-makedepend.pl: For VC, don't include system headers All dependencies that VC gives us are absolute paths, so we need to check if some of them are within our source or build tree. We do that by comparing the start of each dependency with the absolute versions of our source and build directories. Reviewed-by: Andy Polyakov (Merged from https://github.com/openssl/openssl/pull/5591) --- util/postprocess-makedepend.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/util/postprocess-makedepend.pl b/util/postprocess-makedepend.pl index 790738015f..5d0cf3d02a 100644 --- a/util/postprocess-makedepend.pl +++ b/util/postprocess-makedepend.pl @@ -9,8 +9,15 @@ use strict; use warnings; -my $producer = shift @ARGV; +use lib '.'; +use configdata; + +use File::Spec::Functions qw(canonpath rel2abs); + +my $abs_srcdir = rel2abs($config{sourcedir}); +my $abs_blddir = rel2abs($config{builddir}); +my $producer = shift @ARGV; die "Producer not given\n" unless $producer; my $procedure = { @@ -98,7 +105,15 @@ my $procedure = { if (/^Note: including file: */) { (my $tail = $') =~ s/\s*\R$//; - return "${object}: \"$tail\"\n"; + + # VC gives us absolute paths for all include files, so to + # remove system header dependencies, we need to check that + # they don't match $abs_srcdir or $abs_blddir + $tail = canonpath($tail); + if ($tail =~ m|^\Q$abs_srcdir\E|i + || $tail =~ m|^\Q$abs_blddir\E|i) { + return "${object}: \"$tail\"\n"; + } } return undef; -- 2.40.0