On 2018-Jul-26, at 11:21 AM, John Baldwin <jhb at freebsd.org> wrote: > On 7/26/18 10:55 AM, Mark Millard wrote: >> . . . > > 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: > > #include <sys/cdefs.h> > #include <stdatomic.h> > > struct foo { > _Atomic(int) one; > _Atomic int two; > atomic_int three; > }; > > And here is what that became after -E: > > # 4 "bar.c" > struct foo { > _Atomic(int) one; > _Atomic int two; > atomic_int three; > }; > > So cdefs.h did not define _Atomic. > > Ah, if I add '-std=c99' then it does break. Code that wants to use > C11 atomics via <stdatomic.h> should not be using -std=c99. Try this: > > Index: lib/ofed/librdmacm/Makefile > =================================================================== > --- lib/ofed/librdmacm/Makefile (revision 335896) > +++ lib/ofed/librdmacm/Makefile (working copy) > _at__at_ -8,6 +8,7 _at__at_ > SHLIB_MAJOR= 1 > MK_PROFILE= no > CFLAGS+= -I${_spath} > +CSTD= gnu11 > > SRCS= \ > acm.c \ > > If this works then we should probably mark OFED as a BROKEN_OPTION when > building with ancient GCC for now as well. I've "unreverted" to set up a context for testing this. 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. 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=gnu99 . 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.) For now I just report the failure *without your patch*: (I'll build again with your patch next.) . . . --- all_subdir_lib/ofed --- Building /usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/lib/ofed/librdmacm/acm.o --- acm.o --- Using built-in specs. COLLECT_GCC=/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=x86_64-unknown-freebsd12.0 --disable-nls --enable-languages=c,c++ --enable-gnu-indirect-function --without-headers --with-gmp=/usr/local --with-pkgversion='FreeBSD Ports Collection for amd64' --with-system-zlib --with-gxx-include-dir=/usr/include/c++/v1/ --with-sysroot=/ --with-as=/usr/local/bin/x86_64-unknown-freebsd12.0-as --with-ld=/usr/local/bin/x86_64-unknown-freebsd12.0-ld --enable-initfini-array --prefix=/usr/local --localstatedir=/var --mandir=/usr/local/man --infodir=/usr/local/info/ --build=x86_64-unknown-freebsd12.0 Thread model: posix gcc version 6.4.0 (FreeBSD Ports Collection for amd64) COLLECT_GCC_OPTIONS='-B' '/usr/local/x86_64-unknown-freebsd12.0/bin/' '-O2' '-pipe' '-I' '/usr/src/contrib/ofed/librdmacm' '-g' '-std=gnu99' '-fstack-protector-strong' '-Wno-error=address' '-Wno-error=array-bounds' '-Wno-error=attributes' '-Wno-error=bool-compare' '-Wno-error=cast-align' '-Wno-error=clobbered' '-Wno-error=enum-compare' '-Wno-error=extra' '-Wno-error=inline' '-Wno-error=logical-not-parentheses' '-Wno-error=strict-aliasing' '-Wno-error=uninitialized' '-Wno-error=unused-but-set-variable' '-Wno-error=unused-function' '-Wno-error=unused-value' '-Wno-error=misleading-indentation' '-Wno-error=nonnull-compare' '-Wno-error=shift-negative-value' '-Wno-error=tautological-compare' '-Wno-error=unused-const-variable' '-v' '-c' '-o' 'acm.o' '-mtune=generic' '-march=x86-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=generic -march=x86-64 -auxbase-strip acm.o -g -O2 -Wno-error=address -Wno-error=array-bounds -Wno-error=attributes -Wno-error=bool-compare -Wno-error=cast-align -Wno-error=clobbered -Wno-error=enum-compare -Wno-error=extra -Wno-error=inline -Wno-error=logical-not-parentheses -Wno-error=strict-aliasing -Wno-error=uninitialized -Wno-error=unused-but-set-variable -Wno-error=unused-function -Wno-error=unused-value -Wno-error=misleading-indentation -Wno-error=nonnull-compare -Wno-error=shift-negative-value -Wno-error=tautological-compare -Wno-error=unused-const-variable -std=gnu99 -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=100 --param ggc-min-heapsize=131072 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-unknown-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/include 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=100 --param ggc-min-heapsize=131072 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 make[6]: stopped in /usr/src/lib/ofed/librdmacm .ERROR_TARGET='acm.o' .ERROR_META_FILE='/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/lib/ofed/librdmacm/acm.o.meta' .MAKE.LEVEL='6' MAKEFILE='' .MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose' _ERROR_CMD='/usr/local/bin/x86_64-unknown-freebsd12.0-gcc --sysroot=/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=gnu99 -fstack-protector-strong -Wno-error=address -Wno-error=array-bounds -Wno-error=attributes -Wno-error=bool-compare -Wno-error=cast-align -Wno-error=clobbered -Wno-error=enum-compare -Wno-error=extra -Wno-error=inline -Wno-error=logical-not-parentheses -Wno-error=strict-aliasing -Wno-error=uninitialized -Wno-error=unused-but-set-variable -Wno-error=unused-function -Wno-error=unused-value -Wno-error=misleading-indentation -Wno-error=nonnull-compare -Wno-error=shift-negative-value -Wno-error=tautological-compare -Wno-error=unused-const-variable -v -c /usr/src/contrib/ofed/librdmacm/acm.c -o acm.o; ;' .CURDIR='/usr/src/lib/ofed/librdmacm' .MAKE='make' .OBJDIR='/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/lib/ofed/librdmacm' .TARGETS='all' DESTDIR='/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp' LD_LIBRARY_PATH='' MACHINE='amd64' MACHINE_ARCH='amd64' MAKEOBJDIRPREFIX='' MAKESYSPATH='/usr/src/share/mk' MAKE_VERSION='20180512' PATH='/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.amd64/tmp/legacy/usr/bin:/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/sbin:/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin' SRCTOP='/usr/src' OBJTOP='/usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64' .MAKE.MAKEFILES='/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='. /usr/src/lib/ofed/librdmacm /usr/src/contrib/ofed/librdmacm /usr/src/contrib/ofed/librdmacm/man' 1 error From /usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/lib/ofed/librdmacm/acm.o.meta is the filemon data: -- 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/include/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/include/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/include/netdb.h R 95035 /usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/include/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/include/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/include/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/include/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/include/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/include/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/include/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/include/time.h R 95035 /usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/include/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/include/string.h R 95035 /usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/include/strings.h R 95035 /usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/include/xlocale/_strings.h R 95035 /usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/include/xlocale/_string.h R 95035 /usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/include/infiniband/types.h R 95035 /usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/include/infiniband/sa.h R 95035 /usr/obj/amd64_xtoolchain-gcc/amd64.amd64/usr/src/amd64.amd64/tmp/usr/include/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 For reference the amd64-gcc is: # 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_at_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. WWW: http://gcc.gnu.org/ === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)Received on Thu Jul 26 2018 - 23:45:24 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:17 UTC