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