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>