[PATCH 00/20] Create and use hidden aliases in libgmp.so

Richard Henderson rth at twiddle.net
Mon Mar 4 19:41:30 CET 2013


This does not adjust the public interface at all, or tidy the
internal namespace at all.  What it does do is annotate the source
(in as few places as possible) so that we automatically create and
use the hidden internal aliases inside the library, while still
exporting the same external symbols.

The results are easy to see:

$ readelf -r libgmp.so-old | grep section
Relocation section '.rela.dyn' at offset 0x8148 contains 108 entries:
Relocation section '.rela.plt' at offset 0x8b68 contains 344 entries:

$ readelf -r libgmp.so-new | grep section
Relocation section '.rela.dyn' at offset 0x7fc0 contains 83 entries:
Relocation section '.rela.plt' at offset 0x8788 contains 31 entries:

and all of the plt entries are into libc.

For the static library, and if hidden aliases are not supported, we
don't do any hidden alias trickery, but do attempt to use GCC's asm
extension to give the source-level symbols the linkage symbols that
we desire, without resorting to extra preprocessor macros.  This
ought to improve the debugging experiance.

And as a last resort, we fall all the way back to preprocessor macros.
But this time they're machine generated instead of obscuring the source
by maintaining all those names by hand.

I've tried to do this in a series of steps that are as mechanical as
possible, and therefore as easy to review as possible.

I'm no m4 guru, so there may be a better way to handle the changes to
asm-defs.m4.  Although I'm frankly a bit confused as to why we're using
m4 for the assembly macro-isation, as opposed to the C preprocessor.

In particular, when -g is passed through from gcc to gas, gas sees and
records the # file line markers that the preprocessor leaves, and puts
that into the auto-generated line number debugging info.  With our m4
scheme we get no such # markers and instead gas records line number
info assocated with a no longer extant temp file.  Not really helpful.
There's probably some way to address this one problem, for a m4 guru.

But perhaps more importantly, everyone who programs in C understands
how the preprocessor works.  But the pool of m4 hackers is much smaller.
There are hidden pitfalls like cpp self defines being ok, while m4 self
defines lead to stack overflow.


r~


Richard Henderson (20):
  Delete mpn/generic/sizeinbase.c
  Introduce and use __GMP_PUBLIC.
  Build and include gmp-rename.h
  Make proper use of <gmp-rename.h>
  Use <gmp-rename.h> for defining alias as well
  Use "gmp-renamei.h" for renaming the internal routines
  Use gcc's __asm__ extension to rename symbols
  Squish include requirements
  Prepare for creating hidden aliases of all routines
  Convert the printf subdirectory to __GMP_*_DEFINE and include changes
  Convert the mpf subdirectory to __GMP_*_DEFINE and include changes
  Convert the mpq subdirectory to __GMP_*_DEFINE and include changes
  Convert the mpz subdirectory to __GMP_*_DEFINE and include changes
  Convert the rand subdirectory to __GMP_*_DEFINE and include changes
  Convert the mpn/generic subdirectory to __GMP_*_DEFINE and include
    changes
  Convert the toplevel directory to __GMP_*_DEFINE and include changes
  Convert the scanf directory to __GMP_*_DEFINE and include changes
  Automatic hidden aliases inside existing asm-defs.m4 macros
  Configure for hidden aliases.
  Delete support for <varargs.h>

 Makefile.am                                |   10 +-
 acinclude.m4                               |   75 +-
 assert.c                                   |    5 +-
 compat.c                                   |    2 -
 config.in                                  |    7 +-
 configure.ac                               |    2 +-
 demos/expr/expr-impl.h                     |   14 -
 demos/expr/exprf.c                         |   17 +-
 demos/expr/exprq.c                         |   17 +-
 demos/expr/exprz.c                         |   17 +-
 errno.c                                    |    7 +-
 extract-dbl.c                              |    2 +-
 gen-bases.c                                |    2 +-
 gen-fib.c                                  |    2 +-
 gen-rename.awk                             |   34 +
 gen-rename.c                               |   26 +
 gen-renamei.c                              |   33 +
 gmp-h.in                                   | 1262 ++++++++++++--------------
 gmp-impl.h                                 | 1315 +++++++++++++++-------------
 invalid.c                                  |   18 +-
 memory.c                                   |    7 +-
 mp_bpl.c                                   |    2 +
 mp_dv_tab.c                                |    2 +-
 mp_get_fns.c                               |    3 +-
 mp_minv_tab.c                              |    2 +-
 mp_set_fns.c                               |    2 +-
 mpf/abs.c                                  |    2 +-
 mpf/add.c                                  |    2 +-
 mpf/add_ui.c                               |    2 +-
 mpf/ceilfloor.c                            |    3 +-
 mpf/clear.c                                |    2 +-
 mpf/clears.c                               |   23 +-
 mpf/cmp.c                                  |    2 +-
 mpf/cmp_d.c                                |    8 +-
 mpf/cmp_si.c                               |    2 +-
 mpf/cmp_ui.c                               |    2 +-
 mpf/div.c                                  |    2 +-
 mpf/div_2exp.c                             |    2 +-
 mpf/div_ui.c                               |    3 +-
 mpf/dump.c                                 |    4 +-
 mpf/eq.c                                   |    3 +-
 mpf/fits_s.h                               |    2 +-
 mpf/fits_u.h                               |    2 +-
 mpf/get_d.c                                |    2 +-
 mpf/get_d_2exp.c                           |    3 +-
 mpf/get_dfl_prec.c                         |    2 +-
 mpf/get_prc.c                              |    2 +-
 mpf/get_si.c                               |    2 +-
 mpf/get_str.c                              |    4 +-
 mpf/get_ui.c                               |    2 +-
 mpf/init.c                                 |    2 +-
 mpf/init2.c                                |    2 +-
 mpf/inits.c                                |   23 +-
 mpf/inp_str.c                              |    4 +-
 mpf/int_p.c                                |    2 +-
 mpf/iset.c                                 |    2 +-
 mpf/iset_d.c                               |    2 +-
 mpf/iset_si.c                              |    2 +-
 mpf/iset_str.c                             |    2 +-
 mpf/iset_ui.c                              |    2 +-
 mpf/mul.c                                  |    2 +-
 mpf/mul_2exp.c                             |    2 +-
 mpf/mul_ui.c                               |    3 +-
 mpf/neg.c                                  |    2 +-
 mpf/out_str.c                              |   12 +-
 mpf/pow_ui.c                               |    2 +-
 mpf/random2.c                              |    2 +-
 mpf/reldiff.c                              |    2 +-
 mpf/set.c                                  |    2 +-
 mpf/set_d.c                                |    8 +-
 mpf/set_dfl_prec.c                         |    3 +-
 mpf/set_prc.c                              |    2 +-
 mpf/set_prc_raw.c                          |    2 +-
 mpf/set_q.c                                |    4 +-
 mpf/set_si.c                               |    2 +-
 mpf/set_str.c                              |   13 +-
 mpf/set_ui.c                               |    2 +-
 mpf/set_z.c                                |    2 +-
 mpf/size.c                                 |    2 +-
 mpf/sqrt.c                                 |    3 +-
 mpf/sqrt_ui.c                              |    3 +-
 mpf/sub.c                                  |    2 +-
 mpf/sub_ui.c                               |    2 +-
 mpf/swap.c                                 |    2 +-
 mpf/trunc.c                                |    2 +-
 mpf/ui_div.c                               |    4 +-
 mpf/ui_sub.c                               |    2 +-
 mpf/urandomb.c                             |    2 +-
 mpn/asm-defs.m4                            |  342 ++++----
 mpn/generic/add.c                          |    4 +-
 mpn/generic/add_1.c                        |    4 +-
 mpn/generic/add_err1_n.c                   |    2 +-
 mpn/generic/add_err2_n.c                   |    2 +-
 mpn/generic/add_err3_n.c                   |    2 +-
 mpn/generic/add_n.c                        |    3 +-
 mpn/generic/add_n_sub_n.c                  |    2 +-
 mpn/generic/addcnd_n.c                     |    2 +-
 mpn/generic/addmul_1.c                     |    4 +-
 mpn/generic/bdiv_dbm1c.c                   |    3 +-
 mpn/generic/bdiv_q.c                       |    2 +-
 mpn/generic/bdiv_q_1.c                     |    4 +-
 mpn/generic/bdiv_qr.c                      |    3 +-
 mpn/generic/binvert.c                      |    3 +-
 mpn/generic/broot.c                        |    3 +-
 mpn/generic/brootinv.c                     |    2 +-
 mpn/generic/bsqrt.c                        |    2 +-
 mpn/generic/bsqrtinv.c                     |    2 +-
 mpn/generic/cmp.c                          |    4 +-
 mpn/generic/com.c                          |    3 +-
 mpn/generic/comb_tables.c                  |    5 +-
 mpn/generic/copyd.c                        |    2 +-
 mpn/generic/copyi.c                        |    2 +-
 mpn/generic/dcpi1_bdiv_q.c                 |    4 +-
 mpn/generic/dcpi1_bdiv_qr.c                |    4 +-
 mpn/generic/dcpi1_div_q.c                  |    4 +-
 mpn/generic/dcpi1_div_qr.c                 |    4 +-
 mpn/generic/dcpi1_divappr_q.c              |    4 +-
 mpn/generic/div_q.c                        |    3 +-
 mpn/generic/div_qr_2.c                     |    3 +-
 mpn/generic/div_qr_2n_pi1.c                |    3 +-
 mpn/generic/div_qr_2u_pi1.c                |    3 +-
 mpn/generic/dive_1.c                       |    3 +-
 mpn/generic/diveby3.c                      |    3 +-
 mpn/generic/divexact.c                     |    4 +-
 mpn/generic/divis.c                        |    3 +-
 mpn/generic/divrem.c                       |    3 +-
 mpn/generic/divrem_1.c                     |    3 +-
 mpn/generic/divrem_2.c                     |    3 +-
 mpn/generic/dump.c                         |    4 +-
 mpn/generic/fib2_ui.c                      |    3 +-
 mpn/generic/gcd.c                          |    3 +-
 mpn/generic/gcd_1.c                        |    3 +-
 mpn/generic/gcd_subdiv_step.c              |    5 +-
 mpn/generic/gcdext.c                       |    3 +-
 mpn/generic/gcdext_1.c                     |    4 +-
 mpn/generic/gcdext_lehmer.c                |    4 +-
 mpn/generic/get_d.c                        |    3 +-
 mpn/generic/get_str.c                      |    3 +-
 mpn/generic/hgcd.c                         |    4 +-
 mpn/generic/hgcd2.c                        |    4 +-
 mpn/generic/hgcd2_jacobi.c                 |    3 +-
 mpn/generic/hgcd_appr.c                    |    4 +-
 mpn/generic/hgcd_jacobi.c                  |    3 +-
 mpn/generic/hgcd_matrix.c                  |    7 +-
 mpn/generic/hgcd_reduce.c                  |    4 +-
 mpn/generic/hgcd_step.c                    |    3 +-
 mpn/generic/invert.c                       |    3 +-
 mpn/generic/invertappr.c                   |    6 +-
 mpn/generic/jacbase.c                      |    4 +-
 mpn/generic/jacobi.c                       |    4 +-
 mpn/generic/jacobi_2.c                     |    4 +-
 mpn/generic/logops_n.c                     |   30 +-
 mpn/generic/lshift.c                       |    2 +-
 mpn/generic/lshiftc.c                      |    2 +-
 mpn/generic/matrix22_mul.c                 |    5 +-
 mpn/generic/matrix22_mul1_inverse_vector.c |    3 +-
 mpn/generic/mod_1.c                        |    3 +-
 mpn/generic/mod_1_1.c                      |    5 +-
 mpn/generic/mod_1_2.c                      |    4 +-
 mpn/generic/mod_1_3.c                      |    4 +-
 mpn/generic/mod_1_4.c                      |    4 +-
 mpn/generic/mod_34lsub1.c                  |    2 +-
 mpn/generic/mode1o.c                       |    4 +-
 mpn/generic/mu_bdiv_q.c                    |    3 +-
 mpn/generic/mu_bdiv_qr.c                   |    3 +-
 mpn/generic/mu_div_q.c                     |    4 +-
 mpn/generic/mu_div_qr.c                    |    7 +-
 mpn/generic/mu_divappr_q.c                 |    6 +-
 mpn/generic/mul.c                          |    2 +-
 mpn/generic/mul_1.c                        |    4 +-
 mpn/generic/mul_basecase.c                 |    2 +-
 mpn/generic/mul_fft.c                      |    6 +-
 mpn/generic/mul_n.c                        |    3 +-
 mpn/generic/mullo_basecase.c               |    2 +-
 mpn/generic/mullo_n.c                      |    2 +-
 mpn/generic/mulmid.c                       |    2 +-
 mpn/generic/mulmid_basecase.c              |    3 +-
 mpn/generic/mulmid_n.c                     |    2 +-
 mpn/generic/mulmod_bnm1.c                  |    5 +-
 mpn/generic/neg.c                          |    4 +-
 mpn/generic/nussbaumer_mul.c               |    2 +-
 mpn/generic/perfpow.c                      |    3 +-
 mpn/generic/perfsqr.c                      |    5 +-
 mpn/generic/popham.c                       |    2 +-
 mpn/generic/pow_1.c                        |    3 +-
 mpn/generic/powlo.c                        |    3 +-
 mpn/generic/powm.c                         |    3 +-
 mpn/generic/powm_sec.c                     |    4 +-
 mpn/generic/pre_divrem_1.c                 |    3 +-
 mpn/generic/pre_mod_1.c                    |    3 +-
 mpn/generic/random.c                       |    2 +-
 mpn/generic/random2.c                      |    2 +-
 mpn/generic/redc_1.c                       |    2 +-
 mpn/generic/redc_2.c                       |    5 +-
 mpn/generic/redc_n.c                       |    2 +-
 mpn/generic/remove.c                       |    2 +-
 mpn/generic/rootrem.c                      |    5 +-
 mpn/generic/rshift.c                       |    2 +-
 mpn/generic/sb_div_sec.c                   |    3 +-
 mpn/generic/sbpi1_bdiv_q.c                 |    2 +-
 mpn/generic/sbpi1_bdiv_qr.c                |    2 +-
 mpn/generic/sbpi1_div_q.c                  |    3 +-
 mpn/generic/sbpi1_div_qr.c                 |    3 +-
 mpn/generic/sbpi1_div_sec.c                |    3 +-
 mpn/generic/sbpi1_divappr_q.c              |    3 +-
 mpn/generic/scan0.c                        |    3 +-
 mpn/generic/scan1.c                        |    3 +-
 mpn/generic/set_str.c                      |    6 +-
 mpn/generic/sizeinbase.c                   |   39 -
 mpn/generic/sqr.c                          |    3 +-
 mpn/generic/sqr_basecase.c                 |    4 +-
 mpn/generic/sqrmod_bnm1.c                  |    4 +-
 mpn/generic/sqrtrem.c                      |    7 +-
 mpn/generic/sub.c                          |    4 +-
 mpn/generic/sub_1.c                        |    4 +-
 mpn/generic/sub_err1_n.c                   |    2 +-
 mpn/generic/sub_err2_n.c                   |    2 +-
 mpn/generic/sub_err3_n.c                   |    2 +-
 mpn/generic/sub_n.c                        |    3 +-
 mpn/generic/subcnd_n.c                     |    2 +-
 mpn/generic/submul_1.c                     |    4 +-
 mpn/generic/tabselect.c                    |    2 +-
 mpn/generic/tdiv_qr.c                      |    3 +-
 mpn/generic/toom22_mul.c                   |    2 +-
 mpn/generic/toom2_sqr.c                    |    2 +-
 mpn/generic/toom32_mul.c                   |    2 +-
 mpn/generic/toom33_mul.c                   |    2 +-
 mpn/generic/toom3_sqr.c                    |    2 +-
 mpn/generic/toom42_mul.c                   |    2 +-
 mpn/generic/toom42_mulmid.c                |    2 +-
 mpn/generic/toom43_mul.c                   |    2 +-
 mpn/generic/toom44_mul.c                   |    2 +-
 mpn/generic/toom4_sqr.c                    |    2 +-
 mpn/generic/toom52_mul.c                   |    2 +-
 mpn/generic/toom53_mul.c                   |    2 +-
 mpn/generic/toom54_mul.c                   |    2 +-
 mpn/generic/toom62_mul.c                   |    2 +-
 mpn/generic/toom63_mul.c                   |    2 +-
 mpn/generic/toom6_sqr.c                    |    2 +-
 mpn/generic/toom6h_mul.c                   |    3 +-
 mpn/generic/toom8_sqr.c                    |    3 +-
 mpn/generic/toom8h_mul.c                   |    3 +-
 mpn/generic/toom_couple_handling.c         |    2 +-
 mpn/generic/toom_eval_dgr3_pm1.c           |    2 +-
 mpn/generic/toom_eval_dgr3_pm2.c           |    2 +-
 mpn/generic/toom_eval_pm1.c                |    2 +-
 mpn/generic/toom_eval_pm2.c                |    2 +-
 mpn/generic/toom_eval_pm2exp.c             |    2 +-
 mpn/generic/toom_eval_pm2rexp.c            |    2 +-
 mpn/generic/toom_interpolate_12pts.c       |    2 +-
 mpn/generic/toom_interpolate_16pts.c       |    2 +-
 mpn/generic/toom_interpolate_5pts.c        |    2 +-
 mpn/generic/toom_interpolate_6pts.c        |    2 +-
 mpn/generic/toom_interpolate_7pts.c        |    2 +-
 mpn/generic/toom_interpolate_8pts.c        |    2 +-
 mpn/generic/trialdiv.c                     |    2 +-
 mpn/generic/udiv_w_sdiv.c                  |    4 +-
 mpn/generic/zero.c                         |    2 +-
 mpq/abs.c                                  |    3 +-
 mpq/aors.c                                 |    3 +-
 mpq/canonicalize.c                         |    2 +-
 mpq/clear.c                                |    2 +-
 mpq/clears.c                               |   23 +-
 mpq/cmp.c                                  |    3 +-
 mpq/cmp_si.c                               |    2 +-
 mpq/cmp_ui.c                               |    2 +-
 mpq/div.c                                  |    2 +-
 mpq/equal.c                                |    2 +-
 mpq/get_d.c                                |    4 +-
 mpq/get_den.c                              |    2 +-
 mpq/get_num.c                              |    2 +-
 mpq/get_str.c                              |    5 +-
 mpq/init.c                                 |    2 +-
 mpq/inits.c                                |   23 +-
 mpq/inp_str.c                              |    4 +-
 mpq/inv.c                                  |    2 +-
 mpq/md_2exp.c                              |    4 +-
 mpq/mul.c                                  |    2 +-
 mpq/neg.c                                  |    3 +-
 mpq/out_str.c                              |    3 +-
 mpq/set.c                                  |    2 +-
 mpq/set_d.c                                |    9 +-
 mpq/set_den.c                              |    2 +-
 mpq/set_f.c                                |    3 +-
 mpq/set_num.c                              |    2 +-
 mpq/set_si.c                               |    2 +-
 mpq/set_str.c                              |    4 +-
 mpq/set_ui.c                               |    2 +-
 mpq/set_z.c                                |    2 +-
 mpq/swap.c                                 |    2 +-
 mpz/2fac_ui.c                              |    2 +-
 mpz/abs.c                                  |    3 +-
 mpz/and.c                                  |    2 +-
 mpz/aors.h                                 |    2 +-
 mpz/aors_ui.h                              |    2 +-
 mpz/aorsmul.c                              |    3 +-
 mpz/aorsmul_i.c                            |    3 +-
 mpz/array_init.c                           |    2 +-
 mpz/bin_ui.c                               |    3 +-
 mpz/bin_uiui.c                             |    3 +-
 mpz/cdiv_q.c                               |    2 +-
 mpz/cdiv_q_ui.c                            |    2 +-
 mpz/cdiv_qr.c                              |    2 +-
 mpz/cdiv_qr_ui.c                           |    2 +-
 mpz/cdiv_r.c                               |    2 +-
 mpz/cdiv_r_ui.c                            |    2 +-
 mpz/cdiv_ui.c                              |    2 +-
 mpz/cfdiv_q_2exp.c                         |    3 +-
 mpz/cfdiv_r_2exp.c                         |    3 +-
 mpz/clear.c                                |    2 +-
 mpz/clears.c                               |   23 +-
 mpz/clrbit.c                               |    2 +-
 mpz/cmp.c                                  |    2 +-
 mpz/cmp_d.c                                |    8 +-
 mpz/cmp_si.c                               |    2 +-
 mpz/cmp_ui.c                               |    2 +-
 mpz/cmpabs.c                               |    2 +-
 mpz/cmpabs_d.c                             |    8 +-
 mpz/cmpabs_ui.c                            |    2 +-
 mpz/com.c                                  |    2 +-
 mpz/combit.c                               |    2 +-
 mpz/cong.c                                 |    3 +-
 mpz/cong_2exp.c                            |    2 +-
 mpz/cong_ui.c                              |    3 +-
 mpz/dive_ui.c                              |    2 +-
 mpz/divegcd.c                              |    3 +-
 mpz/divexact.c                             |    4 +-
 mpz/divis.c                                |    2 +-
 mpz/divis_2exp.c                           |    2 +-
 mpz/divis_ui.c                             |    3 +-
 mpz/dump.c                                 |    4 +-
 mpz/export.c                               |    4 +-
 mpz/fac_ui.c                               |    2 +-
 mpz/fdiv_q.c                               |    2 +-
 mpz/fdiv_q_ui.c                            |    2 +-
 mpz/fdiv_qr.c                              |    2 +-
 mpz/fdiv_qr_ui.c                           |    2 +-
 mpz/fdiv_r.c                               |    2 +-
 mpz/fdiv_r_ui.c                            |    2 +-
 mpz/fdiv_ui.c                              |    2 +-
 mpz/fib2_ui.c                              |    3 +-
 mpz/fib_ui.c                               |    4 +-
 mpz/fits_s.h                               |    2 +-
 mpz/fits_uint.c                            |    4 +-
 mpz/fits_ulong.c                           |    4 +-
 mpz/fits_ushort.c                          |    4 +-
 mpz/gcd.c                                  |    3 +-
 mpz/gcd_ui.c                               |    3 +-
 mpz/gcdext.c                               |    3 +-
 mpz/get_d.c                                |    2 +-
 mpz/get_d_2exp.c                           |    3 +-
 mpz/get_si.c                               |    2 +-
 mpz/get_str.c                              |    4 +-
 mpz/get_ui.c                               |    4 +-
 mpz/getlimbn.c                             |    4 +-
 mpz/hamdist.c                              |    2 +-
 mpz/import.c                               |    3 +-
 mpz/init.c                                 |    2 +-
 mpz/init2.c                                |    4 +-
 mpz/inits.c                                |   23 +-
 mpz/inp_raw.c                              |    3 +-
 mpz/inp_str.c                              |    5 +-
 mpz/invert.c                               |    2 +-
 mpz/ior.c                                  |    2 +-
 mpz/iset.c                                 |    2 +-
 mpz/iset_d.c                               |    2 +-
 mpz/iset_si.c                              |    2 +-
 mpz/iset_str.c                             |    2 +-
 mpz/iset_ui.c                              |    2 +-
 mpz/jacobi.c                               |    4 +-
 mpz/kronsz.c                               |    3 +-
 mpz/kronuz.c                               |    3 +-
 mpz/kronzs.c                               |    3 +-
 mpz/kronzu.c                               |    3 +-
 mpz/lcm.c                                  |    2 +-
 mpz/lcm_ui.c                               |    3 +-
 mpz/limbs_finish.c                         |    2 +-
 mpz/limbs_modify.c                         |    2 +-
 mpz/limbs_read.c                           |    2 +-
 mpz/limbs_write.c                          |    2 +-
 mpz/lucnum2_ui.c                           |    3 +-
 mpz/lucnum_ui.c                            |    3 +-
 mpz/mfac_uiui.c                            |    2 +-
 mpz/millerrabin.c                          |    2 +-
 mpz/mod.c                                  |    2 +-
 mpz/mul.c                                  |    3 +-
 mpz/mul_2exp.c                             |    2 +-
 mpz/mul_i.h                                |    2 +-
 mpz/n_pow_ui.c                             |    3 +-
 mpz/neg.c                                  |    3 +-
 mpz/nextprime.c                            |    3 +-
 mpz/oddfac_1.c                             |    3 +-
 mpz/out_raw.c                              |    4 +-
 mpz/out_str.c                              |    4 +-
 mpz/perfpow.c                              |    2 +-
 mpz/perfsqr.c                              |    4 +-
 mpz/popcount.c                             |    4 +-
 mpz/pow_ui.c                               |    2 +-
 mpz/powm.c                                 |    3 +-
 mpz/powm_sec.c                             |    2 +-
 mpz/powm_ui.c                              |    3 +-
 mpz/pprime_p.c                             |    3 +-
 mpz/primorial_ui.c                         |    2 +-
 mpz/prodlimbs.c                            |    2 +-
 mpz/random.c                               |    2 +-
 mpz/random2.c                              |    2 +-
 mpz/realloc.c                              |    4 +-
 mpz/realloc2.c                             |    4 +-
 mpz/remove.c                               |    2 +-
 mpz/roinit_n.c                             |    2 +-
 mpz/root.c                                 |    3 +-
 mpz/rootrem.c                              |    3 +-
 mpz/rrandomb.c                             |    2 +-
 mpz/scan0.c                                |    3 +-
 mpz/scan1.c                                |    3 +-
 mpz/set.c                                  |    2 +-
 mpz/set_d.c                                |    8 +-
 mpz/set_f.c                                |    2 +-
 mpz/set_q.c                                |    4 +-
 mpz/set_si.c                               |    2 +-
 mpz/set_str.c                              |    5 +-
 mpz/set_ui.c                               |    2 +-
 mpz/setbit.c                               |    2 +-
 mpz/size.c                                 |    4 +-
 mpz/sizeinbase.c                           |    3 +-
 mpz/sqrt.c                                 |    3 +-
 mpz/sqrtrem.c                              |    2 +-
 mpz/swap.c                                 |    2 +-
 mpz/tdiv_q.c                               |    3 +-
 mpz/tdiv_q_2exp.c                          |    2 +-
 mpz/tdiv_q_ui.c                            |    2 +-
 mpz/tdiv_qr.c                              |    3 +-
 mpz/tdiv_qr_ui.c                           |    2 +-
 mpz/tdiv_r.c                               |    3 +-
 mpz/tdiv_r_2exp.c                          |    2 +-
 mpz/tdiv_r_ui.c                            |    2 +-
 mpz/tdiv_ui.c                              |    3 +-
 mpz/tstbit.c                               |    2 +-
 mpz/ui_pow_ui.c                            |    2 +-
 mpz/ui_sub.c                               |    2 +-
 mpz/urandomb.c                             |    2 +-
 mpz/urandomm.c                             |    3 +-
 mpz/xor.c                                  |    2 +-
 nextprime.c                                |    4 +-
 primesieve.c                               |    3 +-
 printf/asprintf.c                          |   24 +-
 printf/asprntffuns.c                       |   16 +-
 printf/doprnt.c                            |   33 +-
 printf/doprntf.c                           |   16 +-
 printf/doprnti.c                           |   14 +-
 printf/fprintf.c                           |   26 +-
 printf/obprintf.c                          |   29 +-
 printf/obprntffuns.c                       |   14 +-
 printf/obvprintf.c                         |   11 +-
 printf/printf.c                            |   24 +-
 printf/printffuns.c                        |   14 +-
 printf/repl-vsnprintf.c                    |   33 +-
 printf/snprintf.c                          |   26 +-
 printf/snprntffuns.c                       |   13 +-
 printf/sprintf.c                           |   26 +-
 printf/sprintffuns.c                       |   14 +-
 printf/vasprintf.c                         |   16 +-
 printf/vfprintf.c                          |   12 +-
 printf/vprintf.c                           |   12 +-
 printf/vsnprintf.c                         |   12 +-
 printf/vsprintf.c                          |   12 +-
 rand/rand.c                                |   30 +-
 rand/randbui.c                             |    2 +-
 rand/randclr.c                             |    2 +-
 rand/randdef.c                             |    2 +-
 rand/randiset.c                            |    2 +-
 rand/randlc2s.c                            |    3 +-
 rand/randlc2x.c                            |    2 +-
 rand/randmt.c                              |   10 +-
 rand/randmt.h                              |   14 +-
 rand/randmts.c                             |    2 +-
 rand/randmui.c                             |    3 +-
 rand/rands.c                               |    3 +-
 rand/randsd.c                              |    2 +-
 rand/randsdui.c                            |    2 +-
 scanf/doscan.c                             |   32 +-
 scanf/fscanf.c                             |   27 +-
 scanf/fscanffuns.c                         |    3 +-
 scanf/scanf.c                              |   25 +-
 scanf/sscanf.c                             |   26 +-
 scanf/sscanffuns.c                         |    4 +-
 scanf/vfscanf.c                            |   12 +-
 scanf/vscanf.c                             |   12 +-
 scanf/vsscanf.c                            |   12 +-
 tal-debug.c                                |    7 +-
 tal-notreent.c                             |    4 +-
 tal-reent.c                                |    4 +-
 tests/misc/t-printf.c                      |   33 +-
 tests/misc/t-scanf.c                       |   19 +-
 version.c                                  |    2 +-
 495 files changed, 2215 insertions(+), 3099 deletions(-)
 create mode 100644 gen-rename.awk
 create mode 100644 gen-rename.c
 create mode 100644 gen-renamei.c
 delete mode 100644 mpn/generic/sizeinbase.c

-- 
1.8.1.2



More information about the gmp-devel mailing list