Created attachment 152696 [details]
After this port was upgraded from 1.06 to 1.09, I had incorrectly assumed that my port (see bug 196528) failing was a problem with its use IO::Interface methods marked as deprecated.
However, this didn't solve the problem.
My port would continue to fail with:
Error: Illegal seek
And, in dmesg, lines like this would appear:
WARNING pid 10917 (perl): ioctl sign-extension ioctl ffffffffc0206933
WARNING pid 10917 (perl): ioctl sign-extension ioctl ffffffffc0206921
In deeper investigation, found that the problem was in net/p5-IO-Interface.
In looking at the change log, between 1.06 and 1.09, the upstream applied a patch for a segfault in 1.07 and another in 1.08. 1.08 was also the first Git version. In 1.09, converted to use Module::Build.
The problem is the CONFIGURE portion that was in Makefile.PL was not replicated into Build.PL, so it wasn't checking if it was being built on FreeBSD, OpenBSD or NetBSD. Or testing for the presence of two headerfiles. So, the compile was missing 3 compiler flags (DEFINES).
I waited to see if this port would get fixed, or rolled back to 1.08, but didn't seem either wanted to take place. So, after figuring out what specific change to Build.PL I needed and fed it into 'poudriere testport', I submitted a report to cpan for IO::Interface (#101985).
Made an additional change to Makefile to satisfy warning from poudriere QA.
Auto-assigned to maintainer perl@FreeBSD.org
Created attachment 152697 [details]
poudriere testport results on 9.3/amd64
A commit references this bug:
Date: Sun Feb 8 03:20:10 UTC 2015
New revision: 378629
net/p5-IO-Interface: fix build on FreeBSD
Build.PL wasn't checking if it was being built on FreeBSD, OpenBSD
or NetBSD. Or testing for the presence of two headerfiles. So,
the compile was missing 3 compiler flags (DEFINES).
Submitted by: Lawrence Chen <email@example.com>