Date: Mon, 11 May 2020 14:08:38 +0200 From: Jan Beich <jbeich@FreeBSD.org> To: Hans Petter Selasky <hps@selasky.org> Cc: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: Re: svn commit: r534893 - head/multimedia/webcamd Message-ID: <k11i-d67t-wny@FreeBSD.org> In-Reply-To: <eddb95ce-5085-e0be-7c3a-d60fb912eb98@selasky.org> (Hans Petter Selasky's message of "Mon, 11 May 2020 13:31:10 %2B0200") References: <202005110834.04B8YTMU056795@repo.freebsd.org> <tv0m-g1q4-wny@FreeBSD.org> <eddb95ce-5085-e0be-7c3a-d60fb912eb98@selasky.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hans Petter Selasky <hps@selasky.org> writes: > On 2020-05-11 13:17, Jan Beich wrote: > >> Hans Petter Selasky <hselasky@FreeBSD.org> writes: >> >>> Author: hselasky >>> Date: Mon May 11 08:34:28 2020 >>> New Revision: 534893 >>> URL: https://svnweb.freebsd.org/changeset/ports/534893 >>> >>> Log: >>> Only set COMPAT32 option when building 64-bit platforms. >>> PR: 245698 >>> Approved by: pi (implicit) >> [...] >>> -.if exists(/usr/lib32/libcuse.so) >>> +.include <bsd.port.options.mk> >>> + >>> +.if ${ARCH} == amd64 || ${ARCH} == aarch64 >>> OPTIONS_DEFAULT+= COMPAT32 >>> .endif >> Looks pointless. Not only it misses other 64-bit archs like >> powerpc64 but >> also doesn't address bug 245698 where user accidentally enabled COMPAT option. > > Hi Jan, > > The COMPAT32 option was enabled by error because the user tried to > build both 32-bit and 64-bit world and ports from the same jail. > > The COMPAT32 option is mostly relevant for platforms that have lots of > binary applications in 32-bit mode, like wine-i386-devel, and is not > that relevant for power64 nor sparc64, at the moment. For example, lang/gcc* do enable MULTILIB by default on powerpc64. Compare with aarch64 which doesn't support /usr/lib32 yet. Looking at COMPAT32 code it defines CONFIG_X86_64 which is unlikely to work on non-x86 architectures and CONFIG_COMPAT_32BIT_TIME which is not true outside of i386 (time_t is int64_t on armv6, mips, powerpc). > It would be better if the ports tree could set a variable by default > if we are building for a 64-bit platform! > > .if ${ARCH64} != "" > > .endif Why list COMPAT32 option even if non-default on architectures where it's not supported? I can still reproduce bug 245698 on i386 e.g., $ poudriere options -nj 113i386 multimedia/webcamd <mark COMPAT32 as enabled> $ poudriere testport -j 113i386 multimedia/webcamd [...] --- obj-media_tree-drivers-media-v4l2-core-v4l2-subdev.o --- media_tree/drivers/media/v4l2-core/v4l2-subdev.c:396:7: error: duplicate case value '1081628249' case VIDIOC_DQEVENT_TIME32: { ^ media_tree/include/media/v4l2-ioctl.h:750:32: note: expanded from macro 'VIDIOC_DQEVENT_TIME32' #define VIDIOC_DQEVENT_TIME32 _IOR('V', 89, struct v4l2_event_time32) ^ /usr/include/sys/ioccom.h:58:21: note: expanded from macro '_IOR' #define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t)) ^ /usr/include/sys/ioccom.h:54:35: note: expanded from macro '_IOC' #define _IOC(inout,group,num,len) ((unsigned long) \ ^ media_tree/drivers/media/v4l2-core/v4l2-subdev.c:389:7: note: previous case defined here case VIDIOC_DQEVENT: ^ media_tree/include/uapi/linux/videodev2.h:2536:26: note: expanded from macro 'VIDIOC_DQEVENT' #define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event) ^ --- obj-media_tree-drivers-media-v4l2-core-v4l2-common.o --- --- obj-media_tree-drivers-media-v4l2-core-v4l2-subdev.o --- /usr/include/sys/ioccom.h:58:21: note: expanded from macro '_IOR' #define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t)) ^ /usr/include/sys/ioccom.h:54:35: note: expanded from macro '_IOC' #define _IOC(inout,group,num,len) ((unsigned long) \ ^ 1 error generated.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?k11i-d67t-wny>