Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Apr 2017 18:04:23 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        Gerald Pfeifer <gerald@FreeBSD.org>, Pedro Giffuni <pfg@FreeBSD.org>, FreeBSD Ports <freebsd-ports@freebsd.org>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>, freebsd-toolchain-owner@freebsd.org, ericturgeon.bsd@gmail.com
Subject:   lang/gcc6-aux for head beyond __nonnull related issues: vm_ooffset_t and vm_pindex_t related changes (and more)
Message-ID:  <E54E495A-E4C8-40B3-B1E8-133A9872B6B2@dsl-only.net>

next in thread | raw e-mail | index | archive | help
As means of investigating if lang/gcc6-aux has other problems
building on aarch64 than just __nonnull and __nonull_all I did:

# svnlite diff /usr/src/sys/sys/
Index: /usr/src/sys/sys/cdefs.h
=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/src/sys/sys/cdefs.h	(revision 315914)
+++ /usr/src/sys/sys/cdefs.h	(working copy)
@@ -376,6 +376,10 @@
 #define	__noinline
 #endif
=20
+// HACK to enable older source that did not track.
+#define __nonnull(x)
+#define __nonnull_all
+
 #if __GNUC_PREREQ__(3, 4)
 #define	__fastcall	__attribute__((__fastcall__))
 #define	__result_use_check	=
__attribute__((__warn_unused_result__))

and so such similarly shows up in /usr/include/sys/cdefs.h .

The attempt to build lang/gcc6-aux (as part of attempting
to build ports-mgmt/synth) resulted in:


In file included from =
/usr/obj/portswork/usr/ports/lang/gcc6-aux/work/gcc-6-20170202/libiberty/f=
dmatch.c:45:0:
./config.h:556:15: error: two or more data types in declaration =
specifiers
 #define pid_t int
               ^
In file included from =
/usr/obj/portswork/usr/ports/lang/gcc6-aux/work/gcc-6-20170202/libiberty/f=
dmatch.c:49:0:
=
/usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-=
aux-freebsd12.0/6.3.1/include-fixed/sys/types.h:266:9: error: unknown =
type name '__vm_ooffset_t'
 typedef __vm_ooffset_t vm_ooffset_t;
         ^~~~~~~~~~~~~~
=
/usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-=
aux-freebsd12.0/6.3.1/include-fixed/sys/types.h:268:9: error: unknown =
type name '__vm_pindex_t'
 typedef __vm_pindex_t vm_pindex_t;
         ^~~~~~~~~~~~~
gmake[4]: *** [Makefile:732: fdmatch.o] Error 1
gmake[4]: Leaving directory =
'/usr/obj/portswork/usr/ports/lang/gcc6-aux/work/build/libiberty'
gmake[3]: *** [Makefile:7458: all-libiberty] Error 2
gmake[3]: *** Waiting for unfinished jobs....


vm_ooffset_t and vm_pindex_t has 2017-Feb-4 changes:

Revision 313194 - (view) (download) (annotate) - [select for diffs]=20
Modified Sat Feb 4 12:26:38 2017 UTC (2 months, 1 week ago) by kib=20
File length: 10733 byte(s)=20
Diff to previous 299571
Define the vm_ooffset_t and vm_pindex_t types as machine-independend.

The types are for the byte offset and page index in vm object.  They
are similar to off_t, which is defined as 64bit MI integer.  Using MI
definitions will allow to provide consistent MD values of vm
object-related maximum sizes.

Reviewed by:	alc
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week


The "#define pid_t int" in the local:

/usr/obj/portswork/usr/ports/lang/gcc6-aux/work/build/libiberty/config.h

likely messes up some later "typedef . . . pid_t;", such as:

=
/usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-=
aux-freebsd12.0/6.3.1/include-fixed/sys/types.h:typedef       __pid_t    =
     pid_t;          /* process id */

resulting in:

typedef __pid_t int;



So lang/gcc6-aux bootstrapping has more problems than just __nonnull
and __nonnull_all issues, at least for aarch64 head.

lang/gcc6-aux might not be the only thing with such issues.


I stopped with this. There could be more issues for lang/gcc6-aux .

=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?E54E495A-E4C8-40B3-B1E8-133A9872B6B2>