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

gcc 4.6.0 #11216

Closed
p5pRT opened this issue Mar 28, 2011 · 28 comments
Closed

gcc 4.6.0 #11216

p5pRT opened this issue Mar 28, 2011 · 28 comments
Labels

Comments

@p5pRT
Copy link

p5pRT commented Mar 28, 2011

Migrated from rt.perl.org#87184 (status was 'resolved')

Searchable as RT87184$

@p5pRT
Copy link
Author

p5pRT commented Mar 28, 2011

From @nwc10

gcc 4.6.0 was released on March 25, 2011

It would be embarrassing if perl 5.14.0 didn't build and pass tests on it.

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Mar 29, 2011

From @dgl

I had a go at setting up a smoker using gcc 4.6.0 (basically by using
arch's testing repo). That passed fine with -O3, apart from some new compiler
warnings (see results attached).

I then thought I'd try link time optimisation, that didn't go so well,
basically it seems the try.c program written by Configure gets optimised to the
extent that the symbol it uses disappears (see output below).

I wonder if it would be worth having support in Configure for not running the
'try' programs with optimisations on (maybe via hints?)?

David

PS​: This feels more like a known issue than a 5.14.0 blocker to me.

$ cat try.c
extern void *malloc_size(); void *(*(p()))() { return &malloc_size; } int main() { if(p()) return(0); else return(1); }
$ cc -o try -flto try.c
/usr/bin/ld.gold​: /tmp/cc3PSC6J.ltrans0.ltrans.o​: in function p.2018​:cc3PSC6J.ltrans0.o(.text+0x26)​: error​: undefined reference to 'malloc_size'
collect2​: ld returned 1 exit status
$ cc -o try -flto -O2 try.c
$ ./try; echo $?
0
$ cc -v
Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
Target​: x86_64-unknown-linux-gnu
Configured with​: /build/src/gcc-4.6.0/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --disable-multilib --disable-libstdcxx-pch --enable-checking=release
Thread model​: posix
gcc version 4.6.0 (GCC)

@p5pRT
Copy link
Author

p5pRT commented Mar 29, 2011

From @dgl

Message RFC822:
Received: (qmail 10998 invoked from network); 28 Mar 2011 23:28:35 -0000
Received: from patara.otherwize.co.uk (HELO sirius.otherwize.co.uk)
(77.75.111.20) by a.mx.otherwize.co.uk (qpsmtpd/0.40-dev) with ESMTP id
1Q4LrO-0000Ok-QR; Mon, 28 Mar 2011 23:28:35 +0000
Received: from [192.168.81.6] (port=60389 helo=otherwize.co.uk) by
sirius.otherwize.co.uk with smtp (Exim 4.71) (envelope-from
smoker@otherwize.co.uk) id 1Q4LrN-0006fo-LB for dgl@dgl.cx; Mon,
28 Mar 2011 23:28:34 +0000
Received: by otherwize.co.uk (sSMTP sendmail emulation); Tue,
29 Mar 2011 00:28:32 +0100
Delivered-To: dgl-ok@babylon.otherwize.co.uk
Subject: Smoke [5.13.11] QEMU PASS linux 2.6.38-ARCH [arch] (x86_64/2 cpu)
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Return-Path: smoker@otherwize.co.uk
Date: Tue, 29 Mar 2011 00:28:32 +0100
Content-Type: text/plain; charset="utf-8"
To: dgl@dgl.cx
Content-Transfer-Encoding: 8bit
X-RT-Original-Encoding: utf-8
From: smoker@otherwize.co.uk
Content-Length: 14044

Automated smoke report for 5.13.11 patch
arch-test: QEMU Virtual CPU version 0.11.0 (GenuineIntel 1862MHz) (x86_64/2 cpu)
on linux - 2.6.38-ARCH [arch]
using cc version 4.6.0
smoketime 1 hour 53 minutes (average 14 minutes 9 seconds)

Summary: PASS

O = OK F = Failure(s), extended report at the bottom
X = Failure(s) under TEST but not under harness
? = still running or test results not (yet) available
Build failures during: - = unknown or N/A
c = Configure, m = make, M = make (after miniperl), t = make test-prep

         Configuration (common) -Doptimize=-O3

O O O O
O O O O -Duselongdouble
O O O O -Duseithreads
O O O O -Duseithreads -Duselongdouble
| | | +----- PERLIO = perlio -DDEBUGGING
| | +------- PERLIO = stdio -DDEBUGGING
| +--------- PERLIO = perlio
+----------- PERLIO = stdio

Testsuite was run only with 'harness' and HARNESS_OPTIONS=j4

MANIFEST did not declare '.git/FETCH_HEAD'
MANIFEST did not declare '.git/HEAD'
MANIFEST did not declare '.git/ORIG_HEAD'
MANIFEST did not declare '.git/config'
MANIFEST did not declare '.git/description'
MANIFEST did not declare '.git/hooks/applypatch-msg.sample'
MANIFEST did not declare '.git/hooks/commit-msg.sample'
MANIFEST did not declare '.git/hooks/post-commit.sample'
MANIFEST did not declare '.git/hooks/post-receive.sample'
MANIFEST did not declare '.git/hooks/post-update.sample'
MANIFEST did not declare '.git/hooks/pre-applypatch.sample'
MANIFEST did not declare '.git/hooks/pre-commit.sample'
MANIFEST did not declare '.git/hooks/pre-rebase.sample'
MANIFEST did not declare '.git/hooks/prepare-commit-msg.sample'
MANIFEST did not declare '.git/hooks/update.sample'
MANIFEST did not declare '.git/index'
MANIFEST did not declare '.git/info/exclude'
MANIFEST did not declare '.git/logs/HEAD'
MANIFEST did not declare '.git/logs/refs/heads/blead'
MANIFEST did not declare '.git/objects/pack/pack-480b2c8a167bd0ebfed26ed80f86eca8e4ecdf3d.idx'
MANIFEST did not declare '.git/objects/pack/pack-480b2c8a167bd0ebfed26ed80f86eca8e4ecdf3d.pack'
MANIFEST did not declare '.git/packed-refs'
MANIFEST did not declare '.git/refs/heads/blead'
MANIFEST did not declare '.git/refs/remotes/origin/HEAD'
MANIFEST did not declare '.gitignore'
MANIFEST did not declare 'cpan/.gitignore'
MANIFEST did not declare 'cpan/Compress-Raw-Bzip2/.gitignore'
MANIFEST did not declare 'cpan/Compress-Raw-Zlib/.gitignore'
MANIFEST did not declare 'cpan/DB_File/.gitignore'
MANIFEST did not declare 'cpan/Devel-PPPort/.gitignore'
MANIFEST did not declare 'cpan/Encode/.gitignore'
MANIFEST did not declare 'cpan/IPC-SysV/.gitignore'
MANIFEST did not declare 'cpan/Module-Build/.gitignore'
MANIFEST did not declare 'cpan/Module-Pluggable/t/lib/EditorJunk/Plugin/.gitignore'
MANIFEST did not declare 'cpan/Module-Pluggable/t/lib/OddTest/Plugin/.gitignore'
MANIFEST did not declare 'cpan/Pod-LaTeX/.gitignore'
MANIFEST did not declare 'cpan/Pod-Parser/.gitignore'
MANIFEST did not declare 'cpan/Sys-Syslog/.gitignore'
MANIFEST did not declare 'cpan/Unicode-Collate/.gitignore'
MANIFEST did not declare 'cpan/Unicode-Normalize/.gitignore'
MANIFEST did not declare 'cpan/podlators/.gitignore'
MANIFEST did not declare 'dist/.gitignore'
MANIFEST did not declare 'dist/IO/.gitignore'
MANIFEST did not declare 'dist/XSLoader/.gitignore'
MANIFEST did not declare 'dist/lib/.gitignore'
MANIFEST did not declare 'ext/.gitignore'
MANIFEST did not declare 'ext/B/.gitignore'
MANIFEST did not declare 'ext/DynaLoader/.gitignore'
MANIFEST did not declare 'ext/Errno/.gitignore'
MANIFEST did not declare 'ext/Fcntl/.gitignore'
MANIFEST did not declare 'ext/File-Glob/.gitignore'
MANIFEST did not declare 'ext/GDBM_File/.gitignore'
MANIFEST did not declare 'ext/I18N-Langinfo/.gitignore'
MANIFEST did not declare 'ext/POSIX/.gitignore'
MANIFEST did not declare 'ext/Pod-Html/.gitignore'
MANIFEST did not declare 'ext/SDBM_File/sdbm/.gitignore'
MANIFEST did not declare 'ext/Socket/.gitignore'
MANIFEST did not declare 'ext/Win32CORE/.gitignore'
MANIFEST did not declare 'ext/XS-APItest/.gitignore'
MANIFEST did not declare 'git_version.h'
MANIFEST did not declare 'lib/.gitignore'
MANIFEST did not declare 'lib/Config_git.pl'
MANIFEST did not declare 'pod/.gitignore'
MANIFEST did not declare 'utils/.gitignore'
MANIFEST did not declare 'win32/.gitignore'
MANIFEST did not declare 'x2p/.gitignore'

Compiler messages(gcc):
try.c: In function �main�:
try.c:4069:17: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4072:18: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4075:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4078:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4105:17: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4108:18: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4111:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4114:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4165:17: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4168:18: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4171:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4174:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4201:16: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4204:17: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4207:18: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4210:18: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4465:18: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4468:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4471:20: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:4474:20: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10249:18: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10252:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10255:20: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10258:20: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10285:18: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10288:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10291:20: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10294:20: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10321:18: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10324:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10327:20: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10330:20: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10357:17: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10360:18: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10363:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10366:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10585:19: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10588:20: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10591:21: warning: extra tokens at end of #ifdef directive [enabled by default]
try.c:10594:21: warning: extra tokens at end of #ifdef directive [enabled by default]
regcomp.c: In function �S_regpiece�:
regcomp.c:7457:11: warning: variable �parse_start� set but not used [-Wunused-but-set-variable]
util.c: In function �Perl_safesyscalloc�:
util.c:297:14: warning: variable �total_size� set but not used [-Wunused-but-set-variable]
hv.c: In function �S_hv_delete_common�:
hv.c:907:16: warning: variable �first_entry� set but not used [-Wunused-but-set-variable]
hv.c: In function �S_clear_placeholders�:
hv.c:1609:7: warning: variable �first� set but not used [-Wunused-but-set-variable]
hv.c: In function �S_unshare_hek_or_pvn�:
hv.c:2634:10: warning: variable �first� set but not used [-Wunused-but-set-variable]
pp_ctl.c: In function �Perl_pp_goto�:
pp_ctl.c:2700:7: warning: variable �gimme� set but not used [-Wunused-but-set-variable]
pp_ctl.c:2699:8: warning: variable �newsp� set but not used [-Wunused-but-set-variable]
pp_ctl.c: In function �Perl_pp_leavewhen�:
pp_ctl.c:4844:9: warning: variable �gimme� set but not used [-Wunused-but-set-variable]
pp_sys.c: In function �Perl_pp_warn�:
pp_sys.c:422:17: warning: variable �pv� set but not used [-Wunused-but-set-variable]
pp_sys.c: In function �Perl_pp_die�:
pp_sys.c:462:17: warning: variable �pv� set but not used [-Wunused-but-set-variable]
regexec.c: In function �S_find_byclass�:
regexec.c:1529:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1535:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1540:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1550:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1560:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1565:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1576:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1583:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1595:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1602:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1621:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1628:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1646:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1653:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1672:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:1690:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c: In function �S_regmatch�:
regexec.c:3676:7: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:3751:9: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:3755:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:3757:9: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:3761:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:3763:9: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:3766:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:3850:7: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:3850:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:3850:1: warning: variable �throw_away� set but not used [-Wunused-but-set-variable]
regexec.c: In function �S_regrepeat�:
regexec.c:6033:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6078:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6130:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6179:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6232:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6265:6: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regcomp.c: In function �S_dump_trie�:
regcomp.c:1017:5: warning: variable �re_debug_flags� set but not used [-Wunused-but-set-variable]
regcomp.c: In function �S_dump_trie_interim_list�:
regcomp.c:1108:5: warning: variable �re_debug_flags� set but not used [-Wunused-but-set-variable]
regcomp.c: In function �S_dump_trie_interim_table�:
regcomp.c:1166:5: warning: variable �re_debug_flags� set but not used [-Wunused-but-set-variable]
regcomp.c: In function �Perl_re_compile�:
regcomp.c:5296:5: warning: variable �re_debug_flags� set but not used [-Wunused-but-set-variable]
regcomp.c: In function �Perl_reg_named_buff_nextkey�:
regcomp.c:5445:5: warning: variable �re_debug_flags� set but not used [-Wunused-but-set-variable]
regcomp.c: In function �Perl_pregfree2�:
regcomp.c:11326:5: warning: variable �re_debug_flags� set but not used [-Wunused-but-set-variable]
regcomp.c: In function �Perl_regdupe_internal�:
regcomp.c:11669:14: warning: variable �npar� set but not used [-Wunused-but-set-variable]
regexec.c:3676:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6033:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6078:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6130:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6179:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6232:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]
regexec.c:6265:1: warning: variable �ok� set but not used [-Wunused-but-set-variable]

--
Report by Test::Smoke v1.44 build 1285 running on perl 5.12.3
(Reporter v0.035 / Smoker v0.045)

@p5pRT
Copy link
Author

p5pRT commented Mar 29, 2011

From @dgl

Automated smoke report for 5.13.11 patch
arch-test​: QEMU Virtual CPU version 0.11.0 (GenuineIntel 1862MHz) (x86_64/2 cpu)
  on linux - 2.6.38-ARCH [arch]
  using cc version 4.6.0
  smoketime 1 hour 53 minutes (average 14 minutes 9 seconds)

Summary​: PASS

O = OK F = Failure(s), extended report at the bottom
X = Failure(s) under TEST but not under harness
? = still running or test results not (yet) available
Build failures during​: - = unknown or N/A
c = Configure, m = make, M = make (after miniperl), t = make test-prep

  Configuration (common) -Doptimize=-O3
----------- ---------------------------------------------------------
O O O O
O O O O -Duselongdouble
O O O O -Duseithreads
O O O O -Duseithreads -Duselongdouble
| | | +----- PERLIO = perlio -DDEBUGGING
| | +------- PERLIO = stdio -DDEBUGGING
| +--------- PERLIO = perlio
+----------- PERLIO = stdio

Testsuite was run only with 'harness' and HARNESS_OPTIONS=j4

MANIFEST did not declare '.git/FETCH_HEAD'
MANIFEST did not declare '.git/HEAD'
MANIFEST did not declare '.git/ORIG_HEAD'
MANIFEST did not declare '.git/config'
MANIFEST did not declare '.git/description'
MANIFEST did not declare '.git/hooks/applypatch-msg.sample'
MANIFEST did not declare '.git/hooks/commit-msg.sample'
MANIFEST did not declare '.git/hooks/post-commit.sample'
MANIFEST did not declare '.git/hooks/post-receive.sample'
MANIFEST did not declare '.git/hooks/post-update.sample'
MANIFEST did not declare '.git/hooks/pre-applypatch.sample'
MANIFEST did not declare '.git/hooks/pre-commit.sample'
MANIFEST did not declare '.git/hooks/pre-rebase.sample'
MANIFEST did not declare '.git/hooks/prepare-commit-msg.sample'
MANIFEST did not declare '.git/hooks/update.sample'
MANIFEST did not declare '.git/index'
MANIFEST did not declare '.git/info/exclude'
MANIFEST did not declare '.git/logs/HEAD'
MANIFEST did not declare '.git/logs/refs/heads/blead'
MANIFEST did not declare '.git/objects/pack/pack-480b2c8a167bd0ebfed26ed80f86eca8e4ecdf3d.idx'
MANIFEST did not declare '.git/objects/pack/pack-480b2c8a167bd0ebfed26ed80f86eca8e4ecdf3d.pack'
MANIFEST did not declare '.git/packed-refs'
MANIFEST did not declare '.git/refs/heads/blead'
MANIFEST did not declare '.git/refs/remotes/origin/HEAD'
MANIFEST did not declare '.gitignore'
MANIFEST did not declare 'cpan/.gitignore'
MANIFEST did not declare 'cpan/Compress-Raw-Bzip2/.gitignore'
MANIFEST did not declare 'cpan/Compress-Raw-Zlib/.gitignore'
MANIFEST did not declare 'cpan/DB_File/.gitignore'
MANIFEST did not declare 'cpan/Devel-PPPort/.gitignore'
MANIFEST did not declare 'cpan/Encode/.gitignore'
MANIFEST did not declare 'cpan/IPC-SysV/.gitignore'
MANIFEST did not declare 'cpan/Module-Build/.gitignore'
MANIFEST did not declare 'cpan/Module-Pluggable/t/lib/EditorJunk/Plugin/.gitignore'
MANIFEST did not declare 'cpan/Module-Pluggable/t/lib/OddTest/Plugin/.gitignore'
MANIFEST did not declare 'cpan/Pod-LaTeX/.gitignore'
MANIFEST did not declare 'cpan/Pod-Parser/.gitignore'
MANIFEST did not declare 'cpan/Sys-Syslog/.gitignore'
MANIFEST did not declare 'cpan/Unicode-Collate/.gitignore'
MANIFEST did not declare 'cpan/Unicode-Normalize/.gitignore'
MANIFEST did not declare 'cpan/podlators/.gitignore'
MANIFEST did not declare 'dist/.gitignore'
MANIFEST did not declare 'dist/IO/.gitignore'
MANIFEST did not declare 'dist/XSLoader/.gitignore'
MANIFEST did not declare 'dist/lib/.gitignore'
MANIFEST did not declare 'ext/.gitignore'
MANIFEST did not declare 'ext/B/.gitignore'
MANIFEST did not declare 'ext/DynaLoader/.gitignore'
MANIFEST did not declare 'ext/Errno/.gitignore'
MANIFEST did not declare 'ext/Fcntl/.gitignore'
MANIFEST did not declare 'ext/File-Glob/.gitignore'
MANIFEST did not declare 'ext/GDBM_File/.gitignore'
MANIFEST did not declare 'ext/I18N-Langinfo/.gitignore'
MANIFEST did not declare 'ext/POSIX/.gitignore'
MANIFEST did not declare 'ext/Pod-Html/.gitignore'
MANIFEST did not declare 'ext/SDBM_File/sdbm/.gitignore'
MANIFEST did not declare 'ext/Socket/.gitignore'
MANIFEST did not declare 'ext/Win32CORE/.gitignore'
MANIFEST did not declare 'ext/XS-APItest/.gitignore'
MANIFEST did not declare 'git_version.h'
MANIFEST did not declare 'lib/.gitignore'
MANIFEST did not declare 'lib/Config_git.pl'
MANIFEST did not declare 'pod/.gitignore'
MANIFEST did not declare 'utils/.gitignore'
MANIFEST did not declare 'win32/.gitignore'
MANIFEST did not declare 'x2p/.gitignore'

Compiler messages(gcc)​:
try.c​: In function ‘main’​:
try.c​:4069​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4072​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4075​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4078​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4105​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4108​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4111​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4114​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4165​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4168​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4171​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4174​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4201​:16​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4204​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4207​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4210​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4465​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4468​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4471​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4474​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10249​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10252​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10255​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10258​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10285​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10288​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10291​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10294​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10321​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10324​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10327​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10330​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10357​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10360​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10363​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10366​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10585​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10588​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10591​:21​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10594​:21​: warning​: extra tokens at end of #ifdef directive [enabled by default]
regcomp.c​: In function ‘S_regpiece’​:
regcomp.c​:7457​:11​: warning​: variable ‘parse_start’ set but not used [-Wunused-but-set-variable]
util.c​: In function ‘Perl_safesyscalloc’​:
util.c​:297​:14​: warning​: variable ‘total_size’ set but not used [-Wunused-but-set-variable]
hv.c​: In function ‘S_hv_delete_common’​:
hv.c​:907​:16​: warning​: variable ‘first_entry’ set but not used [-Wunused-but-set-variable]
hv.c​: In function ‘S_clear_placeholders’​:
hv.c​:1609​:7​: warning​: variable ‘first’ set but not used [-Wunused-but-set-variable]
hv.c​: In function ‘S_unshare_hek_or_pvn’​:
hv.c​:2634​:10​: warning​: variable ‘first’ set but not used [-Wunused-but-set-variable]
pp_ctl.c​: In function ‘Perl_pp_goto’​:
pp_ctl.c​:2700​:7​: warning​: variable ‘gimme’ set but not used [-Wunused-but-set-variable]
pp_ctl.c​:2699​:8​: warning​: variable ‘newsp’ set but not used [-Wunused-but-set-variable]
pp_ctl.c​: In function ‘Perl_pp_leavewhen’​:
pp_ctl.c​:4844​:9​: warning​: variable ‘gimme’ set but not used [-Wunused-but-set-variable]
pp_sys.c​: In function ‘Perl_pp_warn’​:
pp_sys.c​:422​:17​: warning​: variable ‘pv’ set but not used [-Wunused-but-set-variable]
pp_sys.c​: In function ‘Perl_pp_die’​:
pp_sys.c​:462​:17​: warning​: variable ‘pv’ set but not used [-Wunused-but-set-variable]
regexec.c​: In function ‘S_find_byclass’​:
regexec.c​:1529​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1535​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1540​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1550​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1560​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1565​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1576​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1583​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1595​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1602​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1621​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1628​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1646​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1653​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1672​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1690​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​: In function ‘S_regmatch’​:
regexec.c​:3676​:7​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3751​:9​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3755​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3757​:9​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3761​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3763​:9​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3766​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3850​:7​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3850​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3850​:1​: warning​: variable ‘throw_away’ set but not used [-Wunused-but-set-variable]
regexec.c​: In function ‘S_regrepeat’​:
regexec.c​:6033​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6078​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6130​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6179​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6232​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6265​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘S_dump_trie’​:
regcomp.c​:1017​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘S_dump_trie_interim_list’​:
regcomp.c​:1108​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘S_dump_trie_interim_table’​:
regcomp.c​:1166​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘Perl_re_compile’​:
regcomp.c​:5296​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘Perl_reg_named_buff_nextkey’​:
regcomp.c​:5445​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘Perl_pregfree2’​:
regcomp.c​:11326​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘Perl_regdupe_internal’​:
regcomp.c​:11669​:14​: warning​: variable ‘npar’ set but not used [-Wunused-but-set-variable]
regexec.c​:3676​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6033​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6078​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6130​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6179​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6232​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6265​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]

--
Report by Test​::Smoke v1.44 build 1285 running on perl 5.12.3
(Reporter v0.035 / Smoker v0.045)

@p5pRT
Copy link
Author

p5pRT commented Mar 29, 2011

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

@p5pRT
Copy link
Author

p5pRT commented Mar 29, 2011

From @nwc10

On Tue, Mar 29, 2011 at 01​:24​:45PM +0100, David Leadbeater wrote​:

I had a go at setting up a smoker using gcc 4.6.0 (basically by using
arch's testing repo). That passed fine with -O3, apart from some new compiler
warnings (see results attached).

I then thought I'd try link time optimisation, that didn't go so well,
basically it seems the try.c program written by Configure gets optimised to the
extent that the symbol it uses disappears (see output below).

I wonder if it would be worth having support in Configure for not running the
'try' programs with optimisations on (maybe via hints?)?

David

PS​: This feels more like a known issue than a 5.14.0 blocker to me.

Yes, me too.

I've fixed the compile time warnings that are easy to fix in the branch
nicholas/gcc460.

Some of the others will be harder as they're variables within macros, and
similar. Given that this means radically changing the call parameters of these
macros, I think ideally that we'd also replace them with inline functions as
part of the change, given that we now have infrastructure to do that.

As far as I can tell [ie just gcc 4.6.0 and 4.3.2 :-)] removing the dead
source code has *no* effect on the object files generated, from which I
infer that the optimiser already recognises the code as worthless, and so
eliminates it.

Given that we can't eliminate all these warnings right now, and as long as
gcc 4.6.0 is *just* producing warnings (not failures) [need more platform
testing], I think it best to document the warnings as a harmless known
issue, and resolve the problem in 5.15

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Mar 29, 2011

From rmbarker.cpan@btinternet.com

On Tue, 2011-03-29 at 13​:24 +0100, David Leadbeater wrote​:

I had a go at setting up a smoker using gcc 4.6.0 (basically by using
arch's testing repo). That passed fine with -O3, apart from some new compiler
warnings (see results attached).

I then thought I'd try link time optimisation, that didn't go so well,
basically it seems the try.c program written by Configure gets optimised to the
extent that the symbol it uses disappears (see output below).

I wonder if it would be worth having support in Configure for not running the
'try' programs with optimisations on (maybe via hints?)?

David

Patch to hv.c and pp_sys.c to fix some variable-set-but-not-used

Patch to cflags.SH to suppress unused-but-set-variable warning

Robin

@p5pRT
Copy link
Author

p5pRT commented Mar 29, 2011

From rmbarker.cpan@btinternet.com

0001-avoid-unused-but-set.patch
From 186c1e57281e7b185a6217f8e4157f35af386511 Mon Sep 17 00:00:00 2001
From: Robin Barker <rmbarker@cpan.org>
Date: Tue, 29 Mar 2011 22:57:32 +0100
Subject: [PATCH 1/2] avoid unused-but-set

---
 hv.c     |    8 ++------
 pp_sys.c |    6 ++----
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/hv.c b/hv.c
index ed5061f..0864265 100644
--- a/hv.c
+++ b/hv.c
@@ -904,7 +904,6 @@ S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
     register XPVHV* xhv;
     register HE *entry;
     register HE **oentry;
-    HE *const *first_entry;
     bool is_utf8 = (k_flags & HVhek_UTF8) ? TRUE : FALSE;
     int masked_flags;
 
@@ -983,7 +982,7 @@ S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
 
     masked_flags = (k_flags & HVhek_MASK);
 
-    first_entry = oentry = &(HvARRAY(hv))[hash & (I32) HvMAX(hv)];
+    oentry = &(HvARRAY(hv))[hash & (I32) HvMAX(hv)];
     entry = *oentry;
     for (; entry; oentry = &HeNEXT(entry), entry = *oentry) {
 	SV *sv;
@@ -1606,7 +1605,6 @@ S_clear_placeholders(pTHX_ HV *hv, U32 items)
     i = HvMAX(hv);
     do {
 	/* Loop down the linked list heads  */
-	bool first = TRUE;
 	HE **oentry = &(HvARRAY(hv))[i];
 	HE *entry;
 
@@ -1628,7 +1626,6 @@ S_clear_placeholders(pTHX_ HV *hv, U32 items)
 		}
 	    } else {
 		oentry = &HeNEXT(entry);
-		first = FALSE;
 	    }
 	}
     } while (--i >= 0);
@@ -2631,7 +2628,6 @@ S_unshare_hek_or_pvn(pTHX_ const HEK *hek, const char *str, I32 len, U32 hash)
     register XPVHV* xhv;
     HE *entry;
     register HE **oentry;
-    HE **first;
     bool is_utf8 = FALSE;
     int k_flags = 0;
     const char * const save = str;
@@ -2672,7 +2668,7 @@ S_unshare_hek_or_pvn(pTHX_ const HEK *hek, const char *str, I32 len, U32 hash)
     } */
     xhv = (XPVHV*)SvANY(PL_strtab);
     /* assert(xhv_array != 0) */
-    first = oentry = &(HvARRAY(PL_strtab))[hash & (I32) HvMAX(PL_strtab)];
+    oentry = &(HvARRAY(PL_strtab))[hash & (I32) HvMAX(PL_strtab)];
     if (he) {
 	const HE *const he_he = &(he->shared_he_he);
         for (entry = *oentry; entry; oentry = &HeNEXT(entry), entry = *oentry) {
diff --git a/pp_sys.c b/pp_sys.c
index 3c42133..2ee1ad5 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -419,7 +419,6 @@ PP(pp_warn)
 {
     dVAR; dSP; dMARK;
     SV *exsv;
-    const char *pv;
     STRLEN len;
     if (SP - MARK > 1) {
 	dTARGET;
@@ -436,7 +435,7 @@ PP(pp_warn)
 	exsv = TOPs;
     }
 
-    if (SvROK(exsv) || (pv = SvPV_const(exsv, len), len)) {
+    if (SvROK(exsv) || ((void)SvPV_const(exsv, len), len)) {
 	/* well-formed exception supplied */
     }
     else if (SvROK(ERRSV)) {
@@ -459,7 +458,6 @@ PP(pp_die)
 {
     dVAR; dSP; dMARK;
     SV *exsv;
-    const char *pv;
     STRLEN len;
 #ifdef VMS
     VMSISH_HUSHED  = VMSISH_HUSHED || (PL_op->op_private & OPpHUSH_VMSISH);
@@ -474,7 +472,7 @@ PP(pp_die)
 	exsv = TOPs;
     }
 
-    if (SvROK(exsv) || (pv = SvPV_const(exsv, len), len)) {
+    if (SvROK(exsv) || ((void)SvPV_const(exsv, len), len)) {
 	/* well-formed exception supplied */
     }
     else if (SvROK(ERRSV)) {
-- 
1.7.0.4

@p5pRT
Copy link
Author

p5pRT commented Mar 29, 2011

From rmbarker.cpan@btinternet.com

0002-suppress-unused-but-set-variable-warning.patch
From a4dfe1a7878f15a51b5d5e59ddfcfc1e8848d008 Mon Sep 17 00:00:00 2001
From: Robin Barker <rmbarker@cpan.org>
Date: Tue, 29 Mar 2011 22:58:11 +0100
Subject: [PATCH 2/2] suppress unused-but-set-variable warning

---
 cflags.SH |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/cflags.SH b/cflags.SH
index f57cf2f..39ac77d 100755
--- a/cflags.SH
+++ b/cflags.SH
@@ -135,7 +135,8 @@ case "$gccversion" in
 [12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
 Intel*) ;; # # Is that you, Intel C++?
 *)  for opt in -ansi -std=c89 -W -Wextra -Wdeclaration-after-statement \
-		-Wendif-labels -Wc++-compat -Wwrite-strings
+		-Wendif-labels -Wc++-compat -Wwrite-strings \
+		-Wno-unused-but-set-variable
     do
        case " $ccflags " in
        *" $opt "*) ;; # Skip if already there.
-- 
1.7.0.4

@p5pRT
Copy link
Author

p5pRT commented Mar 30, 2011

From @nwc10

On Mon, Mar 28, 2011 at 07​:31​:14AM -0700, Nicholas Clark wrote​:

# New Ticket Created by Nicholas Clark
# Please include the string​: [perl #87184]
# in the subject line of all future correspondence about this issue.
# <URL​: http​://rt.perl.org/rt3/Ticket/Display.html?id=87184 >

gcc 4.6.0 was released on March 25, 2011

It would be embarrassing if perl 5.14.0 didn't build and pass tests on it.

Seems to build and pass all tests on x86 and x86_64 Linux, albeit with
warnings.

It won't build on OS X without patching, something like this​:

Inline Patch
diff --git a/hints/darwin.sh b/hints/darwin.sh
index dab0607..95dc549 100644
--- a/hints/darwin.sh
+++ b/hints/darwin.sh
@@ -126,11 +126,13 @@ case "$(grep '^#define INT32_MIN' /usr/include/stdint.h)" 
 esac
 
 # Avoid Apple's cpp precompiler, better for extensions
-cppflags="${cppflags} -no-cpp-precomp"
+if [ "X`echo | ${cc} -no-cpp-precomp -E - 2>&1 >/dev/null`" = "X" ]; then
+    cppflags="${cppflags} -no-cpp-precomp"
 
-# This is necessary because perl's build system doesn't
-# apply cppflags to cc compile lines as it should.
-ccflags="${ccflags} ${cppflags}"
+    # This is necessary because perl's build system doesn't
+    # apply cppflags to cc compile lines as it should.
+    ccflags="${ccflags} ${cppflags}"
+fi
 
 # Known optimizer problems.
 case "`cc -v 2>&1`" in


Otherwise the compiler fails with an error, something like this:

$ echo | gcc-mp-4.6 -no-cpp-precomp -E -
gcc-mp-4.6​: error​: unrecognized option '-no-cpp-precomp'
$ echo $?
1

It was only a warning with gcc 4.5 from macports​:

$ echo | gcc-mp-4.5 -no-cpp-precomp -E -
gcc-mp-4.5​: unrecognized option '-no-cpp-precomp'
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
$ echo $?
0

I'm not sure if this is the right thing to apply.

[Note, much to my pleasant surprise, macports builds gcc-4.6 in about an hour
on my 3 year old laptop. gcc-4.5 takes 3 hours (swaptastic), and gcc-4.4 about
2.5. So it's not insane to install it to try it out. Currently the 4.6 is
actually still a snapshot, albeit very recent, not the real thing :-(]

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Apr 5, 2011

From @nwc10

On Wed, Mar 30, 2011 at 10​:46​:41PM +0100, Nicholas Clark wrote​:

On Mon, Mar 28, 2011 at 07​:31​:14AM -0700, Nicholas Clark wrote​:

# New Ticket Created by Nicholas Clark
# Please include the string​: [perl #87184]
# in the subject line of all future correspondence about this issue.
# <URL​: http​://rt.perl.org/rt3/Ticket/Display.html?id=87184 >

gcc 4.6.0 was released on March 25, 2011

It would be embarrassing if perl 5.14.0 didn't build and pass tests on it.

Seems to build and pass all tests on x86 and x86_64 Linux, albeit with
warnings.

It won't build on OS X without patching, something like this​:

I applied this as e727fa2

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Apr 5, 2011

From @nwc10

On Tue, Mar 29, 2011 at 04​:45​:44PM +0100, Nicholas Clark wrote​:

I've fixed the compile time warnings that are easy to fix in the branch
nicholas/gcc460.

On Tue, Mar 29, 2011 at 11​:12​:33PM +0100, Robin Barker wrote​:

On Tue, 2011-03-29 at 13​:24 +0100, David Leadbeater wrote​:

I had a go at setting up a smoker using gcc 4.6.0 (basically by using
arch's testing repo). That passed fine with -O3, apart from some new compiler
warnings (see results attached).

I then thought I'd try link time optimisation, that didn't go so well,
basically it seems the try.c program written by Configure gets optimised to the
extent that the symbol it uses disappears (see output below).

I wonder if it would be worth having support in Configure for not running the
'try' programs with optimisations on (maybe via hints?)?

David

Patch to hv.c and pp_sys.c to fix some variable-set-but-not-used

It happened that I'd already committed fixes for them to my branch
nicholas/gcc460 as 9029c9aff9243ad7 and 3d6ff8202f9280ca

(with analysis in the commit message for 9029c9aff9243ad7 about how the
problem arose)

Patch to cflags.SH to suppress unused-but-set-variable warning

I think that, long term, having warning is useful, and something we should
work on cleaning up. Meanwhile, short term, this close to 5.14, I'd feel more
comfortable leaving code unchanged, and documenting the warnings as a
"known issue". (But it's Jesse's call)

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Apr 8, 2011

From @obra

I think that, long term, having warning is useful, and something we
should
work on cleaning up. Meanwhile, short term, this close to 5.14, I'd
feel more
comfortable leaving code unchanged, and documenting the warnings as a
"known issue". (But it's Jesse's call)

I'm 100% ok with leaving and documenting these warnings for post-5.14. Can I get a volunteer
to update perldelta?

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Apr 8, 2011

From @obra

Hey folks,

Nick has recently (I believe) integrated the patches needed to get Perl
building and passing tests on GCC 4.6.0, but we could really use smoking
across a range of platforms.

I'd like to see GCC 4.6.0 smoke reports for (at least)​:

Linux x86
Linux x86_64
OSX x86_64
OSX PPC
Something on SPARC
Something else.

Anybody who can contribute one of those gets a gold star.

Thanks!

@p5pRT
Copy link
Author

p5pRT commented Apr 8, 2011

From @doughera88

On Fri, 8 Apr 2011, Jesse Vincent wrote​:

Hey folks,

Nick has recently (I believe) integrated the patches needed to get Perl
building and passing tests on GCC 4.6.0, but we could really use smoking
across a range of platforms.

I'd like to see GCC 4.6.0 smoke reports for (at least)​:

Linux x86
Linux x86_64
OSX x86_64
OSX PPC
Something on SPARC

I'm currently building on SPARC to try gcc-4.6.0 with Solaris 8. 5 hours
into the build, and the gcc build is up to stage 2. (At least this is
better than the last time I tried with gcc-4.5.something, where it died
building one of the pre-requisite libraries.) If the build succeeds, I'm
hopeful that over the weekend I'll be able to try building perl with it.

I'm also hoping to get to fixing the Ubuntu library bug.

--
  Andy Dougherty doughera@​lafayette.edu

@p5pRT
Copy link
Author

p5pRT commented Apr 8, 2011

From @nwc10

On Fri, Apr 08, 2011 at 03​:53​:57PM -0400, Andy Dougherty wrote​:

I'm also hoping to get to fixing the Ubuntu library bug.

Tony Cook found that we can't build on NetBSD with gcc 4.6.0 without some
patching. He'd like someone to check over his shell code in this​:

commit 85d72428d557be653f234a70b9d1395014e36599
Author​: Tony Cook <tony@​develop-help.com>
Date​: Sat Apr 9 00​:05​:24 2011 +1000

  check --whole-archive is supported before using it
 
  netbsd for pre 4.6 gcc requires --whole-archive to build shared
  libraries, but this is rejected and not required in 4.6.0.

Inline Patch
diff --git a/hints/netbsd.sh b/hints/netbsd.sh
index d812f60..c64be44 100644
--- a/hints/netbsd.sh
+++ b/hints/netbsd.sh
@@ -35,7 +35,15 @@ case "$osvers" in
                d_dlopen=$define
                d_dlerror=$define
                cccdlflags="-DPIC -fPIC $cccdlflags"
-               lddlflags="--whole-archive -shared $lddlflags"
+               lddlflags="-shared $lddlflags"
+               # gcc 4.6 doesn't support --whole-archive, but check for it
+               # if the user chooses a new compiler later, this is pointless
+               echo 'int f(void) { return 0; }' >try.c
+               if ${cc:-cc} $cccdlflags -c try.c -otry.o 2>&1 &&
+                   ${cc:-cc} --whole-archive $lddlflags try.o -otry.so 2>&1 ; t
+                   lddlflags="--whole-archive $lddlflags"
+               fi
+               rm try.c try.o try.so 2>/dev/null
                rpathflag="-Wl,-rpath,"
                case "$osvers" in
                1.[0-5]*)


(The head commit of the branch tonyc/gcc460)

Whilst the above works, I was wondering, how general are Configure's Call Back
Units? Is it possible to manipulate lddlflags in a CBU after the C compiler has
been chosen? Or is the above the only real way to do it?

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Apr 8, 2011

From @doughera88

On Fri, 8 Apr 2011, Nicholas Clark wrote​:

On Fri, Apr 08, 2011 at 03​:53​:57PM -0400, Andy Dougherty wrote​:

I'm also hoping to get to fixing the Ubuntu library bug.

Tony Cook found that we can't build on NetBSD with gcc 4.6.0 without some
patching. He'd like someone to check over his shell code in this​:

commit 85d72428d557be653f234a70b9d1395014e36599
Author​: Tony Cook <tony@​develop-help.com>
Date​: Sat Apr 9 00​:05​:24 2011 +1000

check \-\-whole\-archive is supported before using it

netbsd for pre 4\.6 gcc requires \-\-whole\-archive to build shared
libraries\, but this is rejected and not required in 4\.6\.0\.

diff --git a/hints/netbsd.sh b/hints/netbsd.sh
index d812f60..c64be44 100644
--- a/hints/netbsd.sh
+++ b/hints/netbsd.sh
@​@​ -35,7 +35,15 @​@​ case "$osvers" in
d_dlopen=$define
d_dlerror=$define
cccdlflags="-DPIC -fPIC $cccdlflags"
- lddlflags="--whole-archive -shared $lddlflags"
+ lddlflags="-shared $lddlflags"
+ # gcc 4.6 doesn't support --whole-archive, but check for it
+ # if the user chooses a new compiler later, this is pointless
+ echo 'int f(void) { return 0; }' >try.c
+ if ${cc​:-cc} $cccdlflags -c try.c -otry.o 2>&1 &&
+ ${cc​:-cc} --whole-archive $lddlflags try.o -otry.so 2>&1 ; t
+ lddlflags="--whole-archive $lddlflags"
+ fi
+ rm try.c try.o try.so 2>/dev/null
rpathflag="-Wl,-rpath,"
case "$osvers" in
1.[0-5]*)

(The head commit of the branch tonyc/gcc460)

Whilst the above works, I was wondering, how general are Configure's
Call Back Units? Is it possible to manipulate lddlflags in a CBU after
the C compiler has been chosen? Or is the above the only real way to do
it?

They are inconsistently and only occasionally implemented (i.e. not all
metaconfig units have them) , but when available they are completely
general -- they are simply sourced with something like

  . ./cc.cbu

In this case, putting that stuff in a cc.cbu call-back unit should work.
(The chances of a user picking a different compiler later are also rather
slim, however, so leaving it as it is there probably would usually work
too.)

--
  Andy Dougherty doughera@​lafayette.edu

@p5pRT
Copy link
Author

p5pRT commented Apr 8, 2011

From @tonycoz

On Fri, Apr 08, 2011 at 04​:33​:28PM -0400, Andy Dougherty wrote​:

Whilst the above works, I was wondering, how general are Configure's
Call Back Units? Is it possible to manipulate lddlflags in a CBU after
the C compiler has been chosen? Or is the above the only real way to do
it?

They are inconsistently and only occasionally implemented (i.e. not all
metaconfig units have them) , but when available they are completely
general -- they are simply sourced with something like

\. \./cc\.cbu

In this case, putting that stuff in a cc.cbu call-back unit should work.
(The chances of a user picking a different compiler later are also rather
slim, however, so leaving it as it is there probably would usually work
too.)

I'll have a fiddle with that today.

Tony

@p5pRT
Copy link
Author

p5pRT commented Apr 9, 2011

From @tonycoz

On Fri, Apr 08, 2011 at 04​:33​:28PM -0400, Andy Dougherty wrote​:

On Fri, 8 Apr 2011, Nicholas Clark wrote​:

(The head commit of the branch tonyc/gcc460)

Whilst the above works, I was wondering, how general are Configure's
Call Back Units? Is it possible to manipulate lddlflags in a CBU after
the C compiler has been chosen? Or is the above the only real way to do
it?

They are inconsistently and only occasionally implemented (i.e. not all
metaconfig units have them) , but when available they are completely
general -- they are simply sourced with something like

\. \./cc\.cbu

In this case, putting that stuff in a cc.cbu call-back unit should work.
(The chances of a user picking a different compiler later are also rather
slim, however, so leaving it as it is there probably would usually work
too.)

Replaced tonyc/gcc460 with the cbu version of the change.

Configured/built/tested with gcc 4.6.0 and the system cc.

Tony

@p5pRT
Copy link
Author

p5pRT commented Apr 9, 2011

From @tonycoz

0001-check-whole-archive-is-supported-in-cc.cbu-before-us.patch
From fd6343662ee257267cfe8571c39010cf51d7a182 Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Sat, 9 Apr 2011 10:45:37 +1000
Subject: [PATCH] check --whole-archive is supported (in cc.cbu) before using it

netbsd for pre 4.6 gcc requires --whole-archive to build shared
libraries, but this is rejected and not required in 4.6.0.
---
 hints/netbsd.sh |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/hints/netbsd.sh b/hints/netbsd.sh
index d812f60..4ecd181 100644
--- a/hints/netbsd.sh
+++ b/hints/netbsd.sh
@@ -35,7 +35,17 @@ case "$osvers" in
 		d_dlopen=$define
 		d_dlerror=$define
 		cccdlflags="-DPIC -fPIC $cccdlflags"
-		lddlflags="--whole-archive -shared $lddlflags"
+		lddlflags="-shared $lddlflags"
+		cat >UU/cc.cbu <<'EOCBU'
+# gcc 4.6 doesn't support --whole-archive, but it's required for the
+# system gcc to build correctly, so check for it
+echo 'int f(void) { return 0; }' >try.c
+if ${cc:-cc} $cccdlflags -c try.c -otry.o 2>&1 &&
+   ${cc:-cc} --whole-archive $lddlflags try.o -otry.so 2>&1 ; then
+    lddlflags="--whole-archive $lddlflags"
+fi
+rm try.c try.o try.so 2>/dev/null
+EOCBU
 		rpathflag="-Wl,-rpath,"
 		case "$osvers" in
 		1.[0-5]*)
-- 
1.7.3.4

@p5pRT
Copy link
Author

p5pRT commented Apr 12, 2011

From @doughera88

On Fri, 8 Apr 2011, Andy Dougherty wrote​:

On Fri, 8 Apr 2011, Jesse Vincent wrote​:

Hey folks,

Nick has recently (I believe) integrated the patches needed to get Perl
building and passing tests on GCC 4.6.0, but we could really use smoking
across a range of platforms.

I'd like to see GCC 4.6.0 smoke reports for (at least)​:

Linux x86
Linux x86_64
OSX x86_64
OSX PPC
Something on SPARC

I'm currently building on SPARC to try gcc-4.6.0 with Solaris 8.

Good news​: I had no new problems on Solaris 8/SPARC with gcc-4.6.0.
(There are a couple of test quirks I'm pursuing that I think have to do
with an old bzip2 and symlinks, perhaps complicated by clock skew and NFS.
Certainly nothing related to gcc-4.6.0.)

--
  Andy Dougherty doughera@​lafayette.edu

@p5pRT
Copy link
Author

p5pRT commented Apr 12, 2011

From @greerga

On Fri, 8 Apr 2011, Jesse Vincent wrote​:

Hey folks,

Nick has recently (I believe) integrated the patches needed to get Perl
building and passing tests on GCC 4.6.0, but we could really use smoking
across a range of platforms.

I'd like to see GCC 4.6.0 smoke reports for (at least)​:

Linux x86
Linux x86_64
OSX x86_64
OSX PPC
Something on SPARC
Something else.

Anybody who can contribute one of those gets a gold star.

My $WORK Fedora 14 Linux x86_64 machine using Fedora 15 gcc 4.6.0 packages
had no issues that aren't already present. g++ and gcc reports are
attached because my hastily-copied smoking environment apparently failed
on the delivery part.

--
George Greer

@p5pRT
Copy link
Author

p5pRT commented Apr 12, 2011

From @greerga

Smoke logs available at http​://m-l.org/~perl/smoke/perl/

Automated smoke report for 5.14.0 patch f580a93 v5.13.11-409-gf580a93
$HOSTNAME Intel(R) Core(TM)2 Duo CPU P8700 @​ 2.53GHz (GenuineIntel 800MHz) (x86_64/2 cpu)
  on linux - 2.6.35.11-83.fc14.x86_64 [fedora]
  using g++ version 4.6.0 20110304 (Red Hat 4.6.0-0.12)
  smoketime 17 hours 24 minutes (average 43 minutes 31 seconds)

Summary​: FAIL(XF)

O = OK F = Failure(s), extended report at the bottom
X = Failure(s) under TEST but not under harness
? = still running or test results not (yet) available
Build failures during​: - = unknown or N/A
c = Configure, m = make, M = make (after miniperl), t = make test-prep

v5.13.11-409-gf580a93 Configuration (common) -Dcc=g++
----------- ---------------------------------------------------------
O O O O O O
O O O O O O -Accflags=-DPERL_POISON
O O O O O O -Duse64bitint
O O O O O O -Duselongdouble
O O O O O O -Dusemorebits
O O O O O F -Dmad
O O O O O O -Duseithreads
O O O O O O -Duseithreads -Accflags=-DPERL_POISON
O O O O O O -Duseithreads -Duse64bitint
O O O O O O -Duseithreads -Duselongdouble
O X O O O O -Duseithreads -Dusemorebits
O O O O O O -Duseithreads -Dmad
| | | | | +- LC_ALL = en_US.utf8 -DDEBUGGING
| | | | +--- PERLIO = perlio -DDEBUGGING
| | | +----- PERLIO = stdio -DDEBUGGING
| | +------- LC_ALL = en_US.utf8
| +--------- PERLIO = perlio
+----------- PERLIO = stdio

Locally applied patches​:
  RC0
  uncommitted-changes
  SMOKEf580a93dfe4c980e326a70e8ab035562b0b6dbf7

Failures​: (common-args) -Dcc=g++
[en_US.utf8] -DDEBUGGING -Dmad
  ../lib/warnings.t...........................................FAILED
  245
  ../t/op/runlevel.t..........................................FAILED
  9

[perlio] -Duseithreads -Dusemorebits
Inconsistent test results (between TEST and harness)​:
  ../t/cpan/Memoize/t/speed.t.............FAILED at test 2

Compiler messages(gcc)​:
try.c​:4081​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4084​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4087​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4090​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4117​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4120​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4123​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4126​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4177​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4180​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4183​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4186​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4213​:16​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4216​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4219​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4222​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4477​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4480​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4483​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4486​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10261​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10264​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10267​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10270​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10297​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10300​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10303​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10306​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10333​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10336​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10339​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10342​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10369​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10372​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10375​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10378​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10597​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10600​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10603​:21​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10606​:21​: warning​: extra tokens at end of #ifdef directive [enabled by default]
regcomp.c​: In function ‘regnode* S_regpiece(RExC_state_t*, I32*, U32)’​:
regcomp.c​:7480​:11​: warning​: variable ‘parse_start’ set but not used [-Wunused-but-set-variable]
util.c​: In function ‘void* Perl_safesyscalloc(size_t, size_t)’​:
util.c​:297​:14​: warning​: variable ‘total_size’ set but not used [-Wunused-but-set-variable]
hv.c​: In function ‘SV* S_hv_delete_common(HV*, SV*, const char*, STRLEN, int, I32, U32)’​:
hv.c​:907​:16​: warning​: variable ‘first_entry’ set but not used [-Wunused-but-set-variable]
hv.c​: In function ‘void S_clear_placeholders(HV*, U32)’​:
hv.c​:1609​:7​: warning​: variable ‘first’ set but not used [-Wunused-but-set-variable]
hv.c​: In function ‘void S_unshare_hek_or_pvn(const HEK*, const char*, I32, U32)’​:
hv.c​:2634​:10​: warning​: variable ‘first’ set but not used [-Wunused-but-set-variable]
pp_ctl.c​: In function ‘OP* Perl_pp_goto()’​:
pp_ctl.c​:2699​:8​: warning​: variable ‘newsp’ set but not used [-Wunused-but-set-variable]
pp_ctl.c​:2700​:7​: warning​: variable ‘gimme’ set but not used [-Wunused-but-set-variable]
pp_ctl.c​: In function ‘OP* Perl_pp_leavewhen()’​:
pp_ctl.c​:4844​:9​: warning​: variable ‘gimme’ set but not used [-Wunused-but-set-variable]
pp_sys.c​: In function ‘OP* Perl_pp_warn()’​:
pp_sys.c​:422​:17​: warning​: variable ‘pv’ set but not used [-Wunused-but-set-variable]
pp_sys.c​: In function ‘OP* Perl_pp_die()’​:
pp_sys.c​:462​:17​: warning​: variable ‘pv’ set but not used [-Wunused-but-set-variable]
regexec.c​: In function ‘char* S_find_byclass(regexp*, const regnode*, char*, const char*, regmatch_info*)’​:
regexec.c​:1529​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1535​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1540​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1550​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1560​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1565​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1576​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1583​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1595​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1602​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1621​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1628​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1646​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1653​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1672​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1690​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​: In function ‘I32 S_regmatch(regmatch_info*, regnode*)’​:
regexec.c​:3676​:7​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3751​:9​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3755​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3757​:9​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3761​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3763​:9​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3766​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3850​:7​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3850​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3850​:1​: warning​: variable ‘throw_away’ set but not used [-Wunused-but-set-variable]
regexec.c​: In function ‘I32 S_regrepeat(const regexp*, const regnode*, I32, int)’​:
regexec.c​:6033​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6078​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6130​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6179​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6232​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6265​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
Collate.xs​: In function ‘void XS_Unicode__Collate_getHST(CV*)’​:
Collate.xs​:257​:17​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​:259​:17​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​:263​:17​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​:265​:17​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​:267​:17​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​:269​:17​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​:274​:17​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​:277​:17​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​:280​:17​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​:282​:17​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​: In function ‘void XS_Unicode__Collate_visualizeSortKey(CV*)’​:
Collate.xs​:616​:29​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
regcomp.c​: In function ‘void S_dump_trie(const _reg_trie_data*, HV*, AV*, U32)’​:
regcomp.c​:1040​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘void S_dump_trie_interim_list(const _reg_trie_data*, HV*, AV*, U32, U32)’​:
regcomp.c​:1131​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘void S_dump_trie_interim_table(const _reg_trie_data*, HV*, AV*, U32, U32)’​:
regcomp.c​:1189​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘REGEXP* Perl_re_compile(SV*, U32)’​:
regcomp.c​:5319​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘SV* Perl_reg_named_buff_nextkey(REGEXP*, U32)’​:
regcomp.c​:5468​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘void Perl_pregfree2(REGEXP*)’​:
regcomp.c​:11345​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
toke.c​: In function ‘int Perl_yylex()’​:
toke.c​:7925​:19​: warning​: variable ‘have_proto’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘regnode* S_regpiece(PerlInterpreter*, RExC_state_t*, I32*, U32)’​:
regcomp.c​: In function ‘void* Perl_regdupe_internal(PerlInterpreter*, REGEXP*, CLONE_PARAMS*)’​:
regcomp.c​:11688​:14​: warning​: variable ‘npar’ set but not used [-Wunused-but-set-variable]
hv.c​: In function ‘SV* S_hv_delete_common(PerlInterpreter*, HV*, SV*, const char*, STRLEN, int, I32, U32)’​:
hv.c​: In function ‘void S_clear_placeholders(PerlInterpreter*, HV*, U32)’​:
hv.c​: In function ‘void S_unshare_hek_or_pvn(PerlInterpreter*, const HEK*, const char*, I32, U32)’​:
pp_ctl.c​: In function ‘OP* Perl_pp_goto(PerlInterpreter*)’​:
pp_ctl.c​: In function ‘OP* Perl_pp_leavewhen(PerlInterpreter*)’​:
pp_sys.c​: In function ‘OP* Perl_pp_warn(PerlInterpreter*)’​:
pp_sys.c​: In function ‘OP* Perl_pp_die(PerlInterpreter*)’​:
regexec.c​: In function ‘char* S_find_byclass(PerlInterpreter*, regexp*, const regnode*, char*, const char*, regmatch_info*)’​:
regexec.c​: In function ‘I32 S_regmatch(PerlInterpreter*, regmatch_info*, regnode*)’​:
regexec.c​:3676​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​: In function ‘I32 S_regrepeat(PerlInterpreter*, const regexp*, const regnode*, I32, int)’​:
regexec.c​:6033​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6078​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6130​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6179​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6232​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6265​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
shared.xs​: In function ‘user_lock* S_get_userlock(PerlInterpreter*, SV*, bool)’​:
shared.xs​:348​:5​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void S_sharedsv_dec(PerlInterpreter*, SV*)’​:
shared.xs​:521​:5​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void Perl_sharedsv_share(PerlInterpreter*, SV*)’​:
shared.xs​:550​:9​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘int sharedsv_scalar_mg_get(PerlInterpreter*, SV*, MAGIC*)’​:
shared.xs​:716​:5​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘int sharedsv_scalar_mg_set(PerlInterpreter*, SV*, MAGIC*)’​:
shared.xs​:794​:5​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘int sharedsv_scalar_mg_local(PerlInterpreter*, SV*, MAGIC*)’​:
shared.xs​:837​:9​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘int sharedsv_elem_mg_FETCH(PerlInterpreter*, SV*, MAGIC*)’​:
shared.xs​:874​:5​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘int sharedsv_elem_mg_STORE(PerlInterpreter*, SV*, MAGIC*)’​:
shared.xs​:932​:5​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘int sharedsv_elem_mg_DELETE(PerlInterpreter*, SV*, MAGIC*)’​:
shared.xs​:974​:5​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘U32 sharedsv_array_mg_FETCHSIZE(PerlInterpreter*, SV*, MAGIC*)’​:
shared.xs​:1037​:5​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘int sharedsv_array_mg_CLEAR(PerlInterpreter*, SV*, MAGIC*)’​:
shared.xs​:1056​:5​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void Perl_sharedsv_lock(PerlInterpreter*, SV*)’​:
shared.xs​:1145​:63​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void XS_threads__shared__tie_PUSH(PerlInterpreter*, CV*)’​:
shared.xs​:1241​:13​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void XS_threads__shared__tie_UNSHIFT(PerlInterpreter*, CV*)’​:
shared.xs​:1258​:9​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void XS_threads__shared__tie_POP(PerlInterpreter*, CV*)’​:
shared.xs​:1281​:9​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void XS_threads__shared__tie_SHIFT(PerlInterpreter*, CV*)’​:
shared.xs​:1298​:9​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void XS_threads__shared__tie_EXTEND(PerlInterpreter*, CV*)’​:
shared.xs​:1314​:9​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void XS_threads__shared__tie_STORESIZE(PerlInterpreter*, CV*)’​:
shared.xs​:1324​:9​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void XS_threads__shared__tie_EXISTS(PerlInterpreter*, CV*)’​:
shared.xs​:1336​:13​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​:1346​:13​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void XS_threads__shared__tie_FIRSTKEY(PerlInterpreter*, CV*)’​:
shared.xs​:1362​:9​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void XS_threads__shared__tie_NEXTKEY(PerlInterpreter*, CV*)’​:
shared.xs​:1390​:9​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
shared.xs​: In function ‘void XS_threads__shared_bless(PerlInterpreter*, CV*)’​:
shared.xs​:1650​:13​: warning​: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Collate.xs​: In function ‘void XS_Unicode__Collate_getHST(PerlInterpreter*, CV*)’​:
Collate.xs​: In function ‘void XS_Unicode__Collate_visualizeSortKey(PerlInterpreter*, CV*)’​:
regcomp.c​: In function ‘void S_dump_trie(PerlInterpreter*, const _reg_trie_data*, HV*, AV*, U32)’​:
regcomp.c​: In function ‘void S_dump_trie_interim_list(PerlInterpreter*, const _reg_trie_data*, HV*, AV*, U32, U32)’​:
regcomp.c​: In function ‘void S_dump_trie_interim_table(PerlInterpreter*, const _reg_trie_data*, HV*, AV*, U32, U32)’​:
regcomp.c​: In function ‘REGEXP* Perl_re_compile(PerlInterpreter*, SV*, U32)’​:
regcomp.c​: In function ‘SV* Perl_reg_named_buff_nextkey(PerlInterpreter*, REGEXP*, U32)’​:
regcomp.c​: In function ‘void Perl_pregfree2(PerlInterpreter*, REGEXP*)’​:
toke.c​: In function ‘int Perl_yylex(PerlInterpreter*)’​:
--
Report by Test​::Smoke v1.44 build 1285 running on perl 5.12.3
(Reporter v0.035 / Smoker v0.045)

@p5pRT
Copy link
Author

p5pRT commented Apr 12, 2011

From @greerga

Smoke logs available at http​://m-l.org/~perl/smoke/perl/

Automated smoke report for 5.14.0 patch f580a93 v5.13.11-409-gf580a93
$HOSTNAME Intel(R) Core(TM)2 Duo CPU P8700 @​ 2.53GHz (GenuineIntel 800MHz) (x86_64/2 cpu)
  on linux - 2.6.35.11-83.fc14.x86_64 [fedora]
  using gcc version 4.6.0 20110304 (Red Hat 4.6.0-0.12)
  smoketime 17 hours 16 minutes (average 43 minutes 11 seconds)

Summary​: FAIL(F)

O = OK F = Failure(s), extended report at the bottom
X = Failure(s) under TEST but not under harness
? = still running or test results not (yet) available
Build failures during​: - = unknown or N/A
c = Configure, m = make, M = make (after miniperl), t = make test-prep

v5.13.11-409-gf580a93 Configuration (common) -Dcc=gcc
----------- ---------------------------------------------------------
O O O O O O
O O O O O O -Accflags=-DPERL_POISON
O O O O O O -Duse64bitint
O O O O O O -Duselongdouble
O O O O O O -Dusemorebits
O O O O O F -Dmad
O O O O O O -Duseithreads
O O O O O O -Duseithreads -Accflags=-DPERL_POISON
O O O O O O -Duseithreads -Duse64bitint
O O O O O O -Duseithreads -Duselongdouble
O O O O O O -Duseithreads -Dusemorebits
O O O O O O -Duseithreads -Dmad
| | | | | +- LC_ALL = en_US.utf8 -DDEBUGGING
| | | | +--- PERLIO = perlio -DDEBUGGING
| | | +----- PERLIO = stdio -DDEBUGGING
| | +------- LC_ALL = en_US.utf8
| +--------- PERLIO = perlio
+----------- PERLIO = stdio

Locally applied patches​:
  RC0
  uncommitted-changes
  SMOKEf580a93dfe4c980e326a70e8ab035562b0b6dbf7

Failures​: (common-args) -Dcc=gcc
[en_US.utf8] -DDEBUGGING -Dmad
  ../lib/warnings.t...........................................FAILED
  245
  ../t/op/runlevel.t..........................................FAILED
  9

Compiler messages(gcc)​:
try.c​: In function ‘main’​:
try.c​:4081​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4084​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4087​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4090​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4117​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4120​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4123​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4126​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4177​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4180​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4183​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4186​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4213​:16​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4216​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4219​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4222​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4477​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4480​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4483​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:4486​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10261​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10264​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10267​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10270​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10297​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10300​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10303​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10306​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10333​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10336​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10339​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10342​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10369​:17​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10372​:18​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10375​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10378​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10597​:19​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10600​:20​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10603​:21​: warning​: extra tokens at end of #ifdef directive [enabled by default]
try.c​:10606​:21​: warning​: extra tokens at end of #ifdef directive [enabled by default]
regcomp.c​: In function ‘S_regpiece’​:
regcomp.c​:7480​:11​: warning​: variable ‘parse_start’ set but not used [-Wunused-but-set-variable]
util.c​: In function ‘Perl_safesyscalloc’​:
util.c​:297​:14​: warning​: variable ‘total_size’ set but not used [-Wunused-but-set-variable]
hv.c​: In function ‘S_hv_delete_common’​:
hv.c​:907​:16​: warning​: variable ‘first_entry’ set but not used [-Wunused-but-set-variable]
hv.c​: In function ‘S_clear_placeholders’​:
hv.c​:1609​:7​: warning​: variable ‘first’ set but not used [-Wunused-but-set-variable]
hv.c​: In function ‘S_unshare_hek_or_pvn’​:
hv.c​:2634​:10​: warning​: variable ‘first’ set but not used [-Wunused-but-set-variable]
pp_ctl.c​: In function ‘Perl_pp_goto’​:
pp_ctl.c​:2700​:7​: warning​: variable ‘gimme’ set but not used [-Wunused-but-set-variable]
pp_ctl.c​:2699​:8​: warning​: variable ‘newsp’ set but not used [-Wunused-but-set-variable]
pp_ctl.c​: In function ‘Perl_pp_leavewhen’​:
pp_ctl.c​:4844​:9​: warning​: variable ‘gimme’ set but not used [-Wunused-but-set-variable]
pp_sys.c​: In function ‘Perl_pp_warn’​:
pp_sys.c​:422​:17​: warning​: variable ‘pv’ set but not used [-Wunused-but-set-variable]
pp_sys.c​: In function ‘Perl_pp_die’​:
pp_sys.c​:462​:17​: warning​: variable ‘pv’ set but not used [-Wunused-but-set-variable]
regexec.c​: In function ‘S_find_byclass’​:
regexec.c​:1529​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1535​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1540​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1550​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1560​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1565​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1576​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1583​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1595​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1602​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1621​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1628​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1646​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1653​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1672​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:1690​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​: In function ‘S_regmatch’​:
regexec.c​:3676​:7​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3751​:9​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3755​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3757​:9​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3761​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3763​:9​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3766​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3850​:7​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3850​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:3850​:1​: warning​: variable ‘throw_away’ set but not used [-Wunused-but-set-variable]
regexec.c​: In function ‘S_regrepeat’​:
regexec.c​:6033​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6078​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6130​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6179​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6232​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6265​:6​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
compress.c​: In function ‘sendMTFValues’​:
compress.c​:243​:19​: warning​: variable ‘nBytes’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘S_dump_trie’​:
regcomp.c​:1040​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘S_dump_trie_interim_list’​:
regcomp.c​:1131​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘S_dump_trie_interim_table’​:
regcomp.c​:1189​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘Perl_re_compile’​:
regcomp.c​:5319​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘Perl_reg_named_buff_nextkey’​:
regcomp.c​:5468​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘Perl_pregfree2’​:
regcomp.c​:11345​:5​: warning​: variable ‘re_debug_flags’ set but not used [-Wunused-but-set-variable]
toke.c​: In function ‘Perl_yylex’​:
toke.c​:7925​:19​: warning​: variable ‘have_proto’ set but not used [-Wunused-but-set-variable]
regcomp.c​: In function ‘Perl_regdupe_internal’​:
regcomp.c​:11688​:14​: warning​: variable ‘npar’ set but not used [-Wunused-but-set-variable]
regexec.c​:3676​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6033​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6078​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6130​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6179​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6232​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
regexec.c​:6265​:1​: warning​: variable ‘ok’ set but not used [-Wunused-but-set-variable]
--
Report by Test​::Smoke v1.44 build 1285 running on perl 5.12.3
(Reporter v0.035 / Smoker v0.045)

@p5pRT
Copy link
Author

p5pRT commented Apr 12, 2011

From @nwc10

On Fri, Apr 08, 2011 at 03​:53​:57PM -0400, Andy Dougherty wrote​:

I'm currently building on SPARC to try gcc-4.6.0 with Solaris 8. 5 hours
into the build, and the gcc build is up to stage 2. (At least this is

On my laptop I found that I could build gcc 4.6 in one hour, whereas gcc 4.5
took 3. Their release notes at http​://gcc.gnu.org/gcc-4.6/changes.html say​:

  Compile time and memory usage improvements

  Datastructures used by the dataflow framework in GCC were
  reorganized for better memory usage and more cache
  locality. Compile time is improved especially on units with
  large functions (possibly resulting from a lot of inlining)
  not fitting into the processor cache. The compile time of the
  GCC C compiler binary with link-time optimization went down by
  over 10% (benchmarked on x86-64 target).

and that seems to have paid off nicely, in my case because my machine is
avoiding swap hell at various points in the build.

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Apr 13, 2011

From @obra

With Tony's fixes for NetBSD and GCC 4.6 today, I'm declaring this one
resolved unless we hear otherwise about GCC 4.6 on some common platform.

@p5pRT
Copy link
Author

p5pRT commented Apr 13, 2011

@obra - Status changed from 'open' to 'resolved'

@p5pRT p5pRT closed this as completed Apr 13, 2011
@p5pRT
Copy link
Author

p5pRT commented Apr 16, 2011

From @rurban

Nicholas Clark schrieb​:

On Mon, Mar 28, 2011 at 07​:31​:14AM -0700, Nicholas Clark wrote​:

# New Ticket Created by Nicholas Clark
# Please include the string​: [perl #87184]
# in the subject line of all future correspondence about this issue.
#<URL​: http​://rt.perl.org/rt3/Ticket/Display.html?id=87184>

gcc 4.6.0 was released on March 25, 2011

It would be embarrassing if perl 5.14.0 didn't build and pass tests on it.

Seems to build and pass all tests on x86 and x86_64 Linux, albeit with
warnings.

It won't build on OS X without patching, something like this​:

diff --git a/hints/darwin.sh b/hints/darwin.sh
index dab0607..95dc549 100644
--- a/hints/darwin.sh
+++ b/hints/darwin.sh
@​@​ -126,11 +126,13 @​@​ case "$(grep '^#define INT32_MIN' /usr/include/stdint.h)"
esac

# Avoid Apple's cpp precompiler, better for extensions
-cppflags="${cppflags} -no-cpp-precomp"
+if [ "X`echo | ${cc} -no-cpp-precomp -E - 2>&1>/dev/null`" = "X" ]; then
+ cppflags="${cppflags} -no-cpp-precomp"

-# This is necessary because perl's build system doesn't
-# apply cppflags to cc compile lines as it should.
-ccflags="${ccflags} ${cppflags}"
+ # This is necessary because perl's build system doesn't
+ # apply cppflags to cc compile lines as it should.
+ ccflags="${ccflags} ${cppflags}"
+fi

# Known optimizer problems.
case "`cc -v 2>&1`" in
I'm not sure if this is the right thing to apply.

Looks good to me.

I also suggest
ld=$cc

--
Reini Urban
http​://phpwiki.org/ http​://murbreak.at/

@p5pRT p5pRT added the hasPatch label Oct 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant