Hi folks,
I detected a minor problem while compiling with the most recent
xenomai code from svn. The Compilation would quit at linking if one
tries to build the posix skin as built-in module. Abort message:

ipc/built-in.o: In function `sem_init':
: multiple definition of `sem_init'
kernel/built-in.o:: first defined here
ld: Warning: size of symbol `sem_init' changed from 296 in
kernel/built-in.o to 55 in ipc/built-in.o

The problem is the sem_init() method of the SysV IPC routine in the
linux kernel, which is unluckily called excactly the same as the posix
sem_init() but differently declared. It's declared as

void __init sem_init (void)

in SysV IPC and

int sem_init(sem_t *sem, int pshared, unsigned value);

in POSIX. Thus the linker get confused trying to link the two symbols in
one kernel image. Workaround coulb be deactivating the SysV IPC routine
in the kernel or compile Posix skin as a loadable module.

Luotao Fu

Xenomai-core mailing list

Reply via email to