Home | History | Annotate | Download | only in doc
      1 <?xml version="1.0"?>
      2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      3                 xmlns:xhtml="http://www.w3.org/1999/xhtml"
      4                 version="1.0">
      5   <xsl:output method="text" encoding="UTF-8"/>
      6 
      7   <xsl:template match="/">
      8     <xsl:text>/*
      9  * elfgcchack.h: hack by Arjan van de Ven &lt;arjanv (a] redhat.com&gt; to speed
     10  *               up the code when using gcc for call within the library.
     11  *
     12  * Based on the analysis http://people.redhat.com/drepper/dsohowto.pdf
     13  * from Ulrich drepper. Rewritten to be generated from the XML description
     14  * file for libxml2 API
     15  * autogenerated with xsltproc doc/elfgcchack.xsl doc/libxml2-api.xml
     16  */
     17 
     18 #ifdef IN_LIBXML
     19 #ifdef __GNUC__
     20 #ifdef PIC
     21 #ifdef __linux__
     22 #if (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
     23 
     24 #include "libxml/c14n.h"
     25 #include "libxml/catalog.h"
     26 #include "libxml/chvalid.h"
     27 #include "libxml/debugXML.h"
     28 #include "libxml/dict.h"
     29 #include "libxml/DOCBparser.h"
     30 #include "libxml/encoding.h"
     31 #include "libxml/entities.h"
     32 #include "libxml/globals.h"
     33 #include "libxml/hash.h"
     34 #include "libxml/HTMLparser.h"
     35 #include "libxml/HTMLtree.h"
     36 #include "libxml/list.h"
     37 #include "libxml/nanoftp.h"
     38 #include "libxml/nanohttp.h"
     39 #include "libxml/parser.h"
     40 #include "libxml/parserInternals.h"
     41 #include "libxml/pattern.h"
     42 #include "libxml/relaxng.h"
     43 #include "libxml/SAX2.h"
     44 #include "libxml/SAX.h"
     45 #include "libxml/schemasInternals.h"
     46 #include "libxml/schematron.h"
     47 #include "libxml/threads.h"
     48 #include "libxml/tree.h"
     49 #include "libxml/uri.h"
     50 #include "libxml/valid.h"
     51 #include "libxml/xinclude.h"
     52 #include "libxml/xlink.h"
     53 #include "libxml/xmlautomata.h"
     54 #include "libxml/xmlerror.h"
     55 #include "libxml/xmlexports.h"
     56 #include "libxml/xmlIO.h"
     57 #include "libxml/xmlmemory.h"
     58 #include "libxml/xmlreader.h"
     59 #include "libxml/xmlregexp.h"
     60 #include "libxml/xmlsave.h"
     61 #include "libxml/xmlschemas.h"
     62 #include "libxml/xmlschemastypes.h"
     63 #include "libxml/xmlstring.h"
     64 #include "libxml/xmlunicode.h"
     65 #include "libxml/xmlversion.h"
     66 #include "libxml/xmlwriter.h"
     67 #include "libxml/xpath.h"
     68 #include "libxml/xpathInternals.h"
     69 #include "libxml/xpointer.h"
     70 #include "libxml/xmlmodule.h"
     71 
     72 /* special hot spot not exported ones */
     73 
     74 #ifdef bottom_globals
     75 #undef __xmlGenericError
     76 extern __typeof (__xmlGenericError) __xmlGenericError __attribute((alias("__xmlGenericError__internal_alias")));
     77 #else
     78 #ifndef __xmlGenericError
     79 extern __typeof (__xmlGenericError) __xmlGenericError__internal_alias __attribute((visibility("hidden")));
     80 #define __xmlGenericError __xmlGenericError__internal_alias
     81 #endif
     82 #endif
     83 
     84 #ifdef bottom_globals
     85 #undef __xmlGenericErrorContext
     86 extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext __attribute((alias("__xmlGenericErrorContext__internal_alias")));
     87 #else
     88 #ifndef __xmlGenericErrorContext
     89 extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext__internal_alias __attribute((visibility("hidden")));
     90 #define __xmlGenericErrorContext __xmlGenericErrorContext__internal_alias
     91 #endif
     92 #endif
     93 
     94 /* list generated from libxml2-api.xml */
     95 </xsl:text>
     96     <xsl:apply-templates select="/api/symbols/function"/>
     97     <xsl:text>
     98 #endif
     99 #endif
    100 #endif
    101 #endif
    102 #endif
    103 
    104 </xsl:text>
    105   </xsl:template>
    106 
    107   <xsl:template match="function">
    108     <xsl:variable name="str" select="string(@name)"/>
    109     <xsl:if test="(starts-with(@name, 'xml') or starts-with(@name, 'html') or contains(@name, 'Push') or contains(@name, 'Pop')) and (not(contains(@name, 'xmlDllMain')))">
    110       <xsl:variable name="alias" select="concat($str, '__internal_alias')"/>
    111       <xsl:apply-templates select="cond"/>
    112       <xsl:text>#ifdef bottom_</xsl:text>
    113       <xsl:value-of select="string(@module)"/>
    114       <xsl:text>
    115 #undef </xsl:text>
    116       <xsl:value-of select="$str"/>
    117       <xsl:text>
    118 extern __typeof (</xsl:text>
    119       <xsl:value-of select="$str"/>
    120       <xsl:text>) </xsl:text>
    121       <xsl:value-of select="$str"/>
    122       <xsl:text> __attribute((alias("</xsl:text>
    123       <xsl:value-of select="$alias"/>
    124       <xsl:text>")));
    125 #else
    126 #ifndef </xsl:text>
    127       <xsl:value-of select="$str"/>
    128       <xsl:text>
    129 </xsl:text>
    130       <xsl:text>extern __typeof (</xsl:text>
    131       <xsl:value-of select="$str"/>
    132       <xsl:text>) </xsl:text>
    133       <xsl:value-of select="$alias"/>
    134       <xsl:text> __attribute((visibility("hidden")));
    135 </xsl:text>
    136       <xsl:text>#define </xsl:text>
    137       <xsl:value-of select="$str"/>
    138       <xsl:text> </xsl:text>
    139       <xsl:value-of select="$alias"/>
    140       <xsl:text>
    141 #endif
    142 #endif
    143 </xsl:text>
    144       <xsl:apply-templates select="cond" mode="end"/>
    145       <xsl:text>
    146 </xsl:text>
    147     </xsl:if>
    148   </xsl:template>
    149   <xsl:template match="cond">
    150     <xsl:text>#if </xsl:text>
    151     <xsl:value-of select="."/>
    152     <xsl:text>
    153 </xsl:text>
    154   </xsl:template>
    155   <xsl:template match="cond" mode="end">
    156     <xsl:text>#endif
    157 </xsl:text>
    158   </xsl:template>
    159 </xsl:stylesheet>
    160 
    161