[PATCH] cross compilation issue (libtool related)

127 views
Skip to first unread message

Beber

unread,
Aug 2, 2011, 4:11:27 AM8/2/11
to LibTom Projects, j...@gentoo.org
Hi,

When you try to cross compile libtommath-0.42.0, stock build libtool
is used which could be fine, but there is some bugs with libtool so it
doesn't handle correct linker :

libtool: compile: i586-alix-linux-gnu-gcc -Os -pipe -march=geode -
mmmx -m3dnow -fomit-frame-pointer -I/usr/i586-alix-linux-gnu/usr/
include/ -I/usr/i586-alix-linux-gnu/include/ -I./ -Wall -W -Wshadow -
Wsign-compare -L/usr/i586-
alix-linux-gnu/lib -L/usr/i586-alix-linux-gnu/usr/lib -c
bn_mp_invmod_slow.c -o bn_mp_invmod_slow.o >/dev/null 2>&1
libtool: compile: i586-alix-linux-gnu-gcc -Os -pipe -march=geode -
mmmx -m3dnow -fomit-frame-pointer -I/usr/i586-alix-linux-gnu/usr/
include/ -I/usr/i586-alix-linux-gnu/include/ -I./ -Wall -W -Wshadow -
Wsign-compare -L/usr/i586-
alix-linux-gnu/lib -L/usr/i586-alix-linux-gnu/usr/lib -c
bn_mp_to_unsigned_bin_n.c -o bn_mp_to_unsigned_bin_n.o >/dev/null 2>&1
libtool --mode=link --tag=CC i586-alix-linux-gnu-gcc -L/usr/i586-alix-
linux-gnu/lib -L/usr/i586-alix-linux-gnu/usr/lib *.lo -o libtommath.la
-rpath /usr/lib -version-info 0:41
libtool: link: x86_64-pc-linux-gnu-gcc -shared -fPIC -DPIC .libs/
bn_error.o .libs/bn_fast_mp_invmod.o .libs/
bn_fast_mp_montgomery_reduce.o .libs/bn_fast_s_mp_mul_digs.o .libs/
bn_fast_s_mp_mul_high_digs.o .libs/bn_fast_s_mp_sq
r.o .libs/bn_mp_2expt.o .libs/bn_mp_abs.o .libs/bn_mp_add.o .libs/
bn_mp_add_d.o .libs/bn_mp_addmod.o .libs/bn_mp_and.o .libs/
bn_mp_clamp.o .libs/bn_mp_clear.o .libs/bn_mp_clear_multi.o .libs/
bn_mp_cmp.o .libs/bn_mp_cmp_d.o .lib
s/bn_mp_cmp_mag.o .libs/bn_mp_cnt_lsb.o .libs/bn_mp_copy.o .libs/
bn_mp_count_bits.o .libs/bn_mp_div.o .libs/bn_mp_div_2.o .libs/
bn_mp_div_2d.o .libs/bn_mp_div_3.o .libs/bn_mp_div_d.o .libs/
bn_mp_dr_is_modulus.o .libs/bn_mp_dr_r
educe.o .libs/bn_mp_dr_setup.o .libs/bn_mp_exch.o .libs/
bn_mp_expt_d.o .libs/bn_mp_exptmod.o .libs/bn_mp_exptmod_fast.o .libs/
bn_mp_exteuclid.o .libs/bn_mp_fread.o .libs/bn_mp_fwrite.o .libs/
bn_mp_gcd.o .libs/bn_mp_get_int.o .l
ibs/bn_mp_grow.o .libs/bn_mp_init.o .libs/bn_mp_init_copy.o .libs/
bn_mp_init_multi.o .libs/bn_mp_init_set.o .libs/
bn_mp_init_set_int.o .libs/bn_mp_init_size.o .libs/
bn_mp_invmod.o .libs/bn_mp_invmod_slow.o .libs/bn_mp_is_square
.o .libs/bn_mp_jacobi.o .libs/bn_mp_karatsuba_mul.o .libs/
bn_mp_karatsuba_sqr.o .libs/bn_mp_lcm.o .libs/bn_mp_lshd.o .libs/
bn_mp_mod.o .libs/bn_mp_mod_2d.o .libs/bn_mp_mod_d.o .libs/
bn_mp_montgomery_calc_normalization.o .libs/b
n_mp_montgomery_reduce.o .libs/bn_mp_montgomery_setup.o .libs/
bn_mp_mul.o .libs/bn_mp_mul_2.o .libs/bn_mp_mul_2d.o .libs/
bn_mp_mul_d.o .libs/bn_mp_mulmod.o .libs/bn_mp_n_root.o .libs/
bn_mp_neg.o .libs/bn_mp_or.o .libs/bn_mp_pri
me_fermat.o .libs/bn_mp_prime_is_divisible.o .libs/
bn_mp_prime_is_prime.o .libs/bn_mp_prime_miller_rabin.o .libs/
bn_mp_prime_next_prime.o .libs/bn_mp_prime_rabin_miller_trials.o .libs/
bn_mp_prime_random_ex.o .libs/bn_mp_radix_s
ize.o .libs/bn_mp_radix_smap.o .libs/bn_mp_rand.o .libs/
bn_mp_read_radix.o .libs/bn_mp_read_signed_bin.o .libs/
bn_mp_read_unsigned_bin.o .libs/bn_mp_reduce.o .libs/
bn_mp_reduce_2k.o .libs/bn_mp_reduce_2k_l.o .libs/bn_mp_reduce_
2k_setup.o .libs/bn_mp_reduce_2k_setup_l.o .libs/
bn_mp_reduce_is_2k.o .libs/bn_mp_reduce_is_2k_l.o .libs/
bn_mp_reduce_setup.o .libs/bn_mp_rshd.o .libs/bn_mp_set.o .libs/
bn_mp_set_int.o .libs/bn_mp_shrink.o .libs/bn_mp_signed_bi
n_size.o .libs/bn_mp_sqr.o .libs/bn_mp_sqrmod.o .libs/
bn_mp_sqrt.o .libs/bn_mp_sub.o .libs/bn_mp_sub_d.o .libs/
bn_mp_submod.o .libs/bn_mp_to_signed_bin.o .libs/
bn_mp_to_signed_bin_n.o .libs/bn_mp_to_unsigned_bin.o .libs/bn_mp_t
o_unsigned_bin_n.o .libs/bn_mp_toom_mul.o .libs/bn_mp_toom_sqr.o .libs/
bn_mp_toradix.o .libs/bn_mp_toradix_n.o .libs/
bn_mp_unsigned_bin_size.o .libs/bn_mp_xor.o .libs/bn_mp_zero.o .libs/
bn_prime_tab.o .libs/bn_reverse.o .libs/b
n_s_mp_add.o .libs/bn_s_mp_exptmod.o .libs/bn_s_mp_mul_digs.o .libs/
bn_s_mp_mul_high_digs.o .libs/bn_s_mp_sqr.o .libs/bn_s_mp_sub.o .libs/
bncore.o -L/usr/i586-alix-linux-gnu/lib -L/usr/i586-alix-linux-gnu/
usr/lib -Wl,-sona
me -Wl,libtommath.so.0 -o .libs/libtommath.so.0.0.41
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: skipping incompatible /usr/i586-alix-linux-gnu/usr/lib/libc.so
when searching for -lc
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: skipping incompatible /usr/i586-alix-linux-gnu/usr/lib/libc.a
when searching for -lc

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_error.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_fast_mp_invmod.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_fast_mp_montgomery_reduce.o' is incompatible with i386:x86-64
output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_fast_s_mp_mul_digs.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_fast_s_mp_mul_high_digs.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_fast_s_mp_sqr.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_2expt.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_abs.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_add.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_add_d.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_addmod.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_and.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_clamp.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_clear.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_clear_multi.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_cmp.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_cmp_d.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_cmp_mag.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_cnt_lsb.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_copy.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_count_bits.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_div.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_div_2.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_div_2d.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_div_3.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_div_d.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_dr_is_modulus.o'
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_dr_reduce.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_dr_setup.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_exch.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_expt_d.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_exptmod.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_exptmod_fast.o'
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_exteuclid.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_fread.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_fwrite.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_gcd.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_get_int.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_grow.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_init.o' is
incompatible with i386:x86-64 output

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_init_copy.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_init_multi.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_init_set.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_init_set_int.o'
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_init_size.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_invmod.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_invmod_slow.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_is_square.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_jacobi.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_karatsuba_mul.o'
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_karatsuba_sqr.o'
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_lcm.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_lshd.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_mod.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_mod_2d.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_mod_d.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_montgomery_calc_normalization.o' is incompatible with
i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_montgomery_reduce.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_montgomery_setup.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_mul.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_mul_2.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_mul_2d.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_mul_d.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_mulmod.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_n_root.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_neg.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_or.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_prime_fermat.o'
is incompatible with i386:x86-64 output

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_prime_is_divisible.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_prime_is_prime.o'
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_prime_miller_rabin.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_prime_next_prime.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_prime_rabin_miller_trials.o' is incompatible with i386:x86-64
output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_prime_random_ex.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_radix_size.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_radix_smap.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_rand.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_read_radix.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_read_signed_bin.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_read_unsigned_bin.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_reduce.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_reduce_2k.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_reduce_2k_l.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_reduce_2k_setup.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_reduce_2k_setup_l.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_reduce_is_2k.o'
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_reduce_is_2k_l.o'
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_reduce_setup.o'
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_rshd.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_set.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_set_int.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_shrink.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_signed_bin_size.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_sqr.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_sqrmod.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_sqrt.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_sub.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_sub_d.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_submod.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_to_signed_bin.o'
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_to_signed_bin_n.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_to_unsigned_bin.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_to_unsigned_bin_n.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_toom_mul.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_toom_sqr.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_toradix.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_toradix_n.o' is
incompatible with i386:x86-64 output

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_mp_unsigned_bin_size.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_xor.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_mp_zero.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_prime_tab.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_reverse.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_s_mp_add.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_s_mp_exptmod.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_s_mp_mul_digs.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/
bn_s_mp_mul_high_digs.o' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_s_mp_sqr.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bn_s_mp_sub.o' is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/
bin/ld: i386 architecture of input file `.libs/bncore.o' is
incompatible with i386:x86-64 output
.libs/bn_mp_div.o: In function `mp_div':
bn_mp_div.c:(.text+0x37c): undefined reference to `__udivdi3'
.libs/bn_mp_div_d.o: In function `mp_div_d':
bn_mp_div_d.c:(.text+0x17d): undefined reference to `__udivdi3'
collect2: ld returned 1 exit status
make: *** [libtommath.la] Error 1

This is clearly a bug with libtool that dosn't handle correctly
compiler when --mode=link. But here is a fix to let users define by
env LT the path to potentially host libtool

I don't know if the patchs will be correctly formatted as this is a
web report.

First patch is to let define LT by users, and default to host libtool
(depending on PATH) :


# cat 001-LT-default-libtool.diff
--- makefile.shared.ori 2011-08-02 09:59:09.792917381 +0200
+++ makefile.shared 2011-08-02 10:00:41.233317021 +0200
@@ -3,7 +3,8 @@
#Tom St Denis
VERSION=0:41

-CC = libtool --mode=compile --tag=CC gcc
+LT ?= libtool
+CC = $(LT) --mode=compile --tag=CC gcc

CFLAGS += -I./ -Wall -W -Wshadow -Wsign-compare

@@ -83,17 +84,17 @@
objs: $(OBJECTS)

$(LIBNAME): $(OBJECTS)
- libtool --mode=link gcc *.lo -o $(LIBNAME) -rpath $(LIBPATH) -
version-info $(VERSION)
+ $(LT) --mode=link gcc *.lo -o $(LIBNAME) -rpath $(LIBPATH) -version-
info $(VERSION)

install: $(LIBNAME)
install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(LIBPATH)
- libtool --mode=install install -c $(LIBNAME) $(DESTDIR)$(LIBPATH)/$
(LIBNAME)
+ $(LT) --mode=install install -c $(LIBNAME) $(DESTDIR)$(LIBPATH)/$
(LIBNAME)
install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(INCPATH)
install -g $(GROUP) -o $(USER) $(HEADERS) $(DESTDIR)$(INCPATH)

test: $(LIBNAME) demo/demo.o
gcc $(CFLAGS) -c demo/demo.c -o demo/demo.o
- libtool --mode=link gcc -o test demo/demo.o $(LIBNAME_S)
+ $(LT) --mode=link gcc -o test demo/demo.o $(LIBNAME_S)

mtest: test
cd mtest ; gcc $(CFLAGS) mtest.c -o mtest

The second patch come from gentoo to not hardcode gcc but use $(CC) as
it's default to gcc on a GNU system and people cross compiling should
as usual override to needed toolchain. This also fix missing LDFLAGS.

# cat 002-no-stock-gcc.diff
--- makefile.shared.ori2 2011-08-02 10:01:10.851450476 +0200
+++ makefile.shared 2011-08-02 10:06:07.534785494 +0200
@@ -4,7 +4,7 @@
VERSION=0:41

LT ?= libtool
-CC = $(LT) --mode=compile --tag=CC gcc
+LTCOMPILE = $(LT) --mode=compile --tag=CC $(CC)

CFLAGS += -I./ -Wall -W -Wshadow -Wsign-compare

@@ -83,8 +83,11 @@

objs: $(OBJECTS)

+.c.o:
+ $(LTCOMPILE) $(CFLAGS) $(LDFLAGS) -o $@ -c $<
+
$(LIBNAME): $(OBJECTS)
- $(LT) --mode=link gcc *.lo -o $(LIBNAME) -rpath $(LIBPATH) -version-
info $(VERSION)
+ $(LT) --mode=link $(CC) $(LDFLAGS) *.lo -o $(LIBNAME) -rpath $
(LIBPATH) -version-info $(VERSION)

install: $(LIBNAME)
install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(LIBPATH)
@@ -93,11 +96,11 @@
install -g $(GROUP) -o $(USER) $(HEADERS) $(DESTDIR)$(INCPATH)

test: $(LIBNAME) demo/demo.o
- gcc $(CFLAGS) -c demo/demo.c -o demo/demo.o
- $(LT) --mode=link gcc -o test demo/demo.o $(LIBNAME_S)
+ $(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
+ $(LT) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME_S)

mtest: test
- cd mtest ; gcc $(CFLAGS) mtest.c -o mtest
+ cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest

timing: $(LIBNAME)
- gcc $(CFLAGS) -DTIMER demo/timing.c $(LIBNAME_S) -o ltmtest
+ $(LT) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $
(LIBNAME_S) -o ltmtest

This is related to gentoo bug report 376643 (https://bugs.gentoo.org/
show_bug.cgi?id=376643)

Bertrand
Reply all
Reply to author
Forward
0 new messages