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