diff --git a/build/aarch64/gcc10/build.sh b/build/aarch64/gcc10/build.sh index 1a86c39ef..8cd9d185c 100755 --- a/build/aarch64/gcc10/build.sh +++ b/build/aarch64/gcc10/build.sh @@ -72,8 +72,8 @@ export LD=/bin/ld export LD_FOR_HOST=/bin/ld export LD_FOR_TARGET=$PREFIX/bin/ld export AS_FOR_TARGET=$PREFIX/bin/$TRIPLET64-as -export CFLAGS_FOR_TARGET="-mno-outline-atomics -mtls-dialect=trad" -export CXXFLAGS_FOR_TARGET="-mno-outline-atomics -mtls-dialect=trad" +export CFLAGS_FOR_TARGET="-mtls-dialect=trad" +export CXXFLAGS_FOR_TARGET="-mtls-dialect=trad" export STRIP="/usr/bin/strip -x" export STRIP_FOR_TARGET="$STRIP" diff --git a/build/cairo/build.sh b/build/cairo/build.sh index 290ee6a11..00330f81f 100755 --- a/build/cairo/build.sh +++ b/build/cairo/build.sh @@ -66,7 +66,7 @@ pre_configure() { ! cross_arch $arch && return - CONFIGURE_CMD+=" --cross-file $SRCDIR/files/aarch64-gcc.txt" + CONFIGURE_CMD+=" --cross-file $SRCDIR/files/$arch-gcc.txt" } post_install() { diff --git a/build/dav1d/build.sh b/build/dav1d/build.sh index 11e9a81a6..6c870079c 100755 --- a/build/dav1d/build.sh +++ b/build/dav1d/build.sh @@ -33,8 +33,6 @@ TESTSUITE_SED=' /^Full log written to/d ' -CFLAGS[aarch64]+=" -mno-outline-atomics" - LDFLAGS[i386]+=" -lssp_ns" pre_configure() { @@ -49,7 +47,7 @@ pre_configure() { ! cross_arch $arch && return - CONFIGURE_CMD+=" --cross-file $SRCDIR/files/aarch64-gcc.txt" + CONFIGURE_CMD+=" --cross-file $SRCDIR/files/$arch-gcc.txt" } init diff --git a/build/freetype2/build.sh b/build/freetype2/build.sh index 274454352..614a2fcc9 100755 --- a/build/freetype2/build.sh +++ b/build/freetype2/build.sh @@ -37,6 +37,7 @@ CONFIGURE_OPTS=" --includedir=$PREFIX/include --disable-static --with-png=no + --with-harfbuzz=no " CONFIGURE_OPTS[i386]=" --bindir=$PREFIX/bin/i386 diff --git a/build/gnutls/build.sh b/build/gnutls/build.sh index 6a55f54e9..cd460a1aa 100755 --- a/build/gnutls/build.sh +++ b/build/gnutls/build.sh @@ -56,7 +56,7 @@ pre_configure() { CPPFLAGS+=" -I${SYSROOT[$arch]}/usr/include/gmp" CPPFLAGS+=" -I${SYSROOT[$arch]}$PREFIX/include" CPPFLAGS+=" -I${SYSROOT[$arch]}$PREFIX/unbound/include" - CFLAGS[aarch64]+=" -mno-outline-atomics -mtls-dialect=trad" + CFLAGS[aarch64]+=" -mtls-dialect=trad" LDFLAGS[$arch]+=" -L${SYSROOT[$arch]}$PREFIX/${LIBDIRS[$arch]}" LDFLAGS[$arch]+=" -L${SYSROOT[$arch]}$PREFIX/unbound/${LIBDIRS[$arch]}" LDFLAGS[$arch]+=" -R$PREFIX/${LIBDIRS[$arch]}" diff --git a/build/hunspell/build.sh b/build/hunspell/build.sh index d550548cb..78d250703 100755 --- a/build/hunspell/build.sh +++ b/build/hunspell/build.sh @@ -56,7 +56,7 @@ CONFIGURE_OPTS[aarch64]+=" " CPPFLAGS+=" -I/usr/include/ncurses" -CXXFLAGS[aarch64]+=" -mno-outline-atomics -mtls-dialect=trad" +CXXFLAGS[aarch64]+=" -mtls-dialect=trad" post_install() { [ $1 = i386 ] && return diff --git a/build/icu4c/build.sh b/build/icu4c/build.sh index af86aa20c..c8422136f 100755 --- a/build/icu4c/build.sh +++ b/build/icu4c/build.sh @@ -33,15 +33,55 @@ CONFIGURE_OPTS[amd64]+=" --sbindir=$PREFIX/sbin " -LDFLAGS[i386]+=" -R$PREFIX/lib" -LDFLAGS[amd64]+=" -R$PREFIX/lib/amd64" +CXXFLAGS[aarch64]+=" -mtls-dialect=trad" +LDFLAGS[i386]+=" -R$PREFIX/${LIBDIRS[i386]}" +LDFLAGS[amd64]+=" -R$PREFIX/${LIBDIRS[amd64]}" +LDFLAGS[aarch64]+=" -R$PREFIX/${LIBDIRS[aarch64]}" -# Make ISA binaries for icu-config, to allow software to find the -# right settings for 32/64-bit when pkg-config is not used. -make_isa_stub() { +pre_configure() { + typeset arch=$1 + + ! cross_arch $arch && return + + save_variable BUILDARCH + save_buildenv + set_arch $BUILD_ARCH + set_gccver $DEFAULT_GCC_VER + + save_builddir __native_tools__ + append_builddir "_native_tools" + logcmd $MKDIR -p $TMPDIR/$BUILDDIR || logerr "mkdir failed" + CONFIGURE_CMD=../configure + + note -n "-- Building native tools" + + # not installing the native tools + pre_install() { false; } + + build + + set_crossgcc $arch + restore_builddir __native_tools__ + restore_buildenv + restore_variable BUILDARCH + + unset -f pre_install + + CONFIGURE_OPTS[$arch]+=" + --with-cross-build=$TMPDIR/$BUILDDIR/_native_tools + " + + note -n "-- Building $PROG" +} + +post_install() { + [ "$1" != amd64 ] && return + + # Make ISA binaries for icu-config, to allow software to find the + # right settings for 32/64-bit when pkg-config is not used. pushd $DESTDIR$PREFIX/bin >/dev/null - logcmd mkdir -p amd64 - logcmd mv icu-config amd64/ || logerr "mv icu-config" + logcmd $MKDIR -p amd64 + logcmd $MV icu-config amd64/ || logerr "mv icu-config" make_isaexec_stub_arch amd64 $PREFIX/bin popd >/dev/null } @@ -51,7 +91,6 @@ download_source $PROG $PROG-${VER//./_}-src patch_source prep_build build -make_isa_stub make_package clean_up diff --git a/build/json-c/build.sh b/build/json-c/build.sh index 628a5ed00..2942a8538 100755 --- a/build/json-c/build.sh +++ b/build/json-c/build.sh @@ -39,7 +39,7 @@ CONFIGURE_OPTS[amd64]=" " CONFIGURE_OPTS[aarch64]= -CFLAGS[aarch64]+=" -mno-outline-atomics -mtls-dialect=trad" +CFLAGS[aarch64]+=" -mtls-dialect=trad" init download_source $PROG $PROG $VER diff --git a/build/libjpeg-turbo/build.sh b/build/libjpeg-turbo/build.sh index 600e55d64..461bde796 100755 --- a/build/libjpeg-turbo/build.sh +++ b/build/libjpeg-turbo/build.sh @@ -50,7 +50,7 @@ CONFIGURE_OPTS=" -DCMAKE_INSTALL_INCLUDEDIR=$OPREFIX/include " -CFLAGS[aarch64]+=" -mno-outline-atomics -mtls-dialect=trad" +CFLAGS[aarch64]+=" -mtls-dialect=trad" pre_build() { typeset arch=$1 diff --git a/build/pango/build.sh b/build/pango/build.sh index 5e2fffe15..45bba8ff8 100755 --- a/build/pango/build.sh +++ b/build/pango/build.sh @@ -12,7 +12,7 @@ # http://www.illumos.org/license/CDDL. # }}} -# Copyright 2023 OmniOS Community Edition (OmniOSce) Association. +# Copyright 2024 OmniOS Community Edition (OmniOSce) Association. . ../../lib/build.sh @@ -22,6 +22,8 @@ PKG=ooce/library/pango SUMMARY="pango" DESC="Pango is a library for laying out and rendering of text" +forgo_isaexec + # Dependencies HARFBUZZVER=8.2.1 FRIBIDIVER=1.0.13 @@ -51,7 +53,8 @@ XFORM_ARGS=" pre_configure() { typeset arch=$1 - LDFLAGS[$arch]+=" -L$PREFIX/${LIBDIRS[$arch]} -R$PREFIX/${LIBDIRS[$arch]}" + LDFLAGS[$arch]+=" -L${SYSROOT[$arch]}$PREFIX/${LIBDIRS[$arch]}" + LDFLAGS[$arch]+=" -R$PREFIX/${LIBDIRS[$arch]}" [ $arch = i386 ] && LDFLAGS[$arch]+=" -lssp_ns" export MAKE @@ -63,6 +66,12 @@ post_configure() { done } +# we'd have to check whether the gcc version is lower or equal to 11 +# however `set_crossgcc` does not set GCCVER so we cannot check +post_build() { + [ "$1" = aarch64 ] && EXPECTED_BUILD_ERRS=0 || EXPECTED_BUILD_ERRS=2 +} + init prep_build @@ -81,7 +90,6 @@ build_dependency -merge -noctf harfbuzz harfbuzz-$HARFBUZZVER \ export CPPFLAGS+=" -I$DEPROOT/$PREFIX/include/harfbuzz" SKIP_BUILD_ERRCHK= -test_relver '>=' 151044 && EXPECTED_BUILD_ERRS=2 ###################################################################### @@ -92,14 +100,7 @@ export CPPFLAGS+=" -I$DEPROOT/$PREFIX/include/fribidi" ###################################################################### -if ((EXTRACT_MODE == 0)); then - logcmd find $DEPROOT -name \*.la -exec rm {} + - logcmd mv $DEPROOT/$PREFIX/bin/amd64/* $DEPROOT/$PREFIX/bin/ \ - || logerr "relocate dependency binaries" - logcmd rm -rf $DEPROOT/$PREFIX/bin/{i386,amd64} -fi - -for arch in $DEFAULT_ARCH; do +for arch in $ARCH_LIST; do LDFLAGS[$arch]+=" -L$DEPROOT/$PREFIX/${LIBDIRS[$arch]}" addpath PKG_CONFIG_PATH[$arch] $DEPROOT/$PREFIX/${LIBDIRS[$arch]}/pkgconfig done @@ -111,8 +112,12 @@ CONFIGURE_OPTS=" -Dinstall-tests=false -Dintrospection=disabled " -CONFIGURE_OPTS[i386]=" --libdir=$PREFIX/lib " -CONFIGURE_OPTS[amd64]=" --libdir=$PREFIX/lib/amd64 " +CONFIGURE_OPTS[i386]=" --libdir=$PREFIX/${LIBDIRS[i386]} " +CONFIGURE_OPTS[amd64]=" --libdir=$PREFIX/${LIBDIRS[amd64]} " +CONFIGURE_OPTS[aarch64]=" + --libdir=$PREFIX/${LIBDIRS[aarch64]} + --cross-file $SRCDIR/files/aarch64-gcc.txt +" EXPECTED_OPTIONS="CAIRO CAIRO_FREETYPE CAIRO_PDF CAIRO_PS CAIRO_PNG FREETYPE" diff --git a/build/pango/files/aarch64-gcc.txt b/build/pango/files/aarch64-gcc.txt new file mode 100644 index 000000000..88a0f04dc --- /dev/null +++ b/build/pango/files/aarch64-gcc.txt @@ -0,0 +1,12 @@ +[binaries] +c = '/opt/cross/aarch64/bin/aarch64-unknown-solaris2.11-gcc' +cpp = '/opt/cross/aarch64/bin/aarch64-unknown-solaris2.11-g++' +ar = '/opt/cross/aarch64/bin/aarch64-unknown-solaris2.11-ar' +pkgconfig = 'pkg-config' + +[host_machine] +system = 'sunos' +cpu_family = 'aarch64' +cpu = 'aarch64' +endian = 'little' + diff --git a/build/pixman/build.sh b/build/pixman/build.sh index 7a4f121c8..c0a00c517 100755 --- a/build/pixman/build.sh +++ b/build/pixman/build.sh @@ -41,7 +41,7 @@ pre_configure() { ! cross_arch $arch && return - CONFIGURE_CMD+=" --cross-file $SRCDIR/files/aarch64-gcc.txt" + CONFIGURE_CMD+=" --cross-file $SRCDIR/files/$arch-gcc.txt" } init diff --git a/build/postgresql/build-14.sh b/build/postgresql/build-14.sh index 2875648d9..20f61fc26 100755 --- a/build/postgresql/build-14.sh +++ b/build/postgresql/build-14.sh @@ -73,7 +73,6 @@ XFORM_ARGS=" " CFLAGS+=" -O3" -CFLAGS[aarch64]+=" -mno-outline-atomics" CPPFLAGS+=" -DWAIT_USE_POLL" # postgresql has large enumerations CTF_FLAGS+=" -s" diff --git a/build/postgresql/build-16.sh b/build/postgresql/build-16.sh index fd0dfcd97..a779b0575 100755 --- a/build/postgresql/build-16.sh +++ b/build/postgresql/build-16.sh @@ -69,7 +69,6 @@ XFORM_ARGS=" " CFLAGS+=" -O3" -CFLAGS[aarch64]+=" -mno-outline-atomics" CPPFLAGS+=" -DWAIT_USE_POLL" # postgresql has large enumerations CTF_FLAGS+=" -s" diff --git a/build/x265/build.sh b/build/x265/build.sh index 2522abcc6..9dc95a180 100755 --- a/build/x265/build.sh +++ b/build/x265/build.sh @@ -37,7 +37,6 @@ CONFIGURE_OPTS=" -DCMAKE_INSTALL_PREFIX=$PREFIX " -CXXFLAGS[aarch64]+=" -mno-outline-atomics" LDFLAGS[amd64]+=" -R$PREFIX/${LIBDIRS[amd64]}" LDFLAGS[aarch64]+=" -R$PREFIX/${LIBDIRS[aarch64]}" diff --git a/doc/baseline.aarch64 b/doc/baseline.aarch64 index 0c13ef067..b861ed804 100644 --- a/doc/baseline.aarch64 +++ b/doc/baseline.aarch64 @@ -17,6 +17,7 @@ extra.omnios ooce/library/cairo extra.omnios ooce/library/fontconfig extra.omnios ooce/library/freetype2 extra.omnios ooce/library/gnutls +extra.omnios ooce/library/icu4c extra.omnios ooce/library/json-c extra.omnios ooce/library/libarchive extra.omnios ooce/library/libde265 @@ -37,6 +38,7 @@ extra.omnios ooce/library/mariadb-106 extra.omnios ooce/library/nettle extra.omnios ooce/library/onig extra.omnios ooce/library/openldap +extra.omnios ooce/library/pango extra.omnios ooce/library/pixman extra.omnios ooce/library/popt extra.omnios ooce/library/postgresql-14 diff --git a/doc/pkglist.aarch64 b/doc/pkglist.aarch64 index 750374c28..e17cdaae9 100644 --- a/doc/pkglist.aarch64 +++ b/doc/pkglist.aarch64 @@ -54,6 +54,7 @@ ooce/editor/joe ooce/multimedia/x265 ooce/library/libde265 ooce/database/mariadb-common +ooce/library/icu4c ############################################################################### .SYSROOT ooce/audio/flac @@ -79,6 +80,7 @@ ooce/library/cairo .SYSROOT ooce/security/gnupg ooce/multimedia/ffmpeg +ooce/library/pango ############################################################################### .SYSROOT ooce/multimedia/minidlna