trimmed cc a bit, but added devel/llvm maintainers: quick summary -
wine needs the headers from llvm that are removed by "search and remove
headers that might conflict with base". proposal for wine adds a file
that needs updating every llvm version bump which I don't like. I've
proposed to either add a ports-internal (unlinked) flavour that just
extracts the headers and reduces deps (quoted diff below), or to
move those headers to a different dir rather than remove them and
include in llvm packages.

On 2026/10/19 14:44, Stuart Henderson wrote:
> here are two patches, for wine, and for devel/llvm, that make this
> significantly less annoying to deal with. my build is still running but
> I think it should work.

wine builds with those patches for me.

also I'm able to successfully run mikrotik winbox (connecting via MAC
doesn't work but by IP is fine, which is already pretty useful).

> another way to do it: rather than completely removing the stripped-out
> headers, devel/llvm could install them under a different dir and
> include in packages.
> 
> 
> --- Makefile.orig     Mon Oct 19 14:18:12 2026
> +++ Makefile  Mon Oct 19 14:43:16 2026
> @@ -27,19 +27,14 @@ WANTLIB += lib/inotify/inotify lib/libpcap/pcap
>  # loaded with dlopen()
>  WANTLIB += SDL2 cups dbus-1 gnutls netapi vulkan xkbregistry
>  
> -# keep this in sync with MODCLANG_VERSION
> -# source for updates/new releases: 
> https://thfr.gothub.org/wine-clang-pe-headers
> -CLANG_PE_HEADERS =           22.1.8
> -DISTFILES.clang-pe-headers = wine-clang-pe-headers-${CLANG_PE_HEADERS}.tar.gz
> -SITES.clang-pe-headers =     https://thfr.info/distfiles/
> -
>  SITES =                      https://dl.winehq.org/wine/source/11.x/
>  EXTRACT_SUFX =               .tar.xz
>  
>  MODULES =            lang/clang
>  
>  BUILD_DEPENDS =              devel/bison \
> -                     devel/nasm
> +                     devel/nasm \
> +                     ${_MODCLANG_BUILD_DEPENDS},headerextract:patch
>  RUN_DEPENDS =                multimedia/gstreamer1/libav \
>                       multimedia/gstreamer1/plugins-bad \
>                       multimedia/gstreamer1/plugins-good \
> @@ -156,9 +151,9 @@ SUBST_VARS+=              CLANG_PE_RESOURCE 
> MODCLANG_VERSION
>  
>  pre-configure:
>       ${INSTALL_DATA_DIR} ${CLANG_PE_RESOURCE}/include
> -     cp -R ${CLANG_RESOURCE}/include/. ${CLANG_PE_RESOURCE}/include/
> -     cp ${WRKDIR}/wine-clang-pe-headers-${CLANG_PE_HEADERS}/*.h \
> +     cp ${WRKDIR}/devel/llvm/*/*/clang/lib/Headers/*.h \
>               ${CLANG_PE_RESOURCE}/include/
> +     cp -R ${CLANG_RESOURCE}/include/. ${CLANG_PE_RESOURCE}/include/
>       ln -sfh ${CLANG_RESOURCE}/lib ${CLANG_PE_RESOURCE}/lib
>       ${SUBST_PROGRAM} ${FILESDIR}/clang-pe ${WRKDIR}/bin/clang-pe
>  
> 
> 
> Index: Makefile.inc
> ===================================================================
> RCS file: /cvs/ports/devel/llvm/Makefile.inc,v
> diff -u -p -r1.35 Makefile.inc
> --- Makefile.inc      20 Sep 2026 14:25:09 -0000      1.35
> +++ Makefile.inc      19 Oct 2026 13:35:06 -0000
> @@ -97,9 +97,19 @@ COMPILER = base-clang ports-gcc
>  
>  MODULES +=   devel/cmake
>  
> +# internal use for emulators/wine; reduce extraction size
> +FLAVORS=     headerextract
> +FLAVOR?=
> +
> +.if ${FLAVOR} == headerextract
> +PATCH_LIST=
> +EXTRACT_CASES += llvm*.tar.xz) \
> +    xz -T${MAKE_JOBS} -d <${FULLDISTDIR}/$$archive | ${TAR} -xf - -- 
> */clang/lib/Headers;;
> +.else
>  BUILD_DEPENDS +=     devel/swig \
>                       textproc/py-sphinx \
>                       textproc/py-recommonmark
> +.endif
>  
>  CONFIGURE_STYLE +=   cmake
>  CONFIGURE_ARGS +=    \
> @@ -151,7 +161,8 @@ CXXFLAGS-powerpc =        -fno-ret-protector
>  CXXFLAGS-mips64 +=   -mxgot
>  CXXFLAGS-mips64el += -mxgot
>  
> -CXXFLAGS +=          ${CXXFLAGS-${MACHINE_ARCH}}
> +CXXFLAGS +=          ${CXXFLAGS-${MACHINE_ARCH}} \
> +                     -D_LIBCPP_USE_LOWER_DEQUE_BLOCK_SIZE
>  
>  ALL_TARGET =         all docs-llvm-man docs-clang-man
>  
> 

Reply via email to