Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Jul 2018 00:12:06 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Konstantin Belousov <kib@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: head -r336568 and -r336570 appears to have made ci.freebsg.org's FreeBSD-head-amd64-gcc fail either than it had been (error: operand type 'struct <anonymous> *' is incompatible with argument 1 of '__atomic_fetch_add')
Message-ID:  <1E03ECE7-297C-4D40-BC58-FB1903538181@yahoo.com>
In-Reply-To: <462BE582-0C2E-4D40-92F3-A27155777E58@yahoo.com>
References:  <AED126D8-AFB9-4BF6-81AF-A3CE5F16D2AB@yahoo.com> <EDDB87CC-3CC6-4A71-AF6D-B193F26BB692@yahoo.com> <95fdbf29-6c11-77a6-27a3-2d0dc30f1668@FreeBSD.org> <788B1EE7-EFC9-4AD4-9FD1-9876D0121189@yahoo.com> <9D40F38E-F1DC-4A3F-8792-09AD30D8802B@yahoo.com> <D06CD69A-F0E5-4935-8B64-D1ADB7B6D90A@yahoo.com> <1ea2a8d0-b27a-503a-0a8b-48d7fbcd8fcb@FreeBSD.org> <0103123A-2D77-4D64-8FF6-97CD521CA7A8@yahoo.com> <11b515f2-5777-f983-bec5-e60bceda06ab@FreeBSD.org> <6DB0B921-30C8-4BF5-B610-770C0CBF1174@yahoo.com> <E3CFA058-D879-4E25-A8BA-C052803AE509@yahoo.com> <462BE582-0C2E-4D40-92F3-A27155777E58@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2018-Jul-26, at 11:29 PM, Mark Millard <marklmi at yahoo.com> wrote:

> On 2018-Jul-26, at 9:06 PM, Mark Millard <marklmi at yahoo.com> wrote:
>=20
>> On 2018-Jul-26, at 6:14 PM, Mark Millard <marklmi at yahoo.com> =
wrote:
>>=20
>>> On 2018-Jul-26, at 11:21 AM, John Baldwin <jhb at freebsd.org> =
wrote:
>>>=20
>>>> On 7/26/18 10:55 AM, Mark Millard wrote:
>>>>> . . .
>>>>=20
>>>> Yes, but the -E from above was when compiled with external GCC and =
it didn't change
>>>> _Atomic(int).  Here's part of the source of bar.c:
>>>>=20
>>>> #include <sys/cdefs.h>
>>>> #include <stdatomic.h>
>>>>=20
>>>> struct foo {
>>>>     _Atomic(int) one;
>>>>     _Atomic int two;
>>>>     atomic_int three;
>>>> };
>>>>=20
>>>> And here is what that became after -E:
>>>>=20
>>>> # 4 "bar.c"
>>>> struct foo {
>>>> _Atomic(int) one;
>>>> _Atomic int two;
>>>> atomic_int three;
>>>> };
>>>>=20
>>>> So cdefs.h did not define _Atomic.
>>>>=20
>>>> Ah, if I add '-std=3Dc99' then it does break.  Code that wants to =
use
>>>> C11 atomics via <stdatomic.h> should not be using -std=3Dc99.  Try =
this:
>>>>=20
>>>> Index: lib/ofed/librdmacm/Makefile
>>>> =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
>>>> --- lib/ofed/librdmacm/Makefile (revision 335896)
>>>> +++ lib/ofed/librdmacm/Makefile (working copy)
>>>> @@ -8,6 +8,7 @@
>>>> SHLIB_MAJOR=3D   1
>>>> MK_PROFILE=3D    no
>>>> CFLAGS+=3D       -I${_spath}
>>>> +CSTD=3D          gnu11
>>>>=20
>>>> SRCS=3D \
>>>> acm.c \
>>>>=20
>>>> If this works then we should probably mark OFED as a BROKEN_OPTION =
when
>>>> building with ancient GCC for now as well.
>>>=20
>>> I've "unreverted" to set up a context for testing this.
>>>=20
>>> So far I'll I've done is to test that I can still reproduce the =
failure
>>> in my environment, same sort of error reports as ci.freebsd.org's
>>> FreeBSD-head-amd64-gcc . This is without your patch.
>>>=20
>>> But I've done this with gcc being given -v so that I've the exact =
commands
>>> and search order and the like. It  does show: -std=3Dgnu99 . I list =
the
>>> filemon data from the .meta as well, showing the exact mix of
>>> FreeBSD and gcc headers used. (I could also provide such for with
>>> the reverted Makefile.{inc1,libcompat} [so non-failing] build if you
>>> care.)
>>>=20
>>>=20
>>> For now I just report the failure *without your patch*:
>>> (I'll build again with your patch next.)
>>>=20
>>> . . .
>>> --- all_subdir_lib/ofed ---
>>> Building =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/lib/ofed/lib=
rdmacm/acm.o
>>> --- acm.o ---
>>> Using built-in specs.
>>> COLLECT_GCC=3D/usr/local/bin/x86_64-unknown-freebsd12.0-gcc
>>> Target: x86_64-unknown-freebsd12.0
>>> Configured with: =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/configure =
--target=3Dx86_64-unknown-freebsd12.0 --disable-nls =
--enable-languages=3Dc,c++ --enable-gnu-indirect-function =
--without-headers --with-gmp=3D/usr/local --with-pkgversion=3D'FreeBSD =
Ports Collection for amd64' --with-system-zlib =
--with-gxx-include-dir=3D/usr/include/c++/v1/ --with-sysroot=3D/ =
--with-as=3D/usr/local/bin/x86_64-unknown-freebsd12.0-as =
--with-ld=3D/usr/local/bin/x86_64-unknown-freebsd12.0-ld =
--enable-initfini-array --prefix=3D/usr/local --localstatedir=3D/var =
--mandir=3D/usr/local/man --infodir=3D/usr/local/info/ =
--build=3Dx86_64-unknown-freebsd12.0
>>> Thread model: posix
>>> gcc version 6.4.0 (FreeBSD Ports Collection for amd64)=20
>>> COLLECT_GCC_OPTIONS=3D'-B' =
'/usr/local/x86_64-unknown-freebsd12.0/bin/' '-O2' '-pipe' '-I' =
'/usr/src/contrib/ofed/librdmacm' '-g' '-std=3Dgnu99' =
'-fstack-protector-strong' '-Wno-error=3Daddress' =
'-Wno-error=3Darray-bounds' '-Wno-error=3Dattributes' =
'-Wno-error=3Dbool-compare' '-Wno-error=3Dcast-align' =
'-Wno-error=3Dclobbered' '-Wno-error=3Denum-compare' '-Wno-error=3Dextra' =
'-Wno-error=3Dinline' '-Wno-error=3Dlogical-not-parentheses' =
'-Wno-error=3Dstrict-aliasing' '-Wno-error=3Duninitialized' =
'-Wno-error=3Dunused-but-set-variable' '-Wno-error=3Dunused-function' =
'-Wno-error=3Dunused-value' '-Wno-error=3Dmisleading-indentation' =
'-Wno-error=3Dnonnull-compare' '-Wno-error=3Dshift-negative-value' =
'-Wno-error=3Dtautological-compare' '-Wno-error=3Dunused-const-variable' =
'-v' '-c' '-o' 'acm.o' '-mtune=3Dgeneric' '-march=3Dx86-64'
>>> /usr/local/libexec/gcc/x86_64-unknown-freebsd12.0/6.4.0/cc1 -quiet =
-v -I /usr/src/contrib/ofed/librdmacm -isysroot =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp =
/usr/src/contrib/ofed/librdmacm/acm.c -quiet -dumpbase acm.c =
-mtune=3Dgeneric -march=3Dx86-64 -auxbase-strip acm.o -g -O2 =
-Wno-error=3Daddress -Wno-error=3Darray-bounds -Wno-error=3Dattributes =
-Wno-error=3Dbool-compare -Wno-error=3Dcast-align -Wno-error=3Dclobbered =
-Wno-error=3Denum-compare -Wno-error=3Dextra -Wno-error=3Dinline =
-Wno-error=3Dlogical-not-parentheses -Wno-error=3Dstrict-aliasing =
-Wno-error=3Duninitialized -Wno-error=3Dunused-but-set-variable =
-Wno-error=3Dunused-function -Wno-error=3Dunused-value =
-Wno-error=3Dmisleading-indentation -Wno-error=3Dnonnull-compare =
-Wno-error=3Dshift-negative-value -Wno-error=3Dtautological-compare =
-Wno-error=3Dunused-const-variable -std=3Dgnu99 -version =
-fstack-protector-strong -o - |
>>> /usr/local/bin/x86_64-unknown-freebsd12.0-as -v -I =
/usr/src/contrib/ofed/librdmacm -o acm.o
>>> GNU C99 (FreeBSD Ports Collection for amd64) version 6.4.0 =
(x86_64-unknown-freebsd12.0)
>>> 	compiled by GNU C version 4.2.1 Compatible FreeBSD Clang 6.0.0 =
(tags/RELEASE_600/final 326565), GMP version 6.1.2, MPFR version 4.0.1, =
MPC version 1.1.0, isl version none
>>> GGC heuristics: --param ggc-min-expand=3D100 --param =
ggc-min-heapsize=3D131072
>>> ignoring nonexistent directory =
"/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include-fixed"
>>> ignoring nonexistent directory =
"/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/../../../../x86_64-un=
known-freebsd12.0/include"
>>> #include "..." search starts here:
>>> #include <...> search starts here:
>>> /usr/src/contrib/ofed/librdmacm
>>> /usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include
>>> =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude
>>> End of search list.
>>> GNU assembler version 2.30 (x86_64-unknown-freebsd12.0) using BFD =
version (GNU Binutils) 2.30
>>> GNU C99 (FreeBSD Ports Collection for amd64) version 6.4.0 =
(x86_64-unknown-freebsd12.0)
>>> 	compiled by GNU C version 4.2.1 Compatible FreeBSD Clang 6.0.0 =
(tags/RELEASE_600/final 326565), GMP version 6.1.2, MPFR version 4.0.1, =
MPC version 1.1.0, isl version none
>>> GGC heuristics: --param ggc-min-expand=3D100 --param =
ggc-min-heapsize=3D131072
>>> Compiler executable checksum: 0b55436e4202650149cc2feb351f4e0e
>>> In file included from /usr/src/contrib/ofed/librdmacm/cma.h:43:0,
>>>               from /usr/src/contrib/ofed/librdmacm/acm.c:42:
>>> /usr/src/contrib/ofed/librdmacm/cma.h: In function 'fastlock_init':
>>> /usr/src/contrib/ofed/librdmacm/cma.h:60:2: error: invalid =
initializer
>>> atomic_store(&lock->cnt, 0);
>>> ^
>>> In file included from /usr/src/contrib/ofed/librdmacm/acm.c:42:0:
>>> /usr/src/contrib/ofed/librdmacm/cma.h: In function =
'fastlock_acquire':
>>> /usr/src/contrib/ofed/librdmacm/cma.h:68:2: error: operand type =
'struct <anonymous> *' is incompatible with argument 1 of =
'__atomic_fetch_add'
>>> if (atomic_fetch_add(&lock->cnt, 1) > 0)
>>> ^~
>>> /usr/src/contrib/ofed/librdmacm/cma.h: In function =
'fastlock_release':
>>> /usr/src/contrib/ofed/librdmacm/cma.h:73:2: error: operand type =
'struct <anonymous> *' is incompatible with argument 1 of =
'__atomic_fetch_sub'
>>> if (atomic_fetch_sub(&lock->cnt, 1) > 1)
>>> ^~
>>> *** [acm.o] Error code 1
>>>=20
>>> make[6]: stopped in /usr/src/lib/ofed/librdmacm
>>> .ERROR_TARGET=3D'acm.o'
>>> =
.ERROR_META_FILE=3D'/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd6=
4.amd64/lib/ofed/librdmacm/acm.o.meta'
>>> .MAKE.LEVEL=3D'6'
>>> MAKEFILE=3D''
>>> .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes =
silent=3Dyes verbose'
>>> _ERROR_CMD=3D'/usr/local/bin/x86_64-unknown-freebsd12.0-gcc =
--sysroot=3D/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/=
tmp -B/usr/local/x86_64-unknown-freebsd12.0/bin/  -O2 -pipe =
-I/usr/src/contrib/ofed/librdmacm   -g -std=3Dgnu99 =
-fstack-protector-strong -Wno-error=3Daddress -Wno-error=3Darray-bounds =
-Wno-error=3Dattributes -Wno-error=3Dbool-compare -Wno-error=3Dcast-align =
-Wno-error=3Dclobbered -Wno-error=3Denum-compare -Wno-error=3Dextra =
-Wno-error=3Dinline -Wno-error=3Dlogical-not-parentheses =
-Wno-error=3Dstrict-aliasing -Wno-error=3Duninitialized =
-Wno-error=3Dunused-but-set-variable -Wno-error=3Dunused-function =
-Wno-error=3Dunused-value -Wno-error=3Dmisleading-indentation =
-Wno-error=3Dnonnull-compare -Wno-error=3Dshift-negative-value =
-Wno-error=3Dtautological-compare -Wno-error=3Dunused-const-variable   =
-v  -c /usr/src/contrib/ofed/librdmacm/acm.c -o acm.o; ;'
>>> .CURDIR=3D'/usr/src/lib/ofed/librdmacm'
>>> .MAKE=3D'make'
>>> =
.OBJDIR=3D'/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/l=
ib/ofed/librdmacm'
>>> .TARGETS=3D'all'
>>> =
DESTDIR=3D'/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/t=
mp'
>>> LD_LIBRARY_PATH=3D''
>>> MACHINE=3D'amd64'
>>> MACHINE_ARCH=3D'amd64'
>>> MAKEOBJDIRPREFIX=3D''
>>> MAKESYSPATH=3D'/usr/src/share/mk'
>>> MAKE_VERSION=3D'20180512'
>>> =
PATH=3D'/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/=
legacy/usr/sbin:/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.am=
d64/tmp/legacy/usr/bin:/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/a=
md64.amd64/tmp/legacy/bin:/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/sr=
c/amd64.amd64/tmp/usr/sbin:/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/s=
rc/amd64.amd64/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin'
>>> SRCTOP=3D'/usr/src'
>>> =
OBJTOP=3D'/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64'
>>> .MAKE.MAKEFILES=3D'/usr/src/share/mk/sys.mk =
/usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk =
/root/src.configs/src.conf.amd64-xtoolchain-gcc.amd64-host =
/usr/src/share/mk/bsd.mkopt.mk /usr/src/share/mk/src.sys.obj.mk =
/usr/src/share/mk/auto.obj.mk /usr/src/share/mk/bsd.suffixes.mk =
/root/src.configs/make.conf /usr/src/share/mk/local.sys.mk =
/usr/src/share/mk/src.sys.mk /dev/null =
/usr/src/lib/ofed/librdmacm/Makefile /usr/src/share/mk/bsd.lib.mk =
/usr/src/share/mk/bsd.init.mk /usr/src/share/mk/bsd.opts.mk =
/usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/local.init.mk =
/usr/src/share/mk/src.init.mk =
/usr/src/lib/ofed/librdmacm/../Makefile.inc /usr/src/share/mk/bsd.own.mk =
/usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.linker.mk =
/usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk =
/usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.symver.mk =
/usr/src/share/mk/bsd.nls.mk /usr/src/share/mk/bsd.confs.mk =
/usr/src/share/mk/bsd.files.mk /usr/src/share/mk/bsd.dirs.mk =
/usr/src/share/mk/bsd.incs.mk /usr/src/share/mk/bsd.links.mk =
/usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk =
/usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk =
/usr/src/share/mk/bsd.sys.mk'
>>> .PATH=3D'. /usr/src/lib/ofed/librdmacm =
/usr/src/contrib/ofed/librdmacm /usr/src/contrib/ofed/librdmacm/man'
>>> 1 error
>>>=20
>>> =46rom =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/lib/ofed/lib=
rdmacm/acm.o.meta
>>> is the filemon data:
>>>=20
>>> -- filemon acquired metadata --
>>> # filemon version 5
>>> # Target pid 95011
>>> # Start 1532652684.414953
>>> V 5
>>> E 95033 /bin/sh
>>> R 95033 /etc/libmap.conf
>>> R 95033 /var/run/ld-elf.so.hints
>>> R 95033 /lib/libedit.so.7
>>> R 95033 /lib/libc.so.7
>>> R 95033 /lib/libncursesw.so.8
>>> F 95033 95034
>>> E 95034 /usr/local/bin/x86_64-unknown-freebsd12.0-gcc
>>> R 95034 /etc/libmap.conf
>>> R 95034 /var/run/ld-elf.so.hints
>>> R 95034 /usr/lib/libc++.so.1
>>> R 95034 /lib/libcxxrt.so.1
>>> R 95034 /lib/libm.so.5
>>> R 95034 /lib/libc.so.7
>>> R 95034 /lib/libgcc_s.so.1
>>> F 95034 95035
>>> E 95035 /usr/local/libexec/gcc/x86_64-unknown-freebsd12.0/6.4.0/cc1
>>> F 95034 95036
>>> R 95035 /etc/libmap.conf
>>> R 95035 /var/run/ld-elf.so.hints
>>> R 95035 /usr/local/lib/libmpc.so.3
>>> R 95035 /usr/local/lib/libmpfr.so.6
>>> R 95035 /usr/local/lib/libgmp.so.10
>>> R 95035 /lib/libz.so.6
>>> R 95035 /usr/lib/libc++.so.1
>>> R 95035 /lib/libcxxrt.so.1
>>> R 95035 /lib/libm.so.5
>>> R 95035 /lib/libc.so.7
>>> R 95035 /lib/libgcc_s.so.1
>>> R 95035 /dev/urandom
>>> R 95035 /usr/src/contrib/ofed/librdmacm/acm.c
>>> E 95036 /usr/local/bin/x86_64-unknown-freebsd12.0-as
>>> R 95036 /etc/libmap.conf
>>> R 95036 /var/run/ld-elf.so.hints
>>> R 95036 /lib/libc.so.7
>>> R 95036 acm.o
>>> W 95036 acm.o
>>> R 95035 /usr/src/contrib/ofed/librdmacm/config.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/stdio.h
>>> R 95035 /usr/src/sys/sys/cdefs.h
>>> R 95035 /usr/src/sys/sys/_null.h
>>> R 95035 /usr/src/sys/sys/_types.h
>>> R 95035 /usr/src/sys/amd64/include/_types.h
>>> R 95035 /usr/src/sys/x86/include/_types.h
>>> R 95035 /usr/src/sys/amd64/include/_limits.h
>>> R 95035 /usr/src/sys/x86/include/_limits.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/inttypes.h
>>> R 95035 /usr/src/sys/amd64/include/_inttypes.h
>>> R 95035 /usr/src/sys/x86/include/_inttypes.h
>>> R 95035 /usr/src/sys/sys/stdint.h
>>> R 95035 /usr/src/sys/amd64/include/_stdint.h
>>> R 95035 /usr/src/sys/x86/include/_stdint.h
>>> R 95035 /usr/src/sys/amd64/include/_limits.h
>>> R 95035 /usr/src/sys/sys/_stdint.h
>>> R 95035 /usr/src/sys/sys/types.h
>>> R 95035 /usr/src/sys/amd64/include/endian.h
>>> R 95035 /usr/src/sys/x86/include/endian.h
>>> R 95035 /usr/src/sys/sys/_pthreadtypes.h
>>> R 95035 /usr/src/sys/sys/select.h
>>> R 95035 /usr/src/sys/sys/_sigset.h
>>> R 95035 /usr/src/sys/sys/_timeval.h
>>> R 95035 /usr/src/sys/sys/timespec.h
>>> R 95035 /usr/src/sys/sys/_timespec.h
>>> R 95035 /usr/src/sys/sys/socket.h
>>> R 95035 /usr/src/sys/sys/_iovec.h
>>> R 95035 /usr/src/sys/amd64/include/_align.h
>>> R 95035 /usr/src/sys/x86/include/_align.h
>>> R 95035 /usr/src/sys/sys/_sockaddr_storage.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/netdb.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/unistd.h
>>> R 95035 /usr/src/sys/sys/unistd.h
>>> R 95035 /usr/src/contrib/ofed/librdmacm/cma.h
>>> R 95035 /usr/src/contrib/ofed/librdmacm/config.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/stdlib.h
>>> R 95035 /usr/src/sys/sys/errno.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/infiniband/endian.h
>>> R 95035 /usr/src/sys/sys/endian.h
>>> R 95035 /usr/src/sys/amd64/include/endian.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/semaphore.h
>>> R 95035 /usr/src/sys/sys/_umtx.h
>>> R 95035 /usr/src/sys/amd64/include/_limits.h
>>> R 95035 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/stdatomic.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/rdma/rdma_cma.h
>>> R 95035 /usr/src/sys/netinet/in.h
>>> R 95035 /usr/src/sys/amd64/include/endian.h
>>> R 95035 /usr/src/sys/netinet6/in6.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/infiniband/verbs.h
>>> R 95035 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/stdint.h
>>> R 95035 /usr/src/sys/sys/stdint.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/pthread.h
>>> R 95035 /usr/src/sys/amd64/include/_limits.h
>>> R 95035 /usr/src/sys/amd64/include/_types.h
>>> R 95035 /usr/src/sys/sys/sched.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/time.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/xlocale/_time.h
>>> R 95035 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/stddef.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/string.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/strings.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/xlocale/_strings.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/xlocale/_string.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/infiniband/types.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/infiniband/sa.h
>>> R 95035 =
/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/incl=
ude/infiniband/ib.h
>>> R 95035 /usr/src/contrib/ofed/librdmacm/cma.h
>>> X 95036 0 0
>>> X 95035 1 0
>>> D 95034 acm.o
>>> X 95034 1 0
>>> X 95033 1 0
>>> # Stop 1532652684.494688
>>> # Bye bye
>>>=20
>>>=20
>>>=20
>>> For reference the amd64-gcc is:
>>>=20
>>> # pkg info amd64-gcc
>>> amd64-gcc-6.4.0_1
>>> Name           : amd64-gcc
>>> Version        : 6.4.0_1
>>> Installed on   : Sun Jul 15 09:15:38 2018 PDT
>>> Origin         : devel/amd64-gcc
>>> Architecture   : FreeBSD:12:amd64
>>> Prefix         : /usr/local
>>> Categories     : devel
>>> Licenses       : GPLv3, GPLv3RLE
>>> Maintainer     : kan@FreeBSD.org
>>> WWW            : http://gcc.gnu.org/
>>> Comment        : Cross GNU Compiler Collection for amd64
>>> Shared Libs required:
>>> 	libmpc.so.3
>>> 	libgmp.so.10
>>> 	libmpfr.so.6
>>> Shared Libs provided:
>>> 	liblto_plugin.so.0
>>> Annotations    :
>>> 	FreeBSD_version: 1200069
>>> 	repo_type      : binary
>>> 	repository     : custom
>>> Flat size      : 338MiB
>>> Description    :
>>> GCC, the GNU Compiler Collection supporting C and C++ for targetting =
crossbuilding.
>>>=20
>>> WWW: http://gcc.gnu.org/
>>=20
>> With your patch it gets past that point of build failure.
>>=20
>> But my devel/amd64-gcc predates the removal of float.h from
>> the installed devel/amd64-gcc so the following may not be as
>> it would be in such a context:
>>=20
>> --- lib/msun__L ---
>> /usr/src/lib/msun/src/catrigl.c:90:2: error: #error "Unsupported long =
double format"
>> #error "Unsupported long double format"
>> ^~~~~
>> . . .
>> --- lib/msun__L ---
>> /usr/src/lib/msun/src/catrigl.c: In function 'casinhl':
>> /usr/src/lib/msun/src/catrigl.c:190:35: error: 'm_ln2' undeclared =
(first use in this function)
>>   w =3D clog_for_large_values(z) + m_ln2;
>>                                  ^~~~~
>> /usr/src/lib/msun/src/catrigl.c:190:35: note: each undeclared =
identifier is reported only once for each function it appears in
>> /usr/src/lib/msun/src/catrigl.c:202:11: error: 'SQRT_6_EPSILON' =
undeclared (first use in this function)
>> if (ax < SQRT_6_EPSILON / 4 && ay < SQRT_6_EPSILON / 4)
>>          ^~~~~~~~~~~~~~
>> /usr/src/lib/msun/src/catrigl.c: In function 'cacosl':
>> /usr/src/lib/msun/src/catrigl.c:250:20: error: 'm_ln2' undeclared =
(first use in this function)
>>  ry =3D creall(w) + m_ln2;
>>                   ^~~~~
>> /usr/src/lib/msun/src/catrigl.c:261:11: error: 'SQRT_6_EPSILON' =
undeclared (first use in this function)
>> if (ax < SQRT_6_EPSILON / 4 && ay < SQRT_6_EPSILON / 4)
>>          ^~~~~~~~~~~~~~
>> In file included from /usr/src/lib/msun/src/catrigl.c:45:0:
>>=20
>>=20
>>=20
>> I can remove float.h and see what happens.
>=20
> While the build without gcc's float.h goes on, here are some small
> experiments with interesting results (mostly these are with
> -std=3Dgnu11):
>=20
> # more AtomicTest.c=20
> // x86_64-unknown-freebsd12.0-gcc -v -E AtomicTest.c
>=20
> #include <sys/cdefs.h>
> #include <stdatomic.h>
>=20
> struct foo {
>       _Atomic(int) one;
>       _Atomic int two;
>       atomic_int three;
> };
>=20
>=20
>=20
> # x86_64-unknown-freebsd12.0-gcc -dM -std=3Dgnu11 -E AtomicTest.c | =
grep has_
> #define __has_include(STR) __has_include__(STR)
> #define __has_include_next(STR) __has_include_next__(STR)
> #define __has_extension __has_feature
> #define __has_builtin(x) 0
> #define __has_feature(x) 0
>=20
> (-std=3Dgnu99 matches the above)
>=20
>=20
> # x86_64-unknown-freebsd12.0-gcc -dM -std=3Dgnu11 -E AtomicTest.c | =
grep atomic_fetch
> #define atomic_fetch_or(PTR,VAL) __atomic_fetch_or ((PTR), (VAL), =
__ATOMIC_SEQ_CST)
> #define atomic_fetch_or_explicit(PTR,VAL,MO) __atomic_fetch_or ((PTR), =
(VAL), (MO))
> #define atomic_fetch_and_explicit(PTR,VAL,MO) __atomic_fetch_and =
((PTR), (VAL), (MO))
> #define atomic_fetch_sub_explicit(PTR,VAL,MO) __atomic_fetch_sub =
((PTR), (VAL), (MO))
> #define atomic_fetch_xor_explicit(PTR,VAL,MO) __atomic_fetch_xor =
((PTR), (VAL), (MO))
> #define atomic_fetch_add(PTR,VAL) __atomic_fetch_add ((PTR), (VAL), =
__ATOMIC_SEQ_CST)
> #define atomic_fetch_sub(PTR,VAL) __atomic_fetch_sub ((PTR), (VAL), =
__ATOMIC_SEQ_CST)
> #define atomic_fetch_and(PTR,VAL) __atomic_fetch_and ((PTR), (VAL), =
__ATOMIC_SEQ_CST)
> #define atomic_fetch_xor(PTR,VAL) __atomic_fetch_xor ((PTR), (VAL), =
__ATOMIC_SEQ_CST)
> #define atomic_fetch_add_explicit(PTR,VAL,MO) __atomic_fetch_add =
((PTR), (VAL), (MO))
>=20
> (-std=3Dgnu99 matches the above)
>=20
>=20
> The following shows -std=3Dgnu99 vs. -std=3Dgnu11 results that do not
> match:
>=20
> # x86_64-unknown-freebsd12.0-gcc -E -std=3Dgnu99 AtomicTest.c | more
> . . .
> # 6 "AtomicTest.c"
> struct foo {
>=20
> # 7 "AtomicTest.c" 3 4
>      struct {=20
> # 7 "AtomicTest.c"
>      int=20
> # 7 "AtomicTest.c" 3 4
>      volatile __val; }=20
> # 7 "AtomicTest.c"
>                   one;
>       _Atomic int two;
>       atomic_int three;
> };
> . . .
>=20
> # x86_64-unknown-freebsd12.0-gcc -E -std=3Dgnu11 AtomicTest.c | more
> . . .
>=20
> # 6 "AtomicTest.c"
> struct foo {
>       _Atomic(int) one;
>       _Atomic int two;
>       atomic_int three;
> };
> . . .
>=20
> I will add a #warning where FreeBSD's cdefs.h has the #define =
_Atomic(T)
> to report on if the #define _Atomic(T) is being processed (but =
possibly
> ignored) for -std=3Dgnu11 . (But after the ongoing build stops.)
>=20

I was looking too locally: the overall context has an outer #if
as well that skips the section:

/*
 * Keywords added in C11.
 */
=20
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L
. . .
#if !defined(__cplusplus) && !__has_extension(c_atomic) && \
    !__has_extension(cxx_atomic)
/*
 * No native support for _Atomic(). Place object in structure to prevent
 * most forms of direct non-atomic access.
 */
#define _Atomic(T)              struct { T volatile __val; }
#endif
. . .
#endif /* __STDC_VERSION__ || __STDC_VERSION__ < 201112L */




The build with gcc's float.h also removed did complete instead of
stopping early.



As for what x86_64-unknown-freebsd12.0 .h files were used:
(some may do include_next back into FreeBSD headers)


# find /usr/obj/amd64_xtoolchain-gcc/ -name "*.meta" -exec grep "^R =
.*/x86_64-unknown-freebsd12.0/.*\.h" {} \; | sort -k 3 | uniq -f 2 | =
more
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/adxintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/ammintrin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx2intrin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512bwintrin=
.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512cdintrin=
.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512dqintrin=
.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512erintrin=
.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512fintrin.=
h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512ifmaintr=
in.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512ifmavlin=
trin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512pfintrin=
.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512vbmiintr=
in.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512vbmivlin=
trin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512vlbwintr=
in.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512vldqintr=
in.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avx512vlintrin=
.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/avxintrin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/bmi2intrin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/bmiintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/clflushoptintr=
in.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/clwbintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/clzerointrin.h=

R 56022 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/cpuid.h
R 1222 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/emmintrin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/f16cintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/fma4intrin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/fmaintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/fxsrintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/ia32intrin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/immintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/lwpintrin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/lzcntintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/mm3dnow.h
R 1222 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/mm_malloc.h
R 1222 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/mmintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/mwaitxintrin.h=

R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/pkuintrin.h
R 1336 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/pmmintrin.h
R 1485 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/popcntintrin.h=

R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/prfchwintrin.h=

R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/rdseedintrin.h=

R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/rtmintrin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/shaintrin.h
R 1485 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/smmintrin.h
R 10000 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/stdarg.h
R 27622 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/stdatomic.h
R 10000 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/stdbool.h
R 10025 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/stddef.h
R 10000 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/stdint.h
R 68604 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/stdnoreturn.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/tbmintrin.h
R 1336 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/tmmintrin.h
R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/wmmintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/x86intrin.h
R 1222 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/xmmintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/xopintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/xsavecintrin.h=

R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/xsaveintrin.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/xsaveoptintrin=
.h
R 1595 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/xsavesintrin.h=

R 1520 =
/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/include/xtestintrin.h




=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1E03ECE7-297C-4D40-BC58-FB1903538181>