Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 May 2016 18:19:48 +0200
From:      Dimitry Andric <dim@FreeBSD.org>
To:        Alan Somers <asomers@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:  <F931C2E9-BEC3-415C-A840-541EFD378D0C@FreeBSD.org>
In-Reply-To: <CAOtMX2hs5ZJT14fSXsFYsi%2Bo=hJ04_Q-dgnP5nJ9Ub543Dv5sg@mail.gmail.com>
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> <CAOtMX2hs5ZJT14fSXsFYsi%2Bo=hJ04_Q-dgnP5nJ9Ub543Dv5sg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_91EE3D21-D070-4DE2-B0EA-21E83357C3B9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 27 May 2016, at 18:01, Alan Somers <asomers@freebsd.org> wrote:
>=20
> On Fri, May 27, 2016 at 9:42 AM, Dimitry Andric <dim@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.
>>=20
>> -Dimitry
>=20
> 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.
>=20
> $ c++ -v -m32 -DCOMPAT_32BIT -march=3Di686 -mmmx -msse -msse2
> -L/scratch/tmp/asomers/obj/home/asomers/freebsd/head/lib32/usr/lib32
> --sysroot=3D/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=3Dgdb
> -coverage-file =
/scratch/tmp/asomers/obj/home/asomers/freebsd/head/world32/home/asomers/fr=
eebsd/head/lib/libdevdctl/consumer.o
> -resource-dir =
/scratch/tmp/asomers/obj/home/asomers/freebsd/head/tmp/usr/bin/../lib/clan=
g/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++/v=
1
> -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/fr=
eebsd/head/lib/libdevdctl
> -ferror-limit 19 -fmessage-length 80 -stack-protector 2
> -fobjc-runtime=3Dgnustep -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++/v=
1
> =
/scratch/tmp/asomers/obj/home/asomers/freebsd/head/tmp/usr/bin/../lib/clan=
g/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=3D/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


--Apple-Mail=_91EE3D21-D070-4DE2-B0EA-21E83357C3B9
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.30

iEYEARECAAYFAldIc6kACgkQsF6jCi4glqMloACgzn41J+VYNH1mQmGdIFCyrZ4c
kcAAoO/CguO2a467IOnIw1qP5ireBRJs
=yAU+
-----END PGP SIGNATURE-----

--Apple-Mail=_91EE3D21-D070-4DE2-B0EA-21E83357C3B9--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F931C2E9-BEC3-415C-A840-541EFD378D0C>