lang/gcc6-aux for head beyond __nonnull related issues: vm_ooffset_t and vm_pindex_t related changes (and more)

Mark Millard markmi at
Fri Apr 14 01:04:27 UTC 2017

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
--- /usr/src/sys/sys/cdefs.h	(revision 315914)
+++ /usr/src/sys/sys/cdefs.h	(working copy)
@@ -376,6 +376,10 @@
 #define	__noinline
+// 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/fdmatch.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/fdmatch.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] 
Modified Sat Feb 4 12:26:38 2017 UTC (2 months, 1 week ago) by kib 
File length: 10733 byte(s) 
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:


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 .

Mark Millard
markmi at

More information about the freebsd-ports mailing list