diff --git a/libc/hdr/fcntl_overlay.h b/libc/hdr/fcntl_overlay.h index c1cc98b0ebb2..17ae78b3d0ec 100644 --- a/libc/hdr/fcntl_overlay.h +++ b/libc/hdr/fcntl_overlay.h @@ -20,6 +20,11 @@ // `__USE_FORTIFY_LEVEL`, which will be temporarily disabled // with `_FORTIFY_SOURCE`. +#ifdef _FORTIFY_SOURCE +#define LIBC_OLD_FORTIFY_SOURCE _FORTIFY_SOURCE +#undef _FORTIFY_SOURCE +#endif + #ifdef __USE_FORTIFY_LEVEL #define LIBC_OLD_USE_FORTIFY_LEVEL __USE_FORTIFY_LEVEL #undef __USE_FORTIFY_LEVEL @@ -28,6 +33,11 @@ #include +#ifdef LIBC_OLD_FORTIFY_SOURCE +#define _FORTIFY_SOURCE LIBC_OLD_FORTIFY_SOURCE +#undef LIBC_OLD_FORTIFY_SOURCE +#endif + #ifdef LIBC_OLD_USE_FORTIFY_LEVEL #undef __USE_FORTIFY_LEVEL #define __USE_FORTIFY_LEVEL LIBC_OLD_USE_FORTIFY_LEVEL diff --git a/libc/hdr/types/CMakeLists.txt b/libc/hdr/types/CMakeLists.txt index c4d14e6f8931..68a0e9603f97 100644 --- a/libc/hdr/types/CMakeLists.txt +++ b/libc/hdr/types/CMakeLists.txt @@ -51,6 +51,8 @@ add_proxy_header_library( struct_flock HDRS struct_flock.h + DEPENDS + libc.hdr.fcntl_overlay FULL_BUILD_DEPENDS libc.include.llvm-libc-types.struct_flock ) @@ -59,6 +61,8 @@ add_proxy_header_library( struct_flock64 HDRS struct_flock64.h + DEPENDS + libc.hdr.fcntl_overlay FULL_BUILD_DEPENDS libc.include.llvm-libc-types.struct_flock64 ) @@ -67,6 +71,8 @@ add_proxy_header_library( struct_f_owner_ex HDRS struct_f_owner_ex.h + DEPENDS + libc.hdr.fcntl_overlay FULL_BUILD_DEPENDS libc.include.llvm-libc-types.struct_f_owner_ex ) diff --git a/libc/hdr/types/struct_f_owner_ex.h b/libc/hdr/types/struct_f_owner_ex.h index 49985115ae4b..6e37cea6df84 100644 --- a/libc/hdr/types/struct_f_owner_ex.h +++ b/libc/hdr/types/struct_f_owner_ex.h @@ -14,7 +14,7 @@ #else -#include +#include "hdr/fcntl_overlay.h" #endif // LIBC_FULL_BUILD diff --git a/libc/hdr/types/struct_flock.h b/libc/hdr/types/struct_flock.h index a552b91c432b..6a6c928e6fa6 100644 --- a/libc/hdr/types/struct_flock.h +++ b/libc/hdr/types/struct_flock.h @@ -14,7 +14,7 @@ #else -#include +#include "hdr/fcntl_overlay.h" #endif // LIBC_FULL_BUILD diff --git a/libc/hdr/types/struct_flock64.h b/libc/hdr/types/struct_flock64.h index 84fe67816c33..fcfda59479a2 100644 --- a/libc/hdr/types/struct_flock64.h +++ b/libc/hdr/types/struct_flock64.h @@ -14,7 +14,7 @@ #else -#include +#include "hdr/fcntl_overlay.h" #endif // LIBC_FULL_BUILD