Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 May 2016 16:53:07 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, dim@FreeBSD.org
Cc:        freebsd-ports@freebsd.org
Subject:   11.0-CURRENT -r300770 libc++ update vs. lang/powerpc64-xtoolchain-gcc: no go [self hosted powerpc64 context]
Message-ID:  <95E2A9D6-8E1A-46FB-84FF-60927A6F1CE4@dsl-only.net>

next in thread | raw e-mail | index | archive | help
I do buildworld/buildkernel on a powerpc64 targeting itself via =
lang/powerpc64-xtoolchain-gcc (a.k.a. lang/powerpc64-gcc for the most =
part). [Getting that lang/powerpc64-gcc installed for self-hosted use =
does take some work-around activity.] I have buildworld build clang (but =
not use it). [I've been doing this with 11.0-CURRENT for a long time.]

Actually I use lang/gcc49 as the "system compiler" and =
lang/powerpc64-gcc as the self-hosting so-called "cross compiler". (I =
later list the src.conf content.) gcc4.2.1 is not installed.

Trying to go from:

> # uname -apKU
> FreeBSD FBSDG5C0 11.0-CURRENT FreeBSD 11.0-CURRENT #36 r300531M: Mon =
May 23 20:13:52 PDT 2016     =
root@FBSDG5C0:/usr/obj/xtoolchain/powerpc.powerpc64/usr/src/sys/GENERIC64v=
tsc-NODEBUG  powerpc powerpc64 1100111 1100111

(for which -r300531 built and installed fine this way) to -r300777 now =
fails with errors such as:

> --- lib/libc++__L ---
> In file included from =
/usr/src/lib/libc++/../../contrib/libc++/include/iterator:346:0,
>                  from =
/usr/src/lib/libc++/../../contrib/libc++/include/memory:606,
>                  from =
/usr/src/lib/libc++/../../contrib/libc++/include/algorithm:628,
>                  from =
/usr/src/lib/libc++/../../contrib/libc++/src/algorithm.cpp:10:
> /usr/src/lib/libc++/../../contrib/libc++/include/iosfwd:176:14: error: =
'mbstate_t' was not declared in this scope
>  typedef fpos<mbstate_t>    streampos;
>               ^
> /usr/src/lib/libc++/../../contrib/libc++/include/iosfwd:176:23: error: =
template argument 1 is invalid
>  typedef fpos<mbstate_t>    streampos;
>                        ^
> /usr/src/lib/libc++/../../contrib/libc++/include/iosfwd:177:14: error: =
'mbstate_t' was not declared in this scope
>  typedef fpos<mbstate_t>    wstreampos;
>               ^
> /usr/src/lib/libc++/../../contrib/libc++/include/iosfwd:177:23: error: =
template argument 1 is invalid
>  typedef fpos<mbstate_t>    wstreampos;
>                        ^
> /usr/src/lib/libc++/../../contrib/libc++/include/iosfwd:179:14: error: =
'mbstate_t' was not declared in this scope
>  typedef fpos<mbstate_t>    u16streampos;
>               ^
> /usr/src/lib/libc++/../../contrib/libc++/include/iosfwd:179:23: error: =
template argument 1 is invalid
>  typedef fpos<mbstate_t>    u16streampos;
>                        ^
> /usr/src/lib/libc++/../../contrib/libc++/include/iosfwd:180:14: error: =
'mbstate_t' was not declared in this scope
>  typedef fpos<mbstate_t>    u32streampos;
>               ^
> /usr/src/lib/libc++/../../contrib/libc++/include/iosfwd:180:23: error: =
template argument 1 is invalid
>  typedef fpos<mbstate_t>    u32streampos;
>                        ^

. . .

> --- lib/libc++__L ---
> In file included from =
/usr/src/lib/libc++/../../contrib/libc++/include/cmath:301:0,
>                  from =
/usr/src/lib/libc++/../../contrib/libc++/include/random:1638,
>                  from =
/usr/src/lib/libc++/../../contrib/libc++/src/algorithm.cpp:11:
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h: In function =
'float abs(float)':
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:646:53: error: =
'fabsf' was not declared in this scope
>  abs(float __lcpp_x) _NOEXCEPT {return fabsf(__lcpp_x);}
>                                                      ^
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h: In function =
'double abs(double)':
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:650:53: error: =
'fabs' was not declared in this scope
>  abs(double __lcpp_x) _NOEXCEPT {return fabs(__lcpp_x);}
>                                                      ^

. . .

> --- lib/libc++__L ---
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h: In function =
'long double abs(long double)':
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:654:59: error: =
'fabsl' was not declared in this scope
>  abs(long double __lcpp_x) _NOEXCEPT {return fabsl(__lcpp_x);}
>                                                            ^
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h: In function =
'float acos(float)':
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:660:105: =
error: 'acosf' was not declared in this scope
>  inline _LIBCPP_INLINE_VISIBILITY float       acos(float __lcpp_x) =
_NOEXCEPT       {return acosf(__lcpp_x);}
>                                                                        =
                                  ^
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h: In function =
'long double acos(long double)':
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:661:105: =
error: 'acosl' was not declared in this scope
>  inline _LIBCPP_INLINE_VISIBILITY long double acos(long double =
__lcpp_x) _NOEXCEPT {return acosl(__lcpp_x);}
>                                                                        =
                                  ^
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h: In function =
'typename std::__1::enable_if<std::__1::is_integral<_Tp>::value, =
double>::type acos(_A1)':
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:667:59: error: =
call of overloaded 'acos(double)' is ambiguous
>  acos(_A1 __lcpp_x) _NOEXCEPT {return acos((double)__lcpp_x);}
>                                                            ^
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:660:46: note: =
candidate: float acos(float)
>  inline _LIBCPP_INLINE_VISIBILITY float       acos(float __lcpp_x) =
_NOEXCEPT       {return acosf(__lcpp_x);}
>                                               ^
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:661:46: note: =
candidate: long double acos(long double)
>  inline _LIBCPP_INLINE_VISIBILITY long double acos(long double =
__lcpp_x) _NOEXCEPT {return acosl(__lcpp_x);}
>                                               ^
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h: In function =
'float asin(float)':
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:672:105: =
error: 'asinf' was not declared in this scope
>  inline _LIBCPP_INLINE_VISIBILITY float       asin(float __lcpp_x) =
_NOEXCEPT       {return asinf(__lcpp_x);}
>                                                                        =
                                  ^
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h: In function =
'long double asin(long double)':
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:673:105: =
error: 'asinl' was not declared in this scope
>  inline _LIBCPP_INLINE_VISIBILITY long double asin(long double =
__lcpp_x) _NOEXCEPT {return asinl(__lcpp_x);}
>                                                                        =
                                  ^

. . .

> --- lib/libc++__L ---
> /usr/src/lib/libc++/../../contrib/libc++/include/math.h:673:46: note: =
candidate: long double asin(long double)
>  inline _LIBCPP_INLINE_VISIBILITY long double asin(long double =
__lcpp_x) _NOEXCEPT {return asinl(__lcpp_x);}
>                                               ^

. . .

I'll not list it all: There is a lot.

Supporting details:

An example of the include paths in use (from -v) is:

> --- lib/libc++__L ---
> #include "..." search starts here:
> #include <...> search starts here:
>  /usr/src/lib/libc++/../../contrib/libc++/include
>  /usr/src/lib/libc++/../../contrib/libcxxrt
>  /usr/obj/xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/include/c++/v1
>  /usr/obj/xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/include
>  /usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/include
>  /usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/include-fixed
> End of search list.

# more ~/src.configs/make.conf=20
CFLAGS.gcc+=3D -v

# more ~/src.configs/src.conf.powerpc64-xtoolchain.powerpc64-host=20
TO_TYPE=3Dpowerpc64
TOOLS_TO_TYPE=3D${TO_TYPE}
FROM_TYPE=3Dpowerpc64
TOOLS_FROM_TYPE=3D${FROM_TYPE}
VERSION_CONTEXT=3D11.0
#
KERNCONF=3DGENERIC64vtsc-NODEBUG
TARGET=3Dpowerpc
.if ${.MAKE.LEVEL} =3D=3D 0
TARGET_ARCH=3D${TO_TYPE}
.export TARGET_ARCH
.endif
#
WITHOUT_CROSS_COMPILER=3D
WITHOUT_SYSTEM_COMPILER=3D
#
WITH_LIBCPLUSPLUS=3D
WITH_BOOT=3D
#WITH_LIB32=3D
WITH_CLANG=3D
WITH_CLANG_IS_CC=3D
WITH_CLANG_FULL=3D
WITH_LLDB=3D
#
# powerpc64 LIB32 builds via gcc 4.9 or later variants that I've tried
# but the LIB32 does not work [crtbeginS code problem(s)]
WITHOUT_LIB32=3D
WITHOUT_GCC=3D
WITHOUT_GNUCXX=3D
#
NO_WERROR=3D
MALLOC_PRODUCTION=3D
#CFLAGS+=3D -DELF_VERBOSE
#
WITH_DEBUG_FILES=3D
#
#
# For TO (so-called "cross") stages . . .
# So-called-cross via ${TO_TYPE}-xtoolchain-gcc/${TO_TYPE}-gcc. . .
# TOOLS_TO_TYPE based on ${TO_TYPE}-xtoolchain-gcc related bintutils. . =
.
#
CROSS_TOOLCHAIN=3D${TO_TYPE}-gcc
X_COMPILER_TYPE=3Dgcc
CROSS_BINUTILS_PREFIX=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/
.if ${.MAKE.LEVEL} =3D=3D 0
=
XCC=3D/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-gc=
c
=
XCXX=3D/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-g=
++
=
XCPP=3D/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-c=
pp
.export XCC
.export XCXX
.export XCPP
XAS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as
XAR=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar
XLD=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld
XNM=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm
XOBJCOPY=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy
XOBJDUMP=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump
XRANLIB=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib
XSIZE=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size
#NO-SUCH: XSTRINGS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings
XSTRINGS=3D/usr/local/bin/${TOOLS_TO_TYPE}-freebsd-strings
.export XAS
.export XAR
.export XLD
.export XNM
.export XOBJCOPY
.export XOBJDUMP
.export XRANLIB
.export XSIZE
.export XSTRINGS
.endif
#
#
# For FROM (host) stages . . .
# =46rom gccXY (such as gcc49 but not xtoolchain)
# TOOLS_FROM_TYPE's appropriate binutils. . .
#
.if ${.MAKE.LEVEL} =3D=3D 0
CC=3Denv C_INCLUDE_PATH=3D/usr/include /usr/local/bin/gcc49 -L/usr/lib
CXX=3Denv C_INCLUDE_PATH=3D/usr/include =
CPLUS_INCLUDE_PATH=3D/usr/include/c++/v1 /usr/local/bin/g++49 -std=3Dc++11=
 -nostdinc++ -L/usr/lib
CPP=3D/usr/local/bin/cpp49
.export CC
.export CXX
.export CPP
=
AS=3D/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/a=
s
=
AR=3D/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/a=
r
=
LD=3D/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/l=
d
=
NM=3D/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/n=
m
=
OBJCOPY=3D/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/=
bin/objcopy
=
OBJDUMP=3D/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/=
bin/objdump
=
RANLIB=3D/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/b=
in/ranlib
=
SIZE=3D/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin=
/size
#NO-SUCH: =
STRINGS=3D/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/=
bin/strings
STRINGS=3D/usr/local/bin/strings
.export AS
.export AR
.export LD
.export NM
.export OBJCOPY
.export OBJDUMP
.export RANLIB
.export SIZE
.export STRINGS
.endif

# svnlite info /usr/src/
Path: /usr/src
Working Copy Root Path: /usr/src
URL: https://svn0.us-west.freebsd.org/base/head
Relative URL: ^/head
Repository Root: https://svn0.us-west.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 300777
Node Kind: directory
Schedule: normal
Last Changed Author: manu
Last Changed Rev: 300777
Last Changed Date: 2016-05-26 14:09:07 -0700 (Thu, 26 May 2016)


=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?95E2A9D6-8E1A-46FB-84FF-60927A6F1CE4>