[Vala] private extern class methods.



Dear list,

I encountered a very hidden problem with private extern class methods,
which I would like to share with you.

The scenario is like this. It compiles, links. everything seems fine
until the library is installed: the produced .so file will have a wrong
reloc symbol which doesn't work with SELinux!):

A member function of a class is externally written in C.

# Class.vala
public class Class {
    private extern static void func();
}
# Class-ccode.c
void class_func() {
// Do stuff
}

The generated ccode:
# Class.c
...
...
static void func();
...
...

This seems to be a bug in valac. 
The private extern method actually should be declared without the static
keyword but with an extern instead.

Regards,

Yu




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]