Edit

IABSD.fr/xenocara/xserver/hw/xfree86/sdksyms.sh

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2021-11-11 09:03:02
    Hash : e086cf5a
    Message : Update to xserver 21.1.0

  • xserver/hw/xfree86/sdksyms.sh
  • #!/bin/sh
    
    cat > sdksyms.c << EOF
    /* This file is automatically generated by sdksyms.sh. */
    #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
    
    #ifdef HAVE_XORG_CONFIG_H
    #include <xorg-config.h>
    #endif
    
    
    /* These must be included first */
    #include "misc.h"
    #include "miscstruct.h"
    
    
    /* render/Makefile.am */
    #include "picture.h"
    #include "mipict.h"
    #include "glyphstr.h"
    #include "picturestr.h"
    
    
    /* fb/Makefile.am */
    #include "fb.h"
    #include "fbrop.h"
    #include "fboverlay.h"
    #include "fbpict.h"
    /* wfb is still a module
    #include "wfbrename.h"
     */
    
    
    /* miext/shadow/Makefile.am -- module */
    /*
    #include "shadow.h"
     */
    
    
    /* miext/damage/Makefile.am */
    #include "damage.h"
    #include "damagestr.h"
    
    /* miext/sync/Makefile.am */
    #include "misync.h"
    #include "misyncstr.h"
    #if HAVE_XSHMFENCE
    #include "misyncshm.h"
    #endif
    
    /* Xext/Makefile.am -- half is module, half is builtin */
    #ifdef XV
    #include "xvdix.h"
    #include "xvmcext.h"
    #endif
    #include "geext.h"
    #ifdef MITSHM
    #include "shmint.h"
    #endif
    #include "syncsdk.h"
    #ifdef XINERAMA
    # include "panoramiXsrv.h"
    # include "panoramiX.h"
    #endif
    
    /* glx/Makefile.am */
    #ifdef GLX
    #include "vndserver.h"
    #endif
    
    /* hw/xfree86/int10/Makefile.am -- module */
    /*
    #include "xf86int10.h"
    #include "vbe.h"
    #include "vbeModes.h"
     */
    
    
    /* hw/xfree86/i2c/Makefile.am -- "mostly" modules */
    #include "xf86i2c.h"
    /*
    #include "bt829.h"
    #include "fi1236.h"
    #include "msp3430.h"
    #include "tda8425.h"
    #include "tda9850.h"
    #include "tda9885.h"
    #include "uda1380.h"
    #include "i2c_def.h"
     */
    
    
    /* hw/xfree86/modes/Makefile.am */
    #include "xf86Crtc.h"
    #include "xf86Modes.h"
    #include "xf86RandR12.h"
    /* #include "xf86Rename.h" */
    
    
    /* hw/xfree86/ddc/Makefile.am */
    #include "edid.h"
    #include "xf86DDC.h"
    
    
    /* hw/xfree86/dri2/Makefile.am -- module */
    #ifdef DRI2
    # include "dri2.h"
    #endif
    
    # include "dri3.h"
    
    /* hw/xfree86/vgahw/Makefile.am -- module */
    /*
    #include "vgaHW.h"
     */
    
    
    /* hw/xfree86/fbdevhw/Makefile.am -- module */
    /*
    #include "fbdevhw.h"
     */
    
    
    /* hw/xfree86/common/Makefile.am */
    #include "compiler.h"
    #include "xf86.h"
    #include "xf86Module.h"
    #include "xf86Opt.h"
    #ifdef XSERVER_LIBPCIACCESS
     #include "xf86VGAarbiter.h"
    #endif
    #include "xf86Priv.h"
    #include "xf86Privstr.h"
    #include "xf86cmap.h"
    #include "xf86fbman.h"
    #include "xf86str.h"
    #include "xf86Xinput.h"
    #include "xisb.h"
    #ifdef XV
    # include "xf86xv.h"
    # include "xf86xvmc.h"
    # include "xf86xvpriv.h"
    #endif
    #include "xorgVersion.h"
    #if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__)
    # include "xf86sbusBus.h"
    #endif
    
    
    /* hw/xfree86/ramdac/Makefile.am */
    #include "xf86Cursor.h"
    
    
    /* hw/xfree86/shadowfb/Makefile.am -- module */
    /*
    #include "shadowfb.h"
     */
    
    
    /* hw/xfree86/os-support/solaris/Makefile.am */
    #if defined(sun386)
    # include "agpgart.h"
    #endif
    
    
    /* hw/xfree86/os-support/Makefile.am */
    #include "xf86_OSproc.h"
    #include "xf86_OSlib.h"
    
    
    /* hw/xfree86/os-support/bus/Makefile.am */
    #ifdef XSERVER_LIBPCIACCESS
    # include "xf86Pci.h"
    #endif
    #if defined(__sparc__) || defined(__sparc)
    # include "xf86Sbus.h"
    #endif
    
    
    /* hw/xfree86/parser/Makefile.am */
    #include "xf86Parser.h"
    #include "xf86Optrec.h"
    
    
    /* hw/xfree86/dri/Makefile.am -- module */
    #ifdef XF86DRI
    # include "dri.h"
    # include "sarea.h"
    # include "dristruct.h"
    #endif
    
    
    /* mi/Makefile.am */
    #include "micmap.h"
    #include "miline.h"
    #include "mipointer.h"
    #include "mi.h"
    #include "migc.h"
    #include "mipointrst.h"
    #include "mizerarc.h"
    #include "micoord.h"
    #include "mifillarc.h"
    #include "mistruct.h"
    #include "mioverlay.h"
    
    
    /* randr/Makefile.am */
    #include "randrstr.h"
    #include "rrtransform.h"
    
    
    /* dbe/Makefile.am -- module */
    #ifdef DBE
    #include "dbestruct.h"
    #endif
    
    
    /* exa/Makefile.am -- module */
    /*
    #include "exa.h"
     */
    
    #ifdef COMPOSITE
    #include "compositeext.h"
    #endif
    
    /* xfixes/Makefile.am */
    #include "xfixes.h"
    
    
    /* include/Makefile.am */
    #include "XIstubs.h"
    #include "Xprintf.h"
    #include "closestr.h"
    #include "closure.h"
    #include "colormap.h"
    #include "colormapst.h"
    #include "hotplug.h"
    #include "client.h"
    #include "cursor.h"
    #include "cursorstr.h"
    #include "dix.h"
    #include "dixaccess.h"
    #include "dixevents.h"
    #define _FONTPROTO_H
    #include "dixfont.h"
    #include "dixfontstr.h"
    #include "dixgrabs.h"
    #include "dixstruct.h"
    #include "exevents.h"
    #include "extension.h"
    #include "extnsionst.h"
    #include "fourcc.h"
    #include "gc.h"
    #include "gcstruct.h"
    #include "globals.h"
    #include "input.h"
    #include "inputstr.h"
    /* already included */
    /*
    #include "misc.h"
    #include "miscstruct.h"
     */
    #include "opaque.h"
    #include "os.h"
    #include "pixmap.h"
    #include "pixmapstr.h"
    #include "privates.h"
    #include "property.h"
    #include "propertyst.h"
    #include "ptrveloc.h"
    #include "region.h"
    #include "regionstr.h"
    #include "registry.h"
    #include "resource.h"
    #include "rgb.h"
    #include "screenint.h"
    #include "scrnintstr.h"
    #include "selection.h"
    #include "servermd.h"
    #include "validate.h"
    #include "window.h"
    #include "windowstr.h"
    #include "xace.h"
    #include "xkbfile.h"
    #include "xkbsrv.h"
    #include "xkbstr.h"
    #include "xkbrules.h"
    #include "xserver-properties.h"
    
    EOF
    
    topdir=$(readlink -f $1)
    shift
    LC_ALL=C
    export LC_ALL
    ${CPP:-cpp} "$@" sdksyms.c > /dev/null || exit $?
    ${CPP:-cpp} "$@" sdksyms.c | ${AWK:-awk} -v topdir=$topdir '
    function basename(file) {
        sub(".*/", "", file)
        return file
    }
    BEGIN {
        sdk = 0;
        print("/*");
        print(" * These symbols are referenced to ensure they");
        print(" * will be available in the X Server binary.");
        print(" */");
        print("_X_HIDDEN void *xorg_symbols[] = {");
    
        printf("sdksyms.c:") > "sdksyms.dep";
    }
    /^# [0-9]+ "/ {
        # Match preprocessor linemarkers which have the form:
        # # linenum "filename" flags
        #
        # Only process text for sdk exports where the linemarker filename has a
        # relative path, or an absolute path matching $top_srcdir.
        #
    
        # canonicalize filename
        if ($3 in canonicalized) {
    	c = canonicalized[$3]
        } else {
    	cmd = "readlink -f " $3
    	cmd | getline c
    	close(cmd)
            canonicalized[$3] = c
        }
        # note that index() starts at 1; 0 means no match.
        sdk = $3 !~ /^"\// || index(c, topdir) == 1;
    
        if (sdk && $3 ~ /\.h"$/) {
    	# remove quotes
    	gsub(/"/, "", $3);
    	line = $2;
    	header = basename($3);
    	if (! headers[$3]) {
    	    printf(" \\\n  %s", $3) >> "sdksyms.dep";
    	    headers[$3] = 1;
    	}
        }
        next;
    }
    
    /^extern[ 	]/  {
        if (sdk) {
    	n = 3;
    
            # skip line numbers GCC 5 adds before __attribute__
            while ($n == "" || $0 ~ /^# [0-9]+ "/) {
               getline;
               n = 1;
            }
    
    	# skip attribute, if any
    	while ($n ~ /^(__attribute__|__global)/ ||
    	    # skip modifiers, if any
    	    $n ~ /^\*?(unsigned|const|volatile|struct|_X_EXPORT)$/ ||
    	    # skip pointer
    	    $n ~ /^[a-zA-Z0-9_]*\*$/) {
    	    n++;
                # skip line numbers GCC 5 adds after __attribute__
                while ($n == "" || $0 ~ /^# [0-9]+ "/) {
                   getline;
                   n = 1;
                }
            }
    	# hack: pid_t becomes __pid_t on NetBSD, same for uint32_t -> __uint32_t.
    	# GCC 5 inserts additional lines around this.
            if (($1 == "__pid_t" || $1 == "__uint32_t") && NF == 1) {
                getline;
                n++;
                # skip line numbers GCC 5 adds (after typedef return type?)
                while ($n == "" || $0 ~ /^# [0-9]+ "/) {
                   getline;
                   n = 1;
                }
    	}
    
    	# type specifier may not be set, as in
    	#   extern _X_EXPORT unsigned name(...)
    	if ($n !~ /[^a-zA-Z0-9_]/)
    	    n++;
    
    	# go back if we are at the parameter list already
    	if ($n ~ /^[(]([^*].*)?$/)
    	    n--;
    
    	# match
    	#    extern _X_EXPORT type (* name[])(...)
    	if ($n ~ /^[^a-zA-Z0-9_]+$/)
    	    n++;
    
    	# match
    	#	extern _X_EXPORT const name *const ...
    	if ($n ~ /^([^a-zA-Z0-9_]+)?const$/)
    	    n++;
    
    	# actual name may be in the next line, as in
    	#   extern _X_EXPORT type
    	# possibly ending with a *
    	#   name(...)
    	if ($n == "" || $n ~ /^\*+$/) {
    	    getline;
    	    n = 1;
    	    # indent may have inserted a blank link
    	    if ($0 == "")
    		getline;
    	}
    
    	# dont modify $0 or $n
    	symbol = $n;
    
    	# remove starting non word chars
    	sub(/^[^a-zA-Z0-9_]+/, "",symbol);
    
    	# remove from first non word to end of line
    	sub(/[^a-zA-Z0-9_].*/, "", symbol);
    
    	#print;
    	if (symbol != "")
    	    printf("    (void *) &%-50s /* %s:%s */\n", symbol ",", header, line);
        }
    }
    
    {
        line++;
    }
    
    END {
        print("};");
    
        print("") >> "sdksyms.dep";
    }' > _sdksyms.c
    
    STATUS=$?
    
    cat _sdksyms.c >> sdksyms.c
    rm _sdksyms.c
    
    [ $? != 0 ] && exit $?
    
    exit $STATUS