Skip Menu |

This queue is for tickets about the IO-Interface CPAN distribution.

Report information
The Basics
Id: 97190
Status: open
Priority: 0/
Queue: IO-Interface

People
Owner: Nobody in particular
Requestors: gregoa [...] cpan.org
Cc:
AdminCc:

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



From: gregoa [...] cpan.org
Subject: libio-interface-perl: FTBFS on kfreebsd-*: invalid storage class for function 'XS_IO__Interface_if_flags'
We have the following bug reported to the Debian package of IO-Interface (https://bugs.debian.org/754691): It doesn't seem to be a bug in the packaging, so you may want to take a look. Thanks! ------8<-----------8<-----------8<-----------8<-----------8<----- Source: libio-interface-perl Version: 1.07-1 Severity: serious Justification: FTBFS Hi, your package no longer builds on kfreebsd-*: | cc -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -DVERSION=\"1.07\" -DXS_VERSION=\"1.07\" -fPIC "-I/usr/lib/perl/5.18/CORE" -DUSE_GETIFADDRS -DHAVE_SOCKADDR_DL_STRUCT Interface.c | In file included from Interface.xs:3:0: | Interface.c: In function 'XS_IO__Interface_if_hwaddr': | Interface.c:866:10: error: invalid storage class for function 'XS_IO__Interface_if_flags' | XS_EUPXS(XS_IO__Interface_if_flags); /* prototype to pass -Wmissing-prototypes */ | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:866:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface_if_flags); /* prototype to pass -Wmissing-prototypes */ | ^ | Interface.c:867:10: error: invalid storage class for function 'XS_IO__Interface_if_flags' | XS_EUPXS(XS_IO__Interface_if_flags) | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:867:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface_if_flags) | ^ | Interface.c:911:10: error: invalid storage class for function 'XS_IO__Interface_if_mtu' | XS_EUPXS(XS_IO__Interface_if_mtu); /* prototype to pass -Wmissing-prototypes */ | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:911:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface_if_mtu); /* prototype to pass -Wmissing-prototypes */ | ^ | Interface.c:912:10: error: invalid storage class for function 'XS_IO__Interface_if_mtu' | XS_EUPXS(XS_IO__Interface_if_mtu) | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:912:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface_if_mtu) | ^ | Interface.c:956:10: error: invalid storage class for function 'XS_IO__Interface_if_metric' | XS_EUPXS(XS_IO__Interface_if_metric); /* prototype to pass -Wmissing-prototypes */ | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:956:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface_if_metric); /* prototype to pass -Wmissing-prototypes */ | ^ | Interface.c:957:10: error: invalid storage class for function 'XS_IO__Interface_if_metric' | XS_EUPXS(XS_IO__Interface_if_metric) | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:957:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface_if_metric) | ^ | Interface.c:1001:10: error: invalid storage class for function 'XS_IO__Interface_if_index' | XS_EUPXS(XS_IO__Interface_if_index); /* prototype to pass -Wmissing-prototypes */ | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:1001:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface_if_index); /* prototype to pass -Wmissing-prototypes */ | ^ | Interface.c:1002:10: error: invalid storage class for function 'XS_IO__Interface_if_index' | XS_EUPXS(XS_IO__Interface_if_index) | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:1002:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface_if_index) | ^ | Interface.c:1029:10: error: invalid storage class for function 'XS_IO__Interface_if_indextoname' | XS_EUPXS(XS_IO__Interface_if_indextoname); /* prototype to pass -Wmissing-prototypes */ | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:1029:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface_if_indextoname); /* prototype to pass -Wmissing-prototypes */ | ^ | Interface.c:1030:10: error: invalid storage class for function 'XS_IO__Interface_if_indextoname' | XS_EUPXS(XS_IO__Interface_if_indextoname) | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:1030:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface_if_indextoname) | ^ | Interface.c:1060:10: error: invalid storage class for function 'XS_IO__Interface__if_list' | XS_EUPXS(XS_IO__Interface__if_list); /* prototype to pass -Wmissing-prototypes */ | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:1060:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface__if_list); /* prototype to pass -Wmissing-prototypes */ | ^ | Interface.c:1061:10: error: invalid storage class for function 'XS_IO__Interface__if_list' | XS_EUPXS(XS_IO__Interface__if_list) | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:142:43: note: in definition of macro 'XS_INTERNAL' | # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:1061:1: note: in expansion of macro 'XS_EUPXS' | XS_EUPXS(XS_IO__Interface__if_list) | ^ | Interface.c:1126:13: error: static declaration of 'boot_IO__Interface' follows non-static declaration | XS_EXTERNAL(boot_IO__Interface) | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:141:36: note: in definition of macro 'XS_EXTERNAL' | # define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:1125:13: note: previous declaration of 'boot_IO__Interface' was here | XS_EXTERNAL(boot_IO__Interface); /* prototype to pass -Wmissing-prototypes */ | ^ | /usr/lib/perl/5.18/CORE/XSUB.h:141:36: note: in definition of macro 'XS_EXTERNAL' | # define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__) | ^ | Interface.c:1159:1: error: expected declaration or statement at end of input | } | ^ | make[1]: *** [Interface.o] Error 1 Full build logs: https://buildd.debian.org/status/fetch.php?pkg=libio-interface-perl&arch=kfreebsd-amd64&ver=1.07-1&stamp=1402563744 https://buildd.debian.org/status/fetch.php?pkg=libio-interface-perl&arch=kfreebsd-i386&ver=1.07-1&stamp=1402567343 Mraw, KiBi. ------8<-----------8<-----------8<-----------8<-----------8<----- Random facts: - 1.06 built on those architectures - when I comment out $attrs{DEFINE} .= ' -DHAVE_SOCKADDR_DL_STRUCT'; in Makefile.PL, it builds and passes tests Thanks for considering, gregor herrmann, Debian Perl Group
Found the culprit. A missing closing '}'. Patch attached, I hope I found the right place :) (A bit more indentation might also help ...) Cheers, gregor
Subject: missing-curly.patch
Description: make count if braces more balanced Origin: vendor Bug: https://rt.cpan.org/Public/Bug/Display.html?id=97190 Forwarded: https://rt.cpan.org/Public/Bug/Display.html?id=97190 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754691 Author: gregor herrmann <gregoa@debian.org> Last-Update: 2014-07-23 --- a/Interface.xs +++ b/Interface.xs @@ -595,6 +595,7 @@ } ifap = ifap -> ifa_next; } + } freeifaddrs(ifap); s = hwaddr;
On Wed Jul 23 11:34:36 2014, GREGOA wrote: Show quoted text
> Found the culprit. A missing closing '}'. > > Patch attached, I hope I found the right place :)
This patch fixes a build error I encountered today on Mac OSX.