Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

compiler warnings when building perl 5.20.1 with glibc 2.20/gcc 4.9.1 (Hardened Gentoo) #14530

Closed
p5pRT opened this issue Feb 19, 2015 · 7 comments

Comments

@p5pRT
Copy link

p5pRT commented Feb 19, 2015

Migrated from rt.perl.org#123881 (status was 'rejected')

Searchable as RT123881$

@p5pRT
Copy link
Author

p5pRT commented Feb 19, 2015

From knotwurk@gmail.com

This is a bug report for perl from knotwurk@​gmail.com,
generated with the help of perlbug 1.40 running under perl 5.20.1.


* QA Notice​: Package triggers severe warnings which indicate that it
* may exhibit random runtime failures.
* gv.c​:2291​:25​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:605​:17​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:864​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:1142​:8​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:1170​:9​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:1184​:5​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:1196​:7​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:1228​:7​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:1253​:9​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:1267​:5​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:430​:3​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:1405​:6​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:1452​:6​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:1456​:6​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:1486​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:1525​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:1750​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:1750​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:1750​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:1750​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:2477​:17​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:2478​:17​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:2479​:3​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:2497​:17​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:2616​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:2616​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:2616​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:2616​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* hv.c​:2663​:3​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* sv.c​:4808​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* sv.c​:6444​:3​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* sv.c​:9015​:2​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* sv.c​:14437​:3​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]



Flags​:
  category=core
  severity=low


Site configuration information for perl 5.20.1​:

Configured by Gentoo at Thu Feb 19 05​:49​:32 GMT 2015.

Summary of my perl5 (revision 5 version 20 subversion 1) configuration​:

  Platform​:
  osname=linux, osvers=3.18.4-grsec, archname=x86_64-linux
  uname='linux localhost 3.18.4-grsec #20 smp sun feb 15 08​:02​:45
gmt 2015 x86_64 intel(r) core(tm)2 duo cpu l7500 @​ 1.60ghz
genuineintel gnulinux '
  config_args='-des -Duseshrplib -Darchname=x86_64-linux
-Dcc=x86_64-pc-linux-gnu-gcc -Doptimize=-O0 -pipe
-fstack-protector-strong -fno-delete-null-pointer-checks -fwrapv
-fno-delete-null-pointer-checks -fisolate-erroneous-paths-dereference
-fisolate-erroneous-paths-attribute -finline-functions-called-once
-finline-small-functions -fcombine-stack-adjustments -fcompare-elim
-fipa-profile -fipa-cp -fipa-pure-const -fschedule-insns2
-fstrict-aliasing -fstrict-overflow -ftree-switch-conversion
-Dldflags=-Wl,-O1 -Wl,--as-needed -Dprefix=/usr -Dinstallprefix=/usr
-Dsiteprefix=/usr/local -Dvendorprefix=/usr -Dscriptdir=/usr/bin
-Dprivlib=/usr/lib64/perl5/5.20.1
-Darchlib=/usr/lib64/perl5/5.20.1/x86_64-linux
-Dsitelib=/usr/local/lib64/perl5/5.20.1
-Dsitearch=/usr/local/lib64/perl5/5.20.1/x86_64-linux
-Dvendorlib=/usr/lib64/perl5/vendor_perl/5.20.1
-Dvendorarch=/usr/lib64/perl5/vendor_perl/5.20.1/x86_64-linux
-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3
-Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3
-Dvendorman1dir=/usr/share/man/man1
-Dvendorman3dir=/usr/share/man/man3 -Dman1ext=1 -Dman3ext=3pm
-Dlibperl=libperl.so.5.20.1 -Dlocincpth=/usr/include -Dglibpth=/lib64
/usr/lib64 -Duselargefiles -Dd_semctl_semun -Dcf_by=Gentoo
-Dmyhostname=localhost -Dperladmin=root@​localhost
-Dinstallusrbinperl=n -Ud_csh -Uusenm -Di_ndbm -Di_gdbm -Di_db
-DDEBUGGING=none -Dinc_version_list=5.20.0/x86_64-linux 5.20.0
-Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dnoextensions=ODBM_File'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=undef, usemultiplicity=undef
  use64bitint=define, use64bitall=define, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='x86_64-pc-linux-gnu-gcc', ccflags ='-fwrapv
-fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
  optimize='-O0 -pipe -fstack-protector-strong
-fno-delete-null-pointer-checks -fwrapv
-fno-delete-null-pointer-checks -fisolate-erroneous-paths-dereference
-fisolate-erroneous-paths-attribute -finline-functions-called-once
-finline-small-functions -fcombine-stack-adjustments -fcompare-elim
-fipa-profile -fipa-cp -fipa-pure-const -fschedule-insns2
-fstrict-aliasing -fstrict-overflow -ftree-switch-conversion',
  cppflags='-fwrapv -fno-strict-aliasing -pipe'
  ccversion='', gccversion='4.9.1', gccosandvers=''
  intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
  ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
  alignbytes=8, prototype=define
  Linker and Libraries​:
  ld='x86_64-pc-linux-gnu-gcc', ldflags ='-Wl,-O1 -Wl,--as-needed'
  libpth=/usr/local/lib64 /lib64 /usr/lib64
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.1/include-fixed /usr/lib
/lib/../lib64 /usr/lib/../lib64 /lib
  libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
  perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
  libc=libc-2.20.so, so=so, useshrplib=true, libperl=libperl.so.5.20.1
  gnulibc_version='2.20'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
  cccdlflags='-fPIC', lddlflags='-shared -O0 -pipe
-fstack-protector-strong -fno-delete-null-pointer-checks -fwrapv
-fno-delete-null-pointer-checks -fisolate-erroneous-paths-dereference
-fisolate-erroneous-paths-attribute -finline-functions-called-once
-finline-small-functions -fcombine-stack-adjustments -fcompare-elim
-fipa-profile -fipa-cp -fipa-pure-const -fschedule-insns2
-fstrict-aliasing -fstrict-overflow -ftree-switch-conversion -Wl,-O1
-Wl,--as-needed'

Locally applied patches​:
  gentoo/hints_hpux - Fix hpux hints
  gentoo/aix_soname - aix gcc detection and shared library soname support
  gentoo/EUMM-RUNPATH - https://bugs.gentoo.org/105054
cpan/ExtUtils-MakeMaker​: drop $PORTAGE_TMPDIR from LD_RUN_PATH
  gentoo/config_over - Remove -rpath and append LDFLAGS to lddlflags
  gentoo/opensolaris_headers - [PATCH] Add headers for opensolaris
  gentoo/patchlevel - List packaged patches for perl-5.20.1-r4(#2)
in patchlevel.h
  gentoo/cpanplus_definstalldirs - Configure CPANPLUS to use the
site directories by default.
  gentoo/cleanup-paths - [PATCH] Cleanup PATH and shrpenv
  gentoo/enc2xs - Tweak enc2xs to follow symlinks and ignore missing
@​INC directories.
  gentoo/darwin-cc-ld - https://bugs.gentoo.org/297751 [PATCH]
darwin​: Use $CC to link
  gentoo/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from CPAN.
  gentoo/interix - [PATCH] Fix interix hints
  gentoo/create_libperl_soname - https://bugs.gentoo.org/286840
[PATCH] Set libperl soname
  gentoo/mod_paths - Add /etc/perl to @​INC
  gentoo/EUMM_delete_packlist -
  gentoo/drop_fstack_protector - https://bugs.gentoo.org/348557
[PATCH] Don't force -fstack-protector on everyone
  gentoo/usr_local - [PATCH] Remove /usr/local paths
  gentoo/D-SHA-CFLAGS - https://bugs.gentoo.org/506818 [PATCH] Do
not set custom CFLAGS in cpan/Digest-SHA
  debian/cpan-missing-site-dirs - Fix CPAN​::FirstTime defaults with
nonexisting site dirs if a parent is writable
  debian/regcomp-mips-optim - Downgrade the optimization of
regcomp.c on mips and mipsel due to a gcc-4.9 bug
  debian/perldoc-less-R - Tell the 'less' pager to allow terminal
escape sequences
  debian/makemaker-pasthru - Pass LD settings through to subdirectories
  fixes/net_smtp_docs - [rt.cpan.org #36038] Document the Net​::SMTP
'Port' option
  fixes/memoize_storable_nstore - [rt.cpan.org #77790]
Memoize​::Storable​: respect 'nstore' option not respected
  fixes/document_makemaker_ccflags - [rt.cpan.org #68613] Document
that CCFLAGS should include $Config{ccflags}


@​INC for perl 5.20.1​:
  /etc/perl
  /usr/local/lib64/perl5/5.20.1/x86_64-linux
  /usr/local/lib64/perl5/5.20.1
  /usr/lib64/perl5/vendor_perl/5.20.1/x86_64-linux
  /usr/lib64/perl5/vendor_perl/5.20.1
  /usr/local/lib64/perl5
  /usr/lib64/perl5/vendor_perl
  /usr/lib64/perl5/5.20.1/x86_64-linux
  /usr/lib64/perl5/5.20.1
  .


Environment for perl 5.20.1​:
  HOME=/root
  LANG=en_US.UTF-8
  LANGUAGE (unset)
  LD_LIBRARY_PATH (unset)
  LOGDIR (unset)
  PATH=/sbin​:/bin​:/usr/sbin​:/usr/bin
  PERL_BADLANG (unset)
  SHELL=/bin/bash

@p5pRT
Copy link
Author

p5pRT commented Aug 2, 2015

From @jkeenan

On Thu Feb 19 04​:28​:53 2015, knotwurk@​gmail.com wrote​:

This is a bug report for perl from knotwurk@​gmail.com,
generated with the help of perlbug 1.40 running under perl 5.20.1.

-----------------------------------------------------------------
* QA Notice​: Package triggers severe warnings which indicate that it
* may exhibit random runtime failures.
* gv.c​:2291​:25​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:605​:17​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]

[snip]

This bug report has not received any responses since it was filed in February of this year.

I'm not surprised at that, given that the 'perl -V' information showed that (by my count) 62 different switches were passed to ./Configure.

Original poster​: Are you still experiencing this problem?

If so, can you try to reproduce it with as few configuration options as possible so that we can try to isolate the problem?

Note that we will also have to consider the possibility that this is caused by a Gentoo patch.

Thank you very much.

---
Site configuration information for perl 5.20.1​:

Configured by Gentoo at Thu Feb 19 05​:49​:32 GMT 2015.

Summary of my perl5 (revision 5 version 20 subversion 1) configuration​:

Platform​:
osname=linux, osvers=3.18.4-grsec, archname=x86_64-linux
uname='linux localhost 3.18.4-grsec #20 smp sun feb 15 08​:02​:45
gmt 2015 x86_64 intel(r) core(tm)2 duo cpu l7500 @​ 1.60ghz
genuineintel gnulinux '
config_args='-des -Duseshrplib -Darchname=x86_64-linux
-Dcc=x86_64-pc-linux-gnu-gcc -Doptimize=-O0 -pipe
-fstack-protector-strong -fno-delete-null-pointer-checks -fwrapv
-fno-delete-null-pointer-checks -fisolate-erroneous-paths-dereference
-fisolate-erroneous-paths-attribute -finline-functions-called-once
-finline-small-functions -fcombine-stack-adjustments -fcompare-elim
-fipa-profile -fipa-cp -fipa-pure-const -fschedule-insns2
-fstrict-aliasing -fstrict-overflow -ftree-switch-conversion
-Dldflags=-Wl,-O1 -Wl,--as-needed -Dprefix=/usr -Dinstallprefix=/usr
-Dsiteprefix=/usr/local -Dvendorprefix=/usr -Dscriptdir=/usr/bin
-Dprivlib=/usr/lib64/perl5/5.20.1
-Darchlib=/usr/lib64/perl5/5.20.1/x86_64-linux
-Dsitelib=/usr/local/lib64/perl5/5.20.1
-Dsitearch=/usr/local/lib64/perl5/5.20.1/x86_64-linux
-Dvendorlib=/usr/lib64/perl5/vendor_perl/5.20.1
-Dvendorarch=/usr/lib64/perl5/vendor_perl/5.20.1/x86_64-linux
-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3
-Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3
-Dvendorman1dir=/usr/share/man/man1
-Dvendorman3dir=/usr/share/man/man3 -Dman1ext=1 -Dman3ext=3pm
-Dlibperl=libperl.so.5.20.1 -Dlocincpth=/usr/include -Dglibpth=/lib64
/usr/lib64 -Duselargefiles -Dd_semctl_semun -Dcf_by=Gentoo
-Dmyhostname=localhost -Dperladmin=root@​localhost
-Dinstallusrbinperl=n -Ud_csh -Uusenm -Di_ndbm -Di_gdbm -Di_db
-DDEBUGGING=none -Dinc_version_list=5.20.0/x86_64-linux 5.20.0
-Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dnoextensions=ODBM_File'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler​:
cc='x86_64-pc-linux-gnu-gcc', ccflags ='-fwrapv
-fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
optimize='-O0 -pipe -fstack-protector-strong
-fno-delete-null-pointer-checks -fwrapv
-fno-delete-null-pointer-checks -fisolate-erroneous-paths-dereference
-fisolate-erroneous-paths-attribute -finline-functions-called-once
-finline-small-functions -fcombine-stack-adjustments -fcompare-elim
-fipa-profile -fipa-cp -fipa-pure-const -fschedule-insns2
-fstrict-aliasing -fstrict-overflow -ftree-switch-conversion',
cppflags='-fwrapv -fno-strict-aliasing -pipe'
ccversion='', gccversion='4.9.1', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries​:
ld='x86_64-pc-linux-gnu-gcc', ldflags ='-Wl,-O1 -Wl,--as-needed'
libpth=/usr/local/lib64 /lib64 /usr/lib64
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.1/include-fixed /usr/lib
/lib/../lib64 /usr/lib/../lib64 /lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=libc-2.20.so, so=so, useshrplib=true, libperl=libperl.so.5.20.1
gnulibc_version='2.20'
Dynamic Linking​:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O0 -pipe
-fstack-protector-strong -fno-delete-null-pointer-checks -fwrapv
-fno-delete-null-pointer-checks -fisolate-erroneous-paths-dereference
-fisolate-erroneous-paths-attribute -finline-functions-called-once
-finline-small-functions -fcombine-stack-adjustments -fcompare-elim
-fipa-profile -fipa-cp -fipa-pure-const -fschedule-insns2
-fstrict-aliasing -fstrict-overflow -ftree-switch-conversion -Wl,-O1
-Wl,--as-needed'

Locally applied patches​:
gentoo/hints_hpux - Fix hpux hints
gentoo/aix_soname - aix gcc detection and shared library soname support
gentoo/EUMM-RUNPATH - https://bugs.gentoo.org/105054
cpan/ExtUtils-MakeMaker​: drop $PORTAGE_TMPDIR from LD_RUN_PATH
gentoo/config_over - Remove -rpath and append LDFLAGS to lddlflags
gentoo/opensolaris_headers - [PATCH] Add headers for opensolaris
gentoo/patchlevel - List packaged patches for perl-5.20.1-r4(#2)
in patchlevel.h
gentoo/cpanplus_definstalldirs - Configure CPANPLUS to use the
site directories by default.
gentoo/cleanup-paths - [PATCH] Cleanup PATH and shrpenv
gentoo/enc2xs - Tweak enc2xs to follow symlinks and ignore missing
@​INC directories.
gentoo/darwin-cc-ld - https://bugs.gentoo.org/297751 [PATCH]
darwin​: Use $CC to link
gentoo/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from CPAN.
gentoo/interix - [PATCH] Fix interix hints
gentoo/create_libperl_soname - https://bugs.gentoo.org/286840
[PATCH] Set libperl soname
gentoo/mod_paths - Add /etc/perl to @​INC
gentoo/EUMM_delete_packlist -
gentoo/drop_fstack_protector - https://bugs.gentoo.org/348557
[PATCH] Don't force -fstack-protector on everyone
gentoo/usr_local - [PATCH] Remove /usr/local paths
gentoo/D-SHA-CFLAGS - https://bugs.gentoo.org/506818 [PATCH] Do
not set custom CFLAGS in cpan/Digest-SHA
debian/cpan-missing-site-dirs - Fix CPAN​::FirstTime defaults with
nonexisting site dirs if a parent is writable
debian/regcomp-mips-optim - Downgrade the optimization of
regcomp.c on mips and mipsel due to a gcc-4.9 bug
debian/perldoc-less-R - Tell the 'less' pager to allow terminal
escape sequences
debian/makemaker-pasthru - Pass LD settings through to subdirectories
fixes/net_smtp_docs - [rt.cpan.org #36038] Document the Net​::SMTP
'Port' option
fixes/memoize_storable_nstore - [rt.cpan.org #77790]
Memoize​::Storable​: respect 'nstore' option not respected
fixes/document_makemaker_ccflags - [rt.cpan.org #68613] Document
that CCFLAGS should include $Config{ccflags}

---
@​INC for perl 5.20.1​:
/etc/perl
/usr/local/lib64/perl5/5.20.1/x86_64-linux
/usr/local/lib64/perl5/5.20.1
/usr/lib64/perl5/vendor_perl/5.20.1/x86_64-linux
/usr/lib64/perl5/vendor_perl/5.20.1
/usr/local/lib64/perl5
/usr/lib64/perl5/vendor_perl
/usr/lib64/perl5/5.20.1/x86_64-linux
/usr/lib64/perl5/5.20.1
.

---
Environment for perl 5.20.1​:
HOME=/root
LANG=en_US.UTF-8
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/sbin​:/bin​:/usr/sbin​:/usr/bin
PERL_BADLANG (unset)
SHELL=/bin/bash

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Aug 2, 2015

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Aug 2, 2015

From @doughera88

On Sat, Aug 01, 2015 at 05​:37​:10PM -0700, James E Keenan via RT wrote​:

On Thu Feb 19 04​:28​:53 2015, knotwurk@​gmail.com wrote​:

This is a bug report for perl from knotwurk@​gmail.com,
generated with the help of perlbug 1.40 running under perl 5.20.1.

-----------------------------------------------------------------
* QA Notice​: Package triggers severe warnings which indicate that it
* may exhibit random runtime failures.
* gv.c​:2291​:25​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:605​:17​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]

[snip]

This bug report has not received any responses since it was filed in February of this year.

I'm not surprised at that, given that the 'perl -V' information showed that (by my count) 62 different switches were passed to ./Configure.

Perl should normally be compiled with -fno-strict-aliasing because
(at least last time I looked) it does not always follow the strict
aliasing rules.

In this case, the original poster overrode perl's default, and compiled
with -fstrict-aliasing and also with -Wstrict-aliasing, whereupon gcc
reported a number of potential problem spots. While anyone is welcome
anyone to look at the individual items and see if there are sensible
changes to be made, the simplest solution is to not add the
-fstrict-aliasing and -Wstrict-aliasing flags.

Thanks,

--
  Andy Dougherty doughera@​lafayette.edu

@p5pRT
Copy link
Author

p5pRT commented Aug 5, 2015

From knotwurk@gmail.com

Most of those are default -O2 options (that includes
-fstrict-aliasing, btw); it's definitely an issue w/ strict-aliasing
though. I took a stab at it once and this is what I ended up with
(http​://pastebin.com/A2PWVscN) . I'm pretty sure my patch is broken
though, but just barely (which in of itself is quite a feat..); I
think it's the HeUTF8/HeKUTF8 parts I screwed up. Anyway, if someone
feels bold/crazy enough to tackle the issue, maybe they'll find it
useful somehow. I imagine whatever solution you'd come up with would
probably look a little more elegant.

On 8/2/15, James E Keenan via RT <perlbug-followup@​perl.org> wrote​:

On Thu Feb 19 04​:28​:53 2015, knotwurk@​gmail.com wrote​:

This is a bug report for perl from knotwurk@​gmail.com,
generated with the help of perlbug 1.40 running under perl 5.20.1.

-----------------------------------------------------------------
* QA Notice​: Package triggers severe warnings which indicate that it
* may exhibit random runtime failures.
* gv.c​:2291​:25​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
* mro.c​:605​:17​: warning​: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]

[snip]

This bug report has not received any responses since it was filed in
February of this year.

I'm not surprised at that, given that the 'perl -V' information showed that
(by my count) 62 different switches were passed to ./Configure.

Original poster​: Are you still experiencing this problem?

If so, can you try to reproduce it with as few configuration options as
possible so that we can try to isolate the problem?

Note that we will also have to consider the possibility that this is caused
by a Gentoo patch.

Thank you very much.

---
Site configuration information for perl 5.20.1​:

Configured by Gentoo at Thu Feb 19 05​:49​:32 GMT 2015.

Summary of my perl5 (revision 5 version 20 subversion 1) configuration​:

Platform​:
osname=linux, osvers=3.18.4-grsec, archname=x86_64-linux
uname='linux localhost 3.18.4-grsec #20 smp sun feb 15 08​:02​:45
gmt 2015 x86_64 intel(r) core(tm)2 duo cpu l7500 @​ 1.60ghz
genuineintel gnulinux '
config_args='-des -Duseshrplib -Darchname=x86_64-linux
-Dcc=x86_64-pc-linux-gnu-gcc -Doptimize=-O0 -pipe
-fstack-protector-strong -fno-delete-null-pointer-checks -fwrapv
-fno-delete-null-pointer-checks -fisolate-erroneous-paths-dereference
-fisolate-erroneous-paths-attribute -finline-functions-called-once
-finline-small-functions -fcombine-stack-adjustments -fcompare-elim
-fipa-profile -fipa-cp -fipa-pure-const -fschedule-insns2
-fstrict-aliasing -fstrict-overflow -ftree-switch-conversion
-Dldflags=-Wl,-O1 -Wl,--as-needed -Dprefix=/usr -Dinstallprefix=/usr
-Dsiteprefix=/usr/local -Dvendorprefix=/usr -Dscriptdir=/usr/bin
-Dprivlib=/usr/lib64/perl5/5.20.1
-Darchlib=/usr/lib64/perl5/5.20.1/x86_64-linux
-Dsitelib=/usr/local/lib64/perl5/5.20.1
-Dsitearch=/usr/local/lib64/perl5/5.20.1/x86_64-linux
-Dvendorlib=/usr/lib64/perl5/vendor_perl/5.20.1
-Dvendorarch=/usr/lib64/perl5/vendor_perl/5.20.1/x86_64-linux
-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3
-Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3
-Dvendorman1dir=/usr/share/man/man1
-Dvendorman3dir=/usr/share/man/man3 -Dman1ext=1 -Dman3ext=3pm
-Dlibperl=libperl.so.5.20.1 -Dlocincpth=/usr/include -Dglibpth=/lib64
/usr/lib64 -Duselargefiles -Dd_semctl_semun -Dcf_by=Gentoo
-Dmyhostname=localhost -Dperladmin=root@​localhost
-Dinstallusrbinperl=n -Ud_csh -Uusenm -Di_ndbm -Di_gdbm -Di_db
-DDEBUGGING=none -Dinc_version_list=5.20.0/x86_64-linux 5.20.0
-Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dnoextensions=ODBM_File'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler​:
cc='x86_64-pc-linux-gnu-gcc', ccflags ='-fwrapv
-fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
optimize='-O0 -pipe -fstack-protector-strong
-fno-delete-null-pointer-checks -fwrapv
-fno-delete-null-pointer-checks -fisolate-erroneous-paths-dereference
-fisolate-erroneous-paths-attribute -finline-functions-called-once
-finline-small-functions -fcombine-stack-adjustments -fcompare-elim
-fipa-profile -fipa-cp -fipa-pure-const -fschedule-insns2
-fstrict-aliasing -fstrict-overflow -ftree-switch-conversion',
cppflags='-fwrapv -fno-strict-aliasing -pipe'
ccversion='', gccversion='4.9.1', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries​:
ld='x86_64-pc-linux-gnu-gcc', ldflags ='-Wl,-O1 -Wl,--as-needed'
libpth=/usr/local/lib64 /lib64 /usr/lib64
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.1/include-fixed /usr/lib
/lib/../lib64 /usr/lib/../lib64 /lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=libc-2.20.so, so=so, useshrplib=true, libperl=libperl.so.5.20.1
gnulibc_version='2.20'
Dynamic Linking​:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O0 -pipe
-fstack-protector-strong -fno-delete-null-pointer-checks -fwrapv
-fno-delete-null-pointer-checks -fisolate-erroneous-paths-dereference
-fisolate-erroneous-paths-attribute -finline-functions-called-once
-finline-small-functions -fcombine-stack-adjustments -fcompare-elim
-fipa-profile -fipa-cp -fipa-pure-const -fschedule-insns2
-fstrict-aliasing -fstrict-overflow -ftree-switch-conversion -Wl,-O1
-Wl,--as-needed'

Locally applied patches​:
gentoo/hints_hpux - Fix hpux hints
gentoo/aix_soname - aix gcc detection and shared library soname
support
gentoo/EUMM-RUNPATH - https://bugs.gentoo.org/105054
cpan/ExtUtils-MakeMaker​: drop $PORTAGE_TMPDIR from LD_RUN_PATH
gentoo/config_over - Remove -rpath and append LDFLAGS to lddlflags
gentoo/opensolaris_headers - [PATCH] Add headers for opensolaris
gentoo/patchlevel - List packaged patches for perl-5.20.1-r4(#2)
in patchlevel.h
gentoo/cpanplus_definstalldirs - Configure CPANPLUS to use the
site directories by default.
gentoo/cleanup-paths - [PATCH] Cleanup PATH and shrpenv
gentoo/enc2xs - Tweak enc2xs to follow symlinks and ignore missing
@​INC directories.
gentoo/darwin-cc-ld - https://bugs.gentoo.org/297751 [PATCH]
darwin​: Use $CC to link
gentoo/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from CPAN.
gentoo/interix - [PATCH] Fix interix hints
gentoo/create_libperl_soname - https://bugs.gentoo.org/286840
[PATCH] Set libperl soname
gentoo/mod_paths - Add /etc/perl to @​INC
gentoo/EUMM_delete_packlist -
gentoo/drop_fstack_protector - https://bugs.gentoo.org/348557
[PATCH] Don't force -fstack-protector on everyone
gentoo/usr_local - [PATCH] Remove /usr/local paths
gentoo/D-SHA-CFLAGS - https://bugs.gentoo.org/506818 [PATCH] Do
not set custom CFLAGS in cpan/Digest-SHA
debian/cpan-missing-site-dirs - Fix CPAN​::FirstTime defaults with
nonexisting site dirs if a parent is writable
debian/regcomp-mips-optim - Downgrade the optimization of
regcomp.c on mips and mipsel due to a gcc-4.9 bug
debian/perldoc-less-R - Tell the 'less' pager to allow terminal
escape sequences
debian/makemaker-pasthru - Pass LD settings through to subdirectories
fixes/net_smtp_docs - [rt.cpan.org #36038] Document the Net​::SMTP
'Port' option
fixes/memoize_storable_nstore - [rt.cpan.org #77790]
Memoize​::Storable​: respect 'nstore' option not respected
fixes/document_makemaker_ccflags - [rt.cpan.org #68613] Document
that CCFLAGS should include $Config{ccflags}

---
@​INC for perl 5.20.1​:
/etc/perl
/usr/local/lib64/perl5/5.20.1/x86_64-linux
/usr/local/lib64/perl5/5.20.1
/usr/lib64/perl5/vendor_perl/5.20.1/x86_64-linux
/usr/lib64/perl5/vendor_perl/5.20.1
/usr/local/lib64/perl5
/usr/lib64/perl5/vendor_perl
/usr/lib64/perl5/5.20.1/x86_64-linux
/usr/lib64/perl5/5.20.1
.

---
Environment for perl 5.20.1​:
HOME=/root
LANG=en_US.UTF-8
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/sbin​:/bin​:/usr/sbin​:/usr/bin
PERL_BADLANG (unset)
SHELL=/bin/bash

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Dec 16, 2017

From zefram@fysh.org

There is no bug on the p5p side here. The problem noted arose purely
from the overriding of the proper gcc options that Configure establishes
by default. This ticket should be closed.

-zefram

@p5pRT p5pRT closed this as completed Dec 18, 2017
@p5pRT
Copy link
Author

p5pRT commented Dec 18, 2017

@iabyn - Status changed from 'open' to 'rejected'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant