22.01.2026 17:26, Jeremie Courreges-Anglas пишет:
> boost publically exposes C++ libs with ABI details encoded.  That
> doesn't work very well when mixing compilers.

Right.

> I suspect that passing
> -mlong-calls to the b2 compilation (do-configure) should be enough,
> but I'm not sure how to do that.

build.sh accepts flags, but then:

|clang++: warning: ignoring '-mlong-calls' option as it is not currently 
supported with the implicit usage of -mabicalls [-Woption-ignored]

... second attempt, diff below:

|> clang++ -x c++ -std=c++11 -pthread -mlong-calls -mno-abicalls 
-Wno-deprecated-declarations -DNDEBUG bindjam.cpp [...] -o b2
|fatal error: error in backend: Cannot select: 0x45fc4c9a0: i64 = 
MipsISD::GPRel TargetGlobalAddress:i64<ptr @.str> 0 [TF=3]
|  0x442ad8ee0: i64 = TargetGlobalAddress<ptr @.str> 0 [TF=3]
|In function: _ZN2b23jam6to_jamIbEEPNS_5valueET_
|[...]

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/boost/Makefile,v
diff -u -p -r1.157 Makefile
--- Makefile    15 Jan 2026 15:00:58 -0000      1.157
+++ Makefile    22 Jan 2026 15:30:46 -0000
@@ -90,13 +90,15 @@ LIB_DEPENDS=        archivers/bzip2 \
 
 LIB_DEPENDS-md=        devel/boost
 
+BUILD_SH_ARGS= # empty
+.if ${MACHINE_ARCH} == "mips64"
+# XXX bindjam.cpp:(.text+0x600): relocation truncated to fit: R_MIPS_CALL16 ...
+BUILD_SH_ARGS+=        --cxxflags='-mlong-calls -mno-abicalls'
+.endif
+
 .include <bsd.port.arch.mk>
 
-.if ${PROPERTIES:Mclang}
-TOOLSET=       clang
-.else
-TOOLSET=       gcc
-.endif
+TOOLSET=       ${CHOSEN_COMPILER:base-%=:ports-%=}
 
 BJAM_CONFIG=   -sICU_PATH=${LOCALBASE} \
                -sBZIP2_INCLUDE=${LOCALBASE}/include \
@@ -138,7 +140,7 @@ do-configure:
        @cd ${WRKSRC}/libs/config && \
                ${SETENV} ${CONFIGURE_ENV} /bin/sh ./configure
        @cd ${WRKSRC}/tools/build/src/engine && ${SETENV} ${CONFIGURE_ENV} \
-               /bin/sh ./build.sh ${TOOLSET} && cp b2 ${WRKSRC}
+               /bin/sh ./build.sh ${BUILD_SH_ARGS} ${TOOLSET} && cp b2 
${WRKSRC}
        @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} /bin/sh ./bootstrap.sh 
${BOOTSTRAP}
 
 do-build:

Reply via email to