kazu-yamamoto / quic

IETF QUIC library in Haskell
BSD 3-Clause "New" or "Revised" License
91 stars 12 forks source link

New release (for aarch64-linux) #47

Closed avdv closed 1 year ago

avdv commented 1 year ago

Hi.

The latest release on hackage is 0.0.1 which does not build on aarch64-linux.

Do you plan on publishing a new release soon?

Thank you!

kazu-yamamoto commented 1 year ago

Really? I believe that the quic library should be able to compile on Linux. Actually, mew.org is centos and it runs this library. Would you send a log message?

avdv commented 1 year ago

It builds on x86_64 Linux, but not on aarch64 Linux.

See https://hydra.nixos.org/log/a40flc6yx42lb2wf51gh1f9cvkgk8n71-quic-0.0.1.drv

[82 of 82] Compiling Network.QUIC.Client ( Network/QUIC/Client.hs, dist/build/Network/QUIC/Client.o, dist/build/Network/QUIC/Client.dyn_o )
gcc: error: unrecognized command line option ‘-mavx2’
gcc: error: unrecognized command line option ‘-maes’
gcc: error: unrecognized command line option ‘-mpclmul’
`cc' failed in phase `C Compiler'. (Exit code: 1)

The first commit after release 0.0.1 fixed the compilation part: https://github.com/kazu-yamamoto/quic/commit/56257c28b49ef08690a9d8abd61b9be15eb7269a

But even after applying that patch, the tests do not link:

Linking dist/build/spec/spec ...                                                                                                                                              
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9tIt_info$def: error: undefined reference to 'aead_do_decrypt'                    
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9tKg_info$def: error: undefined reference to 'aead_do_encrypt'                    
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9tHv_info$def: error: undefined reference to 'aes256gcm_setup'                    
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9tHv_info$def: error: undefined reference to 'aes128gcm_setup'                    
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9tHv_info$def: error: undefined reference to 'aes128gcm_setup'
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9tHv_info$def: error: undefined reference to 'aes256gcm_setup'
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:s9oiZ_info$def: error: undefined reference to 'supplement_get_mask'
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9w1i_info$def: error: undefined reference to 'supplement_set_sample'
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9w26_info$def: error: undefined reference to 'aead_do_decrypt'
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9w3m_info$def: error: undefined reference to 'aead_do_encrypt'
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9w0k_info$def: error: undefined reference to 'aes256gcm_setup'
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9w0k_info$def: error: undefined reference to 'aes128gcm_setup'
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9w0k_info$def: error: undefined reference to 'aes128gcm_setup'
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(Crypto.o):ghc_654.ll:c9w0k_info$def: error: undefined reference to 'aes256gcm_setup'
/build/quic-0.0.1/dist/build/libHSquic-0.0.1-InoEZILFQxuF1QpVYfmiAQ.a(CryptoFusion.o):ghc_353.c:quiczm0zi0zi1zmInoEZZILFQxuF1QpVYfmiAQ_NetworkziQUICziCryptoFusion_fusionNewCo
ntext1_info: error: undefined reference to 'aead_context_new' 

This requires commit https://github.com/kazu-yamamoto/quic/commit/6988661ff79f56f21f4c0135cca498b19e851a7f but due to some restructuring of the project files, it does not apply cleanly onto v0.0.1.

kazu-yamamoto commented 1 year ago

Ah. I have not released the current master which supports any platforms since I'm waiting for QUIC v2. Now QUIC v2 has been approved for RFC. I should check whether or not any parameter value changes exist and then release a new version. Meanwhile, would you try the current master in your environment?

avdv commented 1 year ago

Meanwhile, would you try the current master in your environment?

The current master works fine for me. Thank you!

kazu-yamamoto commented 1 year ago

Let's close this.