pool: ''
condition: true
llvm: false
+ crossrootfsDir: ''
### Product build
jobs:
enableMicrobuild: true
pool: ${{ parameters.pool }}
llvm: ${{ parameters.llvm }}
+ crossrootfsDir: ${{ parameters.crossroofsDir }}
condition: ${{ parameters.condition }}
# Compute job name from template parameters
platforms:
- OSX_x64
- Linux_x64
- # - Linux_arm
- # - Linux_arm64
+ - Linux_arm
+ - Linux_arm64
- Linux_musl_x64
# - Linux_musl_arm64
- Windows_NT_x64
platforms:
- OSX_x64
- Linux_x64
- # - Linux_arm
- # - Linux_arm64
+ - Linux_arm
+ - Linux_arm64
- Linux_musl_x64
# - Linux_musl_arm64
- Windows_NT_x64
AC_SUBST(CFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(LDFLAGS)
+AC_SUBST(CCLDFLAGS)
AC_SUBST(ZLIB_CFLAGS)
# Update all submodules recursively to ensure everything is checked out
<_MonoExtraCFLAGS>-O2 -g</_MonoExtraCFLAGS>
<_MonoExtraCXXFLAGS>-O2 -g</_MonoExtraCXXFLAGS>
</PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetArchitecture)' == 'arm64' ">
+ <_MonoTuple>aarch64-linux-gnu</_MonoTuple>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetArchitecture)' == 'arm' ">
+ <_MonoTuple>arm-linux-gnueabihf</_MonoTuple>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetArchitecture)' == 'arm' Or '$(TargetArchitecture)' == 'arm64' ">
+ <_MonoCrossDir>$(ROOTFS_DIR)</_MonoCrossDir>
+ <_MonoExtraCFLAGS>$(_MonoExtraCFLAGS) --sysroot=$(_MonoCrossDir) --target=$(_MonoTuple)</_MonoExtraCFLAGS>
+ <_MonoExtraCXXFLAGS>$(_MonoExtraCXXFLAGS) --sysroot=$(_MonoCrossDir) --target=$(_MonoTuple)</_MonoExtraCXXFLAGS>
+ <_MonoExtraLDFLAGS>$(_MonoExtraLDFLAGS) --sysroot=$(_MonoCrossDir) --target=$(_MonoTuple)</_MonoExtraLDFLAGS>
+ <_MonoExtraCCLDFLAGS>$(_MonoExtraCCLDFLAGS) -XCClinker --target=$(_MonoTuple)</_MonoExtraCCLDFLAGS>
+ <_MonoConfigureParams>$(_MonoConfigureParams) --host=$(_MonoTuple) --target=$(_MonoTuple)</_MonoConfigureParams>
+ <_MonoConfigureParams>$(_MonoConfigureParams) RANLIB=$(_MonoTuple)-ranlib</_MonoConfigureParams>
+ <_MonoConfigureParams>$(_MonoConfigureParams) LD=$(_MonoTuple)-ld</_MonoConfigureParams>
+ <_MonoConfigureParams>$(_MonoConfigureParams) AS=$(_MonoTuple)-as</_MonoConfigureParams>
+ <_MonoConfigureParams>$(_MonoConfigureParams) AR=$(_MonoTuple)-ar</_MonoConfigureParams>
+ <_MonoConfigureParams>$(_MonoConfigureParams) STRIP=$(_MonoTuple)-strip</_MonoConfigureParams>
+ </PropertyGroup>
<PropertyGroup>
<_MonoConfigureParams Condition="'$(MonoEnableLLVM)' == 'true'">$(_MonoConfigureParams) --with-llvm=$(MonoLLVMDir) </_MonoConfigureParams>
- <_MonoConfigureParams>$(_MonoConfigureParams) --enable-maintainer-mode --enable-compile-warnings --with-core=only CFLAGS="$(_MonoExtraCFLAGS)" CXXFLAGS="$(_MonoExtraCXXFLAGS)"</_MonoConfigureParams>
+ <_MonoConfigureParams>$(_MonoConfigureParams) --enable-maintainer-mode --enable-compile-warnings --with-core=only </_MonoConfigureParams>
+ <_MonoConfigureParams>$(_MonoConfigureParams) CFLAGS="$(_MonoExtraCFLAGS)" CXXFLAGS="$(_MonoExtraCXXFLAGS)" LDFLAGS="$(_MonoExtraLDFLAGS)" CCLDFLAGS="$(_MonoExtraCCLDFLAGS)"</_MonoConfigureParams>
</PropertyGroup>
<Message Text="Configuring Mono with '$(_MonoConfigureParams)'" Importance="High" />
libmonoboehm_2_0_la_CFLAGS = $(mono_boehm_CFLAGS) @CXX_ADD_CFLAGS@
libmonoboehm_2_0_la_LIBADD = libmini.la $(interp_libs_with_mini) $(dbg_libs_with_mini) $(boehm_libs) $(LIBMONO_DTRACE_OBJECT) $(LLVMMONOF)
-libmonoboehm_2_0_la_LDFLAGS = $(libmonoldflags) $(monobin_platform_ldflags)
+libmonoboehm_2_0_la_LDFLAGS = $(libmonoldflags) $(monobin_platform_ldflags) $(CCLDFLAGS)
libmonosgen_2_0_la_SOURCES =
libmonosgen_2_0_la_CFLAGS = $(mono_sgen_CFLAGS) @CXX_ADD_CFLAGS@
libmonosgen_2_0_la_LIBADD = libmini.la $(interp_libs_with_mini) $(dbg_libs_with_mini) $(sgen_libs) $(LIBMONO_DTRACE_OBJECT) $(LLVMMONOF)
-libmonosgen_2_0_la_LDFLAGS = $(libmonoldflags) $(monobin_platform_ldflags)
+libmonosgen_2_0_la_LDFLAGS = $(libmonoldflags) $(monobin_platform_ldflags) $(CCLDFLAGS)
noinst_LIBRARIES += libmaintest.a
glib_libs = $(top_builddir)/mono/eglib/libeglib.la
+prof_ldflags = $(CCLDFLAGS)
+
if !HOST_WIN32
if !DISABLE_LIBRARIES
if !DISABLE_PROFILER
# shared libraries, so we want errors if the profiler modules contain any.
if HOST_DARWIN
if BITCODE
-prof_ldflags = -no-undefined
+prof_ldflags += -no-undefined
else
-prof_ldflags = -Wl,-undefined -Wl,suppress -Wl,-flat_namespace
+prof_ldflags += -Wl,-undefined -Wl,suppress -Wl,-flat_namespace
endif
endif
# profiler modules contain versioned sonames, things will fail to resolve
# at runtime.
if HOST_ANDROID
-prof_ldflags = -avoid-version
+prof_ldflags += -avoid-version
endif
# Linking to libmono on desktop can cause problems when loading a profiler
# (borrowed from mono/tests/Makefile.am libtest_la_LDFLAGS)
# the exported names created by gcc for stdcall functions are missing the leading _, so MS.NET
# can't find them. So we use --kill-at to remove the @ suffix as well.
-libproftest_pinvokes_la_LDFLAGS = -no-undefined -rpath `pwd` -Wl,--kill-at
+libproftest_pinvokes_la_LDFLAGS = -no-undefined -rpath `pwd` $(CCLDFLAGS) -Wl,--kill-at
else
-libproftest_pinvokes_la_LDFLAGS = -no-undefined -rpath `pwd`
+libproftest_pinvokes_la_LDFLAGS = -no-undefined -rpath `pwd` $(CCLDFLAGS)
endif
<_distroRidIndex>$(_parseDistroRid.IndexOfAny("-"))</_distroRidIndex>
<_archRidIndex>$([MSBuild]::Add($(_distroRidIndex), 1))</_archRidIndex>
<OSRid Condition="'$(OSRid)' == '' and '$(_distroRidIndex)' != '-1'">$(_parseDistroRid.SubString(0, $(_distroRidIndex)))</OSRid>
- <OSRid Condition="'$(OSRid)' == ''">win10</OSRid>
+ <OSRid Condition="'$(OSRid)' == ''">$(MonoOSGroup)</OSRid>
<RuntimeOS Condition="'$(RuntimeOS)' == ''">$(OSRid)</RuntimeOS>