Build of devel/ninja and lang/gcc11 fails with latest 14-CURRENT amd64

Gerald Pfeifer gerald at pfeifer.com
Sat Nov 13 08:54:47 GMT 2021


On Sat, 13 Nov 2021, Konstantin Belousov wrote:
>> ----------------------------------------------------------------------
>> commit 160b4b922b6
>> Author: Konstantin Belousov <kib at FreeBSD.org>
>> Date:   Sat Oct 23 00:17:21 2021
>> 
>>     Add real sched.h
>> 
>>     It is required by IEEE Std 1003.1-2008 AKA POSIX.
>> 
>>     Put some Linux compatibility stuff under BSD_VISIBLE namespace, in
>>     particular, sys/cpuset.h definitions.  Also, if user really want
>>     Linux compatibility, she can request cpu_set_t typedef with
>>     _WITH_CPU_SET_T define.
>> 
>>     Reviewed by:    jhb
>>     Sponsored by:   The FreeBSD Foundation
>>     MFC after:      1 week
>>     Differential revision:  https://reviews.freebsd.org/D32901
>> ----------------------------------------------------------------------
>> 
>> It seems likely this is the cause of build error.
> Ninja builds with the following patch, other failing ports have a chance
> as well.
> 
> commit 1acaa4bb838c074c29926cb34b7827efb26cdc85
> Author: Konstantin Belousov <kib at FreeBSD.org>
> Date:   Thu Nov 11 10:01:54 2021 +0200
> 
>     sched.h: Make cpu_set_t compat typedef visible unconditionally
>     
>     or rather, visible if BSD namespace is enabled, instead of requiring
>     _WITH_CPU_SET_T define to expose it.  It seems a lot of code assumes
>     that presence of sched_getaffinity() implies existence of cpu_set_t.
>     
>     Reported by:    portmgr (antoine)
>     Sponsored by:   The FreeBSD Foundation
>     MFC after:      1 week
> 
> diff --git a/include/sched.h b/include/sched.h
> index 1c41cda79046..2d4f301c9718 100644
> --- a/include/sched.h
> +++ b/include/sched.h
> @@ -34,13 +34,8 @@
>  #include <sys/sched.h>
>  #if __BSD_VISIBLE
>  #include <sys/cpuset.h>
> -#endif /* __BSD_VISIBLE */
> -
> -#if __BSD_VISIBLE
> -#ifdef _WITH_CPU_SET_T
>  struct _cpuset;
>  typedef struct _cpuset cpu_set_t;
> -#endif /* _WITH_CPU_SET_T */
>  #endif /* __BSD_VISIBLE */
>  
>  __BEGIN_DECLS

I also got a build notification for emulators/wine and believe 
emulators/wine-devel is impacted as well.

The code in question looks as follows, and it seems your follow
up patch should address this?

  int set_thread_affinity( struct thread *thread, affinity_t affinity )
  {
      int ret = 0;
  #ifdef HAVE_SCHED_SETAFFINITY
      if (thread->unix_tid != -1)
      {
          cpu_set_t set;
          int i;
          affinity_t mask;

          CPU_ZERO( &set );
          for (i = 0, mask = 1; mask; i++, mask <<= 1)
              if (affinity & mask) CPU_SET( i, &set );

          ret = sched_setaffinity( thread->unix_tid, sizeof(set), &set );
      }
  #endif

If so, it looks like your work unleashes enhanced functionality on 
FreeBSD! Nice.

Original notification message below.

Gerald


====== forwarded message ======
>From pkg-fallout at FreeBSD.org Sat Nov 13 09:14:03 2021
From: pkg-fallout at FreeBSD.org
To: gerald at FreeBSD.org
Cc: pkg-fallout at FreeBSD.org
Date: Sat, 13 Nov 2021 05:59:23 GMT
Subject: [package - main-amd64-default][emulators/wine] Failed for wine-6.0.2,1 in build

You are receiving this mail as a port that you maintain
is failing to build on the FreeBSD package build server.
Please investigate the failure and submit a PR to fix
build.

Maintainer:     gerald at FreeBSD.org
Log URL:        http://beefy18.nyi.freebsd.org/data/main-amd64-default/p0bef5c19453e_sd032cda0d0/logs/wine-6.0.2,1.log
Build URL:      http://beefy18.nyi.freebsd.org/build.html?mastername=main-amd64-default&build=p0bef5c19453e_sd032cda0d0
Log:

=>> Building emulators/wine
build started at Sat Nov 13 05:50:39 UTC 2021
port directory: /usr/ports/emulators/wine
package name: wine-6.0.2,1
building for: FreeBSD main-amd64-default-job-02 14.0-CURRENT FreeBSD 14.0-CURRENT 1400041 amd64
maintained by: gerald at FreeBSD.org
Makefile ident: 
Poudriere version: 3.2.8-21-g883afb07
Host OSVERSION: 1400008
Jail OSVERSION: 1400041
Job Id: 02




!!! Jail is newer than host. (Jail: 1400041, Host: 1400008) !!!
!!! This is not supported. !!!
!!! Host kernel must be same or newer than jail. !!!
!!! Expect build failures. !!!



---Begin Environment---
SHELL=/bin/sh
OSVERSION=1400041
UNAME_v=FreeBSD 14.0-CURRENT 1400041
UNAME_r=14.0-CURRENT
BLOCKSIZE=K
MAIL=/var/mail/root
MM_CHARSET=UTF-8
LANG=C.UTF-8
STATUS=1
HOME=/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
LOCALBASE=/usr/local
USER=root
LIBEXECPREFIX=/usr/local/libexec/poudriere
POUDRIERE_VERSION=3.2.8-21-g883afb07
MASTERMNT=/usr/local/poudriere/data/.m/main-amd64-default/ref
POUDRIERE_BUILD_TYPE=bulk
PACKAGE_BUILDING=yes
SAVED_TERM=
PWD=/usr/local/poudriere/data/.m/main-amd64-default/ref/.p/pool
P_PORTS_FEATURES=FLAVORS SELECTED_OPTIONS
MASTERNAME=main-amd64-default
SCRIPTPREFIX=/usr/local/share/poudriere
OLDPWD=/usr/local/poudriere/data/.m/main-amd64-default/ref/.p
SCRIPTPATH=/usr/local/share/poudriere/bulk.sh
POUDRIEREPATH=/usr/local/bin/poudriere
---End Environment---

---Begin Poudriere Port Flags/Env---
PORT_FLAGS=
PKGENV=
FLAVOR=
DEPENDS_ARGS=
MAKE_ARGS=
---End Poudriere Port Flags/Env---

---Begin OPTIONS List---
===> The following configuration options are available for wine-6.0.2,1:
     CUPS=off: CUPS printing system support
     DOCS=on: Build and/or install documentation
     DOSBOX=off: Use DOSBox to run MS-DOS programs
     GECKO=off: Bundle Gecko MSI package for Wine
     GNUTLS=on: SSL/TLS support via GnuTLS
     LDAP=off: LDAP protocol support
     LIBXSLT=off: Use libxslt (only used by msxml3.dll)
     MONO=off: Bundle Mono MSI package for Wine
     MPG123=off: MP3 decoding support via mpg123
     OPENAL=on: Audio support via OpenAL
     V4L=off: Video 4 Linux support
     WINEMAKER=off: Fully support winemaker (requires Perl)
     X11=on: X11 (graphics) support
===> Use 'make config' to modify these settings
---End OPTIONS List---

--MAINTAINER--
gerald at FreeBSD.org
--End MAINTAINER--

--CONFIGURE_ARGS--
--verbose  --disable-kerberos  --disable-tests  --without-alsa  --without-capi  --without-dbus  --without-gettext --without-gettextpo  --without-gphoto  --without-gsm  --without-gstreamer  --without-inotify  --without-krb5  --without-mingw  --without-opencl  --without-osmesa  --with-oss  --with-pcap  --with-pthread  --without-pulse  --without-sane  --with-sdl  --without-tiff  --without-udev  --without-unwind  --without-usb --without-cups --with-gnutls --without-ldap --without-xslt --without-mpg123 --with-openal --without-v4l2 --with-x --with-cms --with-fontconfig --with-freetype --with-jpeg --with-opengl --with-png --with-vkd3d --with-xinerama --with-xinput2 --with-xrandr --with-xrender --enable-win64 --libdir=/usr/local/lib --x-libraries=/usr/local/lib --x-includes=/usr/local/include --prefix=/usr/local ${_LATE_CONFIGURE_ARGS}
--End CONFIGURE_ARGS--

--CONFIGURE_ENV--
CPPBIN="cpp10" FLEX="/usr/local/bin/flex" MAKE=gmake PKG_CONFIG=pkgconf SDL2_CONFIG=/usr/local/bin/sdl2-config XDG_DATA_HOME=/wrkdirs/usr/ports/emulators/wine/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/emulators/wine/work  XDG_CACHE_HOME=/wrkdirs/usr/ports/emulators/wine/work/.cache  HOME=/wrkdirs/usr/ports/emulators/wine/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/emulators/wine/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin SHELL=/bin/sh CONFIG_SHELL=/bin/sh ADDR2LINE="/usr/local/bin/addr2line" AR="/usr/local/bin/ar" AS="/usr/local/bin/as" CPPFILT="/usr/local/bin/c++filt" GPROF="/usr/local/bin/gprof" LD="/usr/local/bin/ld" NM="/usr/local/bin/nm" OBJCOPY="/usr/local/bin/objcopy" OBJDUMP="/usr/local/bin/objdump" RANLIB="/usr/local/bin/ranlib" READELF="/usr/local/bin/readelf" SIZE="/usr/local/bin/size" STRINGS="/usr/local/bin/strings" CMAKE_PREFIX_PATH="/usr/local" CONFIG_SITE=/usr/ports/Templates/config.site lt_cv_sys_max_cmd_len=524288
--End CONFIGURE_ENV--

--MAKE_ENV--
SDL2_CONFIG=/usr/local/bin/sdl2-config XDG_DATA_HOME=/wrkdirs/usr/ports/emulators/wine/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/emulators/wine/work  XDG_CACHE_HOME=/wrkdirs/usr/ports/emulators/wine/work/.cache  HOME=/wrkdirs/usr/ports/emulators/wine/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/emulators/wine/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin NO_PIE=yes MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES ADDR2LINE="/usr/local/bin/addr2line" AR="/usr/local/bin/ar" AS="/usr/local/bin/as" CPPFILT="/usr/local/bin/c++filt" GPROF="/usr/local/bin/gprof" LD="/usr/local/bin/ld" NM="/usr/local/bin/nm" OBJCOPY="/usr/local/bin/objcopy" OBJDUMP="/usr/local/bin/objdump" RANLIB="/usr/local/bin/ranlib" READELF="/usr/local/bin/readelf" SIZE="/usr/local/bin/size" STRINGS="/usr/local/bin/strings" PREFIX=/usr/local  LOCALBASE=/usr/local  CC="gcc10" CFLAGS="-O2 -pipe  -fstack-protector-strong -Wl,-rpath=/usr/local/lib/gcc10 -isystem /usr/local/incl
 ude -fno-strict-aliasing "  CPP="cpp10" CPPFLAGS="-isystem /usr/local/include"  LDFLAGS=" -fstack-protector-strong -Wl,-rpath=/usr/local/lib/gcc10 -L/usr/local/lib/gcc10 " LIBS="-L/usr/local/lib"  CXX="g++10" CXXFLAGS="-O2 -pipe  -fstack-protector-strong -Wl,-rpath=/usr/local/lib/gcc10  -Wl,-rpath=/usr/local/lib/gcc10 -isystem /usr/local/include "  MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install  -s -m 555"  BSD_INSTALL_LIB="install  -s -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444"
--End MAKE_ENV--

--PLIST_SUB--
PORTDOCS="" CUPS="@comment " NO_CUPS="" DOCS="" NO_DOCS="@comment " DOSBOX="@comment " NO_DOSBOX="" GECKO="@comment " NO_GECKO="" GNUTLS="" NO_GNUTLS="@comment " LDAP="@comment " NO_LDAP="" LIBXSLT="@comment " NO_LIBXSLT="" MONO="@comment " NO_MONO="" MPG123="@comment " NO_MPG123="" OPENAL="" NO_OPENAL="@comment " V4L="@comment " NO_V4L="" WINEMAKER="@comment " NO_WINEMAKER="" X11="" NO_X11="@comment " WINE32="@comment " WINE64="" OSREL=14.0 PREFIX=%D LOCALBASE=/usr/local  RESETPREFIX=/usr/local LIB32DIR=lib DOCSDIR="share/doc/wine"  EXAMPLESDIR="share/examples/wine"  DATADIR="share/wine"  WWWDIR="www/wine"  ETCDIR="etc/wine"
--End PLIST_SUB--

--SUB_LIST--
CUPS="@comment " NO_CUPS="" DOCS="" NO_DOCS="@comment " DOSBOX="@comment " NO_DOSBOX="" GECKO="@comment " NO_GECKO="" GNUTLS="" NO_GNUTLS="@comment " LDAP="@comment " NO_LDAP="" LIBXSLT="@comment " NO_LIBXSLT="" MONO="@comment " NO_MONO="" MPG123="@comment " NO_MPG123="" OPENAL="" NO_OPENAL="@comment " V4L="@comment " NO_V4L="" WINEMAKER="@comment " NO_WINEMAKER="" X11="" NO_X11="@comment " PREFIX=/usr/local LOCALBASE=/usr/local  DATADIR=/usr/local/share/wine DOCSDIR=/usr/local/share/doc/wine EXAMPLESDIR=/usr/local/share/examples/wine  WWWDIR=/usr/local/www/wine ETCDIR=/usr/local/etc/wine
--End SUB_LIST--

---Begin make.conf---
USE_PACKAGE_DEPENDS=yes
BATCH=yes
WRKDIRPREFIX=/wrkdirs
PORTSDIR=/usr/ports
PACKAGES=/packages
DISTDIR=/distfiles
PACKAGE_BUILDING=yes
PACKAGE_BUILDING_FLAVORS=yes
#### /usr/local/etc/poudriere.d/make.conf ####
# XXX: We really need this but cannot use it while 'make checksum' does not
# try the next mirror on checksum failure.  It currently retries the same
# failed mirror and then fails rather then trying another.  It *does*
# try the next if the size is mismatched though.
#MASTER_SITE_FREEBSD=yes
# Build ALLOW_MAKE_JOBS_PACKAGES with 2 jobs
MAKE_JOBS_NUMBER=2
#### /usr/ports/Mk/Scripts/ports_env.sh ####
_CCVERSION_921dbbb2=FreeBSD clang version 12.0.1 (git at github.com:llvm/llvm-project.git llvmorg-12.0.1-0-gfed41342a82f) Target: x86_64-unknown-freebsd14.0 Thread model: posix InstalledDir: /usr/bin
_ALTCCVERSION_921dbbb2=none
_CXXINTERNAL_acaad9ca=FreeBSD clang version 12.0.1 (git at github.com:llvm/llvm-project.git llvmorg-12.0.1-0-gfed41342a82f) Target: x86_64-unknown-freebsd14.0 Thread model: posix InstalledDir: /usr/bin "/usr/bin/ld" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld-elf.so.1" "--hash-style=both" "--enable-new-dtags" "-o" "a.out" "/usr/lib/crt1.o" "/usr/lib/crti.o" "/usr/lib/crtbegin.o" "-L/usr/lib" "/dev/null" "-lc++" "-lm" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "/usr/lib/crtend.o" "/usr/lib/crtn.o"
CC_OUTPUT_921dbbb2_58173849=yes
CC_OUTPUT_921dbbb2_9bdba57c=yes
CC_OUTPUT_921dbbb2_6a4fe7f5=yes
CC_OUTPUT_921dbbb2_6bcac02b=yes
CC_OUTPUT_921dbbb2_67d20829=yes
CC_OUTPUT_921dbbb2_bfa62e83=yes
CC_OUTPUT_921dbbb2_f0b4d593=yes
CC_OUTPUT_921dbbb2_308abb44=yes
CC_OUTPUT_921dbbb2_f00456e5=yes
CC_OUTPUT_921dbbb2_65ad290d=yes
CC_OUTPUT_921dbbb2_f2776b26=yes
CC_OUTPUT_921dbbb2_b2657cc3=yes
CC_OUTPUT_921dbbb2_380987f7=yes
CC_OUTPUT_921dbbb2_160933ec=yes
CC_OUTPUT_921dbbb2_fb62803b=yes
_OBJC_CCVERSION_921dbbb2=FreeBSD clang version 12.0.1 (git at github.com:llvm/llvm-project.git llvmorg-12.0.1-0-gfed41342a82f) Target: x86_64-unknown-freebsd14.0 Thread model: posix InstalledDir: /usr/bin
_OBJC_ALTCCVERSION_921dbbb2=none
ARCH=amd64
OPSYS=FreeBSD
_OSRELEASE=14.0-CURRENT
OSREL=14.0
OSVERSION=1400041
PYTHONBASE=/usr/local
HAVE_COMPAT_IA32_KERN=YES
CONFIGURE_MAX_CMD_LEN=524288
HAVE_PORTS_ENV=1
#### Misc Poudriere ####
GID=0
UID=0
---End make.conf---
--Resource limits--
cpu time               (seconds, -t)  unlimited
file size           (512-blocks, -f)  unlimited
data seg size           (kbytes, -d)  33554432
stack size              (kbytes, -s)  524288
core file size      (512-blocks, -c)  unlimited
max memory size         (kbytes, -m)  unlimited
locked memory           (kbytes, -l)  unlimited
max user processes              (-u)  89999
open files                      (-n)  1024
virtual mem size        (kbytes, -v)  unlimited
swap limit              (kbytes, -w)  unlimited
socket buffer size       (bytes, -b)  unlimited
pseudo-terminals                (-p)  unlimited
kqueues                         (-k)  unlimited
umtx shared locks               (-o)  unlimited
--End resource limits--
=======================<phase: check-sanity   >============================
===>  License LGPL21 LGPL3 accepted by the user
===========================================================================
=======================<phase: pkg-depends    >============================
===>   wine-6.0.2,1 depends on file: /usr/local/sbin/pkg - not found
===>   Installing existing package /packages/All/pkg-1.17.5.pkg
[main-amd64-default-job-02] Installing pkg-1.17.5...
[main-amd64-default-job-02] Extracting pkg-1.17.5: .......... done
===>   wine-6.0.2,1 depends on file: /usr/local/sbin/pkg - found
===>   Returning to build of wine-6.0.2,1
===========================================================================
=======================<phase: fetch-depends  >============================
===========================================================================
=======================<phase: fetch          >============================
===>  License LGPL21 LGPL3 accepted by the user
===> Fetching all distfiles required by wine-6.0.2,1 for building
===========================================================================
=======================<phase: checksum       >============================
===>  License LGPL21 LGPL3 accepted by the user
===> Fetching all distfiles required by wine-6.0.2,1 for building
=> SHA256 Checksum OK for wine-6.0.2.tar.xz.
===========================================================================
=======================<phase: extract-depends>============================
===========================================================================
=======================<phase: extract        >============================
===>  License LGPL21 LGPL3 accepted by the user
===> Fetching all distfiles required by wine-6.0.2,1 for building
===>  Extracting for wine-6.0.2,1
=> SHA256 Checksum OK for wine-6.0.2.tar.xz.
===========================================================================
<snip>
:
gcc10 -m64 -c -o server/thread.o server/thread.c -Iserver -Iinclude -D__WINESRC__ -Wall -pipe -fcf-protection=none \
  -fno-stack-protector -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body \
  -Wignored-qualifiers -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -isystem \
  /usr/local/include -O2 -pipe  -fstack-protector-strong -Wl,-rpath=/usr/local/lib/gcc10 -isystem /usr/local/include -fno-strict-aliasing 
:
server/thread.c: In function 'set_thread_affinity':
server/thread.c:562:9: error: unknown type name 'cpu_set_t'; did you mean 'cpuset_t'?
  562 |         cpu_set_t set;
      |         ^~~~~~~~~
      |         cpuset_t
In file included from /usr/include/sys/cpuset.h:39,
                 from /usr/include/sched.h:36,
                 from server/thread.c:39:
server/thread.c:566:9: error: request for member '__bits' in something not a structure or union
  566 |         CPU_ZERO( &set );
      |         ^~~~~~~~
server/thread.c:568:34: error: request for member '__bits' in something not a structure or union
  568 |             if (affinity & mask) CPU_SET( i, &set );
      |                                  ^~~~~~~
server/thread.c:570:65: warning: passing argument 3 of 'sched_setaffinity' from incompatible pointer type [-Wincompatible-pointer-types]
  570 |         ret = sched_setaffinity( thread->unix_tid, sizeof(set), &set );
      |                                                                 ^~~~
      |                                                                 |
      |                                                                 int *
In file included from server/thread.c:39:
/usr/include/sched.h:49:65: note: expected 'const cpuset_t *' {aka 'const struct _cpuset *'} but argument is of type 'int *'
   49 | int sched_setaffinity(int pid, size_t cpusetsz, const cpuset_t *cpuset);
      |                                                 ~~~~~~~~~~~~~~~~^~~~~~
server/thread.c: In function 'get_thread_affinity':
server/thread.c:583:9: error: unknown type name 'cpu_set_t'; did you mean 'cpuset_t'?
  583 |         cpu_set_t set;
      |         ^~~~~~~~~
      |         cpuset_t
server/thread.c:586:64: warning: passing argument 3 of 'sched_getaffinity' from incompatible pointer type [-Wincompatible-pointer-types]
  586 |         if (!sched_getaffinity( thread->unix_tid, sizeof(set), &set ))
      |                                                                ^~~~
      |                                                                |
      |                                                                int *
In file included from server/thread.c:39:
/usr/include/sched.h:48:61: note: expected 'cpuset_t *' {aka 'struct _cpuset *'} but argument is of type 'int *'
   48 | int sched_getaffinity(pid_t pid, size_t cpusetsz, cpuset_t *cpuset);
      |                                                   ~~~~~~~~~~^~~~~~
In file included from /usr/include/sys/cpuset.h:39,
                 from /usr/include/sched.h:36,
                 from server/thread.c:39:
server/thread.c:588:21: error: request for member '__bits' in something not a structure or union
  588 |                 if (CPU_ISSET( i, &set )) mask |= (affinity_t)1 << i;
      |                     ^~~~~~~~~
gmake[1]: *** [Makefile:157790: server/thread.o] Error 1
gmake[1]: *** Waiting for unfinished jobs....
gmake[1]: Leaving directory '/wrkdirs/usr/ports/emulators/wine/work/wine-6.0.2'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /usr/ports/emulators/wine


More information about the kde-freebsd mailing list