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