Commit f4501dd9 authored by Frency Govoni's avatar Frency Govoni
Browse files

Deleted .gitlab-ci/i686-linux-gnu, .gitlab-ci/run_build.sh,...

Deleted .gitlab-ci/i686-linux-gnu, .gitlab-ci/run_build.sh, .gitlab-ci/run_distcheck.sh, .gitlab-ci/run_meson.sh, .gitlab-ci/ubuntu_install.sh, include/EGL/egl.h, include/EGL/eglext.h, include/EGL/eglplatform.h, include/GL/gl.h, include/GL/glcorearb.h, include/GL/glext.h, include/GL/glx.h, include/GL/glxext.h, include/GLES/egl.h, include/GLES/gl.h, include/GLES/glext.h, include/GLES/glplatform.h, include/GLES2/gl2.h, include/GLES2/gl2ext.h, include/GLES2/gl2platform.h, include/GLES3/gl3.h, include/GLES3/gl31.h, include/GLES3/gl32.h, include/GLES3/gl3ext.h, include/GLES3/gl3platform.h, include/KHR/khrplatform.h, include/glvnd/GLdispatchABI.h, include/glvnd/libeglabi.h, include/glvnd/libglxabi.h, include/Makefile.am, include/c99_compat.h, include/compiler.h, include/glheader.h, include/glvnd_list.h, include/lkdhash.h, include/meson.build, src/EGL/Makefile.am, src/EGL/egl-symbol-check.sh, src/EGL/egl.pc.in, src/EGL/egl.symbols, src/EGL/egldispatchstubs.c, src/EGL/egldispatchstubs.h, src/EGL/icd_enumeration.md, src/EGL/libegl.c, src/EGL/libeglabipriv.h, src/EGL/libeglcurrent.c, src/EGL/libeglcurrent.h, src/EGL/libeglerror.c, src/EGL/libeglerror.h, src/EGL/libeglmapping.c, src/EGL/libeglmapping.h, src/EGL/libeglvendor.c, src/EGL/libeglvendor.h, src/EGL/meson.build, src/GL/.gitignore, src/GL/Makefile.am, src/GL/gl-symbol-check.sh, src/GL/gl.pc.in, src/GL/gl.symbols, src/GL/libgl.c, src/GL/meson.build, src/GLESv1/.gitignore, src/GLESv1/Makefile.am, src/GLESv1/glesv1-symbol-check.sh, src/GLESv1/glesv1.symbols, src/GLESv1/glesv1_cm.pc.in, src/GLESv1/meson.build, src/GLESv2/.gitignore, src/GLESv2/Makefile.am, src/GLESv2/glesv2-symbol-check.sh, src/GLESv2/glesv2.pc.in, src/GLESv2/glesv2.symbols, src/GLESv2/meson.build, src/GLX/.gitignore, src/GLX/Makefile.am, src/GLX/gen_glx_stubs.py, src/GLX/glvnd_genentry.c, src/GLX/glvnd_genentry.h, src/GLX/glx-symbol-check.sh, src/GLX/glx.pc.in, src/GLX/glx.symbols, src/GLX/libglx.c, src/GLX/libglxabipriv.h, src/GLX/libglxcurrent.h, src/GLX/libglxgl.h, src/GLX/libglxmapping.c, src/GLX/libglxmapping.h, src/GLX/libglxproto.c, src/GLX/libglxproto.h, src/GLX/libglxthread.h, src/GLX/meson.build, src/GLdispatch/vnd-glapi/.gitignore, src/GLdispatch/vnd-glapi/Makefile.am, src/GLdispatch/vnd-glapi/entry.h, src/GLdispatch/vnd-glapi/entry_aarch64_tsd.c, src/GLdispatch/vnd-glapi/entry_armv7_tsd.c, src/GLdispatch/vnd-glapi/entry_common.c, src/GLdispatch/vnd-glapi/entry_common.h, src/GLdispatch/vnd-glapi/entry_files.mk, src/GLdispatch/vnd-glapi/entry_ppc64_tls.c, src/GLdispatch/vnd-glapi/entry_ppc64_tsd.c, src/GLdispatch/vnd-glapi/entry_pure_c.c, src/GLdispatch/vnd-glapi/entry_simple_asm.c, src/GLdispatch/vnd-glapi/entry_x86_64_tls.c, src/GLdispatch/vnd-glapi/entry_x86_64_tsd.c, src/GLdispatch/vnd-glapi/entry_x86_tls.c, src/GLdispatch/vnd-glapi/entry_x86_tsd.c, src/GLdispatch/vnd-glapi/glapi.h, src/GLdispatch/vnd-glapi/mapi_glapi.c, src/GLdispatch/vnd-glapi/mapi_tmp.h, src/GLdispatch/vnd-glapi/meson.build, src/GLdispatch/vnd-glapi/stub.c, src/GLdispatch/vnd-glapi/stub.h, src/GLdispatch/vnd-glapi/table.c, src/GLdispatch/vnd-glapi/table.h, src/GLdispatch/vnd-glapi/u_compiler.h, src/GLdispatch/vnd-glapi/u_current.h, src/GLdispatch/vnd-glapi/u_current_tls.c, src/GLdispatch/vnd-glapi/u_current_tsd.c, src/GLdispatch/vnd-glapi/u_macros.h, src/GLdispatch/GLdispatch.c, src/GLdispatch/GLdispatch.h, src/GLdispatch/GLdispatchPrivate.h, src/GLdispatch/Makefile.am, src/GLdispatch/export_list_tls.ver, src/GLdispatch/export_list_tsd.ver, src/GLdispatch/meson.build, src/OpenGL/.gitignore, src/OpenGL/Makefile.am, src/OpenGL/libopengl.c, src/OpenGL/meson.build, src/OpenGL/ogl-symbol-check.sh, src/OpenGL/ogl.symbols, src/OpenGL/opengl.pc.in, src/generate/xml/egl.xml, src/generate/xml/gl.xml, src/generate/xml/gl_other.xml, src/generate/xml/glx.xml, src/generate/xml/glx_other.xml, src/generate/eglFunctionList.py, src/generate/genCommon.py, src/generate/gen_egl_dispatch.py, src/generate/gen_gldispatch_mapi.py, src/generate/gen_libOpenGL_exports.py, src/generate/gen_libgl_glxstubs.py, src/generate/meson.build, src/util/cJSON/LICENSE, src/util/uthash/doc/ChangeLog.html, src/util/uthash/doc/ChangeLog.txt, src/util/uthash/doc/banner.png, src/util/uthash/doc/banner.svg, src/util/uthash/doc/google315d692c9c632ed0.html, src/util/uthash/doc/index.html, src/util/uthash/doc/license.html, src/util/uthash/doc/rss.png, src/util/uthash/doc/styles.css, src/util/uthash/doc/todo.txt, src/util/uthash/doc/userguide.html, src/util/uthash/doc/userguide.txt, src/util/uthash/doc/utarray.html, src/util/uthash/doc/utarray.txt, src/util/uthash/doc/uthash-mini.png, src/util/uthash/doc/uthash-mini.svg, src/util/uthash/doc/uthash.png, src/util/uthash/doc/utlist.html, src/util/uthash/doc/utlist.txt, src/util/uthash/doc/utstring.html, src/util/uthash/doc/utstring.txt, src/util/uthash/src/utarray.h, src/util/uthash/src/uthash.h, src/util/uthash/src/utlist.h, src/util/uthash/src/utstring.h, src/util/uthash/tests/lru_cache/cache.c, src/util/uthash/tests/lru_cache/cache.h, src/util/uthash/tests/lru_cache/main.c, src/util/uthash/tests/threads/README, src/util/uthash/tests/threads/do_tests, src/util/uthash/tests/threads/test1.c, src/util/uthash/tests/threads/test2.c, src/util/uthash/tests/README, src/util/uthash/tests/all_funcs, src/util/uthash/tests/bloom_perf.c, src/util/uthash/tests/bloom_perf.sh, src/util/uthash/tests/do_tests, src/util/uthash/tests/do_tests.cygwin, src/util/uthash/tests/do_tests.mingw, src/util/uthash/tests/do_tests_win32.cmd, src/util/uthash/tests/emit_keys.c, src/util/uthash/tests/example.c, src/util/uthash/tests/hashscan.c, src/util/uthash/tests/keystat.c, src/util/uthash/tests/keystats, src/util/uthash/tests/mexpand, src/util/uthash/tests/simkeys.pl, src/util/uthash/tests/sleep_test.c, src/util/uthash/tests/tdiff.cpp, src/util/uthash/tests/test1.ans, src/util/uthash/tests/test1.c, src/util/uthash/tests/test10.ans, src/util/uthash/tests/test10.c, src/util/uthash/tests/test11.ans, src/util/uthash/tests/test11.c, src/util/uthash/tests/test11.dat, src/util/uthash/tests/test12.ans, src/util/uthash/tests/test12.c, src/util/uthash/tests/test13.ans, src/util/uthash/tests/test13.c, src/util/uthash/tests/test14.ans, src/util/uthash/tests/test14.c, src/util/uthash/tests/test14.dat, src/util/uthash/tests/test15.ans, src/util/uthash/tests/test15.c, src/util/uthash/tests/test16.ans, src/util/uthash/tests/test16.c, src/util/uthash/tests/test17.ans, src/util/uthash/tests/test17.c, src/util/uthash/tests/test18.ans, src/util/uthash/tests/test18.c, src/util/uthash/tests/test19.ans, src/util/uthash/tests/test19.c, src/util/uthash/tests/test2.ans, src/util/uthash/tests/test2.c, src/util/uthash/tests/test20.ans, src/util/uthash/tests/test20.c, src/util/uthash/tests/test21.ans, src/util/uthash/tests/test21.c, src/util/uthash/tests/test22.ans, src/util/uthash/tests/test22.c, src/util/uthash/tests/test23.ans, src/util/uthash/tests/test23.c, src/util/uthash/tests/test24.ans, src/util/uthash/tests/test24.c, src/util/uthash/tests/test25.ans, src/util/uthash/tests/test25.c, src/util/uthash/tests/test26.ans, src/util/uthash/tests/test26.c, src/util/uthash/tests/test27.ans, src/util/uthash/tests/test27.c, src/util/uthash/tests/test28.ans, src/util/uthash/tests/test28.c, src/util/uthash/tests/test29.ans, src/util/uthash/tests/test29.c, src/util/uthash/tests/test3.ans, src/util/uthash/tests/test3.c, src/util/uthash/tests/test30.ans, src/util/uthash/tests/test30.c, src/util/uthash/tests/test31.ans, src/util/uthash/tests/test31.c, src/util/uthash/tests/test32.ans, src/util/uthash/tests/test32.c, src/util/uthash/tests/test33.ans, src/util/uthash/tests/test33.c, src/util/uthash/tests/test34.ans, src/util/uthash/tests/test34.c, src/util/uthash/tests/test35.ans, src/util/uthash/tests/test35.c, src/util/uthash/tests/test36.ans, src/util/uthash/tests/test36.c, src/util/uthash/tests/test37.ans, src/util/uthash/tests/test37.c, src/util/uthash/tests/test38.ans, src/util/uthash/tests/test38.c, src/util/uthash/tests/test39.ans, src/util/uthash/tests/test39.c, src/util/uthash/tests/test4.ans, src/util/uthash/tests/test4.c, src/util/uthash/tests/test40.ans, src/util/uthash/tests/test40.c, src/util/uthash/tests/test41.ans, src/util/uthash/tests/test41.c, src/util/uthash/tests/test42.ans, src/util/uthash/tests/test42.c, src/util/uthash/tests/test43.ans, src/util/uthash/tests/test43.c, src/util/uthash/tests/test44.ans, src/util/uthash/tests/test44.c, src/util/uthash/tests/test45.ans, src/util/uthash/tests/test45.c, src/util/uthash/tests/test46.ans, src/util/uthash/tests/test46.c, src/util/uthash/tests/test47.ans, src/util/uthash/tests/test47.c, src/util/uthash/tests/test48.ans, src/util/uthash/tests/test48.c, src/util/uthash/tests/test49.ans, src/util/uthash/tests/test49.c, src/util/uthash/tests/test5.ans, src/util/uthash/tests/test5.c, src/util/uthash/tests/test50.ans, src/util/uthash/tests/test50.c, src/util/uthash/tests/test51.ans, src/util/uthash/tests/test51.c, src/util/uthash/tests/test52.ans, src/util/uthash/tests/test52.c, src/util/uthash/tests/test53.ans, src/util/uthash/tests/test53.c, src/util/uthash/tests/test54.ans, src/util/uthash/tests/test54.c, src/util/uthash/tests/test55.ans, src/util/uthash/tests/test55.c, src/util/uthash/tests/test56.ans, src/util/uthash/tests/test56.c, src/util/uthash/tests/test57.ans, src/util/uthash/tests/test57.c, src/util/uthash/tests/test58.ans, src/util/uthash/tests/test58.c, src/util/uthash/tests/test59.ans, src/util/uthash/tests/test59.c, src/util/uthash/tests/test6.ans, src/util/uthash/tests/test6.c, src/util/uthash/tests/test60.ans, src/util/uthash/tests/test60.c, src/util/uthash/tests/test61.ans, src/util/uthash/tests/test61.c, src/util/uthash/tests/test62.ans, src/util/uthash/tests/test62.c, src/util/uthash/tests/test63.ans, src/util/uthash/tests/test63.c, src/util/uthash/tests/test64.ans, src/util/uthash/tests/test64.c, src/util/uthash/tests/test65.ans, src/util/uthash/tests/test65.c, src/util/uthash/tests/test65.dat, src/util/uthash/tests/test66.ans, src/util/uthash/tests/test66.c, src/util/uthash/tests/test67.ans, src/util/uthash/tests/test67.c, src/util/uthash/tests/test68.ans, src/util/uthash/tests/test68.c, src/util/uthash/tests/test69.ans, src/util/uthash/tests/test69.c, src/util/uthash/tests/test7.ans, src/util/uthash/tests/test7.c, src/util/uthash/tests/test70.ans, src/util/uthash/tests/test70.c, src/util/uthash/tests/test71.ans, src/util/uthash/tests/test71.c, src/util/uthash/tests/test72.ans, src/util/uthash/tests/test72.c, src/util/uthash/tests/test73.ans, src/util/uthash/tests/test73.c, src/util/uthash/tests/test74.ans, src/util/uthash/tests/test74.c, src/util/uthash/tests/test75.ans, src/util/uthash/tests/test75.c, src/util/uthash/tests/test76.ans, src/util/uthash/tests/test76.c, src/util/uthash/tests/test77.ans, src/util/uthash/tests/test77.c, src/util/uthash/tests/test78.ans, src/util/uthash/tests/test78.c, src/util/uthash/tests/test79.ans, src/util/uthash/tests/test79.c, src/util/uthash/tests/test8.ans, src/util/uthash/tests/test8.c, src/util/uthash/tests/test80.ans, src/util/uthash/tests/test80.c, src/util/uthash/tests/test81.ans, src/util/uthash/tests/test81.c, src/util/uthash/tests/test82.ans, src/util/uthash/tests/test82.c, src/util/uthash/tests/test9.ans, src/util/uthash/tests/test9.c, src/util/uthash/LICENSE, src/util/uthash/README.md, src/util/Makefile.am, src/util/app_error_check.c, src/util/app_error_check.h, src/util/cJSON.c, src/util/cJSON.h, src/util/glvnd_pthread.c, src/util/glvnd_pthread.h, src/util/meson.build, src/util/trace.c, src/util/trace.h, src/util/utils_misc.c, src/util/utils_misc.h, src/util/winsys_dispatch.c, src/util/winsys_dispatch.h, src/Makefile.am, src/meson.build, tests/dummy/EGL_dummy.c, tests/dummy/EGL_dummy.h, tests/dummy/GLX_dummy.c, tests/dummy/GLX_dummy.h, tests/dummy/Makefile.am, tests/dummy/README, tests/dummy/meson.build, tests/dummy/patchentrypoints.c, tests/dummy/patchentrypoints.h, tests/json/10_egldummy0.json, tests/json/20_egldummy1.json, tests/.gitignore, tests/Makefile.am, tests/egl_test_utils.c, tests/egl_test_utils.h, tests/eglenv.sh, tests/glxenv.sh, tests/meson.build, tests/test_utils.c, tests/test_utils.h, tests/testegldebug.c, tests/testegldebug.sh, tests/testegldevice.c, tests/testegldevice.sh, tests/testegldisplay.c, tests/testegldisplay.sh, tests/testeglerror.c, tests/testeglerror.sh, tests/testeglgetprocaddress.c, tests/testeglgetprocaddress.sh, tests/testeglmakecurrent.c, tests/testeglmakecurrent.sh, tests/testgldispatch.c, tests/testgldispatch_generated.sh, tests/testgldispatch_generated_thr.sh, tests/testgldispatch_patched.sh, tests/testgldispatch_patched_thr.sh, tests/testgldispatch_static.sh, tests/testgldispatch_static_thr.sh, tests/testgldispatchthread.c, tests/testgldispatchthread.sh, tests/testglxcreatecontext.c, tests/testglxcreatecontext.sh, tests/testglxgetclientstr.c, tests/testglxgetclientstr.sh, tests/testglxgetprocaddress.c, tests/testglxgetprocaddress.sh, tests/testglxgetprocaddress_genentry.c, tests/testglxgetprocaddress_genentry.sh, tests/testglxmakecurrent.c, tests/testglxmcbasic.sh, tests/testglxmcloop.sh, tests/testglxmcoldlink.sh, tests/testglxmcthreads.sh, tests/testglxqueryversion.c, tests/testglxqueryversion.sh, bin/.gitignore, bin/symbols-check.py, m4/.gitignore, m4/ax_check_enable_debug.m4, m4/ax_check_link_flag.m4, m4/ax_pthread.m4, .gitignore, .gitlab-ci.yml, .editorconfig, meson_options.txt, configure.ac, README.md, autogen.sh, Makefile.am, meson.build, libglvnd.pc.in files
parent acc65445
root = true
[*]
indent_size = 4
indent_style = space
[{Makefile.am,*.mk}]
indent_size = 8
indent_style = tab
[{meson.build,meson_options.txt}]
indent_size = 2
indent_style = space
*.la
*.lo
*.log
*.o
*.pc
*.pyc
*.tar.gz
*.trs
*~
.deps/
.libs/
Makefile
Makefile.in
aclocal.m4
autom4te.cache
config.h
config.h.in
config.log
config.status
configure
libtool
stamp-h1
# vim: set expandtab shiftwidth=2 tabstop=2 textwidth=0:
variables:
UBUNTU_TAG: "2019-12-05-01"
UBUNTU_VERSION: "18.04"
UBUNTU_CONTAINER_IMAGE: "$CI_REGISTRY_IMAGE/ubuntu/$UBUNTU_VERSION:$UBUNTU_TAG"
UBUNTU_EXEC: "bash .gitlab-ci/ubuntu_install.sh"
# Include the templates to create an image to run the tests.
include:
- project: 'wayland/ci-templates'
ref: b4b098a707c8f39d18f1a98d4bcbe65372ff9e17
file: '/templates/ubuntu.yml'
stages:
- containers-build
- build
# CONTAINERS creation stage
container_build:
extends: .ubuntu@container-ifnot-exists
stage: containers-build
variables:
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
build-distcheck:
stage: build
image: $UBUNTU_CONTAINER_IMAGE
script:
- bash .gitlab-ci/run_distcheck.sh
artifacts:
paths:
- build/libglvnd-*.tar.gz
# This is a common definition for testing the other types of dispatch stubs.
# We only need to do these for changes that might affect something specific to
# those stub types.
.build-check:
stage: build
image: $UBUNTU_CONTAINER_IMAGE
only:
changes:
- src/GLdispatch/vnd-glapi/**
- src/util/glvnd_genentry.*
- tests/**
- .gitlab-ci.yml
- .gitlab-ci/**
.build-check-at:
extends:
- .build-check
script:
- bash .gitlab-ci/run_build.sh
.build-check-meson:
extends:
- .build-check
script:
- bash .gitlab-ci/run_meson.sh
artifacts:
when: always
paths:
- build/meson-logs/*.txt
build-i386:
extends:
- .build-check-at
variables:
CONFIGURE_OPTIONS: --build=i686-pc-linux-gnu CFLAGS=-m32
build-i386-meson:
extends:
- .build-check-meson
variables:
CONFIGURE_OPTIONS: --cross-file .gitlab-ci/i686-linux-gnu
build-x86-64-tsd:
extends:
- .build-check-at
variables:
CONFIGURE_OPTIONS: --disable-tls
build-x86_64-tsd-meson:
extends:
- .build-check-meson
variables:
CONFIGURE_OPTIONS: -Dtls=disabled
build-i386-tsd:
extends:
- .build-check-at
variables:
CONFIGURE_OPTIONS: --build=i686-pc-linux-gnu CFLAGS=-m32 --disable-tls
build-i386-tsd-meson:
extends:
- .build-check-meson
variables:
CONFIGURE_OPTIONS: -Dtls=disabled --cross-file .gitlab-ci/i686-linux-gnu
build-pure-c-tls:
extends:
- .build-check-at
variables:
CONFIGURE_OPTIONS: --disable-asm
build-pure-c-tls-meson:
extends:
- .build-check-meson
variables:
CONFIGURE_OPTIONS: -Dasm=disabled
build-pure-c-tsd:
extends:
- .build-check-at
variables:
CONFIGURE_OPTIONS: --disable-asm --disable-tls
build-pure-c-tld-meson:
extends:
- .build-check-meson
variables:
CONFIGURE_OPTIONS: -Dasm=disabled -Dtls=disabled
[binaries]
c = '/usr/bin/gcc'
cpp = '/usr/bin/g++'
ar = '/usr/bin/ar'
strip = '/usr/bin/strip'
pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'
[properties]
c_args = ['-m32']
c_link_args = ['-m32']
cpp_args = ['-m32']
cpp_link_args = ['-m32']
needs_exe_wrapper = false
[host_machine]
system = 'linux'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'
#!/bin/bash
set -e
set -o xtrace
./autogen.sh
mkdir build
cd build
../configure --enable-werror $CONFIGURE_OPTIONS
make V=1 VERBOSE=1
xvfb-run --auto-servernum make check V=1 VERBOSE=1
#!/bin/bash
set -e
set -o xtrace
./autogen.sh
mkdir build
cd build
../configure
xvfb-run --auto-servernum make distcheck V=1 VERBOSE=1
# If make distcheck failed don't even bother with the meson check, the tarball
# may be invalid and it's just a waste
if [ $RESULT -ne 0 ]; then
exit $RESULT
fi
# Also check that the meson build works from the dist tarball
# We don't have a good way to know what the name of the archive will be (since
# it has the version in it). Therefore, write the tarball to a place we know
# the name of and work from there.
mkdir libglvnd
tar -xf libglvnd-*.tar.gz -C libglvnd --strip-components 1
pushd libglvnd
meson builddir --auto-features=enabled
xvfb-run --auto-servernum ninja -C builddir test
popd
#!/bin/bash
set -e
set -o xtrace
# Running a unity build (sometimes called a jumbo build) is both a useful thing
# to test and reduces compile time.
#
# Enable all auto-features to ensure that we're properly testing all optional
# dependencies.
meson build -Dwerror=true --unity=on --auto-features=enabled $CONFIGURE_OPTIONS
ninja -C build
xvfb-run --auto-servernum ninja -C build test
#!/bin/bash
set -e
set -o xtrace
export DEBIAN_FRONTEND=noninteractive
dpkg --add-architecture i386
apt-get update
apt-get install -y --no-remove --no-install-recommends \
autoconf \
automake \
gcc-multilib \
libtool \
libx11-dev \
libx11-dev:i386 \
libxext-dev \
libxext-dev:i386 \
ninja-build \
pkg-config \
pkg-config-i686-linux-gnu \
python3 \
python3-pip \
python3-setuptools \
python3-wheel \
x11proto-gl-dev \
xvfb
# We need a version of meson later than the 0.45 in ubuntu 18.04
pip3 install meson
\ No newline at end of file
SUBDIRS = src tests include
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = \
autogen.sh \
README.md \
bin/symbols-check.py \
meson.build \
meson_options.txt
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libglvnd.pc
This diff is collapsed.
#! /bin/sh
srcdir=`dirname "$0"`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd "$srcdir"
autoreconf --force --verbose --install || exit 1
cd "$ORIGDIR" || exit $?
compile
config.guess
config.sub
depcomp
install-sh
ltmain.sh
missing
test-driver
#!/usr/bin/env python
# encoding=utf-8
# Copyright © 2018-2019 Intel Corporation
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and/or associated documentation files (the
# "Materials"), to deal in the Materials without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Materials, and to
# permit persons to whom the Materials are furnished to do so, subject to
# the following conditions:
# The above copyright notice and this permission notice shall be included
# unaltered in all copies or substantial portions of the Materials.
# Any additions, deletions, or changes to the original source files
# must be clearly indicated in accompanying documentation.
# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
import argparse
import os
import platform
import subprocess
# This list contains symbols that _might_ be exported for some platforms
PLATFORM_SYMBOLS = [
'_GLOBAL_OFFSET_TABLE_',
'__bss_end__',
'__bss_start__',
'__bss_start',
'__end__',
'_bss_end__',
'_edata',
'_end',
'_fini',
'_init',
]
def get_symbols(nm, lib):
'''
List all the (non platform-specific) symbols exported by the library
'''
symbols = []
platform_name = platform.system()
output = subprocess.check_output([nm, '-gP', lib],
stderr=open(os.devnull, 'w')).decode("ascii")
for line in output.splitlines():
fields = line.split()
if len(fields) == 2 or fields[1] == 'U':
continue
symbol_name = fields[0]
if platform_name == 'Linux':
if symbol_name in PLATFORM_SYMBOLS:
continue
elif platform_name == 'Darwin':
assert symbol_name[0] == '_'
symbol_name = symbol_name[1:]
symbols.append(symbol_name)
return symbols
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--symbols-file',
action='store',
required=True,
help='path to file containing symbols')
parser.add_argument('--lib',
action='store',
required=True,
help='path to library')
parser.add_argument('--nm',
action='store',
type=lambda s: s.split()[0], # autotools may pass "nm -B", but we just want nm
required=True,
help='path to binary (or name in $PATH)')
args = parser.parse_args()
try:
lib_symbols = get_symbols(args.nm, args.lib)
except:
# We can't run this test, but we haven't technically failed it either
# Return the GNU "skip" error code
exit(77)
mandatory_symbols = []
optional_symbols = []
with open(args.symbols_file) as symbols_file:
qualifier_optional = '(optional)'
for line in symbols_file.readlines():
# Strip comments
line = line.split('#')[0]
line = line.strip()
if not line:
continue
# Line format:
# [qualifier] symbol
qualifier = None
symbol = None
fields = line.split()
if len(fields) == 1:
symbol = fields[0]
elif len(fields) == 2:
qualifier = fields[0]
symbol = fields[1]
else:
print(args.symbols_file + ': invalid format: ' + line)
exit(1)
# The only supported qualifier is 'optional', which means the
# symbol doesn't have to be exported by the library
if qualifier and not qualifier == qualifier_optional:
print(args.symbols_file + ': invalid qualifier: ' + qualifier)
exit(1)
if qualifier == qualifier_optional:
optional_symbols.append(symbol)
else:
mandatory_symbols.append(symbol)
unknown_symbols = []
for symbol in lib_symbols:
if symbol in mandatory_symbols:
continue
if symbol in optional_symbols:
continue
if symbol[:2] == '_Z':
# Ignore random C++ symbols
#TODO: figure out if there's any way to avoid exporting them in the first place
continue
unknown_symbols.append(symbol)
missing_symbols = [
sym for sym in mandatory_symbols if sym not in lib_symbols
]
for symbol in unknown_symbols:
print(args.lib + ': unknown symbol exported: ' + symbol)
for symbol in missing_symbols:
print(args.lib + ': missing symbol: ' + symbol)
if unknown_symbols or missing_symbols:
exit(1)
exit(0)
if __name__ == '__main__':
main()
dnl configure.ac
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
AC_INIT([libglvnd], [1.3.2], [kbrenneman@nvidia.com])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_AUX_DIR([bin])
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_SYSTEM
dnl Add an --enable-debug option
AX_CHECK_ENABLE_DEBUG(no, DEBUG)
AC_USE_SYSTEM_EXTENSIONS
AM_INIT_AUTOMAKE([1.11 foreign silent-rules])
AM_SILENT_RULES([yes])
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CC_C99
AM_PROG_AS
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PROG_LIBTOOL
AC_PROG_MKDIR_P
PKG_PROG_PKG_CONFIG
AC_PROG_NM
AC_ARG_ENABLE([werror],
[AS_HELP_STRING([--enable-werror],
[Build with -Werror @<:@default=disabled@:>@])],
[enable_werror=$enableval],
[enable_werror=no])
if test "x$enable_werror" = xyes; then
CFLAGS="$CFLAGS -Werror"
fi
# The tarball from "make dist" already contains all of the generated files. If
# we're building from that, then we won't need Python.
if test -e "$srcdir/src/GLdispatch/vnd-glapi/g_glapi_mapi_gl_tmp.h" ; then
AM_PATH_PYTHON([2.7],, [:])
else
AM_PATH_PYTHON([2.7])
fi
AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
if test "x$ac_cv_prog_cc_c99" = xno; then
AC_MSG_ERROR([Building libglvnd requires a C99-enabled compiler])
fi
AC_ARG_ENABLE([egl],
[AS_HELP_STRING([--disable-egl],
[Disable EGL support @<:@default=enabled@:>@])],
[enable_egl="$enableval"],
[enable_egl=yes]
)
AM_CONDITIONAL([ENABLE_EGL], [test "x$enable_egl" = "xyes"])
AC_ARG_ENABLE([x11],
[AS_HELP_STRING([--disable-x11],
[Disable X11 support. Implies --disable-glx @<:@default=enabled@:>@])],
[enable_x11="$enableval"],
[enable_x11=yes]
)
AM_CONDITIONAL([ENABLE_X11], [test "x$enable_x11" = "xyes"])
AC_ARG_ENABLE([glx],
[AS_HELP_STRING([--disable-glx],
[Disable GLX support @<:@default=enabled@:>@])],
[enable_glx="$enableval"],
[enable_glx="$enable_x11"]
)
AM_CONDITIONAL([ENABLE_GLX], [test "x$enable_glx" = "xyes"])
if test "x$enable_x11" != "xyes" -a "x$enable_glx" = "xyes" ; then
AC_MSG_ERROR([Can't build GLX without X11.])
fi
AC_ARG_ENABLE([gles1],
[AS_HELP_STRING([--disable-gles1],
[disable support for OpenGL ES 1.x API @<:@default=enabled@:>@])],
[enable_gles1="$enableval"],
[enable_gles1=yes])
AM_CONDITIONAL([ENABLE_GLES1], [test "x$enable_gles1" = "xyes"])
AC_ARG_ENABLE([gles2],
[AS_HELP_STRING([--disable-gles2],
[disable support for OpenGL ES 2.x and 3.x API @<:@default=enabled@:>@])],
[enable_gles2="$enableval"],
[enable_gles2=yes])
AM_CONDITIONAL([ENABLE_GLES2], [test "x$enable_gles2" = "xyes"])
AC_ARG_ENABLE([headers],
[AS_HELP_STRING([--disable-headers],
[Do not install the GL/GLES/GLX/EGL header files @<:@default=enabled@:>@])],
[enable_headers="$enableval"],
[enable_headers=yes]
)
AM_CONDITIONAL([ENABLE_GL_HEADERS], [test "x$enable_headers" = "xyes"])
AM_CONDITIONAL([ENABLE_EGL_HEADERS], [test "x$enable_headers" = "xyes" -a "x$enable_egl" = "xyes"])
AM_CONDITIONAL([ENABLE_GLX_HEADERS], [test "x$enable_headers" = "xyes" -a "x$enable_glx" = "xyes"])
AM_CONDITIONAL([ENABLE_GLES1_HEADERS], [test "x$enable_headers" = "xyes" -a "x$enable_gles1" = "xyes"])
AM_CONDITIONAL([ENABLE_GLES2_HEADERS], [test "x$enable_headers" = "xyes" -a "x$enable_gles2" = "xyes"])
dnl
dnl Arch/platform-specific settings. Copied from mesa
dnl
AC_ARG_ENABLE([asm],
[AS_HELP_STRING([--disable-asm],
[disable assembly usage @<:@default=enabled on supported platforms@:>@])],
[enable_asm="$enableval"],
[enable_asm=yes]
)
asm_arch=""
AC_MSG_CHECKING([whether to enable assembly])
test "x$enable_asm" = xno && AC_MSG_RESULT([no])
# check for supported arches
if test "x$enable_asm" = xyes; then
case "$host_cpu" in
i?86)
case "$host_os" in
linux* | *freebsd* | dragonfly* | *netbsd*)
asm_arch=x86
;;
gnu*)
asm_arch=x86
;;
esac
;;
x86_64 | amd64)
case "$host_os" in
linux* | *freebsd* | dragonfly* | *netbsd*)
asm_arch=x86_64
;;
esac
;;
armv7*l | armv8*l)
asm_arch=armv7l
;;
aarch64)
asm_arch=aarch64
;;
powerpc64le)
asm_arch=ppc64
;;
powerpc64)
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#if !defined(_CALL_ELF) || (_CALL_ELF) == 1
# error "ELFv1 ABI"
#endif
])],
[asm_arch=ppc64],[])
esac