@@ -137,14 +137,26 @@ jobs:
137137 target_env=$(echo "${{ matrix.target }}" | tr '-' '_')
138138 prefix="${{ matrix.osxcross_prefix }}"
139139 osxcross_bin="$(dirname "$(command -v "${prefix}-clang")")"
140- export PATH="${osxcross_bin}:${PATH}"
140+ ld_candidate=""
141+ for name in "${prefix}-ld" "${prefix}-ld64" "ld64" "ld"; do
142+ if [ -x "${osxcross_bin}/${name}" ]; then
143+ ld_candidate="${osxcross_bin}/${name}"
144+ break
145+ fi
146+ done
147+ toolchain_bin="$(mktemp -d)"
148+ if [ -n "${ld_candidate}" ]; then
149+ ln -s "${ld_candidate}" "${toolchain_bin}/ld"
150+ ln -s "${ld_candidate}" "${toolchain_bin}/ld64"
151+ fi
152+ export PATH="${toolchain_bin}:${osxcross_bin}:${PATH}"
141153 export "CC_${target_env}=${osxcross_bin}/${prefix}-clang"
142154 export "CXX_${target_env}=${osxcross_bin}/${prefix}-clang++"
143155 export "AR_${target_env}=${osxcross_bin}/${prefix}-ar"
144156 export "RANLIB_${target_env}=${osxcross_bin}/${prefix}-ranlib"
145- export "CFLAGS_${target_env}=-B${osxcross_bin}"
146- export "CXXFLAGS_${target_env}=-B${osxcross_bin}"
147- export "LDFLAGS_${target_env}=-B${osxcross_bin}"
157+ export "CFLAGS_${target_env}=-B${toolchain_bin} -B${ osxcross_bin} -fuse-ld=ld64 "
158+ export "CXXFLAGS_${target_env}=-B${toolchain_bin} -B${ osxcross_bin} -fuse-ld=ld64 "
159+ export "LDFLAGS_${target_env}=-B${toolchain_bin} -B${ osxcross_bin} -fuse-ld=ld64 "
148160 cargo build --bins --workspace --release --target ${{ matrix.target }}
149161 mkdir -p dist
150162 cp target/${{ matrix.target }}/release/plumeimpactor dist/plumeimpactor-macos-${{ matrix.suffix }}
0 commit comments