Skip to content

ld: symbol(s) not found for architecture arm64 #2145

@akhst7

Description

@akhst7

Trying to compile the latest STAR 2.7.11b on M1 Mac running the latest OSX 14.5 by running a following command;

make -j8 STARforMacStatic CXX=/opt/homebrew/opt/gcc/bin/g++-14 CXXFLAGS_SIMD=-march=native

Toward the end, ld complains about arm64 symbols not found in htslib, as follows;

ld: warning: ignoring file 'htslib/libhts.a[32](zfio.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[31](vlen.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[30](thread_pool.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[29](string_alloc.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[28](sam_header.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[27](pooled_alloc.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[26](open_trace_file.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[25](md5.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[24](mFILE.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[23](files.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[22](cram_stats.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[21](cram_samtools.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[20](cram_io.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[19](cram_index.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[18](cram_encode.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[17](cram_decode.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[16](cram_codecs.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[15](vcfutils.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[14](vcf.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[13](tbx.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[12](vcf_sweep.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[11](synced_bcf_reader.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[10](sam.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[9](hts.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[8](hfile_net.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[7](hfile.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[6](faidx.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[5](bgzf.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[4](kstring.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[3](knetfile.o)': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file 'htslib/libhts.a[2](kfunc.o)': found architecture 'x86_64', required architecture 'arm64'

I checked brew installation is all the packages including gcc are native arm64. I did not run into this issue in the previous version, 2.7.10b_alpha_23-06-09. I downloaded the precompiled binary and get the similar error message, /opt/homebrew/Cellar/veclibfort/0.4.3/lib/libvecLibFortI.dylib (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')). libvecLibFortI.dylib is compiled for arm64. Is a target architecture of STAR 2.7.11b set to X86_64, not arm64 or even unified ? Or am I missing something ? I'd appreciate any pointers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions