Jenkins build is still unstable: FreeBSD_HEAD #564
Julio Merino
julio at meroh.net
Mon Aug 29 17:32:06 UTC 2016
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 at 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 at 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 at 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 at 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 at 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 at 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 at freebsd.org>
> wrote:
> > >>>>> See <https://jenkins.FreeBSD.org/job/FreeBSD_HEAD/564/>
> > >>>>>
> > >>>>>
> > >>>>
> > >>>
> > >>>
> > >>
> > >
> > >
> > >
> > > --
> > > Li-Wen Hsu <lwhsu at FreeBSD.org>
> > > https://lwhsu.org
> >
>
>
>
> --
> Li-Wen Hsu <lwhsu at FreeBSD.org>
> https://lwhsu.org
>
--
Julio Merino -- http://julio.meroh.net/
More information about the freebsd-testing
mailing list