about header file parsing

Marc Nieper-Wißkirchen marc.nieper@gmail.com
Tue Jan 1 00:00:00 GMT 2019


Am 08.01.19 um 22:15 schrieb Basile Starynkevitch:
> 
> On 1/8/19 11:50 AM, akrl@sdf.org wrote:
>> Hi all,
>> I have a basic question.
>> Is there a way to ask libgccjit to parse a conventional .h file?
> 
> I have asked a very similar question in 
> https://gcc.gnu.org/ml/jit/2015-q2/msg00093.html
> 
>> Or alternatively is there a way to have an header file parsed and
>> converted in the equivalent libgccjit api calls?
>> I ask this because I noticed that, if you jit some code that have to
>> inter-operate with non jitted code, maintaining two duplicated 
>> definitions
>> of all data structures can be quite painful if these are not trivial.
>> Alternatively what's the suggested work flow?
> 
> I am not sure there is one yet, in practice.
> 
> A possible work-around (not entirely trivial) might be to do the 
> "opposite": use GCC itself to parse the header file, and write your GCC 
> plugin extracting all the relevant information for your particular usage 
> of libgccjit. I have no idea how easy that can be for you.
> 
> I am not even sure if all the features of C (including some common 
> extensions accepted by GCC) are usable from libgccjit. Perhaps bit 
> fields and computed gotos like `goto *ptr` and statement expressions 
> like `({int x=0; while (y>0) x+=f(y--); x;})` are not easily achievable 
> in libgccjit.
> 
> 
> Still another thing could be to use LTO: you'll compile your C file with 
> GCC using -flto, you'll do LIBGCCJIT things, and the final executable 
> sould be compiled and linked with -flto.

What would you do with macros defined in the header file that form part 
of the API? They won't be visible after compiling (already after 
preprocessing).

-- Marc

> 
> Cheers.
> 



More information about the Jit mailing list