Message ID | 20190111163519.11457-1-philmd@redhat.com |
---|---|
State | New |
Headers | show |
Series | qemu-nbd: Rename 'exp' variable clashing with math::exp() symbol | expand |
Cc'ing qemu-trivial@nongnu.org On Fri, Jan 11, 2019 at 5:35 PM Philippe Mathieu-Daudé <philmd@redhat.com> wrote: > > The use of a variable named 'exp' prevents includes to import <math.h>. > > Rename it to avoid: > > qemu-nbd.c:64:19: error: ‘exp’ redeclared as different kind of symbol > static NBDExport *exp; > ^~~ > In file included from /usr/include/features.h:428, > from /usr/include/bits/libc-header-start.h:33, > from /usr/include/stdint.h:26, > from /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:9, > from /source/qemu/include/qemu/osdep.h:80, > from /source/qemu/qemu-nbd.c:19: > /usr/include/bits/mathcalls.h:95:1: note: previous declaration of ‘exp’ was here > __MATHCALL_VEC (exp,, (_Mdouble_ __x)); > ^~~~~~~~~~~~~~ > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > qemu-nbd.c | 19 ++++++++++--------- > 1 file changed, 10 insertions(+), 9 deletions(-) > > diff --git a/qemu-nbd.c b/qemu-nbd.c > index 2807e13239..6ca02b6d87 100644 > --- a/qemu-nbd.c > +++ b/qemu-nbd.c > @@ -61,7 +61,7 @@ > > #define MBR_SIZE 512 > > -static NBDExport *exp; > +static NBDExport *export; > static int verbose; > static char *srcpath; > static SocketAddress *saddr; > @@ -335,7 +335,7 @@ static int nbd_can_accept(void) > return state == RUNNING && nb_fds < shared; > } > > -static void nbd_export_closed(NBDExport *exp) > +static void nbd_export_closed(NBDExport *export) > { > assert(state == TERMINATING); > state = TERMINATED; > @@ -1015,10 +1015,11 @@ int main(int argc, char **argv) > } > } > > - exp = nbd_export_new(bs, dev_offset, fd_size, nbdflags, nbd_export_closed, > - writethrough, NULL, &error_fatal); > - nbd_export_set_name(exp, export_name); > - nbd_export_set_description(exp, export_description); > + export = nbd_export_new(bs, dev_offset, fd_size, nbdflags, > + nbd_export_closed, writethrough, > + NULL, &error_fatal); > + nbd_export_set_name(export, export_name); > + nbd_export_set_description(export, export_description); > > if (device) { > #if HAVE_NBD_DEVICE > @@ -1055,9 +1056,9 @@ int main(int argc, char **argv) > main_loop_wait(false); > if (state == TERMINATE) { > state = TERMINATING; > - nbd_export_close(exp); > - nbd_export_put(exp); > - exp = NULL; > + nbd_export_close(export); > + nbd_export_put(export); > + export = NULL; > } > } while (state != TERMINATED); > > -- > 2.17.2 >
On 1/11/19 10:35 AM, Philippe Mathieu-Daudé wrote: > The use of a variable named 'exp' prevents includes to import <math.h>. > > Rename it to avoid: > > qemu-nbd.c:64:19: error: ‘exp’ redeclared as different kind of symbol > static NBDExport *exp; > ^~~ > In file included from /usr/include/features.h:428, > from /usr/include/bits/libc-header-start.h:33, > from /usr/include/stdint.h:26, > from /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:9, > from /source/qemu/include/qemu/osdep.h:80, > from /source/qemu/qemu-nbd.c:19: > /usr/include/bits/mathcalls.h:95:1: note: previous declaration of ‘exp’ was here > __MATHCALL_VEC (exp,, (_Mdouble_ __x)); > ^~~~~~~~~~~~~~ > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > qemu-nbd.c | 19 ++++++++++--------- > 1 file changed, 10 insertions(+), 9 deletions(-) Why did you need to import math.h? But it's reasonable enough. Will queue through my NBD tree; in part because it has conflicts with other pending NBD patches (so trivial-patches taking it would actually cost me more efforts than me just fixing the conflicts). Reviewed-by: Eric Blake <eblake@redhat.com> > +++ b/qemu-nbd.c > @@ -61,7 +61,7 @@ > > #define MBR_SIZE 512 > > -static NBDExport *exp; > +static NBDExport *export; This one is a definite problem (POSIX says you shouldn't name any static variable the same as a standard function entry point, even if it happens to lnik)... > static int verbose; > static char *srcpath; > static SocketAddress *saddr; > @@ -335,7 +335,7 @@ static int nbd_can_accept(void) > return state == RUNNING && nb_fds < shared; > } > > -static void nbd_export_closed(NBDExport *exp) > +static void nbd_export_closed(NBDExport *export) ...this one just silences a -Wshadow but is permitted by strict C. We have too many other -Wshadow violations in our code base, but I don't mind getting rid of this one. > @@ -1015,10 +1015,11 @@ int main(int argc, char **argv) > } > } > > - exp = nbd_export_new(bs, dev_offset, fd_size, nbdflags, nbd_export_closed, > - writethrough, NULL, &error_fatal); > - nbd_export_set_name(exp, export_name); > - nbd_export_set_description(exp, export_description); > + export = nbd_export_new(bs, dev_offset, fd_size, nbdflags, > + nbd_export_closed, writethrough, > + NULL, &error_fatal); > + nbd_export_set_name(export, export_name); > + nbd_export_set_description(export, export_description); Here's where my pending to add 'qemu-nbd --bitmap' conflict; I don't mind fixing it.
diff --git a/qemu-nbd.c b/qemu-nbd.c index 2807e13239..6ca02b6d87 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -61,7 +61,7 @@ #define MBR_SIZE 512 -static NBDExport *exp; +static NBDExport *export; static int verbose; static char *srcpath; static SocketAddress *saddr; @@ -335,7 +335,7 @@ static int nbd_can_accept(void) return state == RUNNING && nb_fds < shared; } -static void nbd_export_closed(NBDExport *exp) +static void nbd_export_closed(NBDExport *export) { assert(state == TERMINATING); state = TERMINATED; @@ -1015,10 +1015,11 @@ int main(int argc, char **argv) } } - exp = nbd_export_new(bs, dev_offset, fd_size, nbdflags, nbd_export_closed, - writethrough, NULL, &error_fatal); - nbd_export_set_name(exp, export_name); - nbd_export_set_description(exp, export_description); + export = nbd_export_new(bs, dev_offset, fd_size, nbdflags, + nbd_export_closed, writethrough, + NULL, &error_fatal); + nbd_export_set_name(export, export_name); + nbd_export_set_description(export, export_description); if (device) { #if HAVE_NBD_DEVICE @@ -1055,9 +1056,9 @@ int main(int argc, char **argv) main_loop_wait(false); if (state == TERMINATE) { state = TERMINATING; - nbd_export_close(exp); - nbd_export_put(exp); - exp = NULL; + nbd_export_close(export); + nbd_export_put(export); + export = NULL; } } while (state != TERMINATED);
The use of a variable named 'exp' prevents includes to import <math.h>. Rename it to avoid: qemu-nbd.c:64:19: error: ‘exp’ redeclared as different kind of symbol static NBDExport *exp; ^~~ In file included from /usr/include/features.h:428, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdint.h:26, from /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:9, from /source/qemu/include/qemu/osdep.h:80, from /source/qemu/qemu-nbd.c:19: /usr/include/bits/mathcalls.h:95:1: note: previous declaration of ‘exp’ was here __MATHCALL_VEC (exp,, (_Mdouble_ __x)); ^~~~~~~~~~~~~~ Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- qemu-nbd.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)