Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Apr 2016 14:50:55 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, freebsd-ports@freebsd.org, swills@freebsd.org
Subject:   port's svn commit: r413746 - in head "many ports: mark broken on powerpc64": for what toolchains?
Message-ID:  <34C0599F-044B-46ED-AF60-0F0E98876E2F@dsl-only.net>

next in thread | raw e-mail | index | archive | help
Recently a large block of ports (including lang/gcc6-devel) were marked =
in their Makefiles with

> BROKEN_powerpc64=3D       Does not build


Does this only apply for use of gcc/g++ 4.2.1 or specific other verions? =
If so that is not the only way to have a powerpc64 environment. For =
example: how "official" is use of devel/powerpc64-xtoolchain-gcc (so =
devel/powerpc64-gcc as well) and lang/gcc49 used on a powerpc64 box (in =
my case an old PowerMac)? Can broken be marked for only specific tool =
chains?

> # freebsd-version -ku
> 11.0-CURRENT
> 11.0-CURRENT
> # uname -aKU
> FreeBSD FBSDG5C0 11.0-CURRENT FreeBSD 11.0-CURRENT #29 r297769M: Sat =
Apr  9 22:22:19 PDT 2016     =
root@FBSDG5C0:/usr/obj/xtoolchain/powerpc.powerpc64/usr/src/sys/GENERIC64v=
tsc-NODEBUG  powerpc 1100105 1100105

For the rest of this note I'll focus on lang/gcc-devel since I happen to =
build and install it.

> # pkg info '*gcc*'
> gcc49-4.9.4.s20160406
> gcc6-devel-6.0.0.s20160410
> powerpc64-gcc-5.3.0
> powerpc64-xtoolchain-gcc-0.1

gcc6-devel-6.0.0.s20160410 was built from -r413230 svn source on the =
that same old PowerMac. -r413188 is the prior lang/gcc-devel check in =
before being marked broken for powerpc64. For how I build it was not =
broken at the time.

I historically use devel/powerpc64-xtoolchain-gcc (so =
devel/powerpc64-gcc as well) for the so-called "cross build" stages of =
buildworld/buildkernel (11.0-CURRENT). (I also do true cross builds for =
TARGET_ARCH=3Dpowerpc64 from an amd64 context sometimes.)

gcc 4.2.1 is not present before, during, or after on the old PowerMac. I =
do build clang and various related materials but do not use clang for =
buildworld/buildkernel related activity. I experiment with using clang =
for other things at times.

I historically use lang/gcc49 on the old PowerMac for:

A) building devel/powerpc64-gcc (not the only way to try to build it)
B) the "host" stages of buildworld/buildkernel (11.0-CURRENT)
C) building lang/gcc6-devel (not the only way to try to build it)

[I do not have lang/gcc5 built/installed only because it and =
devel/powerpc64-gcc have file conflicts when they are based on the same =
gcc version. Getting devel/powerpc64-gcc to build and install on a =
powerpc64 requires some workarounds because it is not a true cross =
compile environment and some file names are odd for self-hosted and so =
not found during staging's copy activities.]

[I do build the system's clang 3.8.0 but do not use it other than for =
exploring/checking its current powerpc64 FreeBSD limitations. It does =
work for various things but not everything. Those experiments do not =
include buildworld or buildkernel. For example: clang 3.8.0 targeting =
powerpc64 can not build libstand due to lack of software floating point =
support. C++ exception handling built via clang for powerpc64 is messed =
up as well.]



I have started a powerpc64 self-hosted buildworld/buildkernel for an =
update to 11.0-CURRENT -r298518 in preparation for then updating my =
ports to -r413907 or so.

My intent is to comment out the BROKEN_powerpc64 line in =
lang/gcc6-devel/Makefile and see if lang/gcc6-devel still (re-)builds =
once everything else is up to date.

But the builds involved take many hours so I'll likely not have a result =
to report until tomorrow (or later).


Supporting example details:

> # svnlite info /usr/ports
> Path: /usr/ports
> Working Copy Root Path: /usr/ports
> URL: https://svn0.us-west.freebsd.org/ports/head
> Relative URL: ^/head
> Repository Root: https://svn0.us-west.freebsd.org/ports
> Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
> Revision: 413230
> Node Kind: directory
> Schedule: normal
> Last Changed Author: kmoore
> Last Changed Rev: 413230
> Last Changed Date: 2016-04-13 13:07:37 -0700 (Wed, 13 Apr 2016)

(I'll svnlite update -r413907 /usr/ports [or there about] after the =
system is updated. The above was used for my existing lang/gcc-devel =
build on powerpc64 for powerpc64.)

> # more /etc/make.conf=20
> DEFAULT_VERSIONS+=3Dperl5=3D5.22
> WRKDIRPREFIX=3D/usr/obj/portswork
> WITH_DEBUG=3D
> WITH_DEBUG_FILES=3D
> MALLOC_PRODUCTION=3D
> #
> #
> # For trying gcc49...
> #
> CC=3D/usr/local/bin/gcc49
> CXX=3D/usr/local/bin/g++49
> CPP=3D/usr/local/bin/cpp49
> #
> #
> # For trying port binutils...
> #
> CROSS_BINUTILS_PREFIX=3D/usr/local/powerpc64-portbld-freebsd11.0/bin/
> AS=3D/usr/local/powerpc64-portbld-freebsd11.0/bin/as
> AR=3D/usr/local/powerpc64-portbld-freebsd11.0/bin/ar
> LD=3D/usr/local/powerpc64-portbld-freebsd11.0/bin/ld
> NM=3D/usr/local/powerpc64-portbld-freebsd11.0/bin/nm
> OBJCOPY=3D/usr/local/powerpc64-portbld-freebsd11.0/bin/objcopy
> OBJDUMP=3D/usr/local/powerpc64-portbld-freebsd11.0/bin/objdump
> RANLIB=3D/usr/local/powerpc64-portbld-freebsd11.0/bin/ranlib
> SIZE=3D/usr/local/powerpc64-portbld-freebsd11.0/bin/size
> #NO-SUCH: STRINGS=3D/usr/local/powerpc64-portbld-freebsd11.0/bin/strings=

> STRINGS=3D/usr/local/bin/strings

The above sort of make.conf is used for port builds, though I may edit =
the details to control my experiments.

The below are tied to buildworld/buildkernel related activity:

> # more =
/root/sys_build_scripts.powerpc64-host/make_powerpc64vtsc_nodebug_incl_cla=
ng_xtoolchain-powerpc64-host.sh=20
> script =
/root/sys_typescripts/typescript_make_powerpc64vtsc_nodebug_incl_clang_xto=
olchain-powerpc64-host-$(date +%Y-%m-%d:%H:%M:%S) \
> env __MAKE_CONF=3D"/root/src.configs/make.conf" =
SRC_ENV_CONF=3D"/root/src.configs/src.conf.powerpc64-xtoolchain.powerpc64-=
host" \
> MAKEOBJDIRPREFIX=3D"/usr/obj/xtoolchain/powerpc.powerpc64" \
> make $*


/root/src.configs/make.conf (used for buildworld/buildkernel) is =
normally empty.

> # more /root/src.configs/src.conf.powerpc64-xtoolchain.powerpc64-host
> 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
> #
> WITH_LIBCPLUSPLUS=3D
> WITH_BOOT=3D
> #WITH_LIB32=3D
> WITH_CLANG=3D
> WITH_CLANG_IS_CC=3D
> WITH_CLANG_FULL=3D
> WITH_LLDB=3D
> #
> # LIB32 builds but does not work via gcc variants [crtbeginS code =
problem(s)]
> WITHOUT_LIB32=3D
> WITHOUT_GCC=3D
> WITHOUT_GNUCXX=3D
> #
> NO_WERROR=3D
> MALLOC_PRODUCTION=3D
> #
> 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 status /usr/src
> ?       /usr/src/.snap
> M       =
/usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
> M       /usr/src/lib/csu/powerpc64/Makefile
> ?       /usr/src/restoresymtable
> ?       /usr/src/sys/arm/conf/RPI2-NODBG
> M       /usr/src/sys/boot/ofw/Makefile.inc
> M       /usr/src/sys/boot/powerpc/Makefile
> M       /usr/src/sys/boot/powerpc/Makefile.inc
> M       /usr/src/sys/boot/uboot/Makefile.inc
> M       /usr/src/sys/conf/Makefile.powerpc
> M       /usr/src/sys/conf/kern.mk
> M       /usr/src/sys/conf/kmod.mk
> ?       /usr/src/sys/powerpc/conf/GENERIC64-NODBG
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-NODEBUG
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc-NODEBUG
> M       /usr/src/sys/powerpc/ofw/ofw_machdep.c
> M       /usr/src/sys/powerpc/powerpc/exec_machdep.c


=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?34C0599F-044B-46ED-AF60-0F0E98876E2F>