build failure on MacOS X 10.5

Bruno Haible bruno at clisp.org
Sat Jan 14 22:31:14 CET 2012


Building gmp-5.0.2 on MacOS X 10.5.8 fails:

$ ./configure CPPFLAGS=-Wall
$ make
...
/bin/sh ./libtool --tag=CC   --mode=link gcc -std=gnu99  -O2 -pedantic -m64 -mtune=k8 -march=k8   -version-info 10:2:0  -o libgmp.la -rpath /Users/bruno/data/local-macos/lib assert.lo compat.lo errno.lo extract-dbl.lo invalid.lo memory.lo mp_bpl.lo mp_clz_tab.lo mp_dv_tab.lo mp_minv_tab.lo mp_get_fns.lo mp_set_fns.lo rand.lo randclr.lo randdef.lo randiset.lo randlc2s.lo randlc2x.lo randmt.lo randmts.lo rands.lo randsd.lo randsdui.lo randbui.lo randmui.lo version.lo nextprime.lo tal-reent.lo mpf/init.lo mpf/init2.lo mpf/inits.lo mpf/set.lo mpf/set_ui.lo mpf/set_si.lo mpf/set_str.lo mpf/set_d.lo mpf/set_z.lo mpf/iset.lo mpf/iset_ui.lo mpf/iset_si.lo mpf/iset_str.lo mpf/iset_d.lo mpf/clear.lo mpf/clears.lo mpf/get_str.lo mpf/dump.lo mpf/size.lo mpf/eq.lo mpf/reldiff.lo mpf/sqrt.lo mpf/random2.lo mpf/inp_str.lo mpf/out_str.lo mpf/add.lo mpf/add_ui.lo mpf/sub.lo mpf/sub_ui.lo mpf/ui_sub.lo mpf/mul.lo mpf/mul_ui.lo mpf/div.lo mpf/div_ui.lo mpf/cmp.lo mpf/cmp_d.lo mpf/cmp_ui.lo mpf/cmp_si.lo mpf/mul_2exp.lo mpf/div_2exp.lo mpf/abs.lo mpf/neg.lo mpf/set_q.lo mpf/get_d.lo mpf/get_d_2exp.lo mpf/set_dfl_prec.lo mpf/set_prc.lo mpf/set_prc_raw.lo mpf/get_dfl_prec.lo mpf/get_prc.lo mpf/ui_div.lo mpf/sqrt_ui.lo mpf/ceilfloor.lo mpf/trunc.lo mpf/pow_ui.lo mpf/urandomb.lo mpf/swap.lo mpf/fits_sint.lo mpf/fits_slong.lo mpf/fits_sshort.lo mpf/fits_uint.lo mpf/fits_ulong.lo mpf/fits_ushort.lo mpf/get_si.lo mpf/get_ui.lo mpf/int_p.lo mpz/abs.lo mpz/add.lo mpz/add_ui.lo mpz/aorsmul.lo mpz/aorsmul_i.lo mpz/and.lo mpz/array_init.lo mpz/bin_ui.lo mpz/bin_uiui.lo mpz/cdiv_q.lo mpz/cdiv_q_ui.lo mpz/cdiv_qr.lo mpz/cdiv_qr_ui.lo mpz/cdiv_r.lo mpz/cdiv_r_ui.lo mpz/cdiv_ui.lo mpz/cfdiv_q_2exp.lo mpz/cfdiv_r_2exp.lo mpz/clear.lo mpz/clears.lo mpz/clrbit.lo mpz/cmp.lo mpz/cmp_d.lo mpz/cmp_si.lo mpz/cmp_ui.lo mpz/cmpabs.lo mpz/cmpabs_d.lo mpz/cmpabs_ui.lo mpz/com.lo mpz/combit.lo mpz/cong.lo mpz/cong_2exp.lo mpz/cong_ui.lo mpz/divexact.lo mpz/divegcd.lo mpz/dive_ui.lo mpz/divis.lo mpz/divis_ui.lo mpz/divis_2exp.lo mpz/dump.lo mpz/export.lo mpz/fac_ui.lo mpz/fdiv_q.lo mpz/fdiv_q_ui.lo mpz/fdiv_qr.lo mpz/fdiv_qr_ui.lo mpz/fdiv_r.lo mpz/fdiv_r_ui.lo mpz/fdiv_ui.lo mpz/fib_ui.lo mpz/fib2_ui.lo mpz/fits_sint.lo mpz/fits_slong.lo mpz/fits_sshort.lo mpz/fits_uint.lo mpz/fits_ulong.lo mpz/fits_ushort.lo mpz/gcd.lo mpz/gcd_ui.lo mpz/gcdext.lo mpz/get_d.lo mpz/get_d_2exp.lo mpz/get_si.lo mpz/get_str.lo mpz/get_ui.lo mpz/getlimbn.lo mpz/hamdist.lo mpz/import.lo mpz/init.lo mpz/init2.lo mpz/inits.lo mpz/inp_raw.lo mpz/inp_str.lo mpz/invert.lo mpz/ior.lo mpz/iset.lo mpz/iset_d.lo mpz/iset_si.lo mpz/iset_str.lo mpz/iset_ui.lo mpz/jacobi.lo mpz/kronsz.lo mpz/kronuz.lo mpz/kronzs.lo mpz/kronzu.lo mpz/lcm.lo mpz/lcm_ui.lo mpz/lucnum_ui.lo mpz/lucnum2_ui.lo mpz/millerrabin.lo mpz/mod.lo mpz/mul.lo mpz/mul_2exp.lo mpz/mul_si.lo mpz/mul_ui.lo mpz/n_pow_ui.lo mpz/neg.lo mpz/nextprime.lo mpz/out_raw.lo mpz/out_str.lo mpz/perfpow.lo mpz/perfsqr.lo mpz/popcount.lo mpz/pow_ui.lo mpz/powm.lo mpz/powm_sec.lo mpz/powm_ui.lo mpz/pprime_p.lo mpz/random.lo mpz/random2.lo mpz/realloc.lo mpz/realloc2.lo mpz/remove.lo mpz/root.lo mpz/rootrem.lo mpz/rrandomb.lo mpz/scan0.lo mpz/scan1.lo mpz/set.lo mpz/set_d.lo mpz/set_f.lo mpz/set_q.lo mpz/set_si.lo mpz/set_str.lo mpz/set_ui.lo mpz/setbit.lo mpz/size.lo mpz/sizeinbase.lo mpz/sqrt.lo mpz/sqrtrem.lo mpz/sub.lo mpz/sub_ui.lo mpz/swap.lo mpz/tdiv_ui.lo mpz/tdiv_q.lo mpz/tdiv_q_2exp.lo mpz/tdiv_q_ui.lo mpz/tdiv_qr.lo mpz/tdiv_qr_ui.lo mpz/tdiv_r.lo mpz/tdiv_r_2exp.lo mpz/tdiv_r_ui.lo mpz/tstbit.lo mpz/ui_pow_ui.lo mpz/ui_sub.lo mpz/urandomb.lo mpz/urandomm.lo mpz/xor.lo mpq/abs.lo mpq/aors.lo mpq/canonicalize.lo mpq/clear.lo mpq/clears.lo mpq/cmp.lo mpq/cmp_si.lo mpq/cmp_ui.lo mpq/div.lo mpq/get_d.lo mpq/get_den.lo mpq/get_num.lo mpq/get_str.lo mpq/init.lo mpq/inits.lo mpq/inp_str.lo mpq/inv.lo mpq/md_2exp.lo mpq/mul.lo mpq/neg.lo mpq/out_str.lo mpq/set.lo mpq/set_den.lo mpq/set_num.lo mpq/set_si.lo mpq/set_str.lo mpq/set_ui.lo mpq/equal.lo mpq/set_z.lo mpq/set_d.lo mpq/set_f.lo mpq/swap.lo mpn/fib_table.lo mpn/mp_bases.lo  mpn/add.lo mpn/add_1.lo mpn/add_n.lo mpn/sub.lo mpn/sub_1.lo mpn/sub_n.lo mpn/neg.lo mpn/com.lo mpn/mul_1.lo mpn/addmul_1.lo mpn/submul_1.lo mpn/lshift.lo mpn/rshift.lo mpn/dive_1.lo mpn/diveby3.lo mpn/divis.lo mpn/divrem.lo mpn/divrem_1.lo mpn/divrem_2.lo mpn/fib2_ui.lo mpn/mod_1.lo mpn/mod_34lsub1.lo mpn/mode1o.lo mpn/pre_mod_1.lo mpn/dump.lo mpn/mod_1_1.lo mpn/mod_1_2.lo mpn/mod_1_3.lo mpn/mod_1_4.lo mpn/lshiftc.lo mpn/mul.lo mpn/mul_fft.lo mpn/mul_n.lo mpn/sqr.lo mpn/mul_basecase.lo mpn/sqr_basecase.lo mpn/nussbaumer_mul.lo mpn/random.lo mpn/random2.lo mpn/pow_1.lo mpn/rootrem.lo mpn/sqrtrem.lo mpn/get_str.lo mpn/set_str.lo mpn/scan0.lo mpn/scan1.lo mpn/popcount.lo mpn/hamdist.lo mpn/cmp.lo mpn/perfsqr.lo mpn/perfpow.lo mpn/gcd_1.lo mpn/gcd.lo mpn/gcdext_1.lo mpn/gcdext.lo mpn/gcd_lehmer.lo mpn/gcd_subdiv_step.lo mpn/gcdext_lehmer.lo mpn/gcdext_subdiv_step.lo mpn/div_q.lo mpn/tdiv_qr.lo mpn/jacbase.lo mpn/get_d.lo mpn/matrix22_mul.lo mpn/hgcd2.lo mpn/hgcd.lo mpn/mullo_n.lo mpn/mullo_basecase.lo mpn/toom22_mul.lo mpn/toom32_mul.lo mpn/toom42_mul.lo mpn/toom52_mul.lo mpn/toom62_mul.lo mpn/toom33_mul.lo mpn/toom43_mul.lo mpn/toom53_mul.lo mpn/toom63_mul.lo mpn/toom44_mul.lo mpn/toom6h_mul.lo mpn/toom6_sqr.lo mpn/toom8h_mul.lo mpn/toom8_sqr.lo mpn/toom_couple_handling.lo mpn/toom2_sqr.lo mpn/toom3_sqr.lo mpn/toom4_sqr.lo mpn/toom_eval_dgr3_pm1.lo mpn/toom_eval_dgr3_pm2.lo mpn/toom_eval_pm1.lo mpn/toom_eval_pm2.lo mpn/toom_eval_pm2exp.lo mpn/toom_eval_pm2rexp.lo mpn/toom_interpolate_5pts.lo mpn/toom_interpolate_6pts.lo mpn/toom_interpolate_7pts.lo mpn/toom_interpolate_8pts.lo mpn/toom_interpolate_12pts.lo mpn/toom_interpolate_16pts.lo mpn/invertappr.lo mpn/invert.lo mpn/binvert.lo mpn/mulmod_bnm1.lo mpn/sqrmod_bnm1.lo mpn/sbpi1_div_q.lo mpn/sbpi1_div_qr.lo mpn/sbpi1_divappr_q.lo mpn/dcpi1_div_q.lo mpn/dcpi1_div_qr.lo mpn/dcpi1_divappr_q.lo mpn/mu_div_qr.lo mpn/mu_divappr_q.lo mpn/mu_div_q.lo mpn/bdiv_q_1.lo mpn/sbpi1_bdiv_q.lo mpn/sbpi1_bdiv_qr.lo mpn/dcpi1_bdiv_q.lo mpn/dcpi1_bdiv_qr.lo mpn/mu_bdiv_q.lo mpn/mu_bdiv_qr.lo mpn/bdiv_q.lo mpn/bdiv_qr.lo mpn/divexact.lo mpn/bdiv_dbm1c.lo mpn/redc_1.lo mpn/redc_2.lo mpn/redc_n.lo mpn/powm.lo mpn/powlo.lo mpn/powm_sec.lo mpn/subcnd_n.lo mpn/redc_1_sec.lo mpn/trialdiv.lo mpn/remove.lo mpn/and_n.lo mpn/andn_n.lo mpn/nand_n.lo mpn/ior_n.lo mpn/iorn_n.lo mpn/nior_n.lo mpn/xor_n.lo mpn/xnor_n.lo mpn/copyi.lo mpn/copyd.lo mpn/zero.lo mpn/invert_limb.lo mpn/mul_2.lo mpn/addmul_2.lo mpn/addlsh1_n.lo mpn/sublsh1_n.lo mpn/rsblsh1_n.lo mpn/rsh1add_n.lo mpn/rsh1sub_n.lo mpn/addlsh2_n.lo mpn/rsblsh2_n.lo mpn/addlsh_n.lo mpn/rsblsh_n.lo mpn/addaddmul_1msb0.lo printf/asprintf.lo printf/asprntffuns.lo printf/doprnt.lo printf/doprntf.lo printf/doprnti.lo printf/fprintf.lo printf/obprintf.lo printf/obvprintf.lo printf/obprntffuns.lo printf/printf.lo printf/printffuns.lo printf/snprintf.lo printf/snprntffuns.lo printf/sprintf.lo printf/sprintffuns.lo printf/vasprintf.lo printf/vfprintf.lo printf/vprintf.lo printf/vsnprintf.lo printf/vsprintf.lo printf/repl-vsnprintf.lo  scanf/doscan.lo scanf/fscanf.lo scanf/fscanffuns.lo scanf/scanf.lo scanf/sscanf.lo scanf/sscanffuns.lo scanf/vfscanf.lo scanf/vscanf.lo scanf/vsscanf.lo 
libtool: link: gcc -std=gnu99 -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -o .libs/libgmp.10.dylib  .libs/assert.o .libs/compat.o .libs/errno.o .libs/extract-dbl.o .libs/invalid.o .libs/memory.o .libs/mp_bpl.o .libs/mp_clz_tab.o .libs/mp_dv_tab.o .libs/mp_minv_tab.o .libs/mp_get_fns.o .libs/mp_set_fns.o .libs/rand.o .libs/randclr.o .libs/randdef.o .libs/randiset.o .libs/randlc2s.o .libs/randlc2x.o .libs/randmt.o .libs/randmts.o .libs/rands.o .libs/randsd.o .libs/randsdui.o .libs/randbui.o .libs/randmui.o .libs/version.o .libs/nextprime.o .libs/tal-reent.o mpf/.libs/init.o mpf/.libs/init2.o mpf/.libs/inits.o mpf/.libs/set.o mpf/.libs/set_ui.o mpf/.libs/set_si.o mpf/.libs/set_str.o mpf/.libs/set_d.o mpf/.libs/set_z.o mpf/.libs/iset.o mpf/.libs/iset_ui.o mpf/.libs/iset_si.o mpf/.libs/iset_str.o mpf/.libs/iset_d.o mpf/.libs/clear.o mpf/.libs/clears.o mpf/.libs/get_str.o mpf/.libs/dump.o mpf/.libs/size.o mpf/.libs/eq.o mpf/.libs/reldiff.o mpf/.libs/sqrt.o mpf/.libs/random2.o mpf/.libs/inp_str.o mpf/.libs/out_str.o mpf/.libs/add.o mpf/.libs/add_ui.o mpf/.libs/sub.o mpf/.libs/sub_ui.o mpf/.libs/ui_sub.o mpf/.libs/mul.o mpf/.libs/mul_ui.o mpf/.libs/div.o mpf/.libs/div_ui.o mpf/.libs/cmp.o mpf/.libs/cmp_d.o mpf/.libs/cmp_ui.o mpf/.libs/cmp_si.o mpf/.libs/mul_2exp.o mpf/.libs/div_2exp.o mpf/.libs/abs.o mpf/.libs/neg.o mpf/.libs/set_q.o mpf/.libs/get_d.o mpf/.libs/get_d_2exp.o mpf/.libs/set_dfl_prec.o mpf/.libs/set_prc.o mpf/.libs/set_prc_raw.o mpf/.libs/get_dfl_prec.o mpf/.libs/get_prc.o mpf/.libs/ui_div.o mpf/.libs/sqrt_ui.o mpf/.libs/ceilfloor.o mpf/.libs/trunc.o mpf/.libs/pow_ui.o mpf/.libs/urandomb.o mpf/.libs/swap.o mpf/.libs/fits_sint.o mpf/.libs/fits_slong.o mpf/.libs/fits_sshort.o mpf/.libs/fits_uint.o mpf/.libs/fits_ulong.o mpf/.libs/fits_ushort.o mpf/.libs/get_si.o mpf/.libs/get_ui.o mpf/.libs/int_p.o mpz/.libs/abs.o mpz/.libs/add.o mpz/.libs/add_ui.o mpz/.libs/aorsmul.o mpz/.libs/aorsmul_i.o mpz/.libs/and.o mpz/.libs/array_init.o mpz/.libs/bin_ui.o mpz/.libs/bin_uiui.o mpz/.libs/cdiv_q.o mpz/.libs/cdiv_q_ui.o mpz/.libs/cdiv_qr.o mpz/.libs/cdiv_qr_ui.o mpz/.libs/cdiv_r.o mpz/.libs/cdiv_r_ui.o mpz/.libs/cdiv_ui.o mpz/.libs/cfdiv_q_2exp.o mpz/.libs/cfdiv_r_2exp.o mpz/.libs/clear.o mpz/.libs/clears.o mpz/.libs/clrbit.o mpz/.libs/cmp.o mpz/.libs/cmp_d.o mpz/.libs/cmp_si.o mpz/.libs/cmp_ui.o mpz/.libs/cmpabs.o mpz/.libs/cmpabs_d.o mpz/.libs/cmpabs_ui.o mpz/.libs/com.o mpz/.libs/combit.o mpz/.libs/cong.o mpz/.libs/cong_2exp.o mpz/.libs/cong_ui.o mpz/.libs/divexact.o mpz/.libs/divegcd.o mpz/.libs/dive_ui.o mpz/.libs/divis.o mpz/.libs/divis_ui.o mpz/.libs/divis_2exp.o mpz/.libs/dump.o mpz/.libs/export.o mpz/.libs/fac_ui.o mpz/.libs/fdiv_q.o mpz/.libs/fdiv_q_ui.o mpz/.libs/fdiv_qr.o mpz/.libs/fdiv_qr_ui.o mpz/.libs/fdiv_r.o mpz/.libs/fdiv_r_ui.o mpz/.libs/fdiv_ui.o mpz/.libs/fib_ui.o mpz/.libs/fib2_ui.o mpz/.libs/fits_sint.o mpz/.libs/fits_slong.o mpz/.libs/fits_sshort.o mpz/.libs/fits_uint.o mpz/.libs/fits_ulong.o mpz/.libs/fits_ushort.o mpz/.libs/gcd.o mpz/.libs/gcd_ui.o mpz/.libs/gcdext.o mpz/.libs/get_d.o mpz/.libs/get_d_2exp.o mpz/.libs/get_si.o mpz/.libs/get_str.o mpz/.libs/get_ui.o mpz/.libs/getlimbn.o mpz/.libs/hamdist.o mpz/.libs/import.o mpz/.libs/init.o mpz/.libs/init2.o mpz/.libs/inits.o mpz/.libs/inp_raw.o mpz/.libs/inp_str.o mpz/.libs/invert.o mpz/.libs/ior.o mpz/.libs/iset.o mpz/.libs/iset_d.o mpz/.libs/iset_si.o mpz/.libs/iset_str.o mpz/.libs/iset_ui.o mpz/.libs/jacobi.o mpz/.libs/kronsz.o mpz/.libs/kronuz.o mpz/.libs/kronzs.o mpz/.libs/kronzu.o mpz/.libs/lcm.o mpz/.libs/lcm_ui.o mpz/.libs/lucnum_ui.o mpz/.libs/lucnum2_ui.o mpz/.libs/millerrabin.o mpz/.libs/mod.o mpz/.libs/mul.o mpz/.libs/mul_2exp.o mpz/.libs/mul_si.o mpz/.libs/mul_ui.o mpz/.libs/n_pow_ui.o mpz/.libs/neg.o mpz/.libs/nextprime.o mpz/.libs/out_raw.o mpz/.libs/out_str.o mpz/.libs/perfpow.o mpz/.libs/perfsqr.o mpz/.libs/popcount.o mpz/.libs/pow_ui.o mpz/.libs/powm.o mpz/.libs/powm_sec.o mpz/.libs/powm_ui.o mpz/.libs/pprime_p.o mpz/.libs/random.o mpz/.libs/random2.o mpz/.libs/realloc.o mpz/.libs/realloc2.o mpz/.libs/remove.o mpz/.libs/root.o mpz/.libs/rootrem.o mpz/.libs/rrandomb.o mpz/.libs/scan0.o mpz/.libs/scan1.o mpz/.libs/set.o mpz/.libs/set_d.o mpz/.libs/set_f.o mpz/.libs/set_q.o mpz/.libs/set_si.o mpz/.libs/set_str.o mpz/.libs/set_ui.o mpz/.libs/setbit.o mpz/.libs/size.o mpz/.libs/sizeinbase.o mpz/.libs/sqrt.o mpz/.libs/sqrtrem.o mpz/.libs/sub.o mpz/.libs/sub_ui.o mpz/.libs/swap.o mpz/.libs/tdiv_ui.o mpz/.libs/tdiv_q.o mpz/.libs/tdiv_q_2exp.o mpz/.libs/tdiv_q_ui.o mpz/.libs/tdiv_qr.o mpz/.libs/tdiv_qr_ui.o mpz/.libs/tdiv_r.o mpz/.libs/tdiv_r_2exp.o mpz/.libs/tdiv_r_ui.o mpz/.libs/tstbit.o mpz/.libs/ui_pow_ui.o mpz/.libs/ui_sub.o mpz/.libs/urandomb.o mpz/.libs/urandomm.o mpz/.libs/xor.o mpq/.libs/abs.o mpq/.libs/aors.o mpq/.libs/canonicalize.o mpq/.libs/clear.o mpq/.libs/clears.o mpq/.libs/cmp.o mpq/.libs/cmp_si.o mpq/.libs/cmp_ui.o mpq/.libs/div.o mpq/.libs/get_d.o mpq/.libs/get_den.o mpq/.libs/get_num.o mpq/.libs/get_str.o mpq/.libs/init.o mpq/.libs/inits.o mpq/.libs/inp_str.o mpq/.libs/inv.o mpq/.libs/md_2exp.o mpq/.libs/mul.o mpq/.libs/neg.o mpq/.libs/out_str.o mpq/.libs/set.o mpq/.libs/set_den.o mpq/.libs/set_num.o mpq/.libs/set_si.o mpq/.libs/set_str.o mpq/.libs/set_ui.o mpq/.libs/equal.o mpq/.libs/set_z.o mpq/.libs/set_d.o mpq/.libs/set_f.o mpq/.libs/swap.o mpn/.libs/fib_table.o mpn/.libs/mp_bases.o mpn/.libs/add.o mpn/.libs/add_1.o mpn/.libs/add_n.o mpn/.libs/sub.o mpn/.libs/sub_1.o mpn/.libs/sub_n.o mpn/.libs/neg.o mpn/.libs/com.o mpn/.libs/mul_1.o mpn/.libs/addmul_1.o mpn/.libs/submul_1.o mpn/.libs/lshift.o mpn/.libs/rshift.o mpn/.libs/dive_1.o mpn/.libs/diveby3.o mpn/.libs/divis.o mpn/.libs/divrem.o mpn/.libs/divrem_1.o mpn/.libs/divrem_2.o mpn/.libs/fib2_ui.o mpn/.libs/mod_1.o mpn/.libs/mod_34lsub1.o mpn/.libs/mode1o.o mpn/.libs/pre_mod_1.o mpn/.libs/dump.o mpn/.libs/mod_1_1.o mpn/.libs/mod_1_2.o mpn/.libs/mod_1_3.o mpn/.libs/mod_1_4.o mpn/.libs/lshiftc.o mpn/.libs/mul.o mpn/.libs/mul_fft.o mpn/.libs/mul_n.o mpn/.libs/sqr.o mpn/.libs/mul_basecase.o mpn/.libs/sqr_basecase.o mpn/.libs/nussbaumer_mul.o mpn/.libs/random.o mpn/.libs/random2.o mpn/.libs/pow_1.o mpn/.libs/rootrem.o mpn/.libs/sqrtrem.o mpn/.libs/get_str.o mpn/.libs/set_str.o mpn/.libs/scan0.o mpn/.libs/scan1.o mpn/.libs/popcount.o mpn/.libs/hamdist.o mpn/.libs/cmp.o mpn/.libs/perfsqr.o mpn/.libs/perfpow.o mpn/.libs/gcd_1.o mpn/.libs/gcd.o mpn/.libs/gcdext_1.o mpn/.libs/gcdext.o mpn/.libs/gcd_lehmer.o mpn/.libs/gcd_subdiv_step.o mpn/.libs/gcdext_lehmer.o mpn/.libs/gcdext_subdiv_step.o mpn/.libs/div_q.o mpn/.libs/tdiv_qr.o mpn/.libs/jacbase.o mpn/.libs/get_d.o mpn/.libs/matrix22_mul.o mpn/.libs/hgcd2.o mpn/.libs/hgcd.o mpn/.libs/mullo_n.o mpn/.libs/mullo_basecase.o mpn/.libs/toom22_mul.o mpn/.libs/toom32_mul.o mpn/.libs/toom42_mul.o mpn/.libs/toom52_mul.o mpn/.libs/toom62_mul.o mpn/.libs/toom33_mul.o mpn/.libs/toom43_mul.o mpn/.libs/toom53_mul.o mpn/.libs/toom63_mul.o mpn/.libs/toom44_mul.o mpn/.libs/toom6h_mul.o mpn/.libs/toom6_sqr.o mpn/.libs/toom8h_mul.o mpn/.libs/toom8_sqr.o mpn/.libs/toom_couple_handling.o mpn/.libs/toom2_sqr.o mpn/.libs/toom3_sqr.o mpn/.libs/toom4_sqr.o mpn/.libs/toom_eval_dgr3_pm1.o mpn/.libs/toom_eval_dgr3_pm2.o mpn/.libs/toom_eval_pm1.o mpn/.libs/toom_eval_pm2.o mpn/.libs/toom_eval_pm2exp.o mpn/.libs/toom_eval_pm2rexp.o mpn/.libs/toom_interpolate_5pts.o mpn/.libs/toom_interpolate_6pts.o mpn/.libs/toom_interpolate_7pts.o mpn/.libs/toom_interpolate_8pts.o mpn/.libs/toom_interpolate_12pts.o mpn/.libs/toom_interpolate_16pts.o mpn/.libs/invertappr.o mpn/.libs/invert.o mpn/.libs/binvert.o mpn/.libs/mulmod_bnm1.o mpn/.libs/sqrmod_bnm1.o mpn/.libs/sbpi1_div_q.o mpn/.libs/sbpi1_div_qr.o mpn/.libs/sbpi1_divappr_q.o mpn/.libs/dcpi1_div_q.o mpn/.libs/dcpi1_div_qr.o mpn/.libs/dcpi1_divappr_q.o mpn/.libs/mu_div_qr.o mpn/.libs/mu_divappr_q.o mpn/.libs/mu_div_q.o mpn/.libs/bdiv_q_1.o mpn/.libs/sbpi1_bdiv_q.o mpn/.libs/sbpi1_bdiv_qr.o mpn/.libs/dcpi1_bdiv_q.o mpn/.libs/dcpi1_bdiv_qr.o mpn/.libs/mu_bdiv_q.o mpn/.libs/mu_bdiv_qr.o mpn/.libs/bdiv_q.o mpn/.libs/bdiv_qr.o mpn/.libs/divexact.o mpn/.libs/bdiv_dbm1c.o mpn/.libs/redc_1.o mpn/.libs/redc_2.o mpn/.libs/redc_n.o mpn/.libs/powm.o mpn/.libs/powlo.o mpn/.libs/powm_sec.o mpn/.libs/subcnd_n.o mpn/.libs/redc_1_sec.o mpn/.libs/trialdiv.o mpn/.libs/remove.o mpn/.libs/and_n.o mpn/.libs/andn_n.o mpn/.libs/nand_n.o mpn/.libs/ior_n.o mpn/.libs/iorn_n.o mpn/.libs/nior_n.o mpn/.libs/xor_n.o mpn/.libs/xnor_n.o mpn/.libs/copyi.o mpn/.libs/copyd.o mpn/.libs/zero.o mpn/.libs/invert_limb.o mpn/.libs/mul_2.o mpn/.libs/addmul_2.o mpn/.libs/addlsh1_n.o mpn/.libs/sublsh1_n.o mpn/.libs/rsblsh1_n.o mpn/.libs/rsh1add_n.o mpn/.libs/rsh1sub_n.o mpn/.libs/addlsh2_n.o mpn/.libs/rsblsh2_n.o mpn/.libs/addlsh_n.o mpn/.libs/rsblsh_n.o mpn/.libs/addaddmul_1msb0.o printf/.libs/asprintf.o printf/.libs/asprntffuns.o printf/.libs/doprnt.o printf/.libs/doprntf.o printf/.libs/doprnti.o printf/.libs/fprintf.o printf/.libs/obprintf.o printf/.libs/obvprintf.o printf/.libs/obprntffuns.o printf/.libs/printf.o printf/.libs/printffuns.o printf/.libs/snprintf.o printf/.libs/snprntffuns.o printf/.libs/sprintf.o printf/.libs/sprintffuns.o printf/.libs/vasprintf.o printf/.libs/vfprintf.o printf/.libs/vprintf.o printf/.libs/vsnprintf.o printf/.libs/vsprintf.o printf/.libs/repl-vsnprintf.o scanf/.libs/doscan.o scanf/.libs/fscanf.o scanf/.libs/fscanffuns.o scanf/.libs/scanf.o scanf/.libs/sscanf.o scanf/.libs/sscanffuns.o scanf/.libs/vfscanf.o scanf/.libs/vscanf.o scanf/.libs/vsscanf.o    -m64 -mtune=k8 -march=k8   -install_name  /Users/bruno/data/local-macos/lib/libgmp.10.dylib -compatibility_version 11 -current_version 11.2 -Wl,-single_module
ld: duplicate symbol ___gmpz_abs in .libs/compat.o and .libs/assert.o

collect2: ld returned 1 exit status
make[2]: *** [libgmp.la] Error 1

This is both in 32-bit and 64-bit mode (CC="gcc -m64").

Apparently it was already reported in
http://gmplib.org/list-archives/gmp-bugs/2009-May/001449.html
http://gmplib.org/list-archives/gmp-bugs/2010-January/001836.html

The workaround given there does not work for me, because there is no gcc-4.2
on this machine.

$ ls -l /usr/bin/gcc*
lrwxr-xr-x 1 root wheel     7 Apr  5  2008 /usr/bin/gcc -> gcc-4.0
-rwxr-xr-x 1 root wheel 93072 Sep 24  2007 /usr/bin/gcc-4.0
$ ls -l /Developer/usr/bin/gcc*
lrwxr-xr-x 1 root admin     7 Apr  5  2008 /Developer/usr/bin/gcc -> gcc-4.0
-rwxr-xr-x 1 root wheel 93072 Sep 24  2007 /Developer/usr/bin/gcc-4.0

config.status has CC='gcc -std=gnu99'.

I tried various choices for __GMP_EXTERN_INLINE in gmp.h. Result:

#define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
#define __GMP_EXTERN_INLINE __inline__ __attribute__ ((__gnu_inline__))
These two give warnings about unknown attribute __gnu_inline__, and the
duplicate symbol error persists.

#define __GMP_EXTERN_INLINE extern __inline__
#define __GMP_EXTERN_INLINE __inline__
Here the duplicate symbol error persists.

#define __GMP_EXTERN_INLINE static inline
#define __GMP_INLINE_PROTOTYPES  0
This combination works.

#undef __GMP_EXTERN_INLINE
This works too.


Here's a suggested patch. Tested in 32-bit mode and in 64-bit mode.


2012-01-14  Bruno Haible  <bruno at clisp.org>

	Avoid build failure on MacOS X 10.5 with Apple gcc 4.0.1.
	* gmp-h.in (__GMP_EXTERN_INLINE, __GMP_INLINE_PROTOTYPES): Use a more
	conservative choice for Apple gcc 4.0.1.

--- gmp-h.in.bak        2011-05-08 11:49:29.000000000 +0200
+++ gmp-h.in    2012-01-14 22:18:06.000000000 +0100
@@ -429,6 +429,18 @@
 #define __GMP_INLINE_PROTOTYPES  1
 #endif
 
+/* Apple gcc 4.0.1 on MacOS X is special: It does not support the old GNU C
+   semantics of 'extern __inline__', and it does not support the __gnu_inline__
+   attribute either.  */
+#ifdef __APPLE__
+# if defined __GNUC__ && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2))
+#  undef __GMP_EXTERN_INLINE
+#  undef __GMP_INLINE_PROTOTYPES
+#  define __GMP_EXTERN_INLINE static __inline__
+#  define __GMP_INLINE_PROTOTYPES 0
+# endif
+#endif
+
 /* DEC C (eg. version 5.9) supports "static __inline foo()", even in -std1
    strict ANSI mode.  Inlining is done even when not optimizing (ie. -O0
    mode, which is the default), but an unnecessary local copy of foo is



More information about the gmp-bugs mailing list