Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Aug 2016 13:31:44 -0400
From:      Julio Merino <julio@meroh.net>
To:        Li-Wen Hsu <lwhsu@freebsd.org>
Cc:        Dimitry Andric <dim@freebsd.org>,  "freebsd-testing@freebsd.org" <freebsd-testing@freebsd.org>,  "jenkins-admin@freebsd.org" <jenkins-admin@freebsd.org>, Bryan Drewery <bdrewery@freebsd.org>
Subject:   Re: Jenkins build is still unstable: FreeBSD_HEAD #564
Message-ID:  <CADyfeQXsJ_H1FbT4ZUhD_D=ZbrgpSGS%2BLYf2VowG3ugVt_gcmA@mail.gmail.com>
In-Reply-To: <20160829165725.GA11270@FreeBSD.cs.nctu.edu.tw>
References:  <1491374121.44.1472440150670.JavaMail.jenkins@jenkins-9.freebsd.org> <166099893.51.1472451061454.JavaMail.jenkins@jenkins-9.freebsd.org> <CAG=rPVdZp171Egp=OHWDc3qCgcJDE3HQ0rv-j=i%2BO1LHcfH%2BJQ@mail.gmail.com> <CFA236ED-7DE0-4BE1-B944-52284E2FB6E0@FreeBSD.org> <6E443BB8-0269-4812-A2F4-40AA303E69C6@FreeBSD.org> <CAG=rPVdfgoF0mts-edHATUaefD7YuGtNu5ZTJOa8efUn2W4QuA@mail.gmail.com> <8058052E-A09A-403E-828A-74B51ED4BBF4@FreeBSD.org> <20160829163911.GA51650@FreeBSD.cs.nctu.edu.tw> <E73154DF-6A88-457D-B1FF-6B7F7610C37F@FreeBSD.org> <20160829165725.GA11270@FreeBSD.cs.nctu.edu.tw>

next in thread | previous in thread | raw e-mail | index | archive | help
The -I/usr/include is coming from within ATF. When ATF is built, it gets
the value of /usr/include hardcoded in the ATF_INCLUDEDIR constant, which
is later used for these build-time tests.

I haven't looked closely how --sysroot behaves, but I notice the following
from c++'s manpage (gcc):

       -I dir
           Add the directory dir to the list of directories to be searched
for header files.  Directories named by -I are searched before the standard
system include directories.  If the directory dir is a standard system
include
           directory, the option is ignored to ensure that the default
search order for system directories and the special treatment of system
headers are not defeated .  If dir begins with "=", then the "=" will be
replaced by the
           sysroot prefix; see --sysroot and -isysroot.

Note the mention about =. Maybe the ATF_INCLUDEDIR constant should be
changed to =/usr/include instead of just a bare /usr/include to make sure
the sysroot is respected?


On Mon, Aug 29, 2016 at 12:57 PM, Li-Wen Hsu <lwhsu@freebsd.org> wrote:

> No, /usr/obj is empty while running kyua test.  My VM is installed from
> base.txz & kernel.txz .
>
> Li-Wen
>
> On Mon, Aug 29, 2016 at 18:50:42 +0200, Dimitry Andric wrote:
> > Yes, I've also seen the --sysroot options being added recently.  I'm
> reasonably sure that this is the cause of the error.  Bryan did most of the
> restructuring for external toolchains, which also adds the --sysroot option.
> >
> > Is there an usr/include/c++/v1 under the --sysroot?
> >
> > -Dimitry
> >
> > > On 29 Aug 2016, at 18:39, Li-Wen Hsu <lwhsu@FreeBSD.org> wrote:
> > >
> > > Dimitry, are you talking about case lib.atf.libatf-c++.atf_c++_test.include
> ?
> > >
> > > I happen to have a r304986 VM here:
> > >
> > > https://people.freebsd.org/~lwhsu/tmp/disk-test.img.xz
> > >
> > > (it starts kyua test in /etc/rc.local, just use ctrl-c to interrupt it)
> > >
> > > And there is a /usr/include/c++/v1 directory with sstream in it.
> > >
> > >
> > > BTW, I am not sure removing -I/usr/include is the right solution,  I
> > > think this case is checking for "normal" compiling would work, not
> > > during buildworld.  When this case was passing, it uses following
> > > command:
> > >
> > > c++ -O2 -pipe -DHAVE_CONFIG_H -I/usr/include -Wall -Werror -o test.o
> -c test.cpp
> > >
> > > and now it uses:
> > >
> > > c++ -target x86_64-unknown-freebsd12.0 --sysroot=/usr/obj/usr/src/tmp
> -B/usr/obj/usr/src/tmp/usr/bin -O2 -pipe -DHAVE_CONFIG_H -I/usr/include
> -Wall -Werror -o test.o -c test.cpp
> > >
> > > This changed between r304555 and r304698.
> > >
> > >
> > > Also, does anyone know where is "-I/usr/include" coming from?  Is this
> > > one?
> > > https://svnweb.freebsd.org/base/head/contrib/atf/atf-c%
> 2B%2B/detail/test_helpers.cpp?view=markup#l56
> > >
> > >
> > > Li-Wen
> > >
> > > On Mon, Aug 29, 2016 at 16:02:42 +0200, Dimitry Andric wrote:
> > >> Do you have an /usr/include/c++/v1 directory?  And is there a file
> called "sstream" in it?
> > >>
> > >> If it is there, I think the problem is due to the -I/usr/include
> option in the command line for the test program.  If you remove that, I
> think the compilation will work correctly.
> > >>
> > >> -Dimitry
> > >>
> > >>> On 29 Aug 2016, at 14:55, Craig Rodrigues <rodrigc@freebsd.org>
> wrote:
> > >>>
> > >>> Dimitry,
> > >>>
> > >>> During the Jenkins job, I use installworld/installkernel to build a
> fully bootable bhyve virtual machine.
> > >>> After the virtual machine boots, ssh into it, and do:
> > >>>
> > >>> cd /usr/tests
> > >>> kyua test
> > >>> kyua report --verbose
> > >>>
> > >>>
> > >>> So I am suspecting that maybe something didn't get installed
> properly?
> > >>> --
> > >>> Craig
> > >>>
> > >>>
> > >>> On Mon, Aug 29, 2016 at 4:13 AM, Dimitry Andric <dim@freebsd.org>
> wrote:
> > >>> I just found the separate "test results" link in Jenkins.  As far as
> I can see, one of those failing tests is run as:
> > >>>
> > >>> c++ -target x86_64-unknown-freebsd12.0 --sysroot=/builds/workspace/
> FreeBSD_HEAD/obj/builds/workspace/FreeBSD_HEAD/src/tmp
> -B/builds/workspace/FreeBSD_HEAD/obj/builds/workspace/FreeBSD_HEAD/src/tmp/usr/bin
> -O2 -pipe -DHAVE_CONFIG_H -I/usr/include -Wall -Werror -o test.o -c test.cpp
> > >>>
> > >>> So are the libc++ headers installed in the /builds/workspace/FreeBSD_
> HEAD/obj/builds/workspace/FreeBSD_HEAD/src/tmp sysroot?  The compiler
> error message appears to indicate it is getting its headers from
> /usr/include instead.
> > >>>
> > >>> I can't look on the actual test system, but my guess would be that
> either the --sysroot flag is incorrect, or the libc++ headers are not
> correctly installed on the target system.
> > >>>
> > >>> -Dimitry
> > >>>
> > >>>> On 29 Aug 2016, at 12:56, Dimitry Andric <dim@FreeBSD.org> wrote:
> > >>>>
> > >>>> Hi Craig,
> > >>>>
> > >>>> I find it very hard to parse these extremely verbose logs.  Can you
> point out the location and contents of the exact error you are seeing?
> > >>>>
> > >>>> -Dimitry
> > >>>>
> > >>>>> On 29 Aug 2016, at 08:59, Craig Rodrigues <rodrigc@FreeBSD.org>
> wrote:
> > >>>>>
> > >>>>> Dimitry,
> > >>>>>
> > >>>>> Can you take a look at this?
> > >>>>> I'm not sure why, but after recent changes, one of the tests is
> > >>>>> complaining that the C++ header <sstream> is missing.
> > >>>>>
> > >>>>> --
> > >>>>> Craig
> > >>>>>
> > >>>>>
> > >>>>> On Sun, Aug 28, 2016 at 11:11 PM, <jenkins-admin@freebsd.org>
> wrote:
> > >>>>> See <https://jenkins.FreeBSD.org/job/FreeBSD_HEAD/564/>;
> > >>>>>
> > >>>>>
> > >>>>
> > >>>
> > >>>
> > >>
> > >
> > >
> > >
> > > --
> > > Li-Wen Hsu <lwhsu@FreeBSD.org>
> > > https://lwhsu.org
> >
>
>
>
> --
> Li-Wen Hsu <lwhsu@FreeBSD.org>
> https://lwhsu.org
>



-- 
Julio Merino -- http://julio.meroh.net/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADyfeQXsJ_H1FbT4ZUhD_D=ZbrgpSGS%2BLYf2VowG3ugVt_gcmA>