summaryrefslogtreecommitdiffstats
path: root/src/detection/libc/libc_linux.c
blob: 53186a3568b43daeaefafa4ae639aa2635dadca1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "libc.h"

#define FF_STR_INDIR(x) #x
#define FF_STR(x) FF_STR_INDIR(x)

#include <features.h>

const char* ffDetectLibc(FFLibcResult* result) {
#ifdef __UCLIBC__
    result->name = "uClibc";
    result->version = FF_STR(__UCLIBC_MAJOR__) "." FF_STR(__UCLIBC_MINOR__) "." FF_STR(__UCLIBC_SUBLEVEL__);
#elif defined(__GNU_LIBRARY__)
    result->name = "glibc";
    result->version = FF_STR(__GLIBC__) "." FF_STR(__GLIBC_MINOR__);
#else
    result->name = "musl";
    #ifdef FF_MUSL_VERSION
    result->version = FF_MUSL_VERSION;
    #else
    result->version = NULL;
    #endif
#endif

    return NULL;
}