lang/gcc6-aux for head beyond __nonnull related issues: vm_ooffset_t and vm_pindex_t related changes (and more)
Mark Millard
markmi at dsl-only.net
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
#endif
+// 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:
/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 .
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-arm
mailing list