strongswan: fix compilation against updated WolfSSL 5.6.3
authorJo-Philipp Wich <jo@mein.io>
Fri, 25 Aug 2023 08:41:59 +0000 (10:41 +0200)
committerJo-Philipp Wich <jo@mein.io>
Fri, 25 Aug 2023 08:46:44 +0000 (10:46 +0200)
commit7b6f573fed038e5457c05e9d108ce131eeb74d23
treec2e77ba88822543c591f91482de567439ebdfe41
parent201a7c81d64f0ec85a76da624a323ddb27127916
strongswan: fix compilation against updated WolfSSL 5.6.3

After OpenWrt base updated WolfSSL to version 5.6.3, the strongswan wolfssl
plugin fails to compile due to a header conflict.

The error reported by the builders is:

    In file included from .../usr/include/wolfssl/openssl/asn1.h:27,
                     from .../usr/include/wolfssl/ssl.h:4123,
                     from wolfssl_common.h:64,
                     from wolfssl_ec_private_key.c:23:
    ../../../../src/libstrongswan/asn1/asn1.h:43:9: error: 'WOLFSSL_ASN1_STRING' redeclared as different kind of symbol
       43 |         ASN1_UTF8STRING =               0x0C,
          |         ^~~~~~~~~~~~~~~
    In file included from wolfssl_common.h:64,
                     from wolfssl_ec_private_key.c:23:
    .../usr/include/wolfssl/ssl.h:212:41: note: previous declaration of 'WOLFSSL_ASN1_STRING' with type 'WOLFSSL_ASN1_STRING'
      212 | typedef struct WOLFSSL_ASN1_STRING      WOLFSSL_ASN1_STRING;
          |                                         ^~~~~~~~~~~~~~~~~~~
    make[9]: *** [Makefile:621: wolfssl_ec_private_key.lo] Error 1

Solve this issue by adding a local path that remaps `ASN1_UTF8STRING`
during wolfssl header inclusion, like it is done already for other
conflicting defines.

Ref: https://forum.openwrt.org/t/x/169580
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
net/strongswan/Makefile
net/strongswan/patches/1000-wolfssl-prevent-header-conflicts.patch [new file with mode: 0644]