[Bug debug/109161] Bad CTF generated for stub in function scope

2023-03-28 Thread nix at esperi dot org.uk via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109161

Nix  changed:

   What|Removed |Added

 CC||nix at esperi dot org.uk

--- Comment #2 from Nix  ---
It definitely shouldn't hang for invalid input, but that sort of proof against
invalid input isn't even implemented for the deduplicator yet, let alone every
other thing that recurses over the type graph. It's on the todo list... and
it's not specific to objdump at all: ctf_dump (objdump/readelf),
ctf_type_rvisit, ctf_type_compat, even foundational libctf stuff like
ctf_type_resolve would hang if, say, we had a CTF_K_CONST node pointing to
itself, even indirectly. This does mean that anything we use to detect cycles
must be *cheap*.

Now I was assuming I could only implement cycle-detection efficiently for the
deduplicator (which would usually suffice, since linking is the first thing
that is usually done to compiler-generated CTF) -- but it occurs to me now that
I could use a similar technique in ctf_type_rvisit, which will handle ctf_dump:
I can probably do the same for the other recursive type-traversing functions,
and handle all of them with the same cycle-detection code, and then CTF
manipulation on raw object files would be safe against cycles too. The
algorithm in question (one of Hellman's more obscure) cannot guarantee
immediate detection of cycles, but it will always detect them eventually, which
is good enough for this application. That's the price we pay for spotting
cycles in constant space with almost no time overhead for the common, acyclic
case.

[Bug bootstrap/98860] [11 Regression] boostrap failure on MinGW-w64 windows 10

2021-02-03 Thread nix at esperi dot org.uk via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98860

--- Comment #24 from Nix  ---
... and ten seconds after I posted that it failed again. Looks like binutils
isn't quite ready for DWARF 5 on Windows yet :(

[Bug bootstrap/98860] [11 Regression] boostrap failure on MinGW-w64 windows 10

2021-02-03 Thread nix at esperi dot org.uk via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98860

--- Comment #23 from Nix  ---
OK, that works: ignore me, in my case it was just using a too old binutils.
(The error message emitted is... unhelpful: exec format error, really?)

[Bug bootstrap/98860] [11 Regression] boostrap failure on MinGW-w64 windows 10

2021-02-03 Thread nix at esperi dot org.uk via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98860

Nix  changed:

   What|Removed |Added

 CC||nix at esperi dot org.uk

--- Comment #22 from Nix  ---
I can confirm the same failure with an x86_64-pc-cygwin native build using a
GCC trunk current as of Jan 12 (a bit old, sorry) and, oh dear this might
explain it, binutils 2.35.1.

Trying again with trunk binutils now.

[Bug target/65248] Copy relocation against protected symbol doesn't work

2016-07-01 Thread nix at esperi dot org.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248

--- Comment #11 from Nix  ---
The symptoms are failures to link with "relocation against protected symbol is
invalid" errors which go away when you use gold. (You can see it if you try to
build firefox, for instance.)

[Bug target/65248] Copy relocation against protected symbol doesn't work

2016-06-18 Thread nix at esperi dot org.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248

Nix  changed:

   What|Removed |Added

 CC||nix at esperi dot org.uk

--- Comment #9 from Nix  ---
Thirded. At the very least there should be a huge note in binutils NEWS about
this. A subtle, unadvertised incompatibility of a new binutils with a
not-very-old GCC is the sort of horror show that gives free software a bad
name. At the very least make more noise about it.

[Bug pch/68176] [4.9/5/6 Regression] all pch tests fail on eglibc systems (with bits/predefs.h)

2016-01-28 Thread nix at esperi dot org.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68176

--- Comment #11 from Nix  ---
Confirmed fixed (properly this time).

[Bug pch/68176] [4.9/5/6 Regression] all pch tests fail on eglibc systems (with bits/predefs.h)

2016-01-28 Thread nix at esperi dot org.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68176

--- Comment #10 from Nix  ---
Argh, scratch that -- I need to test a tree that *doesn't* have the original
patch reverted! Doing that now, will report back once that's done.

[Bug pch/68176] [4.9/5/6 Regression] all pch tests fail on eglibc systems (with bits/predefs.h)

2016-01-28 Thread nix at esperi dot org.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68176

--- Comment #9 from Nix  ---
Tested on the same old GCC 4.9 build tree and eglibc system that failed in the
original report (for maximum reproducibility): it works, the regression is
cured.

[Bug pch/68176] [4.9/5/6 Regression] all pch tests fail on eglibc systems (with bits/predefs.h)

2016-01-18 Thread nix at esperi dot org.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68176

--- Comment #5 from Nix  ---
I didn't think of that (I try to forget that fixincludes exists because it
gives me nightmares). But much though I hate fixincludes, this sort of fix (to
headers for an obsolete program which will by definition never be fixed) is
more or less exactly what it was designed for, and seems a perfect fit for this
case. The question is whether further adjustments are needed to compensate for
the removal of ... I'll do some experimentation.

[Bug pch/68176] [4.9/5/6 Regression] all pch tests fail on eglibc systems (with bits/predefs.h)

2015-11-02 Thread nix at esperi dot org.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68176

--- Comment #3 from Nix  ---
I haven't tested that yet, so I wasn't willing to commit to it. It seems very
likely though.

(I wasn't sure of protocol, or I'd have put you in the Cc list as the author of
the fix for bug 65550, but I was afraid that might seem spammy... glad to see
you spotted the bug going by anyway.)

[Bug pch/68176] [4.8/4.9 Regression] all pch tests fail on eglibc systems (with bits/predefs.h)

2015-11-01 Thread nix at esperi dot org.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68176

--- Comment #1 from Nix  ---
I can confirm that reverting the fix for bug 65550 makes the pch failures go
away on my increasingly creaky eglibc 2.18 systems. So that's the smoking gun.

[Bug pch/68176] New: [4.8/4.9 Regression] all pch tests fail on eglibc systems (with bits/predefs.h)

2015-11-01 Thread nix at esperi dot org.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68176

Bug ID: 68176
   Summary: [4.8/4.9 Regression] all pch tests fail on eglibc
systems (with bits/predefs.h)
   Product: gcc
   Version: 4.9.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: pch
  Assignee: unassigned at gcc dot gnu.org
  Reporter: nix at esperi dot org.uk
  Target Milestone: ---

Since the fix to bug 65550, more or less all pch tests fail, with symptoms
identical to those reported in bug 55399:

FAIL: gcc.dg/pch/common-1.c  -O0 -g -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c -O0 -g assembly comparison
FAIL: gcc.dg/pch/common-1.c   -O0  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c  -O0  assembly comparison
FAIL: gcc.dg/pch/common-1.c   -O1  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c  -O1  assembly comparison
FAIL: gcc.dg/pch/common-1.c   -O2  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c  -O2  assembly comparison
FAIL: gcc.dg/pch/common-1.c   -O3 -fomit-frame-pointer  -I. -Dwith_PCH (test
for excess errors)
FAIL: gcc.dg/pch/common-1.c  -O3 -fomit-frame-pointer  assembly comparison
FAIL: gcc.dg/pch/common-1.c   -O3 -g  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c  -O3 -g  assembly comparison
FAIL: gcc.dg/pch/common-1.c   -Os  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c  -Os  assembly comparison
FAIL: gcc.dg/pch/counter-1.c  -O0 -g -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c -O0 -g assembly comparison
FAIL: gcc.dg/pch/counter-1.c   -O0  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c  -O0  assembly comparison
FAIL: gcc.dg/pch/counter-1.c   -O1  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c  -O1  assembly comparison
FAIL: gcc.dg/pch/counter-1.c   -O2  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c  -O2  assembly comparison
FAIL: gcc.dg/pch/counter-1.c   -O3 -fomit-frame-pointer  -I. -Dwith_PCH (test
for excess errors)
FAIL: gcc.dg/pch/counter-1.c  -O3 -fomit-frame-pointer  assembly comparison
FAIL: gcc.dg/pch/counter-1.c   -O3 -g  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c  -O3 -g  assembly comparison
FAIL: gcc.dg/pch/counter-1.c   -Os  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c  -Os  assembly comparison
[etc etc ad nauseam]

The failures are all identical in the logs: a refusal to use common-1.h.gch,
thus an attempt to find common-1.h, which has specifically been removed to
ensure that PCH is used.

The underlying cause of this is that on eglibc -- but not glibc -- systems,
/usr/include/stdc-predef.h itself includes , and that
inclusion, being done by a normal #include, does not get implicit_preinclude
set. So all PCH inclusion fails, spuriously.

eglibc is pretty dead by now: it may be that we don't care about this. But
there are still systems using it, and they were broken by this change.

[Bug other/50639] -flto=jobserver broken on large LTO build

2012-01-22 Thread nix at esperi dot org.uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50639

Nix  changed:

   What|Removed |Added

 CC||nix at esperi dot org.uk

--- Comment #1 from Nix  2012-01-23 01:18:58 UTC ---
I can confirm the same symptoms while bootstrapping GCC on the head of the GCC
4.6 branch, with a bootstrap-lto profiledbootstrap, and GNU make 3.82. During
the stage3 (profilegenerate) libgcc build, the build suddenly stops with:

make[6]: *** read jobs pipe: No such file or directory.  Stop.
make[6]: *** Waiting for unfinished jobs
lto-wrapper: make returned 2 exit status
/usr/bin/ld: lto-wrapper failed
collect2: ld returned 1 exit status
make[5]: *** [libgcc_s.so] Error 1

This failure appears consistent, so whatever it is it's not a race (or, if it
is, it's fearfully easy to hit).