xref: /llvm-project/libc/hdr/stdlib_overlay.h (revision 33bdb53d864e3e244d8fd5649062f17b7d4c958d)
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