"word too long" on SGI..
Marc Glisse
marc.glisse at normalesup.org
Sun Aug 30 04:49:35 CEST 2009
On Wed, 26 Aug 2009, Tovrea, George W (US SSA) wrote:
> System:
>
> uname -m = IP35
> uname -r = 6.5
> uname -s = IRIX64
> uname -v = 07010238
>
> /usr/bin/uname -p = mips
>
> I am getting the following error in gmp when attempting to compile GCC 4.4.0:
>
> /bin/sh ./libtool --mode=link /home/users/tovrea/GCC_SGI2/build_sgi6/./prev-gcc/xgcc -B/home/users/tovrea/GCC_SGI2/build_sgi6/./prev-gcc/ -B/home/users/tovrea/local/sgi6/mips-sgi-irix6.5/bin/ -g -O2 -o libgmp.la -rpath /home/users/tovrea/local/sgi6/lib -version-info 8:0:5 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 tal-reent.lo mpf/init.lo mpf/init2.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/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/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/di
> vexact.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/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 m
> pz/perfsqr.lo mpz/popcount.lo mpz/pow_ui.lo mpz/powm.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/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/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.l
> o 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_n.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_divrem_1.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/mul.lo mpn/mul_fft.lo mpn/mul_n.lo mpn/mul_basecase.lo mpn/sqr_basecase.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/bdivmod.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/tdiv_qr.lo mpn/dc_divrem_n.lo mp
> n/sb_divrem_mn.lo mpn/jacbase.lo mpn/get_d.lo mpn/matrix22_mul.lo mpn/hgcd2.lo mpn/hgcd.lo mpn/mullow_n.lo mpn/mullow_basecase.lo mpn/toom22_mul.lo mpn/toom33_mul.lo mpn/toom44_mul.lo mpn/toom32_mul.lo mpn/toom42_mul.lo mpn/toom62_mul.lo mpn/toom53_mul.lo mpn/toom2_sqr.lo mpn/toom3_sqr.lo mpn/toom4_sqr.lo mpn/toom_interpolate_5pts.lo mpn/toom_interpolate_7pts.lo mpn/invert.lo mpn/binvert.lo mpn/sb_div_qr.lo mpn/sb_divappr_q.lo mpn/sb_div_q.lo mpn/dc_div_qr.lo mpn/dc_divappr_q.lo mpn/dc_div_q.lo mpn/mu_div_qr.lo mpn/mu_divappr_q.lo mpn/mu_div_q.lo mpn/sb_bdiv_q.lo mpn/sb_bdiv_qr.lo mpn/dc_bdiv_q.lo mpn/dc_bdiv_qr.lo mpn/mu_bdiv_q.lo mpn/mu_bdiv_qr.lo mpn/divexact.lo mpn/bdiv_dbm1c.lo mpn/redc_1.lo mpn/redc_2.lo mpn/powm.lo mpn/powlo.lo mpn/powm_sec.lo mpn/subcnd_n.lo mpn/addsub_n.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
> make[5]: execvp: /bin/sh: Arg list too long
> make[5]: *** [libgmp.la] Error 127
>
> Is there a way to work around this problem?
There are several ways to work around it manually, but I can't think of
one that would integrate nicely in upstream sources.
If you have an incremental linker, you could use it to link files
progressively. You could also create archives of all the object files
(either several archives or one built incrementally) and then build a
shared object out of it (--whole-archive with gnu ld).
Some projects, instead of compiling all files separately, create a file
all.c that #includes all the source files. It wouldn't work in gmp without
some modifications, because some object files rely on including headers
with particular macros defined.
--
Marc Glisse
More information about the gmp-bugs
mailing list