1*33bdb53dSJob Henandez Lara //===-- Including stdlib.h in overlay mode --------------------------------===// 2*33bdb53dSJob Henandez Lara // 3*33bdb53dSJob Henandez Lara // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*33bdb53dSJob Henandez Lara // See https://llvm.org/LICENSE.txt for license information. 5*33bdb53dSJob Henandez Lara // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*33bdb53dSJob Henandez Lara // 7*33bdb53dSJob Henandez Lara //===----------------------------------------------------------------------===// 8*33bdb53dSJob Henandez Lara 9*33bdb53dSJob Henandez Lara #ifndef LLVM_LIBC_HDR_STDLIB_OVERLAY_H 10*33bdb53dSJob Henandez Lara #define LLVM_LIBC_HDR_STDLIB_OVERLAY_H 11*33bdb53dSJob Henandez Lara 12*33bdb53dSJob Henandez Lara #ifdef LIBC_FULL_BUILD 13*33bdb53dSJob Henandez Lara #error "This header should only be included in overlay mode" 14*33bdb53dSJob Henandez Lara #endif 15*33bdb53dSJob Henandez Lara 16*33bdb53dSJob Henandez Lara // Overlay mode 17*33bdb53dSJob Henandez Lara 18*33bdb53dSJob Henandez Lara // glibc <stdlib.h> header might provide extern inline definitions for few 19*33bdb53dSJob Henandez Lara // functions, causing external alias errors. They are guarded by 20*33bdb53dSJob Henandez Lara // `__USE_FORTIFY_LEVEL`, which will be temporarily disabled. 21*33bdb53dSJob Henandez Lara 22*33bdb53dSJob Henandez Lara #ifdef __USE_FORTIFY_LEVEL 23*33bdb53dSJob Henandez Lara #define LIBC_OLD_USE_FORTIFY_LEVEL __USE_FORTIFY_LEVEL 24*33bdb53dSJob Henandez Lara #undef __USE_FORTIFY_LEVEL 25*33bdb53dSJob Henandez Lara #define __USE_FORTIFY_LEVEL 0 26*33bdb53dSJob Henandez Lara #endif 27*33bdb53dSJob Henandez Lara 28*33bdb53dSJob Henandez Lara #include <stdlib.h> 29*33bdb53dSJob Henandez Lara 30*33bdb53dSJob Henandez Lara #ifdef LIBC_OLD_USE_FORTIFY_LEVEL 31*33bdb53dSJob Henandez Lara #undef __USE_FORTIFY_LEVEL 32*33bdb53dSJob Henandez Lara #define __USE_FORTIFY_LEVEL LIBC_OLD_USE_FORTIFY_LEVEL 33*33bdb53dSJob Henandez Lara #undef LIBC_OLD_USE_FORTIFY_LEVEL 34*33bdb53dSJob Henandez Lara #endif 35*33bdb53dSJob Henandez Lara 36*33bdb53dSJob Henandez Lara #endif 37