Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 May 2016 10:01:14 -0600
From:      Alan Somers <asomers@freebsd.org>
To:        Dimitry Andric <dim@freebsd.org>
Cc:        "src-committers@freebsd.org" <src-committers@freebsd.org>,  "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>,  "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r300770 - in head: . contrib/libc++/include contrib/libc++/include/experimental contrib/libc++/include/ext contrib/libc++/src contrib/libc++/src/include contrib/libc++/src/support lib/l...
Message-ID:  <CAOtMX2hs5ZJT14fSXsFYsi%2Bo=hJ04_Q-dgnP5nJ9Ub543Dv5sg@mail.gmail.com>
In-Reply-To: <CCBCA662-E090-488E-BFB4-55B5153CFAE1@FreeBSD.org>
References:  <201605261852.u4QIqn5w073953@repo.freebsd.org> <CAOtMX2jRZ0ZyW5Hw1ESp6EpADa_qvX5QFPHjkgUAFjdHB1OBKA@mail.gmail.com> <D36A3E43-3FFC-4B6A-8BC2-6B7A981FBDCB@FreeBSD.org> <CAOtMX2iaNfs6XY8D9QdY9=FY95mi6TKp=_QCe4eETW7YpYhYHA@mail.gmail.com> <CCBCA662-E090-488E-BFB4-55B5153CFAE1@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, May 27, 2016 at 9:42 AM, Dimitry Andric <dim@freebsd.org> wrote:
> On 27 May 2016, at 17:32, Alan Somers <asomers@freebsd.org> wrote:
>>
>> On Fri, May 27, 2016 at 9:28 AM, Dimitry Andric <dim@freebsd.org> wrote:
>>> On 27 May 2016, at 16:49, Alan Somers <asomers@freebsd.org> wrote:
>>>>
>>>> I think this change is breaking the build of C++ applications.  Below
>>>> is a snippet of my amd64 buildworld, with the changes in D6564.  it
>>>> built fine a few days ago.
> ...
>>> It shouldn't, it passed a full make universe.  Do you have any special
>>> settings in either make.conf or src.conf?  Or something other about your
>>> build environment that is non-standard?
> ...
>>
>> Ahh, but when you ran "make universe" there were not yet any C++
>> things in lib/.  My patch adds a C++ library, and it fails when
>> building the 32-bit version.  Here's the actual command that failed.
>> I don't know why it failed, because
>> /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/stddef.h
>> _does_ exist.
>>
>> c++ -m32 -DCOMPAT_32BIT -march=i686 -mmmx -msse -msse2
>> -L/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/lib32
>> --sysroot=/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32
>> -B/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/lib32
>> -isystem /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include
>>  -O2 -pipe -MD -MF.depend.consumer.o -MTconsumer.o
>> -fstack-protector-strong -Wsystem-headers -Werror -Wall
>> -Wno-format-y2k -W -Wno-unused-parameter -Wpointer-arith
>> -Wno-uninitialized -Wno-empty-body -Wno-string-plus-int
>> -Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-value
>> -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion
>> -Wno-unused-local-typedef -Qunused-arguments  -Wno-c++11-extensions
>> -c /home/asomers/freebsd/head/lib/libdevdctl/consumer.cc -o consumer.o
>> ...
>> --- all_subdir_lib/libdevdctl ---
>> In file included from /home/asomers/freebsd/head/lib/libdevdctl/event.cc:55:
>> In file included from
>> /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/iostream:38:
>> In file included from
>> /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/ios:216:
>> In file included from
>> /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/__locale:15:
>> In file included from
>> /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/string:439:
>> In file included from
>> /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/algorithm:624:
>> In file included from
>> /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/initializer_list:47:
>> /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/cstddef:43:15:
>> fatal error: 'stddef.h' file not found
>> #include_next <stddef.h>
>>              ^
>
> I think what happens is the same what happened with some ports.  For
> various reasons, the include path needs to be modified, and this causes
> the header lookup to fail, when using #include_next<>.
>
> Can you run the above command manually, but adding -v so it will print
> out the full include paths it searches, and the order?
>
> My guess is that either ${MAKEOBJDIRPREFIX}/usr/include/c++/v1 needs to
> be added to the C++ include path, or some other path in the list is
> missing, at least for C++ compilation.
>
> -Dimitry

Here it is.  It looks right to me;
$MAKEOBJDIRPREFIX/home/asomers/freebsd/head/lib32/usr/include/c++/v1
is in the path, and stddef.h exists in that directory.

$ c++ -v -m32 -DCOMPAT_32BIT -march=i686 -mmmx -msse -msse2
-L/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/lib32
--sysroot=/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32
-B/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/lib32
-isystem /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include
  -O2 -pipe -MD -MF.depend.consumer.o -MTconsumer.o
-fstack-protector-strong -Wsystem-headers -Werror -Wall
-Wno-format-y2k -W -Wno-unused-parameter -Wpointer-arith
-Wno-uninitialized -Wno-empty-body -Wno-string-plus-int
-Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-value
-Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion
-Wno-unused-local-typedef -Qunused-arguments  -Wno-c++11-extensions
-c /home/asomers/freebsd/head/lib/libdevdctl/consumer.cc -o consumer.o
FreeBSD clang version 3.8.0 (tags/RELEASE_380/final 262564) (based on
LLVM 3.8.0)
Target: i386-unknown-freebsd11.0
Thread model: posix
InstalledDir: /scratch/tmp/asomers/obj/home/asomers/freebsd/head/tmp/usr/bin
 "/scratch/tmp/asomers/obj/home/asomers/freebsd/head/tmp/usr/bin/c++"
-cc1 -triple i386-unknown-freebsd11.0 -emit-obj -disable-free
-main-file-name consumer.cc -mrelocation-model static -mthread-model
posix -mdisable-fp-elim -masm-verbose -mconstructor-aliases
-target-cpu i686 -target-feature +mmx -target-feature +sse
-target-feature +sse2 -v -dwarf-column-info -debugger-tuning=gdb
-coverage-file /scratch/tmp/asomers/obj/home/asomers/freebsd/head/world32/home/asomers/freebsd/head/lib/libdevdctl/consumer.o
-resource-dir /scratch/tmp/asomers/obj/home/asomers/freebsd/head/tmp/usr/bin/../lib/clang/3.8.0
-dependency-file .depend.consumer.o -sys-header-deps -MT consumer.o
-isystem /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include
-D COMPAT_32BIT -isysroot
/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32
-internal-isystem
/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1
-O2 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W
-Wno-unused-parameter -Wpointer-arith -Wno-uninitialized
-Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable
-Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality
-Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef
-Wno-c++11-extensions -fdeprecated-macro -fdebug-compilation-dir
/scratch/tmp/asomers/obj/home/asomers/freebsd/head/world32/home/asomers/freebsd/head/lib/libdevdctl
-ferror-limit 19 -fmessage-length 80 -stack-protector 2
-fobjc-runtime=gnustep -fcxx-exceptions -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops
-vectorize-slp -o consumer.o -x c++
/home/asomers/freebsd/head/lib/libdevdctl/consumer.cc
clang -cc1 version 3.8.0 based upon LLVM 3.8.0 default target
x86_64-unknown-freebsd11.0
ignoring duplicate directory
"/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include"
#include "..." search starts here:
#include <...> search starts here:
 /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include
 /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1
 /scratch/tmp/asomers/obj/home/asomers/freebsd/head/tmp/usr/bin/../lib/clang/3.8.0/include
End of search list.
In file included from /home/asomers/freebsd/head/lib/libdevdctl/consumer.cc:50:
In file included from
/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/list:173:
In file included from
/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/memory:599:
In file included from
/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/type_traits:363:
/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include/c++/v1/cstddef:43:15:
fatal error:
      'stddef.h' file not found
#include_next <stddef.h>
              ^
1 error generated.

-Alan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2hs5ZJT14fSXsFYsi%2Bo=hJ04_Q-dgnP5nJ9Ub543Dv5sg>