Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 548094 - dev-lang/perl-5.20.2 Errno module broken with GCC 5.1
Summary: dev-lang/perl-5.20.2 Errno module broken with GCC 5.1
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GCC Porting (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Perl team
URL: https://rt.perl.org/Public/Bug/Displa...
Whiteboard:
Keywords:
: 548294 553600 579664 (view as bug list)
Depends on:
Blocks: gcc-5
  Show dependency tree
 
Reported: 2015-04-29 02:19 UTC by Patrick Lauer
Modified: 2016-04-11 21:48 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Add option -P to cpp to fix compilation with gcc-5 (perl-gcc-5.patch,1.54 KB, patch)
2015-05-01 10:35 UTC, Martin Väth
Details | Diff
perl-5.20.2-gcc51.patch (perl-5.20.2-gcc51.patch,3.42 KB, patch)
2015-05-06 05:01 UTC, Ryan Hill (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Lauer gentoo-dev 2015-04-29 02:19:38 UTC
looks like the "errno" module is totally broken. Possibly related to gcc 5.1.0:

===(   19970;5  2101/4016  0/?    0/942 )===============================^M===(   19971;5  2101/4016  0/?    0/942   1/55 )========================Undefined subroutine &Errno::EISDIR called at io/fs.t line 489.
# Looks like you planned 55 tests but ran 53.
^M                                                                        ^Mio/fs.t ........................................................... Dubious, test returned 21 (wstat 5376, 0x1500)
Failed 2/55 subtests

[snip]

===(   20228;5  2237/4016  0/?    0/942 )==============================="ENOENT" is not exported by the Errno module
Can't continue after import errors at io/open.t line 441.
BEGIN failed--compilation aborted at io/open.t line 441.

[snip]

# require failed with 'Bareword "Errno::EINVAL" not allowed while "strict subs" in use at ../lib/IO/Socket.pm line 135.
# Compilation failed in require at ../lib/Net/POP3.pm line 10.
# BEGIN failed--compilation aborted at ../lib/Net/POP3.pm line 10.
# Compilation failed in require at (eval 1) line 1.
# BEGIN failed--compilation aborted at (eval 1) line 1.
# '
# Failed test 3 - compile Net::POP3 at lib/1_compile.t line 44

etc.etc.

Portage 2.2.18 (python 3.3.5-final-0, default/linux/amd64/13.0/desktop/kde, gcc-5.1.0, glibc-2.20-r2, 4.0.0-gentoo x86_64)
=================================================================
System uname: Linux-4.0.0-gentoo-x86_64-AMD_Phenom-tm-_II_X4_965_Processor-with-gentoo-2.2
KiB Mem:     7918868 total,    952736 free
KiB Swap:   16777208 total,  16215708 free
sh bash 4.3_p33-r2
ld GNU ld (Gentoo 2.25 p1.0) 2.25
app-shells/bash:          4.3_p33-r2::gentoo
dev-lang/perl:            5.20.2::gentoo
dev-lang/python:          2.7.9-r2::gentoo, 3.3.5-r1::gentoo, 3.4.3::gentoo
dev-util/cmake:           3.2.1::gentoo
dev-util/pkgconfig:       0.28-r2::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.14::gentoo
sys-apps/sandbox:         2.6-r1::gentoo
sys-devel/autoconf:       2.69-r1::gentoo
sys-devel/automake:       1.14.1::gentoo, 1.15::gentoo
sys-devel/binutils:       2.25::gentoo
sys-devel/gcc:            4.9.2::gentoo, 5.1.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r1::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 4.0::gentoo (virtual/os-headers)
sys-libs/glibc:           2.20-r2::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000

x-overlay
    location: /overlay
    masters: gentoo
    priority: 0

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0 /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms split-elog strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirrors.sohu.com/gentoo/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl acpi alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus declarative dri dts dvd dvdr egl emboss encode exif fam firefox flac fortran gdbm gif glamor gpm gtk iconv ipv6 jpeg kde kipi lcms ldap libnotify mad mmx mmxext mng modules mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf phonon plasma png policykit ppds python qt3support qt4 readline sdl semantic-desktop session spell sqlite sse sse2 ssl startup-notification svg tcl tcpd tiff truetype udev udisks unicode upower usb vorbis wxwidgets x264 xa xcb xcomposite xinerama xml xscreensaver xv xvfb xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3 python3_4 pypy" RUBY_TARGETS="ruby21 ruby22" USERLAND="GNU" VIDEO_CARDS="vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-05-01 06:20:35 UTC
*** Bug 548294 has been marked as a duplicate of this bug. ***
Comment 2 Martin Väth 2015-05-01 10:35:42 UTC
Created attachment 402380 [details, diff]
Add option -P to cpp to fix compilation with gcc-5


Since -P is not passed to the cpp preprocessor in perl-5.20.2, errno constants are calculated false with gcc-5, causing e.g. Socket.pm to fail to compile with use strict

The attached fix is a backport of the upstream fix
https://github.com/Perl/perl5/commit/3bea78d24634e630b610f59957e7a019205a67b2
Comment 3 Ryan Hill (RETIRED) gentoo-dev 2015-05-06 05:01:42 UTC
Created attachment 402738 [details, diff]
perl-5.20.2-gcc51.patch

I think that patch is incomplete.  We need both of these:

https://github.com/Perl/perl5/commit/816b056ffb99ae54642320e20dc30a59fd1effef
https://github.com/Perl/perl5/commit/3bea78d24634e630b610f59957e7a019205a67b2

Without the second we get:

# Failed test 5 - preamble compiles at ../lib/h2ph.t line 49
#      got 'Bareword found where operator expected at _h2ph_pre.ph line 212, near "7fff"
# 	(Missing operator before fff?)
# Bareword found where operator expected at _h2ph_pre.ph line 218, near "7fffffff"
# 	(Missing operator before fffffff?)
# Bareword found where operator expected at _h2ph_pre.ph line 224, near "7fffffffffffffffL"
# 	(Missing operator before fffffffffffffffL?)
# Bareword found where operator expected at _h2ph_pre.ph line 230, near "7f"
# 	(Missing operator before f?)
# Bareword found where operator expected at _h2ph_pre.ph line 236, near "7fffffffffffffffL"
# 	(Missing operator before fffffffffffffffL?)
# Bareword found where operator expected at _h2ph_pre.ph line 240, near "7fffffffffffffffL"
# 	(Missing operator before fffffffffffffffL?)
# Bareword found where operator expected at _h2ph_pre.ph line 244, near "7fffffffffffffffL"
# 	(Missing operator before fffffffffffffffL?)
# Bareword found where operator expected at _h2ph_pre.ph line 248, near "7fffffffffffffffL"
# 	(Missing operator before fffffffffffffffL?)
# Bareword found where operator expected at _h2ph_pre.ph line 252, near "7fffffffffffffffL"
# 	(Missing operator before fffffffffffffffL?)
# Bareword found where operator expected at _h2ph_pre.ph line 256, near "7f"
# 	(Missing operator before f?)
# syntax error at _h2ph_pre.ph line 212, near "7fff "
# syntax error at _h2ph_pre.ph line 218, near "7fffffff "
# syntax error at _h2ph_pre.ph line 224, near "7fffffffffffffffL "
# syntax error at _h2ph_pre.ph line 230, near "7f "
# syntax error at _h2ph_pre.ph line 236, near "7fffffffffffffffL "
# syntax error at _h2ph_pre.ph line 240, near "7fffffffffffffffL "
# syntax error at _h2ph_pre.ph line 244, near "7fffffffffffffffL "
# syntax error at _h2ph_pre.ph line 248, near "7fffffffffffffffL "
# syntax error at _h2ph_pre.ph line 252, near "7fffffffffffffffL "
# syntax error at _h2ph_pre.ph line 256, near "7f "
# _h2ph_pre.ph has too many errors.
# '
# expected /(?^:syntax OK$)/
../lib/h2ph.t ..................................................... Failed 1/6 subtests


Perl guys, can I get you to add this patch now rather than wait for a new release?  It's causing several other packages to break which is making testing difficult.
Comment 4 Andreas K. Hüttel archtester gentoo-dev 2015-05-07 08:53:07 UTC
(In reply to Ryan Hill from comment #3)

> 
> Perl guys, can I get you to add this patch now rather than wait for a new
> release?  It's causing several other packages to break which is making
> testing difficult.

I can do it over the weekend at latest. Please ping me on irc if I forget.
Comment 5 Andreas K. Hüttel archtester gentoo-dev 2015-05-09 21:50:38 UTC
(In reply to Andreas K. Hüttel from comment #4)
> (In reply to Ryan Hill from comment #3)
> 
> > 
> > Perl guys, can I get you to add this patch now rather than wait for a new
> > release?  It's causing several other packages to break which is making
> > testing difficult.
> 
> I can do it over the weekend at latest. Please ping me on irc if I forget.

The fix is now in 5.20.2-r1. Thanks!
Comment 6 Ryan Hill (RETIRED) gentoo-dev 2015-05-11 23:25:57 UTC
Thanks for the quick response.
Comment 7 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-07-10 16:01:08 UTC
*** Bug 553600 has been marked as a duplicate of this bug. ***
Comment 8 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2016-04-11 21:48:26 UTC
*** Bug 579664 has been marked as a duplicate of this bug. ***