Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.98k stars 559 forks source link

gcc 4.6.0 #11216

Closed p5pRT closed 13 years ago

p5pRT commented 13 years ago

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

Searchable as RT87184$

p5pRT commented 13 years ago

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 commented 13 years ago

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 commented 13 years ago

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 commented 13 years ago

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 commented 13 years ago

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

p5pRT commented 13 years ago

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 commented 13 years ago

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 commented 13 years ago

From rmbarker.cpan@btinternet.com

0001-avoid-unused-but-set.patch ```diff From 186c1e57281e7b185a6217f8e4157f35af386511 Mon Sep 17 00:00:00 2001 From: Robin Barker 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 commented 13 years ago

From rmbarker.cpan@btinternet.com

0002-suppress-unused-but-set-variable-warning.patch ```diff From a4dfe1a7878f15a51b5d5e59ddfcfc1e8848d008 Mon Sep 17 00:00:00 2001 From: Robin Barker 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 commented 13 years ago

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 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 "\" # 1 "\<built-in>" # 1 "\<command-line>" # 1 "\" $ 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 commented 13 years ago

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 e727fa2798ffc794cbb99211cf1a5499354bc1d5

Nicholas Clark

p5pRT commented 13 years ago

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 commented 13 years ago

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 commented 13 years ago

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 commented 13 years ago

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 commented 13 years ago

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@&#8203;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 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 commented 13 years ago

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@&#8203;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 commented 13 years ago

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 commented 13 years ago

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 commented 13 years ago

From @tonycoz

0001-check-whole-archive-is-supported-in-cc.cbu-before-us.patch ```diff From fd6343662ee257267cfe8571c39010cf51d7a182 Mon Sep 17 00:00:00 2001 From: Tony Cook 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 commented 13 years ago

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 commented 13 years ago

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 commented 13 years ago

From @greerga

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

Automated smoke report for 5.14.0 patch f580a93dfe4c980e326a70e8ab035562b0b6dbf7 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 commented 13 years ago

From @greerga

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

Automated smoke report for 5.14.0 patch f580a93dfe4c980e326a70e8ab035562b0b6dbf7 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 commented 13 years ago

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 commented 13 years ago

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 commented 13 years ago

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

p5pRT commented 13 years ago

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/