From owner-freebsd-ports@freebsd.org Sat Apr 23 21:57:39 2016 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55A08B1AA60 for ; Sat, 23 Apr 2016 21:57:39 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-211-158.reflexion.net [208.70.211.158]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1629F1135 for ; Sat, 23 Apr 2016 21:57:38 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 25214 invoked from network); 23 Apr 2016 21:51:22 -0000 Received: from unknown (HELO rtc-sm-01.app.dca.reflexion.local) (10.81.150.1) by 0 (rfx-qmail) with SMTP; 23 Apr 2016 21:51:22 -0000 Received: by rtc-sm-01.app.dca.reflexion.local (Reflexion email security v7.90.3) with SMTP; Sat, 23 Apr 2016 17:51:01 -0400 (EDT) Received: (qmail 29814 invoked from network); 23 Apr 2016 21:51:01 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with SMTP; 23 Apr 2016 21:51:01 -0000 X-No-Relay: not in my network X-No-Relay: not in my network X-No-Relay: not in my network Received: from [192.168.1.8] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 1DDBD1C4388; Sat, 23 Apr 2016 14:50:52 -0700 (PDT) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable 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> Date: Sat, 23 Apr 2016 14:50:55 -0700 To: FreeBSD PowerPC ML , freebsd-ports@freebsd.org, swills@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) X-Mailer: Apple Mail (2.3124) X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Apr 2016 21:57:39 -0000 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