base/gcc (from ports/head -r424540) requires older mpfr (3.1.4 vs. the installed 3.1.5); other points to get a build. . .

Mark Millard markmi at dsl-only.net
Wed Nov 9 07:56:58 UTC 2016


On 2016-Nov-8, at 8:14 PM, Mark Millard <markmi at dsl-only.net> wrote:

> My attempt to build (package) base/gcc for targeting powerpc64 failed:
> 
>> Script started on Tue Nov  8 19:59:23 2016
>> Command: make CROSS_TOOLCHAIN=powerpc64-gcc CROSS_SYSROOT=/usr/obj/DESTDIRs/xtoolchain-powerpc64-installworld package
> . . .
>> => mpfr-3.1.4.tar.xz doesn't seem to exist in /usr/ports/distfiles/.
>> => Attempting to fetch http://www.mpfr.org/mpfr-current/mpfr-3.1.4.tar.xz
>> fetch: http://www.mpfr.org/mpfr-current/mpfr-3.1.4.tar.xz: Not Found
>> => Attempting to fetch http://distcache.FreeBSD.org/ports-distfiles/mpfr-3.1.4.tar.xz
>> fetch: http://distcache.FreeBSD.org/ports-distfiles/mpfr-3.1.4.tar.xz: Not Found
>> => Couldn't fetch it - please try to retrieve this
>> => port manually into /usr/ports/distfiles/ and try again.
>> *** Error code 1
>> 
>> Stop.
>> make: stopped in /usr/ports/base/gcc
>> 
>> Script done, output file is /root/ports_typescripts/gcc_00.typescript
> 
> # pkg info | grep mpfr
> mpfr-3.1.5                     Library for multiple-precision floating-point computations

After updating it locally to reference 3.1.5 there were two more problems. . .

> configure: error: Specified CC_FOR_BUILD doesn't seem to work
> gmake[1]: *** [Makefile:4519: configure-gmp] Error 1
> gmake[1]: *** Waiting for unfinished jobs....
> . . .
> gmake[1]: Leaving directory '/usr/obj/portswork/usr/ports/base/gcc/work/.build'
> ===> Compilation failed unexpectedly.
> Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
> the maintainer.
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/ports/base/gcc

Needed the command to exist: gcc

So I created:

# ls -l /usr/local/bin/gcc
lrwxr-xr-x  1 root  wheel  4 Nov  8 20:29 /usr/local/bin/gcc -> gcc6

(The only host gcc installed is gcc6 in my context.)

(base/binutils also required such a gcc that would be found by default.)

Then it got farther but there was later:

> configure: error: C++ compiler missing or inoperational
> gmake[1]: *** [Makefile:2717: configure-build-libcpp] Error 1
> gmake[1]: *** Waiting for unfinished jobs....

Needed the command to exist: g++

So I created:

# ls -l /usr/local/bin/g++
lrwxr-xr-x  1 root  wheel  4 Nov  8 20:33 /usr/local/bin/g++ -> g++6

(base/bintutils did not require this.)


After that it got much farther. But it stopped with missing files, including sparc ones for a powerpc64 context:

> ===>  Building package for freebsd-gcc-5.4.0
> pkg-static: Unable to access file /usr/obj/portswork/usr/ports/base/gcc/work/stage/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include/visintrin.h: No such file or directory
> pkg-static: Unable to access file /usr/obj/portswork/usr/ports/base/gcc/work/stage/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/plugin/include/config/sparc/freebsd.h: No such file or directory
> pkg-static: Unable to access file /usr/obj/portswork/usr/ports/base/gcc/work/stage/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/plugin/include/config/sparc/sparc-opts.h: No such file or directory
> pkg-static: Unable to access file /usr/obj/portswork/usr/ports/base/gcc/work/stage/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/plugin/include/config/sparc/sparc-protos.h: No such file or directory
> pkg-static: Unable to access file /usr/obj/portswork/usr/ports/base/gcc/work/stage/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/plugin/include/config/sparc/sparc.h: No such file or directory
> pkg-static: Unable to access file /usr/obj/portswork/usr/ports/base/gcc/work/stage/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/plugin/include/config/sparc/sysv4.h: No such file or directory
> pkg-static: Unable to access file /usr/obj/portswork/usr/ports/base/gcc/work/stage/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/plugin/include/config/vxworks-dummy.h: No such file or directory
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/ports/base/gcc

As far as what is really there for powerpc64:

> # ls /usr/obj/portswork/usr/ports/base/gcc/work/stage/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include/ | grep "^v"
> varargs.h
> vec_types.h

> # ls /usr/obj/portswork/usr/ports/base/gcc/work/stage/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/plugin/include/config/
> dbxelf.h                elfos.h                 freebsd-spec.h          freebsd-stdint.h        freebsd.h               initfini-array.h        rs6000

The references to the non-existent files are from the pkg-plist lines:

> lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/visintrin.h
. . .
> lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/initfini-array.h
> lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/%%OPSYS%%.h
> lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sparc-opts.h
> lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sparc-protos.h
> lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sparc.h
> lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sysv4.h
> lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/vxworks-dummy.h

The base/README only mentions generation of pkg-plist for base/binutils .

Doing a quick check for base/gcc :

> # make CROSS_TOOLCHAIN=powerpc64-gcc CROSS_SYSROOT=/usr/obj/DESTDIRs/xtoolchain-powerpc64-installworld makeplist > pkg-plist-powerpc64
> # diff pkg-plist pkg-plist-powerpc64  | more
> 0a1
> > /you/have/to/check/what/makeplist/gives/you
> 17a19
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include-fixed/libmilter/mfapi.h
> 31a34
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/altivec.h
> 32a36,37
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/htmintrin.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/htmxlintrin.h
> 33a39,44
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/paired.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/ppc-asm.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/ppu_intrinsics.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/si2vmx.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/spe.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/spu2vmx.h
> 45c56
> < lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/visintrin.h
> ---
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/vec_types.h
> 107,112c118,126
> < lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/%%OPSYS%%.h
> < lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sparc-opts.h
> < lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sparc-protos.h
> < lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sparc.h
> < lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sysv4.h
> < lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/vxworks-dummy.h
> ---
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/default64.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/%%OPSYS%%64.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/option-defaults.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/rs6000-builtin.def
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/rs6000-cpus.def
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/rs6000-opts.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/rs6000-protos.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/rs6000.h
> > lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/sysv4.h


This leads to targeting powerpc64 using (in my context):

> # ls -l /usr/local/bin/gcc
> lrwxr-xr-x  1 root  wheel  4 Nov  8 20:29 /usr/local/bin/gcc -> gcc6

> # ls -l /usr/local/bin/g++
> lrwxr-xr-x  1 root  wheel  4 Nov  8 20:33 /usr/local/bin/g++ -> g++6


> # svnlite diff .
> Index: Makefile
> ===================================================================
> --- Makefile    (revision 424540)
> +++ Makefile    (working copy)
> @@ -8,7 +8,7 @@
>                 GNU/gmp:gmp \
>                 http://www.multiprecision.org/mpc/download/:mpc
>  DISTFILES=     ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX} \
> -               mpfr-3.1.4.tar.xz:mpfr \
> +               mpfr-3.1.5.tar.xz:mpfr \
>                 gmp-5.1.3.tar.xz:gmp \
>                 mpc-1.0.3.tar.gz:mpc
>  PKGNAMEPREFIX= ${OPSYS:tl}-
> @@ -55,7 +55,7 @@
>  INSTALL_TARGET?=       install-gcc
>  
>  post-extract:
> -       cd ${WRKSRC}; ${LN} -sf ../mpfr-3.1.4 mpfr ; \
> +       cd ${WRKSRC}; ${LN} -sf ../mpfr-3.1.5 mpfr ; \
>                 ${LN} -sf ../gmp-5.1.3 gmp ; \
>                 ${LN} -sf ../mpc-1.0.3 mpc
>  
> Index: distinfo
> ===================================================================
> --- distinfo    (revision 424540)
> +++ distinfo    (working copy)
> @@ -1,8 +1,8 @@
>  TIMESTAMP = 1472596046
>  SHA256 (gcc-5.4.0.tar.bz2) = 608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a
>  SIZE (gcc-5.4.0.tar.bz2) = 95661481
> -SHA256 (mpfr-3.1.4.tar.xz) = 761413b16d749c53e2bfd2b1dfaa3b027b0e793e404b90b5fbaeef60af6517f5
> -SIZE (mpfr-3.1.4.tar.xz) = 1122152
> +SHA256 (mpfr-3.1.5.tar.xz) = 015fde82b3979fbe5f83501986d328331ba8ddf008c1ff3da3c238f49ca062bc
> +SIZE (mpfr-3.1.5.tar.xz) = 1126668
>  SHA256 (gmp-5.1.3.tar.xz) = dee2eda37f4ff541f30019932db0c37f6f77a30ba3609234933b1818f9b07071
>  SIZE (gmp-5.1.3.tar.xz) = 1818812
>  SHA256 (mpc-1.0.3.tar.gz) = 617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3
> Index: pkg-plist
> ===================================================================
> --- pkg-plist   (revision 424540)
> +++ pkg-plist   (working copy)
> @@ -15,6 +15,7 @@
>  bin/%%GCC_TARGET%%-gcov
>  bin/%%GCC_TARGET%%-gcov-tool
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include-fixed/README
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include-fixed/libmilter/mfapi.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include-fixed/limits.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include-fixed/netinet/ip_fil.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include-fixed/netinet/ip_lookup.h
> @@ -29,8 +30,17 @@
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include-fixed/syslimits.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include-fixed/unistd.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include-fixed/wchar.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/altivec.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/float.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/htmintrin.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/htmxlintrin.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/iso646.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/paired.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/ppc-asm.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/ppu_intrinsics.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/si2vmx.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/spe.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/spu2vmx.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/stdalign.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/stdarg.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/stdatomic.h
> @@ -42,7 +52,7 @@
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/stdnoreturn.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/tgmath.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/varargs.h
> -lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/visintrin.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/vec_types.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/install-tools/fixinc_list
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/install-tools/gsyslimits.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/install-tools/include/README
> @@ -104,12 +114,15 @@
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/%%OPSYS%%-stdint.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/%%OPSYS%%.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/initfini-array.h
> -lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/%%OPSYS%%.h
> -lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sparc-opts.h
> -lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sparc-protos.h
> -lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sparc.h
> -lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/sparc/sysv4.h
> -lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/vxworks-dummy.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/default64.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/%%OPSYS%%64.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/option-defaults.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/rs6000-builtin.def
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/rs6000-cpus.def
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/rs6000-opts.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/rs6000-protos.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/rs6000.h
> +lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/rs6000/sysv4.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/configargs.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/context.h
>  lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/convert.h

With those things in place the base/gcc build completed.

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




More information about the freebsd-toolchain mailing list