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

Cannot build on Apple M1 Pro: found architecture 'x86_64', required architecture 'arm64' #1030

Closed
kerryChen95 opened this issue Jun 28, 2024 · 1 comment

Comments

@kerryChen95
Copy link

kerryChen95 commented Jun 28, 2024

I wanna install libsndfile with architecture 'arm64' on Apple M1 chip, but brew install libsndfile always result in the architecture x86_64 instead of architecture arm64, so I build libsndfile myself.

As an alternative, since the release 1.2.2 only provide a pre-build package for x86_64. Can you provide a pre-build package for arm64? Thank you very much!

Environment

  • Chip: Apple M1 Pro
  • macOS Sonoma 14.5

Steps to Reproduce

~/libsndfile-1.2.2 »  brew install autoconf autogen automake libtool mpg123 pkg-config flac libvorbis opus libogg --build-from-source
## no error

~/libsndfile-1.2.2 »  autoreconf -vif
## no error

~/libsndfile-1.2.2 » ./configure --enable-werror
-=-=-=-=-=-=-=-=-=-= Configuration Complete =-=-=-=-=-=-=-=-=-=-=-

  Configuration summary :

    libsndfile version : .................. 1.2.2

    Host CPU : ............................ aarch64
    Host Vendor : ......................... apple
    Host OS : ............................. darwin23.5.0

    CFLAGS : ..............................  -O2 -pipe -Werror -Wall -Wextra -Wpointer-arith -Wcast-align -Wcast-qual -Wshadow -Wwrite-strings -Wundef -Wuninitialized -Winit-self -Wvla -Wbad-function-cast -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Waggregate-return 
    CXXFLAGS : ............................  -O2 -pipe -Werror -Wall -Wextra -Wpointer-arith -Wcast-align -Wcast-qual -Wshadow -Wwrite-strings -Wundef -Wuninitialized -Winit-self -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wreorder -Wsign-promo
    CPPFLAGS : ............................ 
    LDFLAGS : .............................  -Wl,-dead_strip_dylibs

    Experimental code : ................... no
    Using ALSA in example programs : ...... no (auto)
    External FLAC/Ogg/Vorbis/Opus : ....... yes
    External MPEG Lame/MPG123 : ........... no
    Building Octave interface : ........... no

  Tools :

    C Compiler Vendor is : ................ clang (15.0.0)
    CXX Compiler Vendor is : .............. clang (15.0.0)

    Sanitizer enabled : ................... no

  Installation directories :

    Library directory : ................... /usr/local/lib
    Program directory : ................... /usr/local/bin
    Pkgconfig directory : ................. /usr/local/lib/pkgconfig
    HTML docs directory : ................. /usr/local/share/doc/libsndfile

Compiling some other packages against libsndfile may require
the addition of '/usr/local/lib/pkgconfig' to the
PKG_CONFIG_PATH environment variable.



~/libsndfile-1.2.2 » make                       
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
  CC       src/libsndfile_la-flac.lo
  CC       src/libsndfile_la-ogg_vorbis.lo
  CC       src/libsndfile_la-ogg_opus.lo
  CCLD     src/libsndfile.la
ld: warning: ignoring file '/usr/local/Cellar/flac/1.4.3/lib/libFLAC.12.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/libvorbis/1.3.7/lib/libvorbis.0.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/opus/1.5.2/lib/libopus.0.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/libvorbis/1.3.7/lib/libvorbisenc.2.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/libogg/1.3.5/lib/libogg.0.8.5.dylib': found architecture 'x86_64', required architecture 'arm64'
Undefined symbols for architecture arm64:
  "_FLAC__StreamDecoderErrorStatusString", referenced from:
      _sf_flac_error_callback in libsndfile_la-flac.o
  "_FLAC__StreamDecoderStateString", referenced from:
      _flac_read_loop in libsndfile_la-flac.o
      _flac_read_loop in libsndfile_la-flac.o
  "_FLAC__StreamEncoderInitStatusString", referenced from:
      _flac_write_header in libsndfile_la-flac.o
  "_FLAC__metadata_object_delete", referenced from:
      _flac_close in libsndfile_la-flac.o
  "_FLAC__metadata_object_new", referenced from:
      _flac_write_header in libsndfile_la-flac.o
  "_FLAC__metadata_object_vorbiscomment_append_comment", referenced from:
      _flac_write_header in libsndfile_la-flac.o
  "_FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair", referenced from:
      _flac_write_header in libsndfile_la-flac.o
  "_FLAC__metadata_object_vorbiscomment_find_entry_from", referenced from:
      _sf_flac_meta_callback in libsndfile_la-flac.o
  "_FLAC__stream_decoder_delete", referenced from:
      _flac_open in libsndfile_la-flac.o
      _flac_open in libsndfile_la-flac.o
      _flac_close in libsndfile_la-flac.o
  "_FLAC__stream_decoder_finish", referenced from:
      _flac_close in libsndfile_la-flac.o
  "_FLAC__stream_decoder_get_decode_position", referenced from:
      _flac_open in libsndfile_la-flac.o
  "_FLAC__stream_decoder_get_state", referenced from:
      _flac_read_loop in libsndfile_la-flac.o
      _flac_read_loop in libsndfile_la-flac.o
  "_FLAC__stream_decoder_init_stream", referenced from:
      _flac_open in libsndfile_la-flac.o
  "_FLAC__stream_decoder_new", referenced from:
      _flac_open in libsndfile_la-flac.o
  "_FLAC__stream_decoder_process_single", referenced from:
      _flac_read_loop in libsndfile_la-flac.o
  "_FLAC__stream_decoder_process_until_end_of_metadata", referenced from:
      _flac_open in libsndfile_la-flac.o
  "_FLAC__stream_decoder_seek_absolute", referenced from:
      _flac_seek in libsndfile_la-flac.o
  "_FLAC__stream_decoder_set_metadata_respond_all", referenced from:
      _flac_open in libsndfile_la-flac.o
  "_FLAC__stream_encoder_delete", referenced from:
      _flac_enc_init in libsndfile_la-flac.o
      _flac_close in libsndfile_la-flac.o
  "_FLAC__stream_encoder_finish", referenced from:
      _flac_close in libsndfile_la-flac.o
  "_FLAC__stream_encoder_init_stream", referenced from:
      _flac_write_header in libsndfile_la-flac.o
  "_FLAC__stream_encoder_new", referenced from:
      _flac_enc_init in libsndfile_la-flac.o
  "_FLAC__stream_encoder_process_interleaved", referenced from:
      _flac_write_s2flac in libsndfile_la-flac.o
      _flac_write_i2flac in libsndfile_la-flac.o
      _flac_write_f2flac in libsndfile_la-flac.o
      _flac_write_d2flac in libsndfile_la-flac.o
  "_FLAC__stream_encoder_set_bits_per_sample", referenced from:
      _flac_enc_init in libsndfile_la-flac.o
  "_FLAC__stream_encoder_set_channels", referenced from:
      _flac_enc_init in libsndfile_la-flac.o
  "_FLAC__stream_encoder_set_compression_level", referenced from:
      _flac_enc_init in libsndfile_la-flac.o
  "_FLAC__stream_encoder_set_metadata", referenced from:
      _flac_write_header in libsndfile_la-flac.o
  "_FLAC__stream_encoder_set_sample_rate", referenced from:
      _flac_enc_init in libsndfile_la-flac.o
  "_ogg_packet_clear", referenced from:
      _ogg_opus_open in libsndfile_la-ogg_opus.o
      _ogg_opus_close in libsndfile_la-ogg_opus.o
  "_ogg_page_bos", referenced from:
      _ogg_read_first_page in libsndfile_la-ogg.o
      _ogg_opus_open in libsndfile_la-ogg_opus.o
  "_ogg_page_eos", referenced from:
      _ogg_stream_next_page in libsndfile_la-ogg.o
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
      _vorbis_close in libsndfile_la-ogg_vorbis.o
      _vorbis_write_samples in libsndfile_la-ogg_vorbis.o
      _ogg_opus_open in libsndfile_la-ogg_opus.o
      _ogg_opus_open in libsndfile_la-ogg_opus.o
      _ogg_opus_read_refill in libsndfile_la-ogg_opus.o
      ...
  "_ogg_page_granulepos", referenced from:
      _ogg_sync_last_page_before in libsndfile_la-ogg.o
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
  "_ogg_page_packets", referenced from:
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
      _ogg_opus_open in libsndfile_la-ogg_opus.o
  "_ogg_page_serialno", referenced from:
      _ogg_read_first_page in libsndfile_la-ogg.o
      _ogg_stream_next_page in libsndfile_la-ogg.o
      _ogg_sync_last_page_before in libsndfile_la-ogg.o
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
      _ogg_open in libsndfile_la-ogg.o
      _ogg_opus_open in libsndfile_la-ogg_opus.o
  "_ogg_stream_clear", referenced from:
      _ogg_open in libsndfile_la-ogg.o
      _ogg_close in libsndfile_la-ogg.o
  "_ogg_stream_flush", referenced from:
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
      _ogg_opus_close in libsndfile_la-ogg_opus.o
      _ogg_opus_write_header in libsndfile_la-ogg_opus.o
      _ogg_opus_write_header in libsndfile_la-ogg_opus.o
  "_ogg_stream_flush_fill", referenced from:
      _ogg_opus_write_out in libsndfile_la-ogg_opus.o
  "_ogg_stream_init", referenced from:
      _ogg_open in libsndfile_la-ogg.o
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
      _ogg_opus_open in libsndfile_la-ogg_opus.o
  "_ogg_stream_packetin", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
      _vorbis_write_samples in libsndfile_la-ogg_vorbis.o
      _ogg_opus_close in libsndfile_la-ogg_opus.o
      _ogg_opus_write_header in libsndfile_la-ogg_opus.o
      _ogg_opus_write_header in libsndfile_la-ogg_opus.o
      ...
  "_ogg_stream_packetout", referenced from:
      _ogg_read_first_page in libsndfile_la-ogg.o
      _ogg_stream_unpack_page in libsndfile_la-ogg.o
      _ogg_stream_unpack_page in libsndfile_la-ogg.o
      _ogg_stream_unpack_page in libsndfile_la-ogg.o
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
      _ogg_page_search_continued_data in libsndfile_la-ogg.o
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
      ...
  "_ogg_stream_packetpeek", referenced from:
      _ogg_stream_unpack_page in libsndfile_la-ogg.o
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
  "_ogg_stream_pagein", referenced from:
      _ogg_read_first_page in libsndfile_la-ogg.o
      _ogg_stream_next_page in libsndfile_la-ogg.o
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
      _ogg_page_search_continued_data in libsndfile_la-ogg.o
  "_ogg_stream_pageout", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
      _vorbis_write_samples in libsndfile_la-ogg_vorbis.o
      _ogg_opus_close in libsndfile_la-ogg_opus.o
  "_ogg_stream_pageout_fill", referenced from:
      _ogg_opus_write_out in libsndfile_la-ogg_opus.o
  "_ogg_stream_reset", referenced from:
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
      _ogg_opus_seek in libsndfile_la-ogg_opus.o
      _ogg_opus_seek in libsndfile_la-ogg_opus.o
  "_ogg_stream_reset_serialno", referenced from:
      _ogg_read_first_page in libsndfile_la-ogg.o
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
      _ogg_opus_write_header in libsndfile_la-ogg_opus.o
  "_ogg_sync_buffer", referenced from:
      _ogg_read_first_page in libsndfile_la-ogg.o
      _ogg_sync_next_page in libsndfile_la-ogg.o
      _ogg_sync_next_page in libsndfile_la-ogg.o
  "_ogg_sync_clear", referenced from:
      _ogg_open in libsndfile_la-ogg.o
      _ogg_close in libsndfile_la-ogg.o
  "_ogg_sync_init", referenced from:
      _ogg_open in libsndfile_la-ogg.o
  "_ogg_sync_pageseek", referenced from:
      _ogg_sync_next_page in libsndfile_la-ogg.o
      _ogg_sync_next_page in libsndfile_la-ogg.o
  "_ogg_sync_reset", referenced from:
      _ogg_read_first_page in libsndfile_la-ogg.o
      _ogg_sync_fseek in libsndfile_la-ogg.o
      _ogg_sync_last_page_before in libsndfile_la-ogg.o
      _ogg_stream_seek_page_search in libsndfile_la-ogg.o
  "_ogg_sync_wrote", referenced from:
      _ogg_read_first_page in libsndfile_la-ogg.o
      _ogg_sync_next_page in libsndfile_la-ogg.o
  "_opus_get_version_string", referenced from:
      _ogg_opus_open in libsndfile_la-ogg_opus.o
      _ogg_opus_write_header in libsndfile_la-ogg_opus.o
  "_opus_multistream_decode_float", referenced from:
      _ogg_opus_read_refill in libsndfile_la-ogg_opus.o
      _ogg_opus_read_refill in libsndfile_la-ogg_opus.o
  "_opus_multistream_decoder_create", referenced from:
      _ogg_opus_setup_decoder in libsndfile_la-ogg_opus.o
  "_opus_multistream_decoder_ctl", referenced from:
      _ogg_opus_seek in libsndfile_la-ogg_opus.o
      _ogg_opus_seek in libsndfile_la-ogg_opus.o
      _ogg_opus_seek in libsndfile_la-ogg_opus.o
      _ogg_opus_setup_decoder in libsndfile_la-ogg_opus.o
  "_opus_multistream_decoder_destroy", referenced from:
      _ogg_opus_close in libsndfile_la-ogg_opus.o
      _ogg_opus_setup_decoder in libsndfile_la-ogg_opus.o
  "_opus_multistream_encode_float", referenced from:
      _ogg_opus_close in libsndfile_la-ogg_opus.o
      _ogg_opus_write_out in libsndfile_la-ogg_opus.o
  "_opus_multistream_encoder_create", referenced from:
      _ogg_opus_open in libsndfile_la-ogg_opus.o
  "_opus_multistream_encoder_ctl", referenced from:
      _ogg_opus_open in libsndfile_la-ogg_opus.o
      _ogg_opus_open in libsndfile_la-ogg_opus.o
      _ogg_opus_open in libsndfile_la-ogg_opus.o
      _ogg_opus_command in libsndfile_la-ogg_opus.o
      _ogg_opus_write_out in libsndfile_la-ogg_opus.o
  "_opus_multistream_encoder_destroy", referenced from:
      _ogg_opus_close in libsndfile_la-ogg_opus.o
  "_opus_multistream_surround_encoder_create", referenced from:
      _ogg_opus_open in libsndfile_la-ogg_opus.o
  "_opus_packet_get_nb_samples", referenced from:
      _ogg_opus_open in libsndfile_la-ogg_opus.o
      _ogg_opus_seek in libsndfile_la-ogg_opus.o
      _ogg_opus_byterate in libsndfile_la-ogg_opus.o
      _ogg_opus_read_refill in libsndfile_la-ogg_opus.o
      _ogg_opus_unpack_next_page in libsndfile_la-ogg_opus.o
  "_opus_strerror", referenced from:
      _ogg_opus_open in libsndfile_la-ogg_opus.o
      _ogg_opus_open in libsndfile_la-ogg_opus.o
      _ogg_opus_close in libsndfile_la-ogg_opus.o
      _ogg_opus_setup_decoder in libsndfile_la-ogg_opus.o
      _ogg_opus_read_refill in libsndfile_la-ogg_opus.o
      _ogg_opus_write_out in libsndfile_la-ogg_opus.o
  "_vorbis_analysis", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
      _vorbis_write_samples in libsndfile_la-ogg_vorbis.o
  "_vorbis_analysis_blockout", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
      _vorbis_close in libsndfile_la-ogg_vorbis.o
      _vorbis_write_samples in libsndfile_la-ogg_vorbis.o
      _vorbis_write_samples in libsndfile_la-ogg_vorbis.o
  "_vorbis_analysis_buffer", referenced from:
      _vorbis_write_s in libsndfile_la-ogg_vorbis.o
      _vorbis_write_i in libsndfile_la-ogg_vorbis.o
      _vorbis_write_f in libsndfile_la-ogg_vorbis.o
      _vorbis_write_d in libsndfile_la-ogg_vorbis.o
  "_vorbis_analysis_headerout", referenced from:
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
  "_vorbis_analysis_init", referenced from:
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
  "_vorbis_analysis_wrote", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
      _vorbis_write_samples in libsndfile_la-ogg_vorbis.o
  "_vorbis_bitrate_addblock", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
      _vorbis_write_samples in libsndfile_la-ogg_vorbis.o
  "_vorbis_bitrate_flushpacket", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
      _vorbis_write_samples in libsndfile_la-ogg_vorbis.o
  "_vorbis_block_clear", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
  "_vorbis_block_init", referenced from:
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
  "_vorbis_comment_add_tag", referenced from:
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
  "_vorbis_comment_clear", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
  "_vorbis_comment_init", referenced from:
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
  "_vorbis_comment_query", referenced from:
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
  "_vorbis_dsp_clear", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
  "_vorbis_encode_init_vbr", referenced from:
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
  "_vorbis_info_blocksize", referenced from:
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
  "_vorbis_info_clear", referenced from:
      _vorbis_close in libsndfile_la-ogg_vorbis.o
  "_vorbis_info_init", referenced from:
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
      _vorbis_write_header in libsndfile_la-ogg_vorbis.o
  "_vorbis_packet_blocksize", referenced from:
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
      _vorbis_calculate_granulepos in libsndfile_la-ogg_vorbis.o
  "_vorbis_synthesis", referenced from:
      _vorbis_read_sample in libsndfile_la-ogg_vorbis.o
  "_vorbis_synthesis_blockin", referenced from:
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
      _vorbis_read_sample in libsndfile_la-ogg_vorbis.o
  "_vorbis_synthesis_headerin", referenced from:
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
  "_vorbis_synthesis_init", referenced from:
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.o
  "_vorbis_synthesis_pcmout", referenced from:
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
      _vorbis_read_sample in libsndfile_la-ogg_vorbis.o
  "_vorbis_synthesis_read", referenced from:
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
      _vorbis_read_sample in libsndfile_la-ogg_vorbis.o
  "_vorbis_synthesis_restart", referenced from:
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
      _vorbis_read_sample in libsndfile_la-ogg_vorbis.o
  "_vorbis_synthesis_trackonly", referenced from:
      _vorbis_seek in libsndfile_la-ogg_vorbis.o
  "_vorbis_version_string", referenced from:
      _ogg_vorbis_open in libsndfile_la-ogg_vorbis.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]: *** [src/libsndfile.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
@kerryChen95
Copy link
Author

I found brew config giving macOS: x85-64 on my M1 Pro MacBook, it might be caused by macOS Migration Assistant that transfer Homebrew config from Intel chip MacBook to M1 Pro MacBook.

So I uninstalled homebrew and intalled it again, then this issue got resolved!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant