iwyu tries and fails to include stddef.h

Bug #1832599 reported by Jeff Abrahamson
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
iwyu (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

iwyu tries to include stddef.h, fails, and emits a fatal error. But compiling the same file succeeds.

jeff@birdsong:tmp $ cat foo.cc
#include <string>

std::string hello;
jeff@birdsong:tmp $ iwyu -v -std=c++14 foo.cc
clang version 5.0.1-2 (tags/RELEASE_501/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.4.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0
Candidate multilib: .;@m64
Selected multilib: .;@m64
clang invocation:
 "/usr/bin/include-what-you-use" "-cc1" "-triple" "x86_64-pc-linux-gnu" "-fsyntax-only" "-disable-free" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "foo.cc" "-mrelocation-model" "static" "-mthread-model" "posix" "-mdisable-fp-elim" "-fmath-errno" "-masm-verbose" "-mconstructor-aliases" "-munwind-tables" "-fuse-init-array" "-target-cpu" "x86-64" "-v" "-dwarf-column-info" "-debugger-tuning=gdb" "-resource-dir" "/usr/lib/clang/5.0.1" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/x86_64-linux-gnu/c++/7.4.0" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/x86_64-linux-gnu/c++/7.4.0" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/backward" "-internal-isystem" "/usr/include/clang/5.0.1/include/" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib/clang/5.0.1/include" "-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-std=c++14" "-fdeprecated-macro" "-fdebug-compilation-dir" "/tmp" "-ferror-limit" "19" "-fmessage-length" "105" "-fobjc-runtime=gcc" "-fcxx-exceptions" "-fexceptions" "-fdiagnostics-show-option" "-x" "c++" "foo.cc"

clang -cc1 version 5.0.1 based upon LLVM 5.0.1 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/include/clang/5.0.1/include/"
ignoring nonexistent directory "/usr/lib/clang/5.0.1/include"
ignoring nonexistent directory "/include"
ignoring duplicate directory "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/x86_64-linux-gnu/c++/7.4.0"
#include "..." search starts here:
#include <...> search starts here:
 /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0
 /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/x86_64-linux-gnu/c++/7.4.0
 /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/backward
 /usr/local/include
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
In file included from foo.cc:1:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/string:40:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/bits/char_traits.h:40:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/bits/postypes.h:40:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/cwchar:44:
/usr/include/wchar.h:35:10: fatal error: 'stddef.h' file not found
#include <stddef.h>
         ^~~~~~~~~~

(foo.cc has correct #includes/fwd-decls)
2, jeff@birdsong:tmp $

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: iwyu 5.0-1
ProcVersionSignature: Ubuntu 4.15.0-47.50-generic 4.15.18
Uname: Linux 4.15.0-47-generic x86_64
ApportVersion: 2.20.9-0ubuntu7.6
Architecture: amd64
CurrentDesktop: i3
Date: Wed Jun 12 16:24:07 2019
EcryptfsInUse: Yes
InstallationDate: Installed on 2015-10-23 (1328 days ago)
InstallationMedia: Ubuntu 15.04 "Vivid Vervet" - Release amd64 (20150422)
SourcePackage: iwyu
UpgradeStatus: Upgraded to bionic on 2018-06-14 (363 days ago)

Revision history for this message
Jeff Abrahamson (jeff-purple) wrote :
Revision history for this message
Jeff Abrahamson (jeff-purple) wrote :
Revision history for this message
Martin (martid0311) wrote :

Has there been any issue on this? As a result of this issue, IWYU doesn't work on any projects which include, say, stdlib.h, which makes it completely useless.

While there is an associated upstream bug (https://github.com/include-what-you-use/include-what-you-use/issues/100 being the canonical github issue for it), it can be worked around: https://github.com/include-what-you-use/include-what-you-use#how-to-install. Clearly, the Ubuntu IWYU package doesn't follow those instructions, so this seems like a packaging bug.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in iwyu (Ubuntu):
status: New → Confirmed
Revision history for this message
Martin (martid0311) wrote :

Actually, this seems to be fixed by installing the `libclang-common-11-dev` package. That makes this basically just a repeat of https://bugs.launchpad.net/ubuntu/+source/iwyu/+bug/1769334.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.