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:39:01 UTC 2017


[I accidentally sent the original of the "on . . . wrote"
below to the wrong toolchain list. This just corrects that.]

[I'll also note that lang/gcc6-aux was indirectly attempted
when I tried to build ports-mgmt/synth on a Pine64+ 2GB
(an aarch64 context). I had noticed the recent update claiming
native aarch64 support for synth and tried to build it. I've
no direct interest in lang/gcc6-aux . I just ended up with
FYI information about lang/gcc6-aux .]

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

(I've added a missing "n" in the first "__nonnull_all" below.)
On 2017-Apr-13, at 6:04 PM, Mark Millard <markmi at dsl-only.net> wrote:

> As means of investigating if lang/gcc6-aux has other problems
> building on aarch64 than just __nonnull and __nonnull_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 .



More information about the freebsd-ports mailing list