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...

Bryan Drewery bdrewery at FreeBSD.org
Fri May 27 23:04:04 UTC 2016


On 5/27/2016 12:18 PM, Bryan Drewery wrote:
> On 5/27/2016 12:09 PM, Alan Somers wrote:
>> On Fri, May 27, 2016 at 10:19 AM, Dimitry Andric <dim at freebsd.org> wrote:
>>> On 27 May 2016, at 18:01, Alan Somers <asomers at freebsd.org> wrote:
>>>>
>>>> On Fri, May 27, 2016 at 9:42 AM, Dimitry Andric <dim at freebsd.org> wrote:
>>> ...
>>>>> 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.
>>>
>>> The problem appears to be that the .../usr/include/c++/v1 directory
>>> should come *before* the .../usr/include directory, otherwise the
>>> #include_next<> logic will not work as expected.
>>>
>>> This is most likely caused by the option:
>>>
>>>   -isystem /scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include
>>>
>>> because that forces this path to become before any auto-detected system
>>> include directory.  Note that this option is not needed, since the other
>>> option:
>>>
>>>   --sysroot=/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32
>>>
>>> is already taking care of adding the right include directories.  It even
>>> warns about the duplicate directory:
>>>
>>>   ignoring duplicate directory
>>>   "/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/include"
>>>
>>> So what happens if you delete the -isystem option and its argument?
>>>
>>> -Dimitry
>>>
>>
>> If I take out -isystem, it compiles successfully.
>>
> 
> I'm looking at this more now.  I added that -isystem in, but it should
> have only been there for external GCC usage from first glance.
> 

It should all be fixed now after r300886.

-- 
Regards,
Bryan Drewery

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20160527/662f719a/attachment.sig>


More information about the svn-src-head mailing list