Skip to content
  • Emil Velikov's avatar
    util: import sha1 implementation from OpenBSD · d1efa09d
    Emil Velikov authored
    At the moment we support 5+ different implementations each with varying
    amount of bugs - from thread safely problems [1], to outright broken
    implementation(s) [2]
    
    In order to accommodate these we have 150+ lines of configure script and
    extra two configure toggles. Whist an actual implementation being
    ~200loc and our current compat wrapping ~250.
    
    Let's not forget that different people use different code paths, thus
    effectively makes it harder to test and debug since the default
    implementation is automatically detected.
    
    To minimise all these lovely experiences, import the "100% Public
    Domain" OpenBSD sha1 implementation. Clearly document any changes needed
    to get building correctly, since many/most of those can be upstreamed
    making future syncs easier.
    
    As an added bonus this will avoid all the 'fun' experiences trying to
    integrate it with the Android and SCons builds.
    
    v2: Manually expand __BEGIN_DECLS/__END_DECLS and document (Tapani).
    
    Furthermore it seems that some games (or surrounding runtime) static
    link against OpenSSL resulting in conflicts. For more information see
    the discussion thread [3]
    
    Bugzilla [1]: https://bugs.freedesktop.org/show_bug.cgi?id=94904
    Bugzilla [2]: https://bugs.freedesktop.org/show_bug.cgi?id=97967
    [3] https://lists.freedesktop.org/archives/mesa-dev/2017-January/140748.html
    
    
    Cc: Mark Janes <mark.a.janes@intel.com>
    Cc: Vinson Lee <vlee@freedesktop.org>
    Cc: Tapani Pälli <tapani.palli@intel.com>
    Cc: Jonathan Gray <jsg@jsg.id.au>
    Tested-by: default avatarJonathan Gray <jsg@jsg.id.au>
    Signed-off-by: default avatarEmil Velikov <emil.velikov@collabora.com>
    Acked-by: Tapani Pälli <tapani.palli@intel.com> (v1)
    Acked-by: Jason Ekstrand <jason@jlekstrand.net> (v1)
    d1efa09d