Arquivos de objeto não adicionados corretamente para arquivar no mac
Estou tentando criar um arquivo morto a partir de uma coleção de arquivos de objetos. Estou fazendo isso com
ar -rs my_archive.a foo.o bar.o other_object_files.o
.
Em uma máquina linux está tudo bem, mas quando tento o mesmo comando no meu mac, parece que apenas alguns arquivos de objetos foram adicionados. Isso resulta em símbolos indefinidos correspondentes a sub-rotinas em, digamos,other_object_files.o
.
Além disso, se eu tentar vincular manualmente os arquivos de objeto que deram origem a símbolos indefinidos, eu posso criar corretamente o executável.
Isso é
ifort -o my_exec main.o other_object_files.o my_archive.a
funciona bem.
Estou perdendo alguma diferença entre linux e mac em relação a isso?
EDITAR
Denm other_object_files.o
os símbolos parecem bons, então é como se eles não fossem adicionados corretamente ao arquivo.
Aqui estão algumas linhas domy_archive.a
arquivo no linux e no mac (os nomes dos objetos e dos arquivos archive são diferentes, é claro)
Linux:
ed_2.1-opt.a:decomp_coms.o:0000000000000000 T decomp_coms._
ed_2.1-opt.a:decomp_coms.o:0000000000000038 R decomp_coms___debug_param_const
ed_2.1-opt.a:decomp_coms.o:0000000000000030 D decomp_coms_mp_cwd_frac_
ed_2.1-opt.a:decomp_coms.o:0000000000000008 D decomp_coms_mp_decay_rate_fsc_
ed_2.1-opt.a:decomp_coms.o:0000000000000000 D decomp_coms_mp_decay_rate_ssc_
ed_2.1-opt.a:decomp_coms.o:0000000000000010 D decomp_coms_mp_decay_rate_stsc_
ed_2.1-opt.a:decomp_coms.o:0000000000000004 C decomp_coms_mp_decomp_scheme_
ed_2.1-opt.a:decomp_coms.o:0000000000000044 C decomp_coms_mp_f_labile_
Mac:
ed_2.1-opt.a:decomp_coms.o: 0000000000000000 T _decomp_coms._
ed_2.1-opt.a:decomp_coms.o: 000000000000058c S _decomp_coms._.eh
ed_2.1-opt.a:decomp_coms.o: 0000000000000010 C _decomp_coms_mp_cwd_frac_
ed_2.1-opt.a:decomp_coms.o: 0000000000000010 C _decomp_coms_mp_decay_rate_fsc_
ed_2.1-opt.a:decomp_coms.o: 0000000000000010 C _decomp_coms_mp_decay_rate_ssc_
ed_2.1-opt.a:decomp_coms.o: 0000000000000010 C _decomp_coms_mp_decay_rate_stsc_
ed_2.1-opt.a:decomp_coms.o: 0000000000000010 C _decomp_coms_mp_decomp_scheme_
ed_2.1-opt.a:decomp_coms.o: 0000000000000050 C _decomp_coms_mp_f_labile_
EDITAR
Tentei também
libtool -static -arch_only x86_64 -o my_archive.a foo.o bar.o other_object_files.o
seguindo este SOpostar mas novamente nenhum progresso.