diff --git a/CMakeLists.txt b/CMakeLists.txt index 90924a3..fd32293 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,12 @@ set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS ON) # gnu11: hace falta para POSIX/BSD (termios, ioctl) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +# No funciona solo con CMAKE_C_EXTENSIONS, hay que definirlo explicitamente, aunque CMAKE_EXTENSIONS +# expone símbolos clave de libc y glibc, para que funcione en Linux hay que añadir la macro +# POSIX del compilador. Se debe definir antes que cualquier otro archivo o cabecera +add_compile_definitions(_XOPEN_SOURCE=700) # Usamos la versión 2008 POSIX +add_compile_definitions(_DEFAULT_SOURCE) + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE) endif() diff --git a/src/pty.c b/src/pty.c index a872093..acbdc49 100644 --- a/src/pty.c +++ b/src/pty.c @@ -1,8 +1,5 @@ /* Dueño: LevtCode. Portable: usar posix_openpt, no openpty (evita #ifdef). */ -/* Macro del compilador para poder usar posix_openpt. (Debe declararse casi al principio del código) */ -#define _XOPEN_SOURCE 600 - #include "omicron/pty.h" #include "omicron/sandbox.h" diff --git a/src/sandbox_darwin.c b/src/sandbox_darwin.c index d0f3688..69f0fca 100644 --- a/src/sandbox_darwin.c +++ b/src/sandbox_darwin.c @@ -17,6 +17,14 @@ om_sandbox *om_sandbox_prepare(const om_policy *p) return NULL; } +/* Ojo al implementar: sandbox_init() está marcada deprecada desde macOS 10.8 y + * con -Werror el build falla por -Wdeprecated-declarations. Sigue siendo la API + * viva de Seatbelt, así que NO apagar OMICRON_WERROR: envolver solo la llamada. + * #pragma clang diagnostic push + * #pragma clang diagnostic ignored "-Wdeprecated-declarations" + * rc = sandbox_init(s->profile, 0, &err); + * #pragma clang diagnostic pop + */ int om_sandbox_apply(const om_sandbox *s) { (void)s;