• Show log

    Commit

  • Hash : 41184c21
    Author : Jamie Madill
    Date : 2022-09-29T10:50:39

    Add support for building Mesa + Zink.
    
    Uses a conditional gclient variable "angle_mesa". You must set
    this to True in your .gclient to download and configure Mesa.
    
    After that you must also set angle_build_mesa=true in your GN
    args. We call through to meson in order to setup and build.
    
    Mesa sources and targets are written into an auto-generated GNI
    file. We must update this file on the same cadence as Mesa rolls.
    
    Because the version of libdrm we use in our sysroot is older than
    Mesa requires, this CL also includes a custom libdrm build. Also
    in order to run bison and flex on the old sysroot that Chrome
    infra runs with, this CL includes a new version of flex and bison
    that run without newer versions of GLIBC.
    
    Bug: angleproject:7689
    Change-Id: I1aeeda1e6f3cf1d5f878aeab5209afa7e1fb5324
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3933062
    Reviewed-by: Cody Northrop <cnorthrop@google.com>
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    Commit-Queue: Jamie Madill <jmadill@chromium.org>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/angle.git
    Git SSH git@git.kmx.io:kc3-lang/angle.git
    Public access ? public
    Description

    A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

    Homepage

    Github

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags

  • README.md

  • flex and bison binaries

    This folder contains the flex and bison binaries. We use these binaries to generate the ANGLE translator’s lexer and parser.

    Use the script update_flex_bison_binaries.py to update the versions of these binaries in cloud storage. It must be run on Linux or Windows. It will update the SHAs for your platform. After running the script run git commit and then git cl upload to code review using the normal review process. You will also want to run scripts/run_code_generation.py to update the generated files.

    Please update both Windows and Linux binaries at the same time. Start with Windows, then merge your work into a single CL that updates both binaries simultaneously. Note that we don’t currently support Mac for generating the lexer and parser files. If we do we should add a flex/bison download for Mac as well.

    Contact jmadill or syoussefi for any help with updating the binaries.

    Updating flex and bison binaries

    This is expected to be a rare operation, and is currently done based on the following instructions. Note: get the binaries first on windows, as only a single option is available, then build the binaries for the same version on Linux.

    On Windows

    Install MSys2 (x86_64) from http://www.msys2.org/ on Windows. flex should already be installed. Install bison:

    $ pacman -S bison

    Note the versions of flex and bison, so you can build the exact same versions on Linux. For example:

    $ flex --version
    flex 2.6.4
    
    $ bison --version
    bison (GNU Bison) 3.8.2

    The only dependencies outside /Windows/ from MSys2 should be the following:

    msys-intl-8.dll
    msys-iconv-2.dll
    msys-2.0.dll

    This can be verified with:

    $ ldd /usr/bin/flex
    $ ldd /usr/bin/bison

    Additionally, we need the binary for m4 at /usr/bin/m4.

    Copy all these 5 files to this directory:

    $ cd angle/
    $ cp /usr/bin/flex.exe \
         /usr/bin/bison.exe \
         /usr/bin/m4.exe \
         /usr/bin/msys-intl-8.dll \
         /usr/bin/msys-iconv-2.dll \
         /usr/bin/msys-2.0.dll \
         tools/flex-bison/windows/

    Upload the binaries:

    $ cd angle/
    $ py tools/flex-bison/update_flex_bison_binaries.py

    On Linux

    # Get the source of flex
    $ git clone https://github.com/westes/flex.git
    $ cd flex/
    # Checkout the same version as msys2 on windows
    $ git checkout v2.6.4
    # Build
    $ autoreconf -i
    $ mkdir build && cd build
    $ ../configure CFLAGS="-O2 -D_GNU_SOURCE"
    $ make -j
    # Get the source of bison
    $ curl http://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz | tar -xJ
    $ cd bison-3.8.2
    # Build
    $ mkdir build && cd build
    $ ../configure CFLAGS="-O2"
    $ make -j

    Note: Bison’s home page lists ftp server and other mirrors. If the above link is broken, replace with a mirror.

    Copy the 2 executables to this directory:

    $ cd angle/
    $ cp /path/to/flex/build/src/flex \
         /path/to/bison/build/src/bison \
         tools/flex-bison/linux/

    Upload the binaries:

    $ cd angle/
    $ ./tools/flex-bison/update_flex_bison_binaries.py