diff --git a/tools/argdist.py b/tools/argdist.py index f5422d90c827..35210829ac9f 100755 --- a/tools/argdist.py +++ b/tools/argdist.py @@ -619,7 +619,8 @@ def __init__(self): "(see examples below)") parser.add_argument("-I", "--include", action="append", metavar="header", - help="additional header files to include in the BPF program") + help="additional header files to include in the BPF program " + "as either full path, or relative to '/usr/include'") self.args = parser.parse_args() self.usdt_ctx = None @@ -640,7 +641,12 @@ def _generate_program(self): #include """ % self.args.string_size for include in (self.args.include or []): - bpf_source += "#include <%s>\n" % include + if include.startswith((".", "/")): + include = os.path.abspath(include) + bpf_source += "#include \"%s\"\n" % include + else: + bpf_source += "#include <%s>\n" % include + bpf_source += BPF.generate_auto_includes( map(lambda p: p.raw_spec, self.probes)) for probe in self.probes: diff --git a/tools/trace.py b/tools/trace.py index 5ea5e4b2b459..aa2c62aeeb87 100755 --- a/tools/trace.py +++ b/tools/trace.py @@ -624,7 +624,8 @@ def __init__(self): help="probe specifier (see examples)") parser.add_argument("-I", "--include", action="append", metavar="header", - help="additional header files to include in the BPF program") + help="additional header files to include in the BPF program " + "as either full path, or relative to '/usr/include'") self.args = parser.parse_args() if self.args.tgid and self.args.pid: parser.error("only one of -p and -t may be specified") @@ -644,7 +645,11 @@ def _generate_program(self): """ for include in (self.args.include or []): - self.program += "#include <%s>\n" % include + if include.startswith((".", "/")): + include = os.path.abspath(include) + self.program += "#include \"%s\"\n" % include + else: + self.program += "#include <%s>\n" % include self.program += BPF.generate_auto_includes( map(lambda p: p.raw_probe, self.probes)) for probe in self.probes: