toolchain/wrapper: extend paranoid check to -isystem
authorYann E. MORIN <yann.morin.1998@free.fr>
Mon, 29 Aug 2016 15:53:59 +0000 (17:53 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 18 Sep 2016 14:09:23 +0000 (16:09 +0200)
commit61cb120ee5795dd4fc9c5a42400fb879c9329ad9
tree962f13b0409c518a6bd573897ea6eabe2e0ee906
parent105a8c156c4818f121169996f5fbe6ebd46e0068
toolchain/wrapper: extend paranoid check to -isystem

Some packages, like libbsd, use -isystem flags to provide so-called
overrides to the system include files. In this particular case, this
is used in a .pc file, then used by antoher package; pkgconf does not
mangle this path; and eventually that other package ends up using
/usr/include/bsd to search for headers.

Our current toolchain wrapper is limited to looking for -I and -L, so
the paranoid check does not kick in.

Furthermore, as noticed by Arnout, there might be a bunch of other
so-unsafe options: -isysroot, -imultilib, -iquote, -idirafter, -iprefix,
-iwithprefix, -iwithprefixbefore; even -B and --sysroot are unsafe.

Extend the paranoid check to be able to check any arbitrary number of
potentially unsafe options:

  - add a list of options to check for, each with their length,
  - iterate over this list until we find a matching unsafe option.

Compared to previously, the list of options include -I and -L (which we
already had) extended with -idirafter, -iquote and -isystem, but leaving
all the others noticed by Arnout away, until we have a reason for
handling them.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
toolchain/toolchain-wrapper.c