xref: /aosp_15_r20/external/libxml2/libxml.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker /*
2*7c568831SAndroid Build Coastguard Worker  * libxml.h: internal header only used during the compilation of libxml
3*7c568831SAndroid Build Coastguard Worker  *
4*7c568831SAndroid Build Coastguard Worker  * See COPYRIGHT for the status of this software
5*7c568831SAndroid Build Coastguard Worker  *
6*7c568831SAndroid Build Coastguard Worker  * Author: [email protected]
7*7c568831SAndroid Build Coastguard Worker  */
8*7c568831SAndroid Build Coastguard Worker 
9*7c568831SAndroid Build Coastguard Worker #ifndef __XML_LIBXML_H__
10*7c568831SAndroid Build Coastguard Worker #define __XML_LIBXML_H__
11*7c568831SAndroid Build Coastguard Worker 
12*7c568831SAndroid Build Coastguard Worker /*
13*7c568831SAndroid Build Coastguard Worker  * These macros must be defined before including system headers.
14*7c568831SAndroid Build Coastguard Worker  * Do not add any #include directives above this block.
15*7c568831SAndroid Build Coastguard Worker  */
16*7c568831SAndroid Build Coastguard Worker #ifndef NO_LARGEFILE_SOURCE
17*7c568831SAndroid Build Coastguard Worker   #ifndef _LARGEFILE_SOURCE
18*7c568831SAndroid Build Coastguard Worker     #define _LARGEFILE_SOURCE
19*7c568831SAndroid Build Coastguard Worker   #endif
20*7c568831SAndroid Build Coastguard Worker   #ifndef _FILE_OFFSET_BITS
21*7c568831SAndroid Build Coastguard Worker     #define _FILE_OFFSET_BITS 64
22*7c568831SAndroid Build Coastguard Worker   #endif
23*7c568831SAndroid Build Coastguard Worker #endif
24*7c568831SAndroid Build Coastguard Worker 
25*7c568831SAndroid Build Coastguard Worker /*
26*7c568831SAndroid Build Coastguard Worker  * These files are generated by the build system and contain private
27*7c568831SAndroid Build Coastguard Worker  * and public build configuration.
28*7c568831SAndroid Build Coastguard Worker  */
29*7c568831SAndroid Build Coastguard Worker #include "config.h"
30*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h>
31*7c568831SAndroid Build Coastguard Worker 
32*7c568831SAndroid Build Coastguard Worker /*
33*7c568831SAndroid Build Coastguard Worker  * Due to some Autotools limitations, this variable must be passed as
34*7c568831SAndroid Build Coastguard Worker  * compiler flag. Define a default value if the macro wasn't set by the
35*7c568831SAndroid Build Coastguard Worker  * build system.
36*7c568831SAndroid Build Coastguard Worker  */
37*7c568831SAndroid Build Coastguard Worker #ifndef SYSCONFDIR
38*7c568831SAndroid Build Coastguard Worker   #define SYSCONFDIR "/etc"
39*7c568831SAndroid Build Coastguard Worker #endif
40*7c568831SAndroid Build Coastguard Worker 
41*7c568831SAndroid Build Coastguard Worker #if !defined(_WIN32) && \
42*7c568831SAndroid Build Coastguard Worker     !defined(__CYGWIN__) && \
43*7c568831SAndroid Build Coastguard Worker     (defined(__clang__) || \
44*7c568831SAndroid Build Coastguard Worker      (defined(__GNUC__) && (__GNUC__ >= 4)))
45*7c568831SAndroid Build Coastguard Worker   #define XML_HIDDEN __attribute__((visibility("hidden")))
46*7c568831SAndroid Build Coastguard Worker #else
47*7c568831SAndroid Build Coastguard Worker   #define XML_HIDDEN
48*7c568831SAndroid Build Coastguard Worker #endif
49*7c568831SAndroid Build Coastguard Worker 
50*7c568831SAndroid Build Coastguard Worker #if __GNUC__ * 100 + __GNUC_MINOR__ >= 207 || defined(__clang__)
51*7c568831SAndroid Build Coastguard Worker   #define ATTRIBUTE_UNUSED __attribute__((unused))
52*7c568831SAndroid Build Coastguard Worker #else
53*7c568831SAndroid Build Coastguard Worker   #define ATTRIBUTE_UNUSED
54*7c568831SAndroid Build Coastguard Worker #endif
55*7c568831SAndroid Build Coastguard Worker 
56*7c568831SAndroid Build Coastguard Worker #ifdef HAVE_FUNC_ATTRIBUTE_DESTRUCTOR
57*7c568831SAndroid Build Coastguard Worker   #define ATTRIBUTE_DESTRUCTOR __attribute__((destructor))
58*7c568831SAndroid Build Coastguard Worker #endif
59*7c568831SAndroid Build Coastguard Worker 
60*7c568831SAndroid Build Coastguard Worker #if defined(__clang__) || \
61*7c568831SAndroid Build Coastguard Worker     (defined(__GNUC__) && (__GNUC__ >= 8) && !defined(__EDG__))
62*7c568831SAndroid Build Coastguard Worker   #define ATTRIBUTE_NO_SANITIZE(arg) __attribute__((no_sanitize(arg)))
63*7c568831SAndroid Build Coastguard Worker #else
64*7c568831SAndroid Build Coastguard Worker   #define ATTRIBUTE_NO_SANITIZE(arg)
65*7c568831SAndroid Build Coastguard Worker #endif
66*7c568831SAndroid Build Coastguard Worker 
67*7c568831SAndroid Build Coastguard Worker #ifdef __clang__
68*7c568831SAndroid Build Coastguard Worker   #if __clang_major__ >= 12
69*7c568831SAndroid Build Coastguard Worker     #define ATTRIBUTE_NO_SANITIZE_INTEGER \
70*7c568831SAndroid Build Coastguard Worker       ATTRIBUTE_NO_SANITIZE("unsigned-integer-overflow") \
71*7c568831SAndroid Build Coastguard Worker       ATTRIBUTE_NO_SANITIZE("unsigned-shift-base")
72*7c568831SAndroid Build Coastguard Worker   #else
73*7c568831SAndroid Build Coastguard Worker     #define ATTRIBUTE_NO_SANITIZE_INTEGER \
74*7c568831SAndroid Build Coastguard Worker       ATTRIBUTE_NO_SANITIZE("unsigned-integer-overflow")
75*7c568831SAndroid Build Coastguard Worker   #endif
76*7c568831SAndroid Build Coastguard Worker #else
77*7c568831SAndroid Build Coastguard Worker   #define ATTRIBUTE_NO_SANITIZE_INTEGER
78*7c568831SAndroid Build Coastguard Worker #endif
79*7c568831SAndroid Build Coastguard Worker 
80*7c568831SAndroid Build Coastguard Worker #endif /* ! __XML_LIBXML_H__ */
81