Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Mar 2016 15:02:29 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        Bryan Drewery <bdrewery@FreeBSD.org>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: svn commit: r297435 - head: still problems for stage 3 when gcc 4.2.1 is avoided (powerpc64 self-hosted build)
Message-ID:  <9E3033D5-F416-4B78-97C2-0A0AABF5A49E@dsl-only.net>
In-Reply-To: <56FD9757.6040709@FreeBSD.org>
References:  <5A0ACA76-6F1D-4975-9E59-2A64BB8EFC77@dsl-only.net> <56FD9757.6040709@FreeBSD.org>

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

> On 2016-Mar-31, at 2:32 PM, Bryan Drewery <bdrewery at FreeBSD.org> =
wrote:
>=20
> On 3/31/16 2:23 PM, Mark Millard wrote:
>> I use the likes of:
>>=20
>>>> # diff -rq /usr/include /usr/local/include | grep "^Files "
>> to find what to rename for the duration of the system builds.
>>=20
>> An example of what happens without the renames is below but I first =
note the use of the name dwarf_errmsg in /usr/include vs. in =
/usr/local/include (shown after the .h file rename but the build was =
with the normal file name):
>>=20
>=20
> Except for legacy, build-tools, bootstrap-tools, and cross-tools, none
> of /usr/include or /usr/local/include is supposed to be included.  In
> those phases though it is intended that /usr/include is used.  Not
> /usr/local/include though.
>=20
> What package is providing /usr/local/include/libdwarf.h? 'pkg which
> /usr/local/include/libdwarf.h'  I ask so I can install it and recreate
> the issue and fix it.

Here is the list for the things I renamed, including for dwarf.h :

> # pkg which /usr/local/include/dwarf.h /usr/local/include/libdwarf.h =
/usr/local/include/atf-c/defs.h /usr/local/include/iconv.h =
/usr/local/include/histedit.h
> /usr/local/include/dwarf.h was installed by package libdwarf-20130207
> /usr/local/include/libdwarf.h was installed by package =
libdwarf-20130207
> /usr/local/include/atf-c/defs.h was installed by package atf-0.21
> /usr/local/include/iconv.h was not found in the database
> /usr/local/include/histedit.h was installed by package =
libedit-3.1.20150325_1

It looks like iconv.h is from something later removed but was not =
cleaned out at the time. I have /usr/local/include/readline/ material =
from the same time frame:

> # ls -lt /usr/local/include/
> .. . .
> -rw-r--r--   1 root  wheel   12733 Apr 22  2015 mpc.h
> -rw-r--r--   1 root  wheel    9348 Mar 12  2015 renamed_iconv.h
> drwxr-xr-x   2 root  wheel     512 Mar 12  2015 readline
> # ls -lt /usr/local/include/readline
> total 80
> -rw-r--r--  1 root  wheel   3193 Mar 12  2015 rltypedefs.h
> -rw-r--r--  1 root  wheel   2438 Mar 12  2015 rlconf.h
> -rw-r--r--  1 root  wheel   1835 Mar 12  2015 rlstdc.h
> -rw-r--r--  1 root  wheel   3046 Mar 12  2015 tilde.h
> -rw-r--r--  1 root  wheel  10079 Mar 12  2015 history.h
> -rw-r--r--  1 root  wheel   3163 Mar 12  2015 keymaps.h
> -rw-r--r--  1 root  wheel   4577 Mar 12  2015 chardefs.h
> -rw-r--r--  1 root  wheel  37802 Mar 12  2015 readline.h

but "pkg which" reports those files as being from readline-6.3.8 .

I guess I can just delete would would normally have been =
/usr/local/include/iconv.h .

Back to quoting the earlier message:

> We likely just need to prioritize /usr/include over /usr/local/include
> for these phases, which gcc49 may have backwards since it has its =
prefix
> set to /usr/local from the ports build.
>=20
>>>> # find /usr/include/ -exec grep dwarf_errmsg {} \; -print
>>>> #define	dwarf_errmsg(error)	dwarf_errmsg_(&error)
>>>> const char	*dwarf_errmsg_(Dwarf_Error *);
>>>> /usr/include/libdwarf.h
>>>> # find /usr/local/include/ -exec grep dwarf_errmsg {} \; -print
>>>> char* dwarf_errmsg(Dwarf_Error    /*error*/);
>>>> /usr/local/include/renamed_libdwarf.h
>>>> #
>> So dwarf_errmsg is from /usr/local/include and dwarf_errmsg_ is from =
/usr/include .
>>=20
>> The failure shows references to dwarf_errmsg instead of dwarf_errmsg_ =
--and dwarf_errmsg being undefined (dwarf_errno has similar issues):
>>=20
>>>> --------------------------------------------------------------
>>>>>>>>>> stage 3: cross tools
>>>> --------------------------------------------------------------
>>>> . . .
>>>> --- ctfconvert.full ---
>>>> /usr/local/bin/gcc49 -O2 -pipe =
-I/usr/src/cddl/usr.bin/ctfconvert/../../../sys/cddl/compat/opensolaris =
-I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/compat/opensolaris/includ=
e -I/usr/src/cddl/usr.b
>>>> in/ctfconvert/../../../cddl/contrib/opensolaris =
-I/usr/src/cddl/usr.bin/ctfconvert/../../../sys/cddl/contrib/opensolaris =
-I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/head =
-I/us
>>>> =
r/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/ctf/=
common
>>> =
-I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools=
/ctf/cvt
>>> -I/usr/src/cddl/usr.bin/ctfconvert/.
>>>> ./../../sys/cddl/contrib/opensolaris/uts/common =
-DNEED_SOLARIS_BOOLEAN -g -std=3Dgnu99 =
-I/usr/obj/xtoolchain/powerpc.powerpc64/usr/src/tmp/legacy/usr/include  =
-static -L/usr/obj/xtoolchain/powerpc.power
>>>> pc64/usr/src/tmp/legacy/usr/lib -o ctfconvert.full alist.o ctf.o =
ctfconvert.o dwarf.o fixup_tdescs.o hash.o iidesc.o input.o list.o =
memory.o merge.o output.o st_parse.o stabs.o stack.o strtab.o symbol
>>>> .o tdata.o traverse.o util.o   -ldwarf  -lelf  -lelf  -lz  =
-lpthread -legacy
>>>> dwarf.o: In function `die_off':
>>>> =
/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/c=
tf/cvt/dwarf.c:270: undefined reference to `dwarf_errmsg'
>>>> dwarf.o: In function `die_sibling':
>>>> =
/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/c=
tf/cvt/dwarf.c:288: undefined reference to `dwarf_errmsg'
>>>> dwarf.o: In function `die_child':
>>>> =
/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/c=
tf/cvt/dwarf.c:305: undefined reference to `dwarf_errmsg'
>>>> dwarf.o: In function `die_tag':
>>>> =
/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/c=
tf/cvt/dwarf.c:319: undefined reference to `dwarf_errmsg'
>>>> dwarf.o: In function `die_unsigned':
>>>> =
/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/c=
tf/cvt/dwarf.c:370: undefined reference to `dwarf_errmsg'
>>>> =
dwarf.o:/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris=
/tools/ctf/cvt/dwarf.c:418: more undefined references to `dwarf_errmsg' =
follow
>>>> dwarf.o: In function `dw_read':
>>>> =
/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/c=
tf/cvt/dwarf.c:1963: undefined reference to `dwarf_errno'
>>>> =
/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/c=
tf/cvt/dwarf.c:1971: undefined reference to `dwarf_errmsg'
>>>> =
/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/c=
tf/cvt/dwarf.c:1977: undefined reference to `dwarf_errmsg'
>>>> collect2: error: ld returned 1 exit status
>>>> *** [ctfconvert.full] Error code 1
>>=20
>=20
>=20
> --=20
> Regards,
> Bryan Drewery

=3D=3D=3D
Mark Millard
markmi at dsl-only.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9E3033D5-F416-4B78-97C2-0A0AABF5A49E>