Bug 20436 - Testsuite ld-plugin/lto.exp fails
Summary: Testsuite ld-plugin/lto.exp fails
Status: RESOLVED FIXED
Alias: None
Product: binutils
Classification: Unclassified
Component: ld (show other bugs)
Version: 2.27
: P2 normal
Target Milestone: 2.28
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-04 17:49 UTC by jb999@gmx.de
Modified: 2016-08-11 14:43 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
Try this (863 bytes, patch)
2016-08-05 20:38 UTC, H.J. Lu
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description jb999@gmx.de 2016-08-04 17:49:05 UTC
The testsuite of 2.27 fails (2.26.1 was OK):

Running /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto.exp ...
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-1a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-1b.c: compilation failed
FAIL: LTO 1
FAIL: LTO 1
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-2.c: compilation failed
FAIL: LTO 2
FAIL: LTO 2
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-3a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-3b.c: compilation failed
FAIL: Build liblto-3.a
FAIL: Build liblto-3.a
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-5a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-5b.c: compilation failed
FAIL: LTO 6
FAIL: LTO 6
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr12365a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr12365b.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr12365c.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-9.cc: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-11a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-11b.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-12c.c: compilation failed
FAIL: Build liblto-12.a
FAIL: Build liblto-12.a
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-12a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-12b.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-13a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-13b.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-14a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-14b.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-14c.c: compilation failed
FAIL: Build liblto-14.a
FAIL: Build liblto-14.a
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-15a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-15b.c: compilation failed
FAIL: Build liblto-15.a
FAIL: Build liblto-15.a
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr12696-1.cc: compilation failed
FAIL: PR ld/12696
FAIL: PR ld/12696
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr12758b.c: compilation failed
FAIL: Build libpr12758.a
FAIL: Build libpr12758.a
FAIL: PR ld/12758
FAIL: PR ld/12758
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr12760b.c: compilation failed
FAIL: Build libpr12760.a
FAIL: Build libpr12760.a
FAIL: PR ld/12760
FAIL: PR ld/12760
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr13183a.c: compilation failed
FAIL: Build libpr13183.a
FAIL: Build libpr13183.a
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr13183b.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr13201.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr13287.cc: compilation failed
FAIL: PR ld/13287
FAIL: PR ld/13287
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr15323a.c: compilation failed
FAIL: PR ld/15323 (2)
FAIL: PR ld/15323 (2)
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr16846a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr16846b.c: compilation failed
FAIL: PR ld/pr16846(1)
FAIL: PR ld/pr16846(1)
FAIL: PR ld/pr16846(2)
FAIL: PR ld/pr16846(2)
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr19317.c: compilation failed
FAIL: PR ld/19317 (1)
FAIL: PR ld/19317 (1)
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr20276b.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr20267b.c: compilation failed
FAIL: Build libpr20267a.a
FAIL: Build libpr20267a.a
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr20267b.c: compilation failed
FAIL: Build libpr20267b.a
FAIL: Build libpr20267b.a
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr12942a.cc: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr12942c.cc: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-7a.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-7b.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-7c.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-8b.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-17a.c: compilation failed
FAIL: Build liblto-17a.so
FAIL: Build liblto-17a.so
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-17b.c: compilation failed
FAIL: Build liblto-17b.so 1
FAIL: Build liblto-17b.so 1
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/lto-17b.c: compilation failed
FAIL: Build liblto-17b.so 2
FAIL: Build liblto-17b.so 2
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr12982.c: compilation failed
FAIL: PR ld/12982
FAIL: PR ld/12982
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr12975.c: compilation failed
FAIL: PR ld/12975
FAIL: PR ld/12975
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr13229.cc: compilation failed
FAIL: PR ld/13229
FAIL: PR ld/13229
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr13244.c: compilation failed
FAIL: PR ld/13244
FAIL: PR ld/13244
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr15146a.c: compilation failed
FAIL: Build libpr15146a.a
FAIL: Build libpr15146a.a
FAIL: PR ld/15146 (1)
FAIL: PR ld/15146 (1)
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr15146d.c: compilation failed
FAIL: Build libpr15146d.a
FAIL: Build libpr15146d.a
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr16746c.c: compilation failed
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr16746d.c: compilation failed
FAIL: Build libpr16746b.a
FAIL: Build libpr16746b.a
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/dummy.c: compilation failed
FAIL: PR ld/16746 (1)
FAIL: PR ld/16746 (1)
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/dummy.c: compilation failed
FAIL: PR ld/16746 (2)
FAIL: PR ld/16746 (2)
ERROR: /tmp/binutils-2.27/ld/testsuite/ld-plugin/pr14918.c: compilation failed
FAIL: PR ld/14918
FAIL: PR ld/14918
FAIL: PR ld/15146 (2)
FAIL: PR ld/16746 (3)
FAIL: PR ld/16746 (4)

gcc is 4.9.3 and configured --disable-plugin --disable-lto.
Comment 1 Nick Clifton 2016-08-05 10:50:48 UTC
Hi H.J.

  Please could you look at this bug report:

https://sourceware.org/bugzilla/show_bug.cgi?id=20436

  It appears to be a direct consequence of your patch from 2016-04-21:

	* testsuite/lib/ld-lib.exp (check_lto_available): Return 1 on
	Linux with GCC 4.9 or newer.
	(check_lto_fat_available): Likewise.
	(check_lto_shared_available): Likewise.

Cheers
  Nick

PS.  Incidentally, I could not find that entry in the ld/ChangeLog file.
  Was it omitted ?
Comment 2 H.J. Lu 2016-08-05 15:13:41 UTC
(In reply to Nick Clifton from comment #1)
> Hi H.J.
> 
>   Please could you look at this bug report:
> 
> https://sourceware.org/bugzilla/show_bug.cgi?id=20436
> 
>   It appears to be a direct consequence of your patch from 2016-04-21:
> 
> 	* testsuite/lib/ld-lib.exp (check_lto_available): Return 1 on
> 	Linux with GCC 4.9 or newer.

When there is a LTO bug in ld, check_lto_available will fail even if GCC
supports LTO.  We need to check if LTO is disabled.

> 	(check_lto_fat_available): Likewise.
> 	(check_lto_shared_available): Likewise.
> 
> Cheers
>   Nick
> 
> PS.  Incidentally, I could not find that entry in the ld/ChangeLog file.
>   Was it omitted ?

I missed it.
Comment 3 H.J. Lu 2016-08-05 20:38:33 UTC
Created attachment 9425 [details]
Try this
Comment 4 jb999@gmx.de 2016-08-06 10:13:36 UTC
(In reply to H.J. Lu from comment #3)
> Created attachment 9425 [details]
> Try this

The testsuite passes now, thanks.
Comment 5 Sourceware Commits 2016-08-09 23:42:19 UTC
The master branch has been updated by H.J. Lu <hjl@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5ff559107a34a664abf7db01cc9db93e3597d466

commit 5ff559107a34a664abf7db01cc9db93e3597d466
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 9 16:41:12 2016 -0700

    Skip LTO tests for --disable-plugin
    
    Don't run LTO tests if compiler is configured with --disable-plugin.
    
    	PR ld/20436
    	* testsuite/lib/ld-lib.exp (check_gcc_plugin_enabled): New
    	proc.
    	(check_lto_available): Return 0 if check_gcc_plugin_enabled
    	returns 0.
    	(check_lto_fat_available): Likewise.
    	(check_lto_shared_available): Likewise.
Comment 6 H.J. Lu 2016-08-09 23:44:25 UTC
Fixed for 2.28.
Comment 7 Sourceware Commits 2016-08-11 09:23:48 UTC
The master branch has been updated by Nick Clifton <nickc@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7f6bf02d58c837d0a5f1e266058cc0e6bd6fc318

commit 7f6bf02d58c837d0a5f1e266058cc0e6bd6fc318
Author: Nick Clifton <nickc@redhat.com>
Date:   Thu Aug 11 10:22:41 2016 +0100

    Avoid testsuite errors about missing compilers.
    
    	PR ld/20436
    	* testsuite/lib/ld-lib.exp (check_gcc_plugin_enabled): When not
    	testing remotely, check to see if target compiler is installed
    	before trying to run it.
Comment 8 Sourceware Commits 2016-08-11 14:43:14 UTC
The master branch has been updated by Alan Modra <amodra@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8be1e36919a884152d7115f4f4b8c0cfcf086a1f

commit 8be1e36919a884152d7115f4f4b8c0cfcf086a1f
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Aug 11 23:42:05 2016 +0930

    Fix ERROR: target-cc does not exist
    
    	PR ld/20436
    	* testsuite/lib/ld-lib.exp (at_least_gcc_version): Don't ignore
    	remote_exec status.
    	(check_gcc_plugin_enabled): Likewise.