Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Jun 2016 22:13:14 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD Ports <freebsd-ports@freebsd.org>, gerald@FreeBSD.org
Subject:   Re: lang/gcc6 (as of /usr/ports -r416711) does not build on 11.0 -r301815 on an rpi2 [armv7-a, cortex-a7]: a.out uses VFP register arguments, . . . does not
Message-ID:  <9956CBA7-4000-4124-9682-6A34456C188F@dsl-only.net>
In-Reply-To: <497B54A1-A306-4264-AC8C-A57A7A53931E@dsl-only.net>
References:  <A35407A3-2A63-4B9C-AE2B-776159CC550A@dsl-only.net> <497B54A1-A306-4264-AC8C-A57A7A53931E@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2016-Jun-12, at 5:43 PM, Mark Millard <markmi at dsl-only.net> wrote:

> Just a quick top-posted note: lang/gcc5 (as of /usr/ports -r416711) =
built fine, unlike the lang/gcc6 noted before/below. [I happened to try =
lang/gcc5 with the bootstrap configuration item disabled.]
>=20
> I may try lang/gcc6-devel to see what it does.

lang/gcc6-devel (as of /usr/ports -r416711) also built fine on the rpi2. =
[The test was with the bootstrap configuration item disabled.] Only =
lang/gcc6 seems to have the reported problems for the rpi2. But I've not =
tried lang/gcc49 or before. Nor have I tried any devel/*gcc* examples.

The rest of the below material just repeats the original evidence of the =
lang/gcc6 problem. Continue reading only if you care for that detail =
now.

>=20
> =3D=3D=3D
> Mark Millard
> markmi at dsl-only.net
>=20
> On 2016-Jun-12, at 3:02 PM, Mark Millard <markmi at dsl-only.net> =
wrote:
>=20
>> On an rpi2:
>>=20
>>> # uname -apKU
>>> FreeBSD rpi2 11.0-ALPHA3 FreeBSD 11.0-ALPHA3 #0 r301815M: Sat Jun 11 =
23:43:48 PDT 2016     =
markmi@FreeBSDx64:/usr/obj/clang/arm.armv6/usr/src/sys/RPI2-NODBG  ar
>>> m armv6 1100116 1100116
>>=20
>>=20
>> with /usr/ports at -r416711. . .
>>=20
>>=20
>> For attempting to build lang/gcc6 with the bootstrap configuration =
item enabled:
>>=20
>>> configure:3735: =
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc =
-B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ =
-B/usr/local/armv6-por
>>> tbld-freebsd11.0/bin/ -B/usr/local/armv6-portbld-freebsd11.0/lib/ =
-isystem /usr/local/armv6-portbld-freebsd11.0/include -isystem =
/usr/local/armv6-portbld-freebs
>>> d11.0/sys-include    -O2 -pipe -mcpu=3Dcortex-a7  -DLIBICONV_PLUG -g =
-fno-strict-aliasing   conftest.c  >&5
>>> /usr/local/bin/ld: error: a.out uses VFP register arguments, =
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/crtbegin.o does =
not
>>> /usr/local/bin/ld: failed to merge target specific data of file =
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/crtbegin.o
>>> /usr/local/bin/ld: error: a.out uses VFP register arguments, =
/tmp/ccC38Tl3.o does not
>>> /usr/local/bin/ld: failed to merge target specific data of file =
/tmp/ccC38Tl3.o
>>> /usr/local/bin/ld: error: a.out uses VFP register arguments, =
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/crtend.o does =
not
>>> /usr/local/bin/ld: failed to merge target specific data of file =
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/crtend.o
>>> collect2: error: ld returned 1 exit status
>>> configure:3739: $? =3D 1
>>> configure:3776: result:=20
>>> configure: failed program was:
>>> | /* confdefs.h */
>>> | #define PACKAGE_NAME "GNU Offloading and Multi Processing Runtime =
Library"
>>> | #define PACKAGE_TARNAME "libgomp"
>>> | #define PACKAGE_VERSION "1.0"
>>> | #define PACKAGE_STRING "GNU Offloading and Multi Processing =
Runtime Library 1.0"
>>> | #define PACKAGE_BUGREPORT ""
>>> | #define PACKAGE_URL "http://www.gnu.org/software/libgomp/"
>>> | #define PACKAGE "libgomp"
>>> | #define VERSION "1.0"
>>> | /* end confdefs.h.  */
>>> |=20
>>> | int
>>> | main ()
>>> | {
>>> |=20
>>> |   ;
>>> |   return 0;
>>> | }
>>> configure:3782: error: in =
`/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-portbld-freebsd1=
1.0/libgomp':
>>> configure:3786: error: C compiler cannot create executables
>>=20
>>=20
>>=20
>> For attempting to build lang/gcc6 with the bootstrap configuraiton =
item disabled similar ld reports are generated:
>>=20
>>> /usr/local/bin/ld: error: a.out uses VFP register arguments, =
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/crtbegin.o does =
not
>>> /usr/local/bin/ld: failed to merge target specific data of file =
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/crtbegin.o
>>> /usr/local/bin/ld: error: a.out uses VFP register arguments, =
/tmp/cco9nucg.o does not
>>> /usr/local/bin/ld: failed to merge target specific data of file =
/tmp/cco9nucg.o
>>> /usr/local/bin/ld: error: a.out uses VFP register arguments, =
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/crtend.o does =
not
>>> /usr/local/bin/ld: failed to merge target specific data of file =
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/crtend.o
>>> collect2: error: ld returned 1 exit status
>>> configure:3003: $? =3D 1
>>> configure:3040: result:=20
>>> configure: failed program was:
>>> | /* confdefs.h */
>>> | #define PACKAGE_NAME "package-unused"
>>> | #define PACKAGE_TARNAME "libbacktrace"
>>> | #define PACKAGE_VERSION "version-unused"
>>> | #define PACKAGE_STRING "package-unused version-unused"
>>> | #define PACKAGE_BUGREPORT ""
>>> | #define PACKAGE_URL ""
>>> | /* end confdefs.h.  */
>>> |=20
>>> | int
>>> | main ()
>>> | {
>>> |=20
>>> |   ;
>>> |   return 0;
>>> | }
>>> configure:3046: error: in =
`/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-portbld-freebsd1=
1.0/libbacktrace':
>>> configure:3050: error: C compiler cannot create executables
>>=20
>>=20
>> Context details. . .
>>=20
>> As for the in-use make.conf (not the one used for the system build):
>>=20
>>> # more /etc/make.conf
>>> DEFAULT_VERSIONS+=3Dperl5=3D5.22
>>> WRKDIRPREFIX=3D/usr/obj/portswork
>>> WITH_DEBUG=3D
>>> WITH_DEBUG_FILES=3D
>>> MALLOC_PRODUCTION=3D
>>> #
>>> #system clang 3.8 (gcc6 rejects -march=3Darmv7a):
>>> #CFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7
>>> #CXXFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7
>>> #CPPFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7
>>> #
>>> #lang/gcc6's xgcc stage considers the above conflicting so use just:
>>> CFLAGS+=3D -mcpu=3Dcortex-a7
>>> CXXFLAGS+=3D -mcpu=3Dcortex-a7
>>> CPPFLAGS+=3D -mcpu=3Dcortex-a7
>>=20
>>=20
>> The armv6 11.0 -r301815 system was cross built from amd64, built =
using src.conf:
>>=20
>>> # more ~/src.configs/src.conf.rpi2-clang-bootstrap.amd64-host=20
>>> TO_TYPE=3Darmv6
>>> #
>>> KERNCONF=3DRPI2-NODBG
>>> TARGET=3Darm
>>> .if ${.MAKE.LEVEL} =3D=3D 0
>>> TARGET_ARCH=3D${TO_TYPE}
>>> .export TARGET_ARCH
>>> .endif
>>> #
>>> WITH_CROSS_COMPILER=3D
>>> WITHOUT_SYSTEM_COMPILER=3D
>>> #
>>> #CPUTYPE=3Dsoft
>>> WITH_LIBSOFT=3D
>>> WITH_LIBCPLUSPLUS=3D
>>> WITH_BINUTILS_BOOTSTRAP=3D
>>> WITH_CLANG_BOOTSTRAP=3D
>>> WITH_CLANG=3D
>>> WITH_CLANG_IS_CC=3D
>>> WITH_CLANG_FULL=3D
>>> WITH_CLANG_EXTRAS=3D
>>> WITH_LLDB=3D
>>> #
>>> WITH_BOOT=3D
>>> WITHOUT_LIB32=3D
>>> #
>>> WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=3D
>>> WITHOUT_GCC_BOOTSTRAP=3D
>>> WITHOUT_GCC=3D
>>> WITHOUT_GCC_IS_CC=3D
>>> WITHOUT_GNUCXX=3D
>>> #
>>> NO_WERROR=3D
>>> #WERROR=3D
>>> MALLOC_PRODUCTION=3D
>>> #
>>> WITH_DEBUG_FILES=3D
>>> #
>>> XCFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7
>>> XCXXFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7
>>> # There is no XCPPFLAGS but XCPP ets XCFLAGS content.
>>=20
>> and with the make.conf for the system build being empty:
>>=20
>>> # more ~/src.configs/make.conf=20
>>> #
>>=20
>>=20
>> =3D=3D=3D
>> Mark Millard
>> markmi at dsl-only.net



=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?9956CBA7-4000-4124-9682-6A34456C188F>