The System V message queue and semaphore headers and APIs contain a number of mistakes. Some types are declared that should not be, and the *id_ds structs contain kernel-only members. The review https://reviews.freebsd.org/D13538 contains a patch which removes the types that should not be declared, fixes the system as required, and renames the kernel-only, non-standard members to break existing consumers (if any). This isn't expected to break much as standard autoconf macros exist to detect the most common issue (improperly declaring union semun). The *is_ds member changes are to explore the possibility of revising the APIs to remove the members.
Created attachment 188945 [details] Patch revising SysV IPC APIs
Exp-run results on amd64: http://package18.nyi.freebsd.org/build.html?mastername=headamd64PR224443-default&build=2017-12-23_06h35m43s Around 2700 ports were skipped due to new failures. New failures: + {"origin"=>"audio/alsa-lib", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"audio/gramofile", "phase"=>"build", "errortype"=>"missing_header"} + {"origin"=>"audio/wavplay", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"audio/xmcd", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"audio/zinf", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"benchmarks/super-smack", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"databases/fastdb", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"devel/ace", "phase"=>"build", "errortype"=>"clang"} + {"origin"=>"devel/libmba", "phase"=>"stage", "errortype"=>"gcc4_error"} + {"origin"=>"devel/libshbuf", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"devel/nspr", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"devel/poco-ssl", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"devel/shmap", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"emulators/gem5", "phase"=>"build", "errortype"=>"???"} + {"origin"=>"emulators/qemu-user-static", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"emulators/virtualbox-ose", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"emulators/virtualbox-ose-nox11", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"ftp/gftp", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"lang/cint", "phase"=>"package", "errortype"=>"makefile"} + {"origin"=>"lang/ferite", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"lang/rexx-regutil", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"mail/batv-milter", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"mail/dk-milter", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"mail/sendmail", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"mail/sid-milter", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"misc/buffer", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"multimedia/py-kaa-base", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"net-mgmt/sdig", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"net-p2p/monero-cli", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"sysutils/freeipmi", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"sysutils/symon", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"www/mod_cband", "phase"=>"build", "errortype"=>"gcc4_error"} New failure logs: http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/alsa-lib-1.1.2.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/gramofile-1.6P_11.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/wavplay-1.4_4.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/xmcd-3.3.2_19.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/zinf-2.2.5_22.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/super-smack-1.3_3.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/fastdb-3.75_3.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/ace-6.4.3.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/libmba-0.9.1_1.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/libshbuf-0.0.3.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/nspr-4.17.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/poco-ssl-1.4.3_5.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/shmap-0.3.2_2.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/gem5-0.0.20140422.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/qemu-user-static-2.11.50.g20171215.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/virtualbox-ose-5.2.2.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/virtualbox-ose-nox11-5.2.2.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/gftp-2.0.19_6.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/cint-5.18.00_8.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/ferite-1.0.2_6.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/rexx-regutil-1.26_1.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/batv-milter-0.5.0_1.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/dk-milter-1.0.2_4.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/sendmail+tls+sasl2-8.15.2_3.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/sid-milter-1.0.0_4.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/buffer-1.19.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/py27-kaa-base-0.6.0_9.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/sdig-0.45_1.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/monero-cli-0.11.1.0_1.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/freeipmi-1.5.7.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/symon-2.87.log http://package18.nyi.freebsd.org/data/headamd64PR224443-default/2017-12-23_06h35m43s/logs/errors/ap22-mod_cband-0.9.7.5_3.log
Exp-run results on i386: http://package18.nyi.freebsd.org/build.html?mastername=headi386PR224443-default&build=2017-12-24_17h56m56s Around 2700 ports were skipped due to new failures New failures: + {"origin"=>"audio/alsa-lib", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"audio/gramofile", "phase"=>"build", "errortype"=>"missing_header"} + {"origin"=>"audio/wavplay", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"audio/xmcd", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"audio/zinf", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"benchmarks/super-smack", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"databases/fastdb", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"devel/ace", "phase"=>"build", "errortype"=>"clang"} + {"origin"=>"devel/libmba", "phase"=>"stage", "errortype"=>"gcc4_error"} + {"origin"=>"devel/libshbuf", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"devel/nspr", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"devel/poco-ssl", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"devel/shmap", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"emulators/virtualbox-ose", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"emulators/virtualbox-ose-nox11", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"ftp/gftp", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"lang/cint", "phase"=>"package", "errortype"=>"makefile"} + {"origin"=>"lang/ferite", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"lang/rexx-regutil", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"mail/batv-milter", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"mail/dk-milter", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"mail/sendmail", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"mail/sid-milter", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"misc/buffer", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"multimedia/py-kaa-base", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"net-mgmt/sdig", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"net-p2p/monero-cli", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"sysutils/freeipmi", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"sysutils/symon", "phase"=>"build", "errortype"=>"gcc4_error"} + {"origin"=>"www/mod_cband", "phase"=>"build", "errortype"=>"gcc4_error"} New failure logs: http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/alsa-lib-1.1.2.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/gramofile-1.6P_11.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/wavplay-1.4_4.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/xmcd-3.3.2_19.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/zinf-2.2.5_22.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/super-smack-1.3_3.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/fastdb-3.75_3.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/ace-6.4.3.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/libmba-0.9.1_1.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/libshbuf-0.0.3.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/nspr-4.17.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/poco-ssl-1.4.3_5.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/shmap-0.3.2_2.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/virtualbox-ose-5.2.2.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/virtualbox-ose-nox11-5.2.2.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/gftp-2.0.19_6.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/cint-5.18.00_8.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/ferite-1.0.2_6.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/rexx-regutil-1.26_1.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/batv-milter-0.5.0_1.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/dk-milter-1.0.2_4.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/sendmail+tls+sasl2-8.15.2_3.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/sid-milter-1.0.0_4.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/buffer-1.19.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/py27-kaa-base-0.6.0_9.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/sdig-0.45_1.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/monero-cli-0.11.1.0_1.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/freeipmi-1.5.7.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/symon-2.87.log http://package18.nyi.freebsd.org/data/headi386PR224443-default/2017-12-24_17h56m56s/logs/errors/ap22-mod_cband-0.9.7.5_3.log
Most of the failures seem related to union semun removal.
I've addressed these failures in https://reviews.freebsd.org/D14137. audio/zinf and devel/poco-ssl now fail for unrelated reasons.
On i386, I see 1 new failure: + {"origin"=>"deskutils/fusenshi", "pkgname"=>"fusenshi-0.9.0_15", "phase"=>"build", "errortype"=>"gcc4_error"} Failure log: http://package22.nyi.freebsd.org/data/headi386gnucxx98sysv-default/2018-02-04_06h29m03s/logs/errors/fusenshi-0.9.0_15.log
I've updated the port change request with a fix for deskutils/fusenshi. I see it has no dependencies so it looks like we're done on i386.
On amd64, emulators/qemu-user-static fails to build. Failure log: http://package22.nyi.freebsd.org/data/headamd64gnucxx98sysv-default/2018-02-04_12h55m09s/logs/errors/qemu-user-static-2.11.50.g20171215_3.log
OK, emulators/qemu-user-static now fixed (via emulators/qemu-sbruno. This was the only port to one effected by the lost of struct mymsg and the API change and that only because it was emulating the kernel.
Exp-run looks fine
A commit references this bug: Author: brooks Date: Fri Mar 2 22:10:49 UTC 2018 New revision: 330297 URL: https://svnweb.freebsd.org/changeset/base/330297 Log: Rename kernel-only members of semid_ds and msgid_ds. This deliberately breaks the API in preperation for future syscall revisions which will remove these nonstandard members. In an exp-run a single port (devel/qemu-user-static) was found to use them which it did becuase it emulates system calls. This has been fixed in the ports tree. PR: 224443 (exp-run) Reviewed by: kib, jhb (previous version) Exp-run by: antoine Sponsored by: DARPA, AFRP Differential Revision: https://reviews.freebsd.org/D14490 Changes: head/lib/libc/sys/msgctl.2 head/lib/libc/sys/semctl.2 head/sys/compat/freebsd32/freebsd32_ipc.h head/sys/i386/ibcs2/ibcs2_ipc.c head/sys/kern/sysv_msg.c head/sys/kern/sysv_sem.c head/sys/sys/msg.h head/sys/sys/sem.h
A commit references this bug: Author: brooks Date: Fri Mar 2 22:13:30 UTC 2018 New revision: 330298 URL: https://svnweb.freebsd.org/changeset/base/330298 Log: Don't define struct mymsg. PR: 224299, 224443 (exp-run) Reviewed by: kib, jhb Exp-run by: antoine Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14491 Changes: head/sys/sys/msg.h
A commit references this bug: Author: brooks Date: Fri Mar 2 22:32:54 UTC 2018 New revision: 330299 URL: https://svnweb.freebsd.org/changeset/base/330299 Log: Don't declare union semun in userspace unless _WANT_SEMUN is defined. POSIX explicitly states that the application must declare union semun. This makes no sense, but it is what it is. This brings us into line with Linux, MacOS/Darwin, and NetBSD. In a ports exp-run a moderate number of ports fail due to a lack of approprate autotools-like discovery mechanisms or local patches. A commit to address them will follow shortly. PR: 224300, 224443 (exp-run) Reviewed by: emaste, jhb, kib Exp-run by: antoine Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14492 Changes: head/contrib/sendmail/include/sm/os/sm_os_freebsd.h head/lib/libc/gen/semctl.c head/lib/libc/sys/semctl.2 head/sys/sys/param.h head/sys/sys/sem.h head/usr.bin/svn/lib/libapr/apr.h
A commit references this bug: Author: brooks Date: Fri Mar 2 22:34:56 UTC 2018 New revision: 463452 URL: https://svnweb.freebsd.org/changeset/ports/463452 Log: Work around the lack of definition of union semun per POSIX. When feasible do this by adding -D_WANT_SEMUN to CFLAGS or CXXFLAGS. Where this fails due to ports not honoring C*FLAGS, patch using __FreeBSD_version to enable the definition. PR: 224300, 224443 (exp-run) Approved by: portmgr (antoine) Exp-run: antoine Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14137 Changes: head/audio/alsa-lib/Makefile head/audio/gramofile/Makefile head/audio/wavplay/Makefile head/audio/xmcd/Makefile head/audio/zinf/Makefile head/benchmarks/super-smack/Makefile head/databases/fastdb/Makefile head/deskutils/fusenshi/Makefile head/devel/ace/Makefile head/devel/libmba/Makefile head/devel/libshbuf/Makefile head/devel/nspr/Makefile head/devel/poco-ssl/Makefile head/devel/shmap/Makefile head/emulators/qemu-sbruno/Makefile head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c head/ftp/gftp/Makefile head/lang/cint/files/patch-cint_lib_ipc_ipcif.h head/lang/ferite/Makefile head/lang/rexx-regutil/Makefile head/mail/batv-milter/Makefile head/mail/batv-milter/files/patch-include_sm_os_sm__os__freebsd.h head/mail/dk-milter/files/patch-include_sm_os_sm__os__freebsd.h head/mail/sendmail/files/patch-include_sm_os_sm__os__freebsd.h head/mail/sid-milter/files/patch-include_sm_os_sm__os__freebsd.h head/misc/buffer/Makefile head/multimedia/py-kaa-base/Makefile head/net-mgmt/sdig/Makefile head/net-p2p/monero-cli/Makefile head/sysutils/freeipmi/Makefile head/sysutils/symon/Makefile head/www/mod_cband/files/patch-src_mod__cband.c
Thanks Antoine!