Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trouble compiling grpc with openssl #566

Closed
SRWieZ opened this issue Dec 4, 2024 · 1 comment · Fixed by #568
Closed

Trouble compiling grpc with openssl #566

SRWieZ opened this issue Dec 4, 2024 · 1 comment · Fixed by #568
Assignees
Labels
bug Something isn't working kind/dependency Issues related to dependencies

Comments

@SRWieZ
Copy link

SRWieZ commented Dec 4, 2024

I encounter an error when trying to compile grpc.

I used the cli-generator and experimented with several combinations.

After minimizing the variables, I concluded that there is a conflict between openssl and grpc.

Here is my build script:

curl -fsSL -o spc https://dl.static-php.dev/static-php-cli/spc-bin/nightly/spc-macos-x86_64
chmod +x spc
./spc --version

# works
./spc download --with-php=8.2 --for-extensions "grpc"
./spc build --debug --build-cli "grpc"

# doesn't work
./spc download --with-php=8.2 --for-extensions "grpc,openssl"
./spc build --debug --build-cli "grpc,openssl"

I tried compiling PHP with only grpc, and it works, but obviously, it's not usable in any real application.

Is there anything I do wrong or can do to help resolve the issue ?


Error logs compiling from an Intel Mac x86_64:

# ....
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1365](x_all.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[793](libcrypto-lib-x_all.o)
duplicate symbol '_DTLSv1_method' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libssl.a[6](libssl-lib-methods.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1383](dtls_method.o)
duplicate symbol '_BN_gcd' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1247](bcm.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[131](libcrypto-lib-bn_gcd.o)
duplicate symbol '_ASN1_generate_v3' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1311](asn1_gen.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[37](libcrypto-lib-asn1_gen.o)
duplicate symbol '_EVP_PKEY_derive_set_peer' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1229](evp_ctx.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[417](libcrypto-lib-exchange.o)
duplicate symbol '_BN_get_word' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[135](libcrypto-lib-bn_lib.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1247](bcm.o)
duplicate symbol '_RSA_padding_add_PKCS1_OAEP_mgf1' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1289](rsa_crypt.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[639](libcrypto-lib-rsa_oaep.o)
duplicate symbol '_BIO_new' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1167](bio.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[101](libcrypto-lib-bio_lib.o)
duplicate symbol '_AES_decrypt' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1247](bcm.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[2](libcrypto-lib-aes-x86_64.o)
duplicate symbol '_SSL_SESSION_set1_id_context' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libssl.a[24](libssl-lib-ssl_sess.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1404](ssl_session.o)
duplicate symbol '_ASN1_GENERALSTRING_new' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1164](tasn_typ.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[69](libcrypto-lib-tasn_typ.o)
duplicate symbol '_OPENSSL_strlcpy' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1254](mem.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[500](libcrypto-lib-o_str.o)
duplicate symbol '_ASN1_INTEGER_to_BN' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1145](a_int.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[22](libcrypto-lib-a_int.o)
duplicate symbol '_PEM_write_DSAPrivateKey' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1259](pem_all.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[566](libcrypto-lib-pem_all.o)
duplicate symbol '_SSL_set0_rbio' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libssl.a[20](libssl-lib-ssl_lib.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1402](ssl_lib.o)
duplicate symbol '_BIO_clear_flags' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1167](bio.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[101](libcrypto-lib-bio_lib.o)
duplicate symbol '_d2i_X509_bio' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1365](x_all.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[793](libcrypto-lib-x_all.o)
duplicate symbol '_BN_is_bit_set' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[135](libcrypto-lib-bn_lib.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1247](bcm.o)
duplicate symbol '_ASN1_TIME_adj' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1151](a_time.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[30](libcrypto-lib-a_time.o)
duplicate symbol '_AES_cbc_encrypt' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1247](bcm.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[2](libcrypto-lib-aes-x86_64.o)
duplicate symbol '_EC_KEY_new_by_curve_name' in:
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libgrpc.a[1247](bcm.o)
    /Users/eserdeniz/Projects/spc-build-grpc/buildroot/lib/libcrypto.a[308](libcrypto-lib-ec_key.o)
ld: 1499 duplicate symbols
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/cli/php] Error 1
[19:33:29] [ERRO] Uncaught SPC\exception\RuntimeException: Command run failed with code[2]:
# ....
@crazywhalecc crazywhalecc added bug Something isn't working kind/dependency Issues related to dependencies labels Dec 5, 2024
@crazywhalecc crazywhalecc self-assigned this Dec 5, 2024
@SRWieZ
Copy link
Author

SRWieZ commented Dec 5, 2024

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working kind/dependency Issues related to dependencies
Projects
None yet
2 participants