Skip Menu |

This queue is for tickets about the Tickit CPAN distribution.

Report information
The Basics
Id: 131378
Status: open
Priority: 0/
Queue: Tickit

People
Owner: Nobody in particular
Requestors: nomad [...] null.net
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: [cygwin] error: external linkage required for symbol ‘invoke_watch’
Date: Mon, 6 Jan 2020 20:57:16 +0100
To: bug-Tickit [...] rt.cpan.org
From: nomad [...] null.net
I'm trying to build Tickit under Cygwin. I am not quite getting past the library dependencies, so this may not be an issue with Tickit itself. 0. I think I had trouble with Alien::libtermkey or Alien::libtickit in the past so I've been trying to install those libraries directly. 1. It seems that libterm does not install a dll by default. I managed to get that installed by manually adding LDFLAGS=-no-defined to the Makefile. 2. It seems that libtickit also does not install a dll either. I don't know if this is actually required by Tickit, but since I couldn't build libtickit without libterm having a dll I also added LDFLAGS=-no-defined to the Makefile. 3. When I run "PKG_CONFIG_PATH=/usr/local/lib/pkgconfig cpanm -v Tickit" I get the following error (plus a bunch of warnings): gcc -I/usr/lib/perl5/5.26/x86_64-cygwin-threads/CORE -DVERSION="0.69" -DXS_VERSION="0.69" -I/usr/local/include -c -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -D_GNU_SOURCE -ggdb -O2 -pipe -Wall -Werror=format-security -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -fdebug-prefix-map=/mnt/share/cygpkgs/perl/perl.x86_64/build=/usr/src/debug/perl-5.26.3-2 -fdebug-prefix-map=/mnt/share/cygpkgs/perl/perl.x86_64/src/perl-5.26.3=/usr/src/debug/perl-5.26.3-2 -fwrapv -fno-strict-aliasing -O3 -o lib/Tickit.o lib/Tickit.c In file included from lib/Tickit.xs:10:0: lib/Tickit.xs:687:11: error: external linkage required for symbol ‘invoke_watch’ because of ‘dllexport’ attribute static XS(invoke_watch); ^ It may be obvious that I don't know what I'm doing here, but if there is any more info I can provide I'd like to do so. -- Mark Lawrence
On Mon Jan 06 15:04:05 2020, nomad@null.net wrote: Show quoted text
> 1. It seems that libterm does not install a dll by default. I managed > to get that installed by manually adding LDFLAGS=-no-defined to the > Makefile.
Sounds cygwin-specific. Show quoted text
> 2. It seems that libtickit also does not install a dll either. I don't > know if this is actually required by Tickit, but since I couldn't > build > libtickit without libterm having a dll I also added LDFLAGS=-no- > defined > to the Makefile.
More cygwin. Show quoted text
> 3. When I run "PKG_CONFIG_PATH=/usr/local/lib/pkgconfig cpanm -v > Tickit" I get the following error (plus a bunch of warnings):
... Show quoted text
> In file included from lib/Tickit.xs:10:0: > lib/Tickit.xs:687:11: error: external linkage required for symbol > ‘invoke_watch’ because of ‘dllexport’ attribute > static XS(invoke_watch);
Again very cygwin. These are all cygwin specific, and I'm not sure I really know anything about that. The first two are to do with library building and there's likely some system-specific stuff you can do about that, but I wouldn't know what. The trouble with "invoke_watch" seems somewhat surprising; my first random guess is that the XS() macro is somehow applying the dllexport attribute to the function, which shouldn't be necessary here. There might be a way to stop that, but that's again PE rather than ELF-specific, and hence another cygwin'ism. I suspect a better bet may be to find some cygwin-specific place to ask about these things. -- Paul Evans
Subject: Re: [rt.cpan.org #131378] [cygwin] error: external linkage required for symbol ‘invoke_watch’
Date: Tue, 28 Jan 2020 18:09:34 +0100
To: Paul Evans via RT <bug-Tickit [...] rt.cpan.org>
From: nomad [...] null.net
On Mon Jan 27, 2020 at 09:20:39PM -0500, Paul Evans via RT wrote: Show quoted text
> > These are all cygwin specific, and I'm not sure I really know > anything about that. The first two are to do with library building > and there's likely some system-specific stuff you can do about that, > but I wouldn't know what.
You are right. As this is not really a Tickit issue please close this ticket and I'll look for a better forum Show quoted text
> The trouble with "invoke_watch" seems somewhat surprising; my first > random guess is that the XS() macro is somehow applying the dllexport > attribute to the function, which shouldn't be necessary here. There > might be a way to stop that, but that's again PE rather than > ELF-specific, and hence another cygwin'ism.
I'll come back to you or the Porters when/if I can understand and describe the issue better. -- Mark Lawrence