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>