Макрос препроцессора ядра Illumos
Я не могу найти информацию о том, какой макрос использовать в ifdef для определения ядра illumos. Я использую __linux для ловли Linux.
Наполнитель для грамматики стека переполнения проверить наполнитель наполнитель наполнитель.
1 ответ
Ядра на основе Illumos, такие как SmartOS и OpenIndiana, используют __sun
и иногда предлагается проверить оба __sun
а также __SVR4
,
[root@mysmartostestzone ~]# uname -a
SunOS mysmartostestzone 5.11 joyent_20170202T033902Z i86pc i386 i86pc Solaris
[root@mysmartostestzone ~]# cat test.c
#include <stdio.h>
int
main(int argc, char **argv)
{
#ifdef sun
printf("sun\n");
#endif
#ifdef __sun
printf("__sun\n");
#endif
#if defined(__sun) && defined(__SVR4)
printf("__sun && __SVR4\n");
#endif
}
[root@mysmartostestzone ~]# cc test.c
[root@mysmartostestzone ~]# ./a.out
sun
__sun
__sun && __SVR4