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

2013-03-04 Thread Richard Henderson
On 03/04/2013 12:21 PM, Torbjorn Granlund wrote: > 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. > > Is the patch set intended to be applied as a whole, or will applying > each (in number order) give something wh

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

2013-03-04 Thread David Miller
From: Torbjorn Granlund Date: Mon, 04 Mar 2013 23:07:07 +0100 > I actually really like m4. It is tiny yet really powerful, being Turing > complete. A friend of mine implemented a bignum library in m4, inspired > by GMP's m4 usage, I think. Convinced of m4's greatness now? :-) I just want to

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

2013-03-04 Thread Torbjorn Granlund
Richard Henderson writes: The patch set is intended to be fully bisectable. Each patch in sequence should work. That said, I can't think of any real value in keeping the patches separate in the final commit. The intermediate steps are not useful. Thanks. > I don't see any problem

[PATCH 11/20] Convert the mpf subdirectory to __GMP_*_DEFINE and include changes

2013-03-04 Thread Richard Henderson
--- mpf/abs.c | 2 +- mpf/add.c | 2 +- mpf/add_ui.c | 2 +- mpf/ceilfloor.c| 3 ++- mpf/clear.c| 2 +- mpf/clears.c | 11 +-- mpf/cmp.c | 2 +- mpf/cmp_d.c| 8 +--- mpf/cmp_si.c | 2 +- mpf/cmp_ui.c | 2 +-

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

2013-03-04 Thread Richard Henderson
On 03/04/2013 12:47 PM, Torbjorn Granlund wrote: > But we might as well address this in the next stage. Do you agree? Yes. I think the macros added here will aid in cleaning things up. r~ ___ gmp-devel mailing list gmp-devel@gmplib.org http://gmplib.

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

2013-03-04 Thread David Miller
From: Richard Henderson Date: Mon, 04 Mar 2013 12:47:47 -0800 > On 03/04/2013 12:21 PM, Torbjorn Granlund wrote: >> What sort of paperwork do you and Red hat have in place? We need to >> extend it as soon as possible, if the current paperwork needs amending. >> (Last time, for David Miller, it t

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

2013-03-04 Thread Richard Henderson
On 03/04/2013 12:21 PM, Torbjorn Granlund wrote: > What sort of paperwork do you and Red hat have in place? We need to > extend it as soon as possible, if the current paperwork needs amending. > (Last time, for David Miller, it took something like two months, and > only after some nagging.) Gener

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

2013-03-04 Thread Torbjorn Granlund
Richard Henderson writes: No, I used the existing gmp-h.in file, as I mentioned elsewhere. Note that all symbols that are visible today are still visible with the patch. I'm not really cleaning up the set of exported symbols. Just making sure that gmp itself (mostly) never reference

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

2013-03-04 Thread Richard Henderson
On 03/04/2013 12:25 PM, Torbjorn Granlund wrote: > Did you use gmp-func-list.txt for determining which functions to make > public? > No, I used the existing gmp-h.in file, as I mentioned elsewhere. Note that all symbols that are visible today are still visible with the patch. I'm not really cle

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

2013-03-04 Thread Torbjorn Granlund
Did you use gmp-func-list.txt for determining which functions to make public? -- Torbjörn ___ gmp-devel mailing list gmp-devel@gmplib.org http://gmplib.org/mailman/listinfo/gmp-devel

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

2013-03-04 Thread Torbjorn Granlund
Richard Henderson writes: 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 e

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

2013-03-04 Thread Niels Möller
Richard Henderson writes: > 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. Different taste, I guess. I don't know why GMP moved to m4, but personally, I wouldn't use cpp for anything that isn't C code, it's too dee

Re: [PATCH 09/20] Prepare for creating hidden aliases of all routines

2013-03-04 Thread Richard Henderson
On 03/04/2013 11:48 AM, Niels Möller wrote: > Richard Henderson writes: > >> index 1b27998..ff0dc45 100644 >> --- a/gmp-h.in >> +++ b/gmp-h.in >> @@ -251,6 +251,10 @@ typedef __mpq_struct *mpq_ptr; >> __GMP_PUBLIC_DATA - for declaring data variables >> __GMP_PUBLIC_ALIAS - fo

Re: [PATCH 01/20] Delete mpn/generic/sizeinbase.c

2013-03-04 Thread Torbjorn Granlund
ni...@lysator.liu.se (Niels Möller) writes: Does anyone remember why it was deleted back then? I think it makes a lot of sense as a public mpn function. Checked old mail, but it is only mentioned 7 months earlier, when Kevin aded it. It does not make sense as an internal function, the MPN_

Re: [PATCH 01/20] Delete mpn/generic/sizeinbase.c

2013-03-04 Thread Niels Möller
Richard Henderson writes: > As far as I can tell it hasn't been used since > > 2002-02-09 Kevin Ryde > > * configure.in, mpn/Makefile.am, gmp-impl.h (mpn_sizeinbase): Remove. > * mpn/generic/sizeinbase.c: Remove file. > > removed it from MPN_OBJECTS. It's certainly never built

Re: [PATCH 09/20] Prepare for creating hidden aliases of all routines

2013-03-04 Thread Niels Möller
Richard Henderson writes: > index 1b27998..ff0dc45 100644 > --- a/gmp-h.in > +++ b/gmp-h.in > @@ -251,6 +251,10 @@ typedef __mpq_struct *mpq_ptr; > __GMP_PUBLIC_DATA - for declaring data variables > __GMP_PUBLIC_ALIAS - for re-declaring symbols with another name > > + W

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

2013-03-04 Thread Richard Henderson
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. T

[PATCH 19/20] Configure for hidden aliases.

2013-03-04 Thread Richard Henderson
--- acinclude.m4 | 20 config.in| 4 configure.ac | 1 + 3 files changed, 25 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index 15f71b1..f7b128e 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -3169,6 +3169,26 @@ fi ]) +dnl GMP_C_HIDDEN_ALIAS +dnl

[PATCH 16/20] Convert the toplevel directory to __GMP_*_DEFINE and include changes

2013-03-04 Thread Richard Henderson
--- assert.c | 5 ++--- compat.c | 2 -- errno.c| 7 +-- extract-dbl.c | 2 +- gen-bases.c| 2 +- gen-fib.c | 2 +- gen-rename.c | 10 ++ gen-renamei.c | 6 -- invalid.c | 18 ++ memory.c | 7 +++ mp_bpl.c

[PATCH 03/20] Build and include gmp-rename.h

2013-03-04 Thread Richard Henderson
Placeholder commit. The defines are still in gmp-h.in, so the generated file contains lots of self-defines of ABI to ABI name, which the script actually removes, creating an empty file. But the makefile rule works... --- Makefile.am| 7 +-- gen-rename.awk | 34 ++

[PATCH 18/20] Automatic hidden aliases inside existing asm-defs.m4 macros

2013-03-04 Thread Richard Henderson
This means we don't have to edit every single asm file. --- mpn/asm-defs.m4 | 342 1 file changed, 174 insertions(+), 168 deletions(-) diff --git a/mpn/asm-defs.m4 b/mpn/asm-defs.m4 index b95cad7..e3cdcb5 100644 --- a/mpn/asm-defs.m4 +++ b/

[PATCH 08/20] Squish include requirements

2013-03-04 Thread Richard Henderson
It is vital that config.h be included before gmp.h in order to get the right expansions for __GMP_PUBLIC_FULL and __GMP_PUBLIC_DEFINE, once we start declaring hidden symbols. Ease the burden of include orderings by always using only "gmp-impl.h", and getting everything else -- including system inc

[PATCH 12/20] Convert the mpq subdirectory to __GMP_*_DEFINE and include changes

2013-03-04 Thread Richard Henderson
--- mpq/abs.c | 3 +-- mpq/aors.c | 3 ++- mpq/canonicalize.c | 2 +- mpq/clear.c| 2 +- mpq/clears.c | 11 +-- mpq/cmp.c | 3 +-- mpq/cmp_si.c | 2 +- mpq/cmp_ui.c | 2 +- mpq/div.c | 2 +- mpq/equal.c| 2 +- mp

[PATCH 09/20] Prepare for creating hidden aliases of all routines

2013-03-04 Thread Richard Henderson
All of the mechanism is here, but not enabled -- configure has not yet been updated to define HAVE_HIDDEN_ALIAS. However, by hacking the generated config.h file by hand we'll be able to find errors as they occur without having to create one monster patch to do everything all at once. --- gen-rena

[PATCH 14/20] Convert the rand subdirectory to __GMP_*_DEFINE and include changes

2013-03-04 Thread Richard Henderson
--- gen-renamei.c | 1 + rand/rand.c | 12 +--- 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

[PATCH 04/20] Make proper use of

2013-03-04 Thread Richard Henderson
This lets us delete all of the defines cluttering the human maintained source. Note that __MPN gets to move to the implementation, and we had a redundant definition of mpn_sqr. --- gmp-h.in | 413 ++--- gmp-impl.h | 7 +- 2 files changed

[PATCH 17/20] Convert the scanf directory to __GMP_*_DEFINE and include changes

2013-03-04 Thread Richard Henderson
--- scanf/doscan.c | 32 ++-- scanf/fscanf.c | 12 +--- scanf/fscanffuns.c | 3 +-- scanf/scanf.c | 12 +--- scanf/sscanf.c | 12 +--- scanf/sscanffuns.c | 4 +--- scanf/vfscanf.c| 12 +--- scanf/vscanf.c | 12 +

[PATCH 07/20] Use gcc's __asm__ extension to rename symbols

2013-03-04 Thread Richard Henderson
When using gcc, we can alter the source/link symbol mapping. This flows all the way through to the dwarf2 output, e.g. : Abbrev Number: 13 (DW_TAG_subprogram) DW_AT_external: 1 DW_AT_name: mpn_get_d DW_AT_decl_file : 1 DW_AT_decl_line : 122 DW_AT_linkage_name: __gmpn

[PATCH 05/20] Use for defining alias as well

2013-03-04 Thread Richard Henderson
There aren't many of them, but we'll be better off in the end. --- gen-rename.c | 2 ++ gmp-h.in | 17 - 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/gen-rename.c b/gen-rename.c index 0ff4ea5..a4fd854 100644 --- a/gen-rename.c +++ b/gen-rename.c @@ -26,5 +26

[PATCH 01/20] Delete mpn/generic/sizeinbase.c

2013-03-04 Thread Richard Henderson
As far as I can tell it hasn't been used since 2002-02-09 Kevin Ryde * configure.in, mpn/Makefile.am, gmp-impl.h (mpn_sizeinbase): Remove. * mpn/generic/sizeinbase.c: Remove file. removed it from MPN_OBJECTS. It's certainly never built. I'm not sure how the file crept back i

[PATCH 20/20] Delete support for

2013-03-04 Thread Richard Henderson
ANSI C is now 25 years old. We already use ANSI-C-isms all over the source tree. This sort of paranoia check is now well out of date. --- acinclude.m4 | 55 +++--- config.in | 3 --- configure.ac | 1 - demos/expr/exp

[PATCH 10/20] Convert the printf subdirectory to __GMP_*_DEFINE and include changes

2013-03-04 Thread Richard Henderson
--- gmp-impl.h | 10 +- printf/asprintf.c | 10 +- printf/asprntffuns.c| 16 +++- printf/doprnt.c | 33 ++--- printf/doprntf.c| 16 +--- printf/doprnti.c| 14 +- printf/fp