Desidero utilizzare CPU_SET
, che è una macro specifica per Linux di glibc che deve essere definita in sched.h
La pagina di manuale indica chiaramente che è necessario definire _GNU_SOURCE
in modo che la macro sia definita. Tuttavia, guardando l'intestazione, CPU_SET
è definito solo se è definito __USE_GNU
(è presente una protezione #ifdef
). Mi sembra di ricordare alcuni anni fa che era necessario il _GNU_SOURCE
._GNU_SOURCE e __USE_GNU
Domande:
1) Chiaramente la manpage è spento. Come faccio a comunicare al manutentore che la manpage non è corretta?
2) Quando è avvenuto il passaggio da _GNU_SOURCE
a __USE_GNU
accadere (sia in termini di versione o tempo)
3) non vi sono circostanze in cui le nuove versioni di glibc utilizzano ancora _GNU_SOURCE
? Oppure posso presumere che la definizione di __USE_GNU
sia sufficiente?
Ho ancora errori se uso solo '_GNU_SOURCE'. Qualche altra idea sul perché potrebbe accadere? –
Tutte le macro di test delle funzioni come '_GNU_SOURCE' ** devono ** essere definite prima di ** qualsiasi ** intestazione standard inclusa. Non puoi aspettare di definirlo fino a poco prima che l'intestazione ti serva. –
Alla fine ho dovuto definire '_GNU_SOURCE' nella riga superiore del file di intestazione più interno, ma ha funzionato :) –