[saucy] c++config.h missing in i386

Bug #1215572 reported by Thomas Karl Pietrowski
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
LLVM
New
Undecided
Unassigned
llvm-toolchain-snapshot (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

I'm not really sure about clang and I'm sorry if I'm wrong, but I found something curious while packaging gnustep in my own PPA.
While building gnustep-libobjc2 on launchpad and locally in pbuilder I found out that my build is missing a header, as you can see here:
https://launchpad.net/~thopiekar/+archive/darling/+build/4896672
On amd64 this header seems to be present as builds don't fail and if I switch to clang-3.2 on saucy i386 the same code gets built very well.

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: clang-3.4 1:3.4~svn183914-1ubuntu1
ProcVersionSignature: Ubuntu 3.11.0-3.7-generic 3.11.0-rc6
Uname: Linux 3.11.0-3-generic x86_64
ApportVersion: 2.12.1-0ubuntu2
Architecture: amd64
Date: Thu Aug 22 20:16:49 2013
InstallationDate: Installed on 2013-06-26 (57 days ago)
InstallationMedia: Kubuntu 13.04 "Raring Ringtail" - Release amd64 (20130424)
MarkForUpload: True
SourcePackage: llvm-toolchain-snapshot
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Thomas Karl Pietrowski (thopiekar) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in llvm-toolchain-snapshot (Ubuntu):
status: New → Confirmed
tags: removed: amd64
Revision history for this message
Greg King (greg-james-king) wrote :
Download full text (3.7 KiB)

A few details might be relevant here. The directory searched for some of C/C++ standard headers (libstdc++) is wrong for i386/i686 (it should search /usr/include/c++/4.8 and /usr/include/i386-linux-gnu/c++/4.8);

(1) /usr/include/c++/4.8 is searched
(2) /usr/include/i386-linux-gnu/c++/4.8 is __NOT__ searched

A workaround is to add an additional include search path (if you are using 4.8) when compiling with clang++:
    -I/usr/include/i386-linux-gnu/c++/4.8
----------------------------------------------------------
the warning below during the compile command (highlights the problem):
   ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/i686-linux-gnu/c++/4.8"
----------------------------------------------------------

Compiling on i386/686 (Saucy), using clang++ -v ....:

clang++ -v -Wno-deprecated -Woverloaded-virtual -Wall -W -Wextra -Wshadow -ggdb3 -O3 -c random_base_impl.cpp -DTRACEOUT -I. --std=c++11 -o random_base_impl.o
Ubuntu clang version 3.4-1ubuntu1 (trunk) (based on LLVM 3.4)
Target: i386-pc-linux-gnu
Thread model: posix
 "/usr/bin/clang" -cc1 -triple i386-pc-linux-gnu -emit-obj -disable-free -disable-llvm-verifier -main-file-name random_base_impl.cpp -mrelocation-model static -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu pentium4 -target-linker-version 2.23.52.20130727 -momit-leaf-frame-pointer -v -g -coverage-file /home/gking/Programming/mystudy_without_photon_cut/epc_cpp/test/epc_test/refactoring/random_base_impl.o -resource-dir /usr/bin/../lib/clang/3.4 -D TRACEOUT -I . -internal-isystem /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8 -internal-isystem /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/i686-linux-gnu -internal-isystem /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/backward -internal-isystem /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/i686-linux-gnu/c++/4.8 -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.4/include -internal-isystem /usr/include/clang/3.4/include/ -internal-externc-isystem /usr/include/i386-linux-gnu -internal-externc-isystem /usr/include/i686-linux-gnu -internal-externc-isystem /usr/include -O3 -Wno-deprecated -Woverloaded-virtual -Wall -W -Wextra -Wshadow --std=c++11 -fdebug-compilation-dir /home/gking/Programming/mystudy_without_photon_cut/epc_cpp/test/epc_test/refactoring -ferror-limit 19 -fmessage-length 213 -mstackrealign -fobjc-runtime=gcc -fobjc-default-synthesize-properties -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -backend-option -vectorize-loops -o random_base_impl.o -x c++ random_base_impl.cpp
clang -cc1 version 3.4 based upon LLVM 3.4 default target i386-pc-linux-gnu
ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/i686-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/i686-linux-gnu/c++/4.8"
ignoring nonexistent directory "/usr/bin/../lib/clang/3.4/include"
ignoring nonexistent directory "/usr/include/i686-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
 .
 /usr/lib/gcc/i686-linux-gnu/4....

Read more...

Revision history for this message
pdknsk (pdknsk) wrote :

This appears to be a familiar bug, that was already fixed at some point.

http://llvm.org/bugs/show_bug.cgi?id=11223#c11

Revision history for this message
pdknsk (pdknsk) wrote :

This is the revision referenced in the bug report.

http://llvm.org/viewvc/llvm-project?view=revision&revision=144165

Revision history for this message
pdknsk (pdknsk) wrote :

I have installed clang-3.4 from the official repositories - same problem.

http://llvm.org/apt/

Revision history for this message
Thomas Karl Pietrowski (thopiekar) wrote :

clang-3.4 is provided by llvm-toolchain-snapshot. The same problem is also present on clang-3.3.

Revision history for this message
pdknsk (pdknsk) wrote :

In clang-3.5 this is fixed.

http://llvm.org/apt/

Revision history for this message
mreichardt (mreichardt) wrote :

I believe this bug is fixed in Ubuntu 14.04.
I have the same kind of clang compiler errors with Ubuntu 13.10 (i386).
They no longer occur with Ubuntu 14.04 (i386; using clang-3.4).

Matthias Klose (doko)
Changed in llvm-toolchain-snapshot (Ubuntu):
status: Confirmed → Fix Released
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.