Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Mar 2015 20:02:47 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, freebsd-ports@freebsd.org
Cc:        freebsd-toolchain@freebsd.org
Subject:   Re: powerpc64 11.0-CURRENT portmaster lang/clang36 gets error: llvm-build: error: invalid native target: 'powerpc64' (not in project)
Message-ID:  <1E76AC30-BCB1-4FEE-8FA5-5EECF1F757E8@dsl-only.net>
In-Reply-To: <160E2B60-047A-4E5B-A258-334155CDEC0B@dsl-only.net>
References:  <9682273F-8B85-4351-AB2B-011240D40327@dsl-only.net> <160E2B60-047A-4E5B-A258-334155CDEC0B@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
patch-utils_llvm-build_llvmbuild_main.py is missing a powerpc64 entry, =
such as illustrated below.

$ svnlite diff /usr/ports/lang/clang36
Index: =
/usr/ports/lang/clang36/files/patch-utils_llvm-build_llvmbuild_main.py
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- =
/usr/ports/lang/clang36/files/patch-utils_llvm-build_llvmbuild_main.py	=
(revision 381120)
+++ =
/usr/ports/lang/clang36/files/patch-utils_llvm-build_llvmbuild_main.py	=
(working copy)
@@ -3,7 +3,7 @@
=20
 --- utils/llvm-build/llvmbuild/main.py.orig
 +++ utils/llvm-build/llvmbuild/main.py
-@@ -633,7 +633,13 @@
+@@ -633,7 +633,14 @@
 =20
      # We handle a few special cases of target names here for =
historical
      # reasons, as these are the names configure currently comes up =
with.
@@ -13,6 +13,7 @@
 +			   'i386' : 'X86',
 +			   'mips' : 'Mips',
 +			   'powerpc' : 'PowerPC',
++			   'powerpc64' : 'PowerPC',
 +			   'sparc64' : 'Sparc',
 +                           'x86' : 'X86',
                             'x86_64' : 'X86',


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

On 2015-Mar-16, at 11:00 PM, Mark Millard <markmi at dsl-only.net> =
wrote:

The 2 powerpc (non-64) build attempts for clang 3.6 did not get this =
problem.

So this specific problem is powerpc64 specific.

Bootstrapping powerpc (non-64) clang 3.6 via gcc 4.8.4 (the current =
lang/gcc) works fine. (In absence of any c++ port lang/clang36 =
automatically installed lang/gcc (currently gcc 4.8.4) in order to =
bootstrap itself.)

Bootstrapping powerpc (non-64) clang 3.6 via gcc5 (by having lang/gcc5 =
already installed first) still reports an error for not declaring =
::sscanf, just like powerpc64 based on gcc5 for bootstrapping did.

(This might be llvm/clang making use of only <cstdio> where an include =
of <stdio.h> would be required to be involved in order to guarantee the =
:: (global) declaration/definition. The way the C++ standard (all =
vintages) is written gcc 4.8.4 and gcc5 could be this different and both =
be valid/conforming.)


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

On 2015-Mar-16, at 05:04 PM, Mark Millard <markmi at dsl-only.net> =
wrote:

Basic context (more context details listed later):

# freebsd-version -ku; uname -ap
11.0-CURRENT
11.0-CURRENT
FreeBSD FBSDG5C0 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r279514M: Wed Mar =
11 19:23:14 PDT 2015     =
root@FBSDG4C0:/usr/obj/powerpc.powerpc64/usr/srcC/sys/GENERIC64vtsc-NODEBU=
G  powerpc powerpc64


The problem:

portmaster -tDK --no-confirm lang/clang36 is how I started the build.

The error report was after it reported entering the directory:

=
/usr/obj/portswork/usr/ports/lang/clang36/work/llvm-3.6.0.src/tools/clang/=
lib/Driver/

The report was:

llvm-build: error: invalid native target: 'powerpc64' (not in project)


I'd be surprised if 11.0-CURRENT vs. 10.1-STABLE matters. But powerpc64 =
likely does. I've not yet tried from a powerpc (non-64) FreeBSD build.

I'll note that with top -PaSCHopid I watched it compile the PowerPc code =
generator software: it shoudl be able to handle PowerPCs fine.

My guess is a conversion of naming conventions is required someplace:

FreeBSD using powerpc64 vs. clang using ppc64. (Big endian context.)

This likely would matter for little endian naming as well (ppc64le on =
the clang end of things I expect).=20




Context details:

# svnlite info /usr/ports/lang/clang36
Path: lang/clang36
Working Copy Root Path: /usr/ports
URL: https://svn0.us-west.freebsd.org/ports/head/lang/clang36
Relative URL: ^/head/lang/clang36
Repository Root: https://svn0.us-west.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 381120
Node Kind: directory
Schedule: normal
Last Changed Author: brooks
Last Changed Rev: 380295
Last Changed Date: 2015-03-02 12:21:38 -0800 (Mon, 02 Mar 2015)

It used gcc5 to bootstrap as there was no clang present and that is the =
only gcc port installed:

# svnlite info /usr/ports/lang/gcc5
Path: lang/gcc5
Working Copy Root Path: /usr/ports
URL: https://svn0.us-west.freebsd.org/ports/head/lang/gcc5
Relative URL: ^/head/lang/gcc5
Repository Root: https://svn0.us-west.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 381120
Node Kind: directory
Schedule: normal
Last Changed Author: gerald
Last Changed Rev: 380943
Last Changed Date: 2015-03-10 10:00:25 -0700 (Tue, 10 Mar 2015)

# more /etc/make.conf
#CPP=3Dclang-cpp
#CC=3Dclang
#CXX=3Dclang++
WRKDIRPREFIX=3D/usr/obj/portswork
#WITH_DEBUG=3D
MALLOC_PRODUCTION=3D


=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?1E76AC30-BCB1-4FEE-8FA5-5EECF1F757E8>