[Bug]: sp_init.c fails to compile with pre-C11 compiler
Contact Details
No response
Version
5.8.0
Description
If C99 is supposed to be still supported, this is probably a bug. There are multiple errors with that source file when compiling on ppc with gcc-4.2, looking like this:
wolfcrypt/src/sp_int.c: error: expected string literal before ')' token
Reproduction steps
Run the build.
Relevant log output
libtool: compile: /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I. -DBUILDING_WOLFSSL -DWOLFSSL_HAVE_ASSERT_H -DWOLFSSL_WOLFSSH -isystem/opt/local/include/LegacySupport -I/opt/local/include -DBUILDING_WOLFSSL -fvisibility=hidden -DNDEBUG -DNO_DO178 -DWOLFSSL_ASN_TEMPLATE -DHAVE_CRL_IO -DHAVE_IO_TIMEOUT -DWOLFSSL_DER_LOAD -DKEEP_OUR_CERT -DKEEP_PEER_CERT -DWOLFSSL_SUBJ_DIR_ATTR -DWOLFSSL_FPKI -DWOLFSSL_SUBJ_INFO_ACC -DWOLFSSL_CERT_NAME_ALL -DWOLFSSL_VERBOSE_ERRORS -DHAVE_ECC_CDH -DHAVE_ECC_KOBLITZ -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DWOLFSSL_DES_ECB -DHAVE_AES_DECRYPT -DHAVE_AES_ECB -DWOLFSSL_ALT_NAMES -DHAVE_FFDHE_2048 -DHAVE_FFDHE_3072 -DWOLFSSL_ASN_ALL -DWOLFSSL_DH_EXTRA -DWOLFSSL_ECDSA_DETERMINISTIC_K_VARIANT -DWOLFSSL_HAVE_ISSUER_NAMES -pthread -DHAVE_ECH -DWOLFSSL_DTLS -DWOLFSSL_DTLS_MTU -DWOLFSSL_QUIC -DHAVE_EX_DATA -DWOLFSSL_POST_HANDSHAKE_AUTH -DWOLFSSL_SEND_HRR_COOKIE -DWOLFSSL_LIBWEBSOCKETS -DHAVE_EX_DATA -DOPENSSL_NO_EC -DWOLFSSL_OPENSSH -DHAVE_EX_DATA -DWOLFSSL_BASE16 -DWOLFSSL_ERROR_CODE_OPENSSL -DTFM_TIMING_RESISTANT -DECC_TIMING_RESISTANT -DWC_RSA_BLINDING -DFORTRESS -DWOLFSSL_ALWAYS_VERIFY_CB -DWOLFSSL_AES_COUNTER -DWOLFSSL_AES_DIRECT -DWOLFSSL_DER_LOAD -DWOLFSSL_KEY_GEN -DPERSIST_SESSION_CACHE -DPERSIST_CERT_CACHE -DATOMIC_USER -DHAVE_PK_CALLBACKS -DWOLFSSL_AES_CBC_LENGTH_CHECKS -DHAVE_AESCCM -DWOLFSSL_AES_EAX -DWOLFSSL_AES_OFB -DWOLFSSL_AES_DIRECT -DWOLFSSL_AES_CFB -DWOLFSSL_ARMASM_NO_HW_CRYPTO -DWOLFSSL_USE_ALIGN -DHAVE_CAMELLIA -DWOLFSSL_MD2 -DHAVE_NULL_CIPHER -DWOLFSSL_RIPEMD -DHAVE_BLAKE2 -DHAVE_BLAKE2B -DHAVE_BLAKE2S -DWOLFSSL_SHA224 -DWOLFSSL_SHA512 -DWOLFSSL_SHA384 -DSESSION_CERTS -DWOLFSSL_SEP -DKEEP_PEER_CERT -DHAVE_HKDF -DHAVE_HPKE -DHAVE_X963_KDF -DHAVE_ECC -DECC_SHAMIR -DECC_MIN_KEY_SZ=224 -DHAVE_ECC_BRAINPOOL -DHAVE_CURVE25519 -DFP_ECC -DHAVE_ECC_ENCRYPT -DWOLFCRYPT_HAVE_ECCSI -DWOLFSSL_PUBLIC_MP -DWOLFCRYPT_HAVE_SAKKE -DNO_OLD_TLS -DWOLFSSL_QT -DSESSION_CERTS -DOPENSSL_NO_SSL2 -DWOLFSSL_KEY_GEN -DHAVE_EX_DATA -DWOLFSSL_CUSTOM_CURVES -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DWC_RSA_PSS -DWOLFSSL_PSS_LONG_SALT -DHAVE_ANON -DWOLFSSL_ASN_PRINT -DWOLFSSL_DTLS13 -DWOLFSSL_W64_WRAPPER -DWOLFSSL_AES_DIRECT -DWOLFSSL_DTLS_CID -DWOLFSSL_DTLS_CH_FRAG -DWOLFSSL_BASE64_ENCODE -DWOLFSSL_BASE16 -DWOLFSSL_SIPHASH -DWOLFSSL_CMAC -DWOLFSSL_AES_DIRECT -DHAVE_WEBSERVER -DWOLFSSL_AES_XTS -DWOLFSSL_AES_DIRECT -DWOLFSSL_CUSTOM_CURVES -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DHAVE_ECC_CDH -DHAVE_CURVE448 -DHAVE_ED448 -DWOLFSSL_ED448_STREAMING_VERIFY -DWC_SRTP_KDF -DHAVE_AES_ECB -DWOLFSSL_AES_DIRECT -DWOLFSSL_SHA3 -DWOLFSSL_SHAKE128 -DWOLFSSL_SHAKE256 -DHAVE_POLY1305 -DHAVE_CHACHA -DHAVE_XCHACHA -DHAVE_HASHDRBG -DHAVE_OPENSSL_CMD -DHAVE_TLS_EXTENSIONS -DHAVE_CERTIFICATE_STATUS_REQUEST -DHAVE_TLS_EXTENSIONS -DHAVE_CERTIFICATE_STATUS_REQUEST_V2 -DHAVE_CRL -DHAVE_CRL_MONITOR -DHAVE_TLS_EXTENSIONS -DHAVE_SNI -DHAVE_TLS_EXTENSIONS -DHAVE_ALPN -DHAVE_TLS_EXTENSIONS -DHAVE_MAX_FRAGMENT -DHAVE_TLS_EXTENSIONS -DHAVE_TRUSTED_CA -DHAVE_TLS_EXTENSIONS -DHAVE_TRUNCATED_HMAC -DHAVE_FALLBACK_SCSV -DHAVE_KEYING_MATERIAL -DHAVE_TLS_EXTENSIONS -DHAVE_SUPPORTED_CURVES -DHAVE_FFDHE_2048 -DHAVE_SUPPORTED_CURVES -DWOLFSSL_TLS13 -DHAVE_TLS_EXTENSIONS -DHAVE_TLS_EXTENSIONS -DHAVE_SESSION_TICKET -DHAVE_EXTENDED_MASTER -DHAVE_TLS_EXTENSIONS -DHAVE_SNI -DHAVE_MAX_FRAGMENT -DHAVE_TRUNCATED_HMAC -DHAVE_ALPN -DHAVE_TRUSTED_CA -DHAVE_SUPPORTED_CURVES -DWOLFSSL_EARLY_DATA -DHAVE_SMIME -DWOLFCRYPT_HAVE_SRP -DASN_BER_TO_DER -DWOLFSSL_HAVE_CERT_SERVICE -DHAVE_LIGHTY -DHAVE_WOLFSSL_SSL_H=1 -DHAVE_EX_DATA -DOPENSSL_ALL -DWOLFSSL_KEY_GEN -DWOLFSSL_NGINX -DWOLFSSL_SIGNER_DER_CERT -DOPENSSL_COMPATIBLE_DEFAULTS -DWOLFSSL_ERROR_CODE_OPENSSL -DWOLFSSL_OPENVPN -DHAVE_KEYING_MATERIAL -DWOLFSSL_DES_ECB -DHAVE_EX_DATA -DWOLFSSL_KEY_GEN -DWOLFSSL_ALWAYS_VERIFY_CB -DWOLFSSL_ALWAYS_KEEP_SNI -DKEEP_OUR_CERT -DKEEP_PEER_CERT -DHAVE_EXT_CACHE -DHAVE_EX_DATA -DWOLFSSL_CERT_GEN -DWOLFSSL_ASIO -DASIO_USE_WOLFSSL -DWOLFSSL_KEY_GEN -DBOOST_ASIO_USE_WOLFSSL -DHAVE_EX_DATA -DSSL_TXT_TLSV1_2 -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3 -DHAVE_ENCRYPT_THEN_MAC -DHAVE_STUNNEL -DWOLFSSL_ALWAYS_VERIFY_CB -DWOLFSSL_ALWAYS_KEEP_SNI -DHAVE_EX_DATA -DWOLFSSL_DES_ECB -DWOLFSSL_SIGNER_DER_CERT -DOPENSSL_COMPATIBLE_DEFAULTS -DWOLFSSL_TICKET_HAVE_ID -DWOLFSSL_ALT_CERT_CHAINS -DWOLFSSL_IP_ALT_NAME -DNO_SESSION_CACHE_REF -DWOLFSSL_DES_ECB -DWOLFSSL_TICKET_NONCE_MALLOC -DWOLFSSL_ENCRYPTED_KEYS -DHAVE_SCRYPT -DWOLFSSL_SP_MATH_ALL -DWOLFSSL_SP_PPC -DWOLF_CRYPTO_CB -DWC_NO_ASYNC_THREADING -DHAVE_AES_KEYWRAP -DWOLFSSL_AES_DIRECT -DNO_OLD_RNGNAME -DNO_OLD_WC_NAMES -DNO_OLD_SSL_NAMES -DNO_OLD_SHA_NAMES -DNO_OLD_MD5_NAME -DWOLFSSL_HASH_FLAGS -DRSA_MAX_SIZE=4096 -DFP_MAX_BITS=8192 -DSP_INT_BITS=4096 -DWOLFSSL_TRUST_PEER_CERT -DNO_SESSION_CACHE_REF -DWOLFSSL_TLS13_NO_PEEK_HANDSHAKE_DONE -DWOLFSSL_ALT_CERT_CHAINS -DWOLFSSL_PRIORITIZE_PSK -DWOLFSSL_CHECK_ALERT_ON_ERR -DWOLFSSL_TICKET_HAVE_ID -DHAVE_RPK -DWOLFSSL_KEY_GEN -DWOLFSSL_CERT_REQ -DWOLFSSL_CERT_GEN -DWOLFSSL_CERT_EXT -DHAVE_ED25519 -DHAVE_OCSP -DWOLFSSL_ED25519_STREAMING_VERIFY -DOPENSSL_ALL -DWOLFSSL_EITHER_SIDE -DWC_RSA_NO_PADDING -DWC_RSA_PSS -DWOLFSSL_PSS_LONG_SALT -DWOLFSSL_TICKET_HAVE_ID -DWOLFSSL_ERROR_CODE_OPENSSL -DWOLFSSL_CERT_NAME_ALL -DWOLFSSL_AES_SIV -DOPENSSL_EXTRA -DWOLFSSL_HAVE_WOLFSCEP -DHAVE_PKCS7 -DNO_DES3_TLS_SUITES -DHAVE_AESGCM -DWOLFSSL_AESGCM_STREAM -DWOLFSSL_AESXTS_STREAM -DWOLFSSL_SRTP -DWOLFSSL_MULTICAST -DWOLFSSL_PUBLIC_MP -DHAVE_TLS_EXTENSIONS -DHAVE_SERVER_RENEGOTIATION_INFO -DHAVE_COMP_KEY -DWOLFSSL_ALLOW_RC4 -DWOLFSSL_TLS_OCSP_MULTI -Wall -Wno-unused -O2 -DHAVE_WC_INTROSPECTION -include ./.build_params "-DLIBWOLFSSL_GLOBAL_EXTRA_CFLAGS=\" \"" -pipe -Os -arch ppc -Wno-pragmas -Wall -Wextra -Wunknown-pragmas --param=ssp-buffer-size=1 -Waddress -Wbad-function-cast -Wchar-subscripts -Wcomment -Wfloat-equal -Wformat-security -Wformat=2 -Wmissing-field-initializers -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wnormalized=id -Woverride-init -Wpointer-arith -Wpointer-sign -Wshadow -Wshorten-64-to-32 -Wsign-compare -Wstrict-overflow=1 -Wstrict-prototypes -Wswitch-enum -Wundef -Wunused -Wunused-variable -Wwrite-strings -fwrapv -MT wolfcrypt/src/src_libwolfssl_la-cmac.lo -MD -MP -MF wolfcrypt/src/.deps/src_libwolfssl_la-cmac.Tpo -c wolfcrypt/src/cmac.c -fno-common -DPIC -o wolfcrypt/src/.libs/src_libwolfssl_la-cmac.o
libtool: compile: /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I. -DBUILDING_WOLFSSL -DWOLFSSL_HAVE_ASSERT_H -DWOLFSSL_WOLFSSH -isystem/opt/local/include/LegacySupport -I/opt/local/include -DBUILDING_WOLFSSL -fvisibility=hidden -DNDEBUG -DNO_DO178 -DWOLFSSL_ASN_TEMPLATE -DHAVE_CRL_IO -DHAVE_IO_TIMEOUT -DWOLFSSL_DER_LOAD -DKEEP_OUR_CERT -DKEEP_PEER_CERT -DWOLFSSL_SUBJ_DIR_ATTR -DWOLFSSL_FPKI -DWOLFSSL_SUBJ_INFO_ACC -DWOLFSSL_CERT_NAME_ALL -DWOLFSSL_VERBOSE_ERRORS -DHAVE_ECC_CDH -DHAVE_ECC_KOBLITZ -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DWOLFSSL_DES_ECB -DHAVE_AES_DECRYPT -DHAVE_AES_ECB -DWOLFSSL_ALT_NAMES -DHAVE_FFDHE_2048 -DHAVE_FFDHE_3072 -DWOLFSSL_ASN_ALL -DWOLFSSL_DH_EXTRA -DWOLFSSL_ECDSA_DETERMINISTIC_K_VARIANT -DWOLFSSL_HAVE_ISSUER_NAMES -pthread -DHAVE_ECH -DWOLFSSL_DTLS -DWOLFSSL_DTLS_MTU -DWOLFSSL_QUIC -DHAVE_EX_DATA -DWOLFSSL_POST_HANDSHAKE_AUTH -DWOLFSSL_SEND_HRR_COOKIE -DWOLFSSL_LIBWEBSOCKETS -DHAVE_EX_DATA -DOPENSSL_NO_EC -DWOLFSSL_OPENSSH -DHAVE_EX_DATA -DWOLFSSL_BASE16 -DWOLFSSL_ERROR_CODE_OPENSSL -DTFM_TIMING_RESISTANT -DECC_TIMING_RESISTANT -DWC_RSA_BLINDING -DFORTRESS -DWOLFSSL_ALWAYS_VERIFY_CB -DWOLFSSL_AES_COUNTER -DWOLFSSL_AES_DIRECT -DWOLFSSL_DER_LOAD -DWOLFSSL_KEY_GEN -DPERSIST_SESSION_CACHE -DPERSIST_CERT_CACHE -DATOMIC_USER -DHAVE_PK_CALLBACKS -DWOLFSSL_AES_CBC_LENGTH_CHECKS -DHAVE_AESCCM -DWOLFSSL_AES_EAX -DWOLFSSL_AES_OFB -DWOLFSSL_AES_DIRECT -DWOLFSSL_AES_CFB -DWOLFSSL_ARMASM_NO_HW_CRYPTO -DWOLFSSL_USE_ALIGN -DHAVE_CAMELLIA -DWOLFSSL_MD2 -DHAVE_NULL_CIPHER -DWOLFSSL_RIPEMD -DHAVE_BLAKE2 -DHAVE_BLAKE2B -DHAVE_BLAKE2S -DWOLFSSL_SHA224 -DWOLFSSL_SHA512 -DWOLFSSL_SHA384 -DSESSION_CERTS -DWOLFSSL_SEP -DKEEP_PEER_CERT -DHAVE_HKDF -DHAVE_HPKE -DHAVE_X963_KDF -DHAVE_ECC -DECC_SHAMIR -DECC_MIN_KEY_SZ=224 -DHAVE_ECC_BRAINPOOL -DHAVE_CURVE25519 -DFP_ECC -DHAVE_ECC_ENCRYPT -DWOLFCRYPT_HAVE_ECCSI -DWOLFSSL_PUBLIC_MP -DWOLFCRYPT_HAVE_SAKKE -DNO_OLD_TLS -DWOLFSSL_QT -DSESSION_CERTS -DOPENSSL_NO_SSL2 -DWOLFSSL_KEY_GEN -DHAVE_EX_DATA -DWOLFSSL_CUSTOM_CURVES -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DWC_RSA_PSS -DWOLFSSL_PSS_LONG_SALT -DHAVE_ANON -DWOLFSSL_ASN_PRINT -DWOLFSSL_DTLS13 -DWOLFSSL_W64_WRAPPER -DWOLFSSL_AES_DIRECT -DWOLFSSL_DTLS_CID -DWOLFSSL_DTLS_CH_FRAG -DWOLFSSL_BASE64_ENCODE -DWOLFSSL_BASE16 -DWOLFSSL_SIPHASH -DWOLFSSL_CMAC -DWOLFSSL_AES_DIRECT -DHAVE_WEBSERVER -DWOLFSSL_AES_XTS -DWOLFSSL_AES_DIRECT -DWOLFSSL_CUSTOM_CURVES -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DHAVE_ECC_CDH -DHAVE_CURVE448 -DHAVE_ED448 -DWOLFSSL_ED448_STREAMING_VERIFY -DWC_SRTP_KDF -DHAVE_AES_ECB -DWOLFSSL_AES_DIRECT -DWOLFSSL_SHA3 -DWOLFSSL_SHAKE128 -DWOLFSSL_SHAKE256 -DHAVE_POLY1305 -DHAVE_CHACHA -DHAVE_XCHACHA -DHAVE_HASHDRBG -DHAVE_OPENSSL_CMD -DHAVE_TLS_EXTENSIONS -DHAVE_CERTIFICATE_STATUS_REQUEST -DHAVE_TLS_EXTENSIONS -DHAVE_CERTIFICATE_STATUS_REQUEST_V2 -DHAVE_CRL -DHAVE_CRL_MONITOR -DHAVE_TLS_EXTENSIONS -DHAVE_SNI -DHAVE_TLS_EXTENSIONS -DHAVE_ALPN -DHAVE_TLS_EXTENSIONS -DHAVE_MAX_FRAGMENT -DHAVE_TLS_EXTENSIONS -DHAVE_TRUSTED_CA -DHAVE_TLS_EXTENSIONS -DHAVE_TRUNCATED_HMAC -DHAVE_FALLBACK_SCSV -DHAVE_KEYING_MATERIAL -DHAVE_TLS_EXTENSIONS -DHAVE_SUPPORTED_CURVES -DHAVE_FFDHE_2048 -DHAVE_SUPPORTED_CURVES -DWOLFSSL_TLS13 -DHAVE_TLS_EXTENSIONS -DHAVE_TLS_EXTENSIONS -DHAVE_SESSION_TICKET -DHAVE_EXTENDED_MASTER -DHAVE_TLS_EXTENSIONS -DHAVE_SNI -DHAVE_MAX_FRAGMENT -DHAVE_TRUNCATED_HMAC -DHAVE_ALPN -DHAVE_TRUSTED_CA -DHAVE_SUPPORTED_CURVES -DWOLFSSL_EARLY_DATA -DHAVE_SMIME -DWOLFCRYPT_HAVE_SRP -DASN_BER_TO_DER -DWOLFSSL_HAVE_CERT_SERVICE -DHAVE_LIGHTY -DHAVE_WOLFSSL_SSL_H=1 -DHAVE_EX_DATA -DOPENSSL_ALL -DWOLFSSL_KEY_GEN -DWOLFSSL_NGINX -DWOLFSSL_SIGNER_DER_CERT -DOPENSSL_COMPATIBLE_DEFAULTS -DWOLFSSL_ERROR_CODE_OPENSSL -DWOLFSSL_OPENVPN -DHAVE_KEYING_MATERIAL -DWOLFSSL_DES_ECB -DHAVE_EX_DATA -DWOLFSSL_KEY_GEN -DWOLFSSL_ALWAYS_VERIFY_CB -DWOLFSSL_ALWAYS_KEEP_SNI -DKEEP_OUR_CERT -DKEEP_PEER_CERT -DHAVE_EXT_CACHE -DHAVE_EX_DATA -DWOLFSSL_CERT_GEN -DWOLFSSL_ASIO -DASIO_USE_WOLFSSL -DWOLFSSL_KEY_GEN -DBOOST_ASIO_USE_WOLFSSL -DHAVE_EX_DATA -DSSL_TXT_TLSV1_2 -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3 -DHAVE_ENCRYPT_THEN_MAC -DHAVE_STUNNEL -DWOLFSSL_ALWAYS_VERIFY_CB -DWOLFSSL_ALWAYS_KEEP_SNI -DHAVE_EX_DATA -DWOLFSSL_DES_ECB -DWOLFSSL_SIGNER_DER_CERT -DOPENSSL_COMPATIBLE_DEFAULTS -DWOLFSSL_TICKET_HAVE_ID -DWOLFSSL_ALT_CERT_CHAINS -DWOLFSSL_IP_ALT_NAME -DNO_SESSION_CACHE_REF -DWOLFSSL_DES_ECB -DWOLFSSL_TICKET_NONCE_MALLOC -DWOLFSSL_ENCRYPTED_KEYS -DHAVE_SCRYPT -DWOLFSSL_SP_MATH_ALL -DWOLFSSL_SP_PPC -DWOLF_CRYPTO_CB -DWC_NO_ASYNC_THREADING -DHAVE_AES_KEYWRAP -DWOLFSSL_AES_DIRECT -DNO_OLD_RNGNAME -DNO_OLD_WC_NAMES -DNO_OLD_SSL_NAMES -DNO_OLD_SHA_NAMES -DNO_OLD_MD5_NAME -DWOLFSSL_HASH_FLAGS -DRSA_MAX_SIZE=4096 -DFP_MAX_BITS=8192 -DSP_INT_BITS=4096 -DWOLFSSL_TRUST_PEER_CERT -DNO_SESSION_CACHE_REF -DWOLFSSL_TLS13_NO_PEEK_HANDSHAKE_DONE -DWOLFSSL_ALT_CERT_CHAINS -DWOLFSSL_PRIORITIZE_PSK -DWOLFSSL_CHECK_ALERT_ON_ERR -DWOLFSSL_TICKET_HAVE_ID -DHAVE_RPK -DWOLFSSL_KEY_GEN -DWOLFSSL_CERT_REQ -DWOLFSSL_CERT_GEN -DWOLFSSL_CERT_EXT -DHAVE_ED25519 -DHAVE_OCSP -DWOLFSSL_ED25519_STREAMING_VERIFY -DOPENSSL_ALL -DWOLFSSL_EITHER_SIDE -DWC_RSA_NO_PADDING -DWC_RSA_PSS -DWOLFSSL_PSS_LONG_SALT -DWOLFSSL_TICKET_HAVE_ID -DWOLFSSL_ERROR_CODE_OPENSSL -DWOLFSSL_CERT_NAME_ALL -DWOLFSSL_AES_SIV -DOPENSSL_EXTRA -DWOLFSSL_HAVE_WOLFSCEP -DHAVE_PKCS7 -DNO_DES3_TLS_SUITES -DHAVE_AESGCM -DWOLFSSL_AESGCM_STREAM -DWOLFSSL_AESXTS_STREAM -DWOLFSSL_SRTP -DWOLFSSL_MULTICAST -DWOLFSSL_PUBLIC_MP -DHAVE_TLS_EXTENSIONS -DHAVE_SERVER_RENEGOTIATION_INFO -DHAVE_COMP_KEY -DWOLFSSL_ALLOW_RC4 -DWOLFSSL_TLS_OCSP_MULTI -Wall -Wno-unused -O2 -DHAVE_WC_INTROSPECTION -include ./.build_params "-DLIBWOLFSSL_GLOBAL_EXTRA_CFLAGS=\" \"" -pipe -Os -arch ppc -Wno-pragmas -Wall -Wextra -Wunknown-pragmas --param=ssp-buffer-size=1 -Waddress -Wbad-function-cast -Wchar-subscripts -Wcomment -Wfloat-equal -Wformat-security -Wformat=2 -Wmissing-field-initializers -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wnormalized=id -Woverride-init -Wpointer-arith -Wpointer-sign -Wshadow -Wshorten-64-to-32 -Wsign-compare -Wstrict-overflow=1 -Wstrict-prototypes -Wswitch-enum -Wundef -Wunused -Wunused-variable -Wwrite-strings -fwrapv -MT wolfcrypt/src/src_libwolfssl_la-sp_int.lo -MD -MP -MF wolfcrypt/src/.deps/src_libwolfssl_la-sp_int.Tpo -c wolfcrypt/src/sp_int.c -fno-common -DPIC -o wolfcrypt/src/.libs/src_libwolfssl_la-sp_int.o
wolfcrypt/src/sp_int.c: In function '_sp_div_3':
wolfcrypt/src/sp_int.c:6817: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c:6843: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c: In function '_sp_div_10':
wolfcrypt/src/sp_int.c:6904: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c:6930: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c: In function '_sp_div_small':
wolfcrypt/src/sp_int.c:6994: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c:7021: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c: In function '_sp_mul_nxn':
wolfcrypt/src/sp_int.c:9197: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c: In function '_sp_mul':
wolfcrypt/src/sp_int.c:9274: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c: In function '_sp_mul_8':
wolfcrypt/src/sp_int.c:9707: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c: In function '_sp_mul_12':
wolfcrypt/src/sp_int.c:9854: error: expected string literal before ')' token
mv -f wolfcrypt/src/.deps/src_libwolfssl_la-sha256.Tpo wolfcrypt/src/.deps/src_libwolfssl_la-sha256.Plo
/bin/sh ./libtool --tag=CC --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I. -DBUILDING_WOLFSSL -DWOLFSSL_HAVE_ASSERT_H -DWOLFSSL_WOLFSSH -isystem/opt/local/include/LegacySupport -I/opt/local/include -DBUILDING_WOLFSSL -fvisibility=hidden -DNDEBUG -DNO_DO178 -DWOLFSSL_ASN_TEMPLATE -DHAVE_CRL_IO -DHAVE_IO_TIMEOUT -DWOLFSSL_DER_LOAD -DKEEP_OUR_CERT -DKEEP_PEER_CERT -DWOLFSSL_SUBJ_DIR_ATTR -DWOLFSSL_FPKI -DWOLFSSL_SUBJ_INFO_ACC -DWOLFSSL_CERT_NAME_ALL -DWOLFSSL_VERBOSE_ERRORS -DHAVE_ECC_CDH -DHAVE_ECC_KOBLITZ -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DWOLFSSL_DES_ECB -DHAVE_AES_DECRYPT -DHAVE_AES_ECB -DWOLFSSL_ALT_NAMES -DHAVE_FFDHE_2048 -DHAVE_FFDHE_3072 -DWOLFSSL_ASN_ALL -DWOLFSSL_DH_EXTRA -DWOLFSSL_ECDSA_DETERMINISTIC_K_VARIANT -DWOLFSSL_HAVE_ISSUER_NAMES -pthread -DHAVE_ECH -DWOLFSSL_DTLS -DWOLFSSL_DTLS_MTU -DWOLFSSL_QUIC -DHAVE_EX_DATA -DWOLFSSL_POST_HANDSHAKE_AUTH -DWOLFSSL_SEND_HRR_COOKIE -DWOLFSSL_LIBWEBSOCKETS -DHAVE_EX_DATA -DOPENSSL_NO_EC -DWOLFSSL_OPENSSH -DHAVE_EX_DATA -DWOLFSSL_BASE16 -DWOLFSSL_ERROR_CODE_OPENSSL -DTFM_TIMING_RESISTANT -DECC_TIMING_RESISTANT -DWC_RSA_BLINDING -DFORTRESS -DWOLFSSL_ALWAYS_VERIFY_CB -DWOLFSSL_AES_COUNTER -DWOLFSSL_AES_DIRECT -DWOLFSSL_DER_LOAD -DWOLFSSL_KEY_GEN -DPERSIST_SESSION_CACHE -DPERSIST_CERT_CACHE -DATOMIC_USER -DHAVE_PK_CALLBACKS -DWOLFSSL_AES_CBC_LENGTH_CHECKS -DHAVE_AESCCM -DWOLFSSL_AES_EAX -DWOLFSSL_AES_OFB -DWOLFSSL_AES_DIRECT -DWOLFSSL_AES_CFB -DWOLFSSL_ARMASM_NO_HW_CRYPTO -DWOLFSSL_USE_ALIGN -DHAVE_CAMELLIA -DWOLFSSL_MD2 -DHAVE_NULL_CIPHER -DWOLFSSL_RIPEMD -DHAVE_BLAKE2 -DHAVE_BLAKE2B -DHAVE_BLAKE2S -DWOLFSSL_SHA224 -DWOLFSSL_SHA512 -DWOLFSSL_SHA384 -DSESSION_CERTS -DWOLFSSL_SEP -DKEEP_PEER_CERT -DHAVE_HKDF -DHAVE_HPKE -DHAVE_X963_KDF -DHAVE_ECC -DECC_SHAMIR -DECC_MIN_KEY_SZ=224 -DHAVE_ECC_BRAINPOOL -DHAVE_CURVE25519 -DFP_ECC -DHAVE_ECC_ENCRYPT -DWOLFCRYPT_HAVE_ECCSI -DWOLFSSL_PUBLIC_MP -DWOLFCRYPT_HAVE_SAKKE -DNO_OLD_TLS -DWOLFSSL_QT -DSESSION_CERTS -DOPENSSL_NO_SSL2 -DWOLFSSL_KEY_GEN -DHAVE_EX_DATA -DWOLFSSL_CUSTOM_CURVES -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DWC_RSA_PSS -DWOLFSSL_PSS_LONG_SALT -DHAVE_ANON -DWOLFSSL_ASN_PRINT -DWOLFSSL_DTLS13 -DWOLFSSL_W64_WRAPPER -DWOLFSSL_AES_DIRECT -DWOLFSSL_DTLS_CID -DWOLFSSL_DTLS_CH_FRAG -DWOLFSSL_BASE64_ENCODE -DWOLFSSL_BASE16 -DWOLFSSL_SIPHASH -DWOLFSSL_CMAC -DWOLFSSL_AES_DIRECT -DHAVE_WEBSERVER -DWOLFSSL_AES_XTS -DWOLFSSL_AES_DIRECT -DWOLFSSL_CUSTOM_CURVES -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DHAVE_ECC_CDH -DHAVE_CURVE448 -DHAVE_ED448 -DWOLFSSL_ED448_STREAMING_VERIFY -DWC_SRTP_KDF -DHAVE_AES_ECB -DWOLFSSL_AES_DIRECT -DWOLFSSL_SHA3 -DWOLFSSL_SHAKE128 -DWOLFSSL_SHAKE256 -DHAVE_POLY1305 -DHAVE_CHACHA -DHAVE_XCHACHA -DHAVE_HASHDRBG -DHAVE_OPENSSL_CMD -DHAVE_TLS_EXTENSIONS -DHAVE_CERTIFICATE_STATUS_REQUEST -DHAVE_TLS_EXTENSIONS -DHAVE_CERTIFICATE_STATUS_REQUEST_V2 -DHAVE_CRL -DHAVE_CRL_MONITOR -DHAVE_TLS_EXTENSIONS -DHAVE_SNI -DHAVE_TLS_EXTENSIONS -DHAVE_ALPN -DHAVE_TLS_EXTENSIONS -DHAVE_MAX_FRAGMENT -DHAVE_TLS_EXTENSIONS -DHAVE_TRUSTED_CA -DHAVE_TLS_EXTENSIONS -DHAVE_TRUNCATED_HMAC -DHAVE_FALLBACK_SCSV -DHAVE_KEYING_MATERIAL -DHAVE_TLS_EXTENSIONS -DHAVE_SUPPORTED_CURVES -DHAVE_FFDHE_2048 -DHAVE_SUPPORTED_CURVES -DWOLFSSL_TLS13 -DHAVE_TLS_EXTENSIONS -DHAVE_TLS_EXTENSIONS -DHAVE_SESSION_TICKET -DHAVE_EXTENDED_MASTER -DHAVE_TLS_EXTENSIONS -DHAVE_SNI -DHAVE_MAX_FRAGMENT -DHAVE_TRUNCATED_HMAC -DHAVE_ALPN -DHAVE_TRUSTED_CA -DHAVE_SUPPORTED_CURVES -DWOLFSSL_EARLY_DATA -DHAVE_SMIME -DWOLFCRYPT_HAVE_SRP -DASN_BER_TO_DER -DWOLFSSL_HAVE_CERT_SERVICE -DHAVE_LIGHTY -DHAVE_WOLFSSL_SSL_H=1 -DHAVE_EX_DATA -DOPENSSL_ALL -DWOLFSSL_KEY_GEN -DWOLFSSL_NGINX -DWOLFSSL_SIGNER_DER_CERT -DOPENSSL_COMPATIBLE_DEFAULTS -DWOLFSSL_ERROR_CODE_OPENSSL -DWOLFSSL_OPENVPN -DHAVE_KEYING_MATERIAL -DWOLFSSL_DES_ECB -DHAVE_EX_DATA -DWOLFSSL_KEY_GEN -DWOLFSSL_ALWAYS_VERIFY_CB -DWOLFSSL_ALWAYS_KEEP_SNI -DKEEP_OUR_CERT -DKEEP_PEER_CERT -DHAVE_EXT_CACHE -DHAVE_EX_DATA -DWOLFSSL_CERT_GEN -DWOLFSSL_ASIO -DASIO_USE_WOLFSSL -DWOLFSSL_KEY_GEN -DBOOST_ASIO_USE_WOLFSSL -DHAVE_EX_DATA -DSSL_TXT_TLSV1_2 -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3 -DHAVE_ENCRYPT_THEN_MAC -DHAVE_STUNNEL -DWOLFSSL_ALWAYS_VERIFY_CB -DWOLFSSL_ALWAYS_KEEP_SNI -DHAVE_EX_DATA -DWOLFSSL_DES_ECB -DWOLFSSL_SIGNER_DER_CERT -DOPENSSL_COMPATIBLE_DEFAULTS -DWOLFSSL_TICKET_HAVE_ID -DWOLFSSL_ALT_CERT_CHAINS -DWOLFSSL_IP_ALT_NAME -DNO_SESSION_CACHE_REF -DWOLFSSL_DES_ECB -DWOLFSSL_TICKET_NONCE_MALLOC -DWOLFSSL_ENCRYPTED_KEYS -DHAVE_SCRYPT -DWOLFSSL_SP_MATH_ALL -DWOLFSSL_SP_PPC -DWOLF_CRYPTO_CB -DWC_NO_ASYNC_THREADING -DHAVE_AES_KEYWRAP -DWOLFSSL_AES_DIRECT -DNO_OLD_RNGNAME -DNO_OLD_WC_NAMES -DNO_OLD_SSL_NAMES -DNO_OLD_SHA_NAMES -DNO_OLD_MD5_NAME -DWOLFSSL_HASH_FLAGS -DRSA_MAX_SIZE=4096 -DFP_MAX_BITS=8192 -DSP_INT_BITS=4096 -DWOLFSSL_TRUST_PEER_CERT -DNO_SESSION_CACHE_REF -DWOLFSSL_TLS13_NO_PEEK_HANDSHAKE_DONE -DWOLFSSL_ALT_CERT_CHAINS -DWOLFSSL_PRIORITIZE_PSK -DWOLFSSL_CHECK_ALERT_ON_ERR -DWOLFSSL_TICKET_HAVE_ID -DHAVE_RPK -DWOLFSSL_KEY_GEN -DWOLFSSL_CERT_REQ -DWOLFSSL_CERT_GEN -DWOLFSSL_CERT_EXT -DHAVE_ED25519 -DHAVE_OCSP -DWOLFSSL_ED25519_STREAMING_VERIFY -DOPENSSL_ALL -DWOLFSSL_EITHER_SIDE -DWC_RSA_NO_PADDING -DWC_RSA_PSS -DWOLFSSL_PSS_LONG_SALT -DWOLFSSL_TICKET_HAVE_ID -DWOLFSSL_ERROR_CODE_OPENSSL -DWOLFSSL_CERT_NAME_ALL -DWOLFSSL_AES_SIV -DOPENSSL_EXTRA -DWOLFSSL_HAVE_WOLFSCEP -DHAVE_PKCS7 -DNO_DES3_TLS_SUITES -DHAVE_AESGCM -DWOLFSSL_AESGCM_STREAM -DWOLFSSL_AESXTS_STREAM -DWOLFSSL_SRTP -DWOLFSSL_MULTICAST -DWOLFSSL_PUBLIC_MP -DHAVE_TLS_EXTENSIONS -DHAVE_SERVER_RENEGOTIATION_INFO -DHAVE_COMP_KEY -DWOLFSSL_ALLOW_RC4 -DWOLFSSL_TLS_OCSP_MULTI -Wall -Wno-unused -O2 -DHAVE_WC_INTROSPECTION -include ./.build_params -DLIBWOLFSSL_GLOBAL_EXTRA_CFLAGS="\" \"" -pipe -Os -arch ppc -Wno-pragmas -Wall -Wextra -Wunknown-pragmas --param=ssp-buffer-size=1 -Waddress -Wbad-function-cast -Wchar-subscripts -Wcomment -Wfloat-equal -Wformat-security -Wformat=2 -Wmissing-field-initializers -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wnormalized=id -Woverride-init -Wpointer-arith -Wpointer-sign -Wshadow -Wshorten-64-to-32 -Wsign-compare -Wstrict-overflow=1 -Wstrict-prototypes -Wswitch-enum -Wundef -Wunused -Wunused-variable -Wwrite-strings -fwrapv -MT wolfcrypt/src/src_libwolfssl_la-sha.lo -MD -MP -MF wolfcrypt/src/.deps/src_libwolfssl_la-sha.Tpo -c -o wolfcrypt/src/src_libwolfssl_la-sha.lo `test -f 'wolfcrypt/src/sha.c' || echo './'`wolfcrypt/src/sha.c
wolfcrypt/src/sp_int.c: In function '_sp_sqr':
wolfcrypt/src/sp_int.c:14900: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c:14912: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c: In function '_sp_sqr_8':
wolfcrypt/src/sp_int.c:15375: error: expected string literal before ')' token
wolfcrypt/src/sp_int.c: In function '_sp_sqr_12':
wolfcrypt/src/sp_int.c:15505: error: expected string literal before ')' token
make[2]: *** [wolfcrypt/src/src_libwolfssl_la-sp_int.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
Hi @barracuda156 ,
What is the hardware platform you are building for (x86, armv8, etc)? Can you please try with --disable-asm or -DWOLFSSL_NO_ASM and let us know your results?
Thanks, David Garske, wolfSSL
@dgarske Thank you for responding! This is on PowerPC Darwin, which seems to be supported in that source (though may not have been tested). I will try with asm disabled and update on the outcome.
Hi @barracuda156 ,
I suspect it is related to -DWOLFSSL_SP_PPC and the inline assembly macros. Either due to your compiler or perhaps a regression issue. We do have ways to test this so I am going to try a few things here.
Thanks, David Garske, wolfSSL
@dgarske With --disable-asm the build succeeds with gcc-4.2 (after I patch out -Werror due to https://github.com/wolfSSL/wolfssl/issues/8731 issue).
But it would be nice to have assembler working on powerpc.
Hi @barracuda156 ,
That's good it works with pure C (non-assembly).
@SparkiDev can you review this error output from building with WOLFSSL_SP_PPC with non-apple? It seems like possibly a minor macro issue.
wolfcrypt/src/sp_int.c: In function '_sp_div_3':
wolfcrypt/src/sp_int.c:6817: error: expected string literal before ')' token
I think it's the SP_ASM_ADDC_REG and SP_ASM_MUL macros called from lines sp_int.c:6812-6817. Macros at 3921 and 4025.
Thanks, David Garske, wolfSSL
Hi @barracuda156
Pleas try removing line 3622 that looks like this:
: \
in macro SP_ASM_MUL
And let me know if this helps.
Thanks, Sean
@SparkiDev @dgarske Turned out, that with gcc14 the build just works without disabling assembler. (It failed earlier with gcc-4.2, but old gcc cannot be used now due to another error anyway.) So I guess, nothing to fix about assembler then.
Hi @barracuda156,
Are you happy to close this Issue?
Thanks, Sean
@SparkiDev Yes, we can close this. There is no need to fix it for an archaic Xcode compiler when the modern gcc works just fine. Thank you.