[ 
https://issues.apache.org/jira/browse/KUDU-3502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

YifanZhang updated KUDU-3502:
-----------------------------
    Description: 
When building Kudu(RELEASE mode) on a Mac M1 machine, I met this linker error:
{code:bash}
[ 95%] Linking CXX executable ../../../bin/kudu-master
Undefined symbols for architecture arm64:
  "_nghttp2_http2_strerror", referenced from:
      _http2_handle_stream_close in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_is_fatal", referenced from:
      _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
      _http2_recv in libcurl.a(libcurl_la-http2.o)
      _http2_send in libcurl.a(libcurl_la-http2.o)
      _on_frame_recv in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_pack_settings_payload", referenced from:
      _Curl_http2_request_upgrade in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_priority_spec_init", referenced from:
      _h2_pri_spec in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_callbacks_del", referenced from:
      _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_callbacks_new", referenced from:
      _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_callbacks_set_error_callback", referenced from:
      _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_callbacks_set_on_begin_headers_callback", referenced from:
      _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_callbacks_set_on_data_chunk_recv_callback", referenced from:
      _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_callbacks_set_on_frame_recv_callback", referenced from:
      _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_callbacks_set_on_header_callback", referenced from:
      _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_callbacks_set_on_stream_close_callback", referenced from:
      _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_callbacks_set_send_callback", referenced from:
      _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_client_new", referenced from:
      _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_del", referenced from:
      _http2_disconnect in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_get_remote_settings", referenced from:
      _on_frame_recv in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_get_stream_user_data", referenced from:
      _on_frame_recv in libcurl.a(libcurl_la-http2.o)
      _on_data_chunk_recv in libcurl.a(libcurl_la-http2.o)
      _on_stream_close in libcurl.a(libcurl_la-http2.o)
      _on_begin_headers in libcurl.a(libcurl_la-http2.o)
      _on_header in libcurl.a(libcurl_la-http2.o)
      _data_source_read_callback in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_mem_recv", referenced from:
      _h2_process_pending_input in libcurl.a(libcurl_la-http2.o)
      _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
      _http2_recv in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_resume_data", referenced from:
      _Curl_http2_done_sending in libcurl.a(libcurl_la-http2.o)
      _http2_send in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_send", referenced from:
      _Curl_http2_done in libcurl.a(libcurl_la-http2.o)
      _http2_send in libcurl.a(libcurl_la-http2.o)
      _h2_session_send in libcurl.a(libcurl_la-http2.o)
      _http2_conncheck in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_set_local_window_size", referenced from:
      _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_set_stream_user_data", referenced from:
      _Curl_http2_done in libcurl.a(libcurl_la-http2.o)
      _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
      _on_frame_recv in libcurl.a(libcurl_la-http2.o)
      _on_stream_close in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_upgrade", referenced from:
      _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_want_read", referenced from:
      _should_close_session in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_session_want_write", referenced from:
      _should_close_session in libcurl.a(libcurl_la-http2.o)
      _http2_getsock in libcurl.a(libcurl_la-http2.o)
      _http2_perform_getsock in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_strerror", referenced from:
      _h2_process_pending_input in libcurl.a(libcurl_la-http2.o)
      _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
      _http2_recv in libcurl.a(libcurl_la-http2.o)
      _http2_conncheck in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_submit_ping", referenced from:
      _http2_conncheck in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_submit_priority", referenced from:
      _h2_session_send in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_submit_request", referenced from:
      _http2_send in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_submit_rst_stream", referenced from:
      _Curl_http2_done in libcurl.a(libcurl_la-http2.o)
      _on_frame_recv in libcurl.a(libcurl_la-http2.o)
      _on_header in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_submit_settings", referenced from:
      _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_version", referenced from:
      _Curl_http2_ver in libcurl.a(libcurl_la-http2.o)
      _curl_version_info in libcurl.a(libcurl_la-version.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [bin/kudu-master] Error 1
make[1]: *** [src/kudu/master/CMakeFiles/kudu-master.dir/all] Error 2
make: *** [all] Error 2{code}

  was:
When building Kudu(RELEASE mode) on a Mac M1 machine, I met this linker error:
{code:java}
Undefined symbols for architecture arm64:
  "_nghttp2_http2_strerror", referenced from:
      _http2_handle_stream_close in libcurl.a(libcurl_la-http2.o)
  "_nghttp2_is_fatal", referenced from:
      _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
      _http2_recv in libcurl.a(libcurl_la-http2.o)
      _http2_send in libcurl.a(libcurl_la-http2.o)
      _on_frame_recv in libcurl.a(libcurl_la-http2.o) {code}


> Linker errors on ARM based Macs
> -------------------------------
>
>                 Key: KUDU-3502
>                 URL: https://issues.apache.org/jira/browse/KUDU-3502
>             Project: Kudu
>          Issue Type: Bug
>            Reporter: YifanZhang
>            Priority: Major
>
> When building Kudu(RELEASE mode) on a Mac M1 machine, I met this linker error:
> {code:bash}
> [ 95%] Linking CXX executable ../../../bin/kudu-master
> Undefined symbols for architecture arm64:
>   "_nghttp2_http2_strerror", referenced from:
>       _http2_handle_stream_close in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_is_fatal", referenced from:
>       _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
>       _http2_recv in libcurl.a(libcurl_la-http2.o)
>       _http2_send in libcurl.a(libcurl_la-http2.o)
>       _on_frame_recv in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_pack_settings_payload", referenced from:
>       _Curl_http2_request_upgrade in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_priority_spec_init", referenced from:
>       _h2_pri_spec in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_callbacks_del", referenced from:
>       _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_callbacks_new", referenced from:
>       _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_callbacks_set_error_callback", referenced from:
>       _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_callbacks_set_on_begin_headers_callback", referenced from:
>       _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_callbacks_set_on_data_chunk_recv_callback", referenced 
> from:
>       _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_callbacks_set_on_frame_recv_callback", referenced from:
>       _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_callbacks_set_on_header_callback", referenced from:
>       _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_callbacks_set_on_stream_close_callback", referenced from:
>       _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_callbacks_set_send_callback", referenced from:
>       _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_client_new", referenced from:
>       _Curl_http2_setup in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_del", referenced from:
>       _http2_disconnect in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_get_remote_settings", referenced from:
>       _on_frame_recv in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_get_stream_user_data", referenced from:
>       _on_frame_recv in libcurl.a(libcurl_la-http2.o)
>       _on_data_chunk_recv in libcurl.a(libcurl_la-http2.o)
>       _on_stream_close in libcurl.a(libcurl_la-http2.o)
>       _on_begin_headers in libcurl.a(libcurl_la-http2.o)
>       _on_header in libcurl.a(libcurl_la-http2.o)
>       _data_source_read_callback in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_mem_recv", referenced from:
>       _h2_process_pending_input in libcurl.a(libcurl_la-http2.o)
>       _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
>       _http2_recv in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_resume_data", referenced from:
>       _Curl_http2_done_sending in libcurl.a(libcurl_la-http2.o)
>       _http2_send in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_send", referenced from:
>       _Curl_http2_done in libcurl.a(libcurl_la-http2.o)
>       _http2_send in libcurl.a(libcurl_la-http2.o)
>       _h2_session_send in libcurl.a(libcurl_la-http2.o)
>       _http2_conncheck in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_set_local_window_size", referenced from:
>       _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_set_stream_user_data", referenced from:
>       _Curl_http2_done in libcurl.a(libcurl_la-http2.o)
>       _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
>       _on_frame_recv in libcurl.a(libcurl_la-http2.o)
>       _on_stream_close in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_upgrade", referenced from:
>       _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_want_read", referenced from:
>       _should_close_session in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_session_want_write", referenced from:
>       _should_close_session in libcurl.a(libcurl_la-http2.o)
>       _http2_getsock in libcurl.a(libcurl_la-http2.o)
>       _http2_perform_getsock in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_strerror", referenced from:
>       _h2_process_pending_input in libcurl.a(libcurl_la-http2.o)
>       _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
>       _http2_recv in libcurl.a(libcurl_la-http2.o)
>       _http2_conncheck in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_submit_ping", referenced from:
>       _http2_conncheck in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_submit_priority", referenced from:
>       _h2_session_send in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_submit_request", referenced from:
>       _http2_send in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_submit_rst_stream", referenced from:
>       _Curl_http2_done in libcurl.a(libcurl_la-http2.o)
>       _on_frame_recv in libcurl.a(libcurl_la-http2.o)
>       _on_header in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_submit_settings", referenced from:
>       _Curl_http2_switched in libcurl.a(libcurl_la-http2.o)
>   "_nghttp2_version", referenced from:
>       _Curl_http2_ver in libcurl.a(libcurl_la-http2.o)
>       _curl_version_info in libcurl.a(libcurl_la-version.o)
> ld: symbol(s) not found for architecture arm64
> clang: error: linker command failed with exit code 1 (use -v to see 
> invocation)
> make[2]: *** [bin/kudu-master] Error 1
> make[1]: *** [src/kudu/master/CMakeFiles/kudu-master.dir/all] Error 2
> make: *** [all] Error 2{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to