On powerpc 11.0-CURRENT CROSS_TOOLCHAIN=powerpc64-gcc fails: clang-tblgen use attempted before it exists

Mark Millard markmi at dsl-only.net
Thu Mar 12 19:18:57 UTC 2015


Basic context:

$ freebsd-version -ku; uname -a
11.0-CURRENT
11.0-CURRENT
FreeBSD FBSDG4C0 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r279514M: Mon Mar  9 22:24:27 PDT 2015     root at FBSDG4S0:/usr/obj/usr/srcC/sys/GENERICvtsc-NODEBUG  powerpc
$ svnlite info
Path: .
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: 380683
Node Kind: directory
Schedule: normal
Last Changed Author: demon
Last Changed Rev: 380683
Last Changed Date: 2015-03-07 03:31:11 -0800 (Sat, 07 Mar 2015)

I bootstrapped into 11.0-CURRENT from 10.1-STABLE but misunderstood UPDATING for the combination of starting from 10.1 on powerpc/powerpc64 and ended up without clang for both powerpc and powerpc64 before I figure that out.

While powerpc64-gcc (and so powerpc64-xtoolchain-gcc) fails to build when portmaster'd on powerpc64 it does build on powerpc.

So I portmaster'd powerpc64-xtoolchain-gcc in the powerpc (non-64) 11.0-CURRENT context to attempt a "cross" compile back to powerpc...



The problem:
(Or is the below attempt a form of abuse of powerpc64-xtoolchain-gcc?)
(Remember: no clang exists beforehand.)

For...

make CROSS_TOOLCHAIN=powerpc64-gcc toolchain KERNCONF=GENERICvtsc TARGET=powerpc TARGET_ARCH=powerpc

or

make CROSS_TOOLCHAIN=powerpc64-gcc buildworld buildkernel KERNCONF=GENERICvtsc TARGET=powerpc TARGET_ARCH=powerpc

Either way the result fails to complete by attempting to use clang-tblgen when it does not exist (yet?):

> ...
> --------------------------------------------------------------
> >>> stage 1.2: bootstrap tools
> --------------------------------------------------------------
> ...
> ===> lib/clang/libllvmx86instprinter (buildincludes)
> ===> lib/clang/libllvmx86utils (buildincludes)
> ===> lib/clang/include (buildincludes)
> clang-tblgen -gen-arm-neon  -d arm_neon.d -o arm_neon.h  /usr/src/lib/clang/include/../../../contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td
> make[6]: exec(clang-tblgen) failed (No such file or directory)
> *** Error code 1
> 
> Stop.
> make[6]: stopped in /usr/src/lib/clang/include
> *** Error code 1
> 
> Stop.
> make[5]: stopped in /usr/src/lib/clang
> *** Error code 1
> 
> Stop.
> make[4]: stopped in /usr/src/lib
> *** Error code 1
> 
> Stop.
> make[3]: stopped in /usr/src/lib
> *** Error code 1
> 
> Stop.
> make[2]: stopped in /usr/src
> *** Error code 1
> 
> Stop.
> make[1]: stopped in /usr/src
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/src



Even if overall this style of bootstrap should not work it seems odd to me that clang-tblgen use was attempted before it was built.

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



More information about the freebsd-ppc mailing list