[Libguestfs] [PATCH nbdkit 3/3] python: Remove extraneous static keyword

Frank Gu gyf304 at gmail.com
Mon Mar 23 13:08:25 UTC 2020


The error is the following

libtool: link: (cd .libs/nbdkit-perl-plugin.lax/libutils.a && ar x
"/c/Users/yifangu/Documents/devel/nbdkit/plugins/perl/../../common/utils/.libs/libutils.a")
libtool: link: ar cru .libs/nbdkit-perl-plugin.a
.libs/nbdkit_perl_plugin_la-perl.o
 .libs/nbdkit-perl-plugin.lax/libutils.a/libutils_la-cleanup-nbdkit.o
.libs/nbdkit-perl-plugin.lax/libutils.a/libutils_la-cleanup.o
.libs/nbdkit-perl-plugin.lax/libutils.a/libutils_la-quote.o
.libs/nbdkit-perl-plugin.lax/libutils.a/libutils_la-utils.o
libtool: link: ranlib .libs/nbdkit-perl-plugin.a
libtool: link: rm -fr .libs/nbdkit-perl-plugin.lax
libtool: link: ( cd ".libs" && rm -f "nbdkit-perl-plugin.la" && cp -pR "../
nbdkit-perl-plugin.la" "nbdkit-perl-plugin.la" )
make[3]: Leaving directory
'/c/Users/yifangu/Documents/devel/nbdkit/plugins/perl'
Making all in python
make[3]: Entering directory
'/c/Users/yifangu/Documents/devel/nbdkit/plugins/python'
/bin/sh ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.
-I../..  -I../../include -I../../common/utils    -I/usr/include/python3.7m
 -g -O2 -MT nbdkit_python_plugin_la-python.lo -MD -MP -MF
.deps/nbdkit_python_plugin_la-python.Tpo -c -o
nbdkit_python_plugin_la-python.lo `test -f 'python.c' || echo './'`python.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include
-I../../common/utils -I/usr/include/python3.7m -g -O2 -MT
nbdkit_python_plugin_la-python.lo -MD -MP -MF
.deps/nbdkit_python_plugin_la-python.Tpo -c python.c  -DDLL_EXPORT -DPIC -o
.libs/nbdkit_python_plugin_la-python.o
python.c:228:1: error: external linkage required for symbol
‘create_nbdkit_module’ because of ‘dllexport’ attribute
  228 | create_nbdkit_module (void)
      | ^~~~~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:638: nbdkit_python_plugin_la-python.lo] Error 1
make[3]: Leaving directory
'/c/Users/yifangu/Documents/devel/nbdkit/plugins/python'
make[2]: *** [Makefile:505: all-recursive] Error 1
make[2]: Leaving directory '/c/Users/yifangu/Documents/devel/nbdkit/plugins'
make[1]: *** [Makefile:696: all-recursive] Error 1
make[1]: Leaving directory '/c/Users/yifangu/Documents/devel/nbdkit'
make: *** [Makefile:562: all] Error 2



On Mon, Mar 23, 2020 at 8:49 AM Richard W.M. Jones <rjones at redhat.com>
wrote:

> On Mon, Mar 23, 2020 at 12:28:12PM +0000, Richard W.M. Jones wrote:
> > From: Yifan Gu <gyf304 at gmail.com>
> >
> > The create_nbdkit_module function is intended to be exported, therefore
> > the static keyword is not needed and prevents building on MSYS2.
> > ---
> >  plugins/python/python.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/plugins/python/python.c b/plugins/python/python.c
> > index a1a0438b..adc1aaa5 100644
> > --- a/plugins/python/python.c
> > +++ b/plugins/python/python.c
> > @@ -224,7 +224,7 @@ static struct PyModuleDef moduledef = {
> >    NULL
> >  };
> >
> > -static PyMODINIT_FUNC
> > +PyMODINIT_FUNC
> >  create_nbdkit_module (void)
> >  {
> >    PyObject *m;
> > --
>
> I don't believe this is correct.  We call
>
>   PyImport_AppendInittab ("nbdkit", create_nbdkit_module);
>
> later on so the function shouldn't need to public.  What's the actual
> error when compiling this?
>
> Rich.
>
> --
> Richard Jones, Virtualization Group, Red Hat
> http://people.redhat.com/~rjones
> Read my programming and virtualization blog: http://rwmj.wordpress.com
> Fedora Windows cross-compiler. Compile Windows programs, test, and
> build Windows installers. Over 100 libraries supported.
> http://fedoraproject.org/wiki/MinGW
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20200323/ec80bd67/attachment.htm>


More information about the Libguestfs mailing list