Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add checks required by FFmpeg (#64) #68

Open
wants to merge 165 commits into
base: master
Choose a base branch
from

Conversation

helmesjo
Copy link
Contributor

@helmesjo helmesjo commented Oct 29, 2024

See #65 for details.

The added & modified checks successfully builds FFmpeg for Linux (gcc/clang), MacOS (apple-clang, clang, gcc) & Windows (msvc).

TODO - Try to build with libbuild2-autoconf (on CI for some packages) at this PR branch:

  • thrift
  • libevent
  • ....
Approved Checks
  • HAVE_ALTIVEC
  • HAVE_ACCESS
  • HAVE_ALIGNED_STACK
  • HAVE_ALTIVEC
  • HAVE_ARC4RANDOM
  • HAVE_ARC4RANDOM_BUF
  • HAVE_ARMV8
  • HAVE_ASM_EBP
  • HAVE_ASM_EBX
  • HAVE_ASM_HWPROBE_H
  • HAVE_ASM_TYPES_H
  • HAVE_AS_ARCHEXT_DOTPROD
  • HAVE_AS_ARCHEXT_I8MM
  • HAVE_AS_ARCH_DIRECTIVE
  • HAVE_AS_DN_DIRECTIVE
  • HAVE_AS_FPU_DIRECTIVE
  • HAVE_AS_FUNC_DIRECTIVE
  • HAVE_AS_OBJECT_ARCH_DIRECTIVE
  • HAVE_ATAN
  • HAVE_ATAN2
  • HAVE_ATAN2F
  • HAVE_ATANF
  • HAVE_AVX512
  • HAVE_AVX512ICL
  • HAVE_BCRYPT
  • HAVE_CABS
  • HAVE_CBRT
  • HAVE_CBRTF
  • HAVE_CLOSESOCKET
  • HAVE_COMMANDLINETOARGVW
  • HAVE_COPYSIGN
  • HAVE_COPYSIGNF
  • HAVE_COPYSIGNL
  • HAVE_COS
  • HAVE_COSF
  • HAVE_COSL
  • HAVE_DCBZL
  • HAVE_DEV_BKTR_IOCTL_BT848_H
  • HAVE_DEV_BKTR_IOCTL_METEOR_H
  • HAVE_DEV_IC_BT8XX_H
  • HAVE_DIRECT_H
  • HAVE_DIRENT_H
  • HAVE_DOS_PATHS
  • HAVE_DXGIDEBUG_H
  • HAVE_DXVA_H
  • HAVE_ELF_AUX_INFO
  • HAVE_ERF
  • HAVE_EXP
  • HAVE_EXP2
  • HAVE_EXP2F
  • HAVE_EXPF
  • HAVE_FAST_64BIT
  • HAVE_FAST_CLZ
  • HAVE_FAST_CMOV
  • HAVE_FAST_UNALIGNED
  • HAVE_FMA3
  • HAVE_FMA4
  • HAVE_GETHRTIME
  • HAVE_GETOPT
  • HAVE_GETRUSAGE
  • HAVE_GLOB
  • HAVE_GMTIME_R
  • HAVE_HYPOT
  • HAVE_HYPOTF
  • HAVE_I686
  • HAVE_I8MM
  • HAVE_IBM_ASM
  • HAVE_INET_ATON
  • HAVE_INLINE_ASM
  • HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS
  • HAVE_INLINE_ASM_NONLOCAL_LABELS
  • HAVE_ISFINITE
  • HAVE_ISINF
  • HAVE_ISNAN
  • HAVE_ISNORMAL
  • HAVE_KCMVIDEOCODECTYPE_HEVC
  • HAVE_KCMVIDEOCODECTYPE_HEVCWITHALPHA
  • HAVE_KCMVIDEOCODECTYPE_VP9
  • HAVE_KCVIMAGEBUFFERCOLORPRIMARIES_ITU_R_2020
  • HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2020
  • HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG
  • HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ
  • HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_428_1
  • HAVE_KCVIMAGEBUFFERYCBCRMATRIX_ITU_R_2020
  • HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE
  • HAVE_KCVPIXELFORMATTYPE_422YPCBCR10BIPLANARVIDEORANGE
  • HAVE_KCVPIXELFORMATTYPE_422YPCBCR16BIPLANARVIDEORANGE
  • HAVE_KCVPIXELFORMATTYPE_422YPCBCR8BIPLANARVIDEORANGE
  • HAVE_KCVPIXELFORMATTYPE_444YPCBCR10BIPLANARVIDEORANGE
  • HAVE_KCVPIXELFORMATTYPE_444YPCBCR16BIPLANARVIDEORANGE
  • HAVE_KCVPIXELFORMATTYPE_444YPCBCR8BIPLANARVIDEORANGE
  • HAVE_LASX
  • HAVE_LDBRX
  • HAVE_LDEXPF
  • HAVE_LIBC_MSVCRT
  • HAVE_LINUX_DMA_BUF_H
  • HAVE_LLRINT
  • HAVE_LLRINTF
  • HAVE_LOCALTIME_R
  • HAVE_LOCAL_ALIGNED
  • HAVE_LOG10
  • HAVE_LOG10F
  • HAVE_LOG2
  • HAVE_LOG2F
  • HAVE_LOONGSON2
  • HAVE_LOONGSON3
  • HAVE_LRINT
  • HAVE_LRINTF
  • HAVE_LSTAT
  • HAVE_LSX
  • HAVE_MACHINE_IOCTL_BT848_H
  • HAVE_MACHINE_IOCTL_METEOR_H
  • HAVE_MALLOC_H
  • HAVE_MAPVIEWOFFILE
  • HAVE_MEMALIGN
  • HAVE_MKSTEMP
  • HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS
  • HAVE_MMI
  • HAVE_MMX
  • HAVE_MMXEXT
  • HAVE_MM_EMPTY
  • HAVE_MSA
  • HAVE_OS2THREADS
  • HAVE_PEEKNAMEDPIPE
  • HAVE_POSIX_MEMALIGN
  • HAVE_POW
  • HAVE_POWF
  • HAVE_POWL
  • HAVE_PPC4XX
  • HAVE_PRAGMA_DEPRECATED
  • HAVE_PRCTL
  • HAVE_PTHREAD_CANCEL
  • HAVE_PTHREAD_NP_H
  • HAVE_PTHREAD_SETNAME_NP
  • HAVE_PTHREAD_SET_NAME_NP
  • HAVE_RDTSC
  • HAVE_RINT
  • HAVE_ROUND
  • HAVE_ROUNDF
  • HAVE_ROUNDL
  • HAVE_RV
  • HAVE_RVV
  • HAVE_RV_ZVBB
  • HAVE_SCHED_GETAFFINITY
  • HAVE_SECITEMIMPORT
  • HAVE_SECTION_DATA_REL_RO
  • HAVE_SETCONSOLECTRLHANDLER
  • HAVE_SETCONSOLETEXTATTRIBUTE
  • HAVE_SETDLLDIRECTORY
  • HAVE_SETMODE
  • HAVE_SIMD_ALIGN_16
  • HAVE_SIMD_ALIGN_32
  • HAVE_SIMD_ALIGN_64
  • HAVE_SINF
  • HAVE_SLEEP
  • HAVE_SSE4
  • HAVE_STRUCT_GROUP_SOURCE_REQ
  • HAVE_STRUCT_IPV6_MREQ
  • HAVE_STRUCT_IP_MREQ_SOURCE
  • HAVE_STRUCT_POLLFD
  • HAVE_STRUCT_RUSAGE_RU_MAXRSS
  • HAVE_STRUCT_SOCKADDR_SA_LEN
  • HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
  • HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE
  • HAVE_SYSCTL
  • HAVE_SYSCTLBYNAME
  • HAVE_SYS_HWPROBE_H
  • HAVE_SYS_VIDEOIO_H
  • HAVE_TERMIOS_H
  • HAVE_TRUNC
  • HAVE_TRUNCF
  • HAVE_UDPLITE_H
  • HAVE_UWP
  • HAVE_VFP
  • HAVE_VFPV3
  • HAVE_VFPV4
  • HAVE_VFP_ARGS
  • HAVE_VSX
  • HAVE_WINDOWS_H
  • HAVE_WINRT
  • HAVE_WINSOCK2_H
  • HAVE_X86ASM
  • HAVE_XFORM_ASM
  • HAVE_XMM_CLOBBERS
  • HAVE__ALIGNED_MALLOC

…HREAD_SETNAME_NP HAVE_PTHREAD_SET_NAME_NP HAVE_SLEEP HAVE_STRUCT_SOCKADDR_SA_LEN HAVE_SYS_VIDEOIO_H
…con), so fall back to '__BYTE_ORDER__' check.
@helmesjo
Copy link
Contributor Author

helmesjo commented Nov 4, 2024

@boris-kolpackov What would be the easiest way to test this on the CI for a few selected packages?

@helmesjo
Copy link
Contributor Author

helmesjo commented Nov 4, 2024

Assembly checks naming: See the checks containing either _AS or _ASM. Should we pick one for all?

@boris-kolpackov
Copy link
Member

What would be the easiest way to test this on the CI for a few selected packages?

There is no easy way, unfortunately: libbuild2-autoconf is a standard pre-installed module which means it is expected to be installed as part of the build2 toolchain.

I think the most sensible way forward is for us to review it, merge, and then stage, at which point it will be available in the stage CI service (ci.stage.build2.org). Hopefully we will have some bandwidth to do the review in a couple of weeks.

… installed)."

It's required for at least libevent and appears to be a reasonable assumption that it exists.

This reverts commit 9b49ed8.
…talled)."

It's required for at least libevent and appears to be a reasonable assumption that it exists.

This reverts commit 621a069.
@helmesjo
Copy link
Contributor Author

TODO:
Add missing:

#ifndef BUILD2_AUTOCONF_LIBC_VERSION
#  error BUILD2_AUTOCONF_LIBC_VERSION appears to be conditionally included
#endif

HAVE_ASM_TYPES_H.h
HAVE_GMTIME_R.h
HAVE_LSTAT.h
HAVE_SOCKLEN_T.h
HAVE_STRUCT_GROUP_SOURCE_REQ.h
HAVE_STRUCT_IP_MREQ_SOURCE.h
socklen_t.h
HAVE_ASM_TYPES_H.h
HAVE_AS_DN_DIRECTIVE.h
HAVE_AS_FPU_DIRECTIVE.h
HAVE_INTTYPES_H.h
…eg expects):

HAVE_STRUCT_ADDRINFO.h
HAVE_STRUCT_GROUP_SOURCE_REQ.h
HAVE_STRUCT_IN6_ADDR.h
HAVE_STRUCT_IPV6_MREQ.h
HAVE_STRUCT_IP_MREQ_SOURCE.h
HAVE_STRUCT_POLLFD.h
HAVE_STRUCT_SOCKADDR_STORAGE.h
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants