issue with cpluspluscheck and systemtap

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: issue with cpluspluscheck and systemtap
Date: 2013-02-28 03:16:00
Message-ID: 512ECBF0.5090807@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Newer versions of systemtap have some C++ code in their sys/sdt.h header
file (guarded by #ifdef __cpluplus). cpluspluscheck ends up wrapping
all of that into extern "C" { ... }, which ultimately results in

In file included from ./src/include/utils/probes.h:9:0,
from ./src/include/pg_trace.h:15,
from /tmp/cpluspluscheck.VuUGok/test.cpp:3:
/usr/include/sys/sdt.h:71:1: error: template with C linkage
/usr/include/sys/sdt.h:81:1: error: template specialization with C linkage
/usr/include/sys/sdt.h:82:1: error: template specialization with C linkage

etc.

I don't think there is a way to escape back into C++ linkage inside an
extern "C" block.

If there is no better way, I suggest we exclude pg_trace.h and
utils/probes.h from cpluspluscheck.

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2013-02-28 06:21:49 Re: Support for REINDEX CONCURRENTLY
Previous Message Craig Ringer 2013-02-27 23:57:34 Database system identifier via SELECT