diff --git a/host-recipes/icu b/host-recipes/icu index 41bebbcc..6e338c5b 100644 --- a/host-recipes/icu +++ b/host-recipes/icu @@ -2,6 +2,7 @@ name=icu revision=1 from_source=icu imagedeps="build-essential" +clean_workdirs=no configure() { ${source_dir}/source/configure --prefix=${prefix} --disable-static diff --git a/host-recipes/libatomic b/host-recipes/libatomic new file mode 100644 index 00000000..79dcc915 --- /dev/null +++ b/host-recipes/libatomic @@ -0,0 +1,18 @@ +name=libatomic +revision=1 +from_source=gcc +imagedeps="build-essential" +hostdeps="automake autoconf xbinutils xgcc" +clean_workdirs=no +deps="mlibc" + +build() { + cd ${build_dir}/host-builds/xgcc + make all-target-libatomic -j${paralellism} +} + +package(){ + cd ${build_dir}/host-builds/xgcc + make DESTDIR="${dest_dir}" install-target-libatomic + rm -rf ${dest_dir}/usr/local/lib/gcc/x86_64-astral/14.3.0/ +} diff --git a/patches/enchant/jinx-working-patch.patch b/patches/enchant/jinx-working-patch.patch new file mode 100644 index 00000000..d3d97284 --- /dev/null +++ b/patches/enchant/jinx-working-patch.patch @@ -0,0 +1,80 @@ +diff --git enchant-clean/configure enchant-workdir/configure +index 6b76c6e..257e273 100755 +--- enchant-clean/configure ++++ enchant-workdir/configure +@@ -10206,7 +10206,7 @@ irix5* | irix6* | nonstopux*) + ;; + + # This must be glibc/ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | astral*) + lt_cv_deplibs_check_method=pass_all + ;; + +@@ -13617,7 +13617,7 @@ lt_prog_compiler_static= + lt_prog_compiler_static='-non_shared' + ;; + +- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | astral*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) +@@ -14291,7 +14291,7 @@ _LT_EOF + archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + +- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) ++ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | astral*) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in +@@ -16119,7 +16119,7 @@ linux*android*) + ;; + + # This must be glibc/ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | astral*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no +@@ -18235,7 +18235,7 @@ fi + inherit_rpath_CXX=yes + ;; + +- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | astral*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler +@@ -19051,7 +19051,7 @@ lt_prog_compiler_static_CXX= + ;; + esac + ;; +- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | astral*) + case $cc_basename in + KCC*) + # KAI C++ Compiler +@@ -20123,7 +20123,7 @@ linux*android*) + ;; + + # This must be glibc/ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | astral*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no +diff --git enchant-clean/configure.ac enchant-workdir/configure.ac +index 3e3268e..d93d626 100644 +--- enchant-clean/configure.ac ++++ enchant-workdir/configure.ac +@@ -12,7 +12,7 @@ + # You should have received a copy of the GNU Lesser General Public License + # along with this program; if not, see . + +-AC_PREREQ([2.71]) ++AC_PREREQ([2.69]) + AC_INIT([Enchant],[2.8.12]) + AC_CONFIG_SRCDIR(lib/enchant.h) + AC_CONFIG_AUX_DIR([build-aux]) diff --git a/patches/gcc/jinx-working-patch.patch b/patches/gcc/jinx-working-patch.patch index d79de798..9cb6a734 100644 --- a/patches/gcc/jinx-working-patch.patch +++ b/patches/gcc/jinx-working-patch.patch @@ -12,7 +12,7 @@ index 38f3d03..ee981b0 100755 # This one is extra strict with allowed versions sco3.2v2 | sco3.2v[4-9]* | sco5v6*) diff --git gcc-clean/fixincludes/mkfixinc.sh gcc-workdir/fixincludes/mkfixinc.sh -index 7112f4d..0acd4a7 100755 +index df90720..aebfb82 100755 --- gcc-clean/fixincludes/mkfixinc.sh +++ gcc-workdir/fixincludes/mkfixinc.sh @@ -11,6 +11,8 @@ target=fixinc.sh @@ -22,8 +22,8 @@ index 7112f4d..0acd4a7 100755 + *-astral* | \ + *-*-astral* | \ i?86-*-cygwin* | \ - *-mingw32* | \ - powerpc-*-eabisim* | \ + i?86-*-mingw32* | \ + x86_64-*-mingw32* | \ diff --git gcc-workdir/gcc/config/astral.h gcc-workdir/gcc/config/astral.h new file mode 100644 index 0000000..1768e2c @@ -83,6 +83,18 @@ index a3566f5..93b4acc 100644 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) tm_file="${tm_file} elfos.h newlib-stdint.h" tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h" +diff --git gcc-clean/libatomic/configure.tgt gcc-workdir/libatomic/configure.tgt +index 4237f28..6adebf9 100644 +--- gcc-clean/libatomic/configure.tgt ++++ gcc-workdir/libatomic/configure.tgt +@@ -150,6 +150,7 @@ case "${target}" in + + *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu \ + | *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly* \ ++ | *-*-astral* \ + | *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11* \ + | *-*-darwin* | *-*-aix* | *-*-cygwin*) + # POSIX system. The OS is supported. diff --git gcc-clean/libgcc/config.host gcc-workdir/libgcc/config.host index ee10e99..411a213 100644 --- gcc-clean/libgcc/config.host diff --git a/patches/libdrm/jinx-working-patch.patch b/patches/libdrm/jinx-working-patch.patch index acfa285d..0490046f 100644 --- a/patches/libdrm/jinx-working-patch.patch +++ b/patches/libdrm/jinx-working-patch.patch @@ -1,15 +1,22 @@ diff --git libdrm-clean/include/drm/drm.h libdrm-workdir/include/drm/drm.h -index 4e4f7c2..f0d0f63 100644 +index 4e4f7c2..a88780b 100644 --- libdrm-clean/include/drm/drm.h +++ libdrm-workdir/include/drm/drm.h -@@ -43,8 +43,17 @@ typedef unsigned int drm_handle_t; +@@ -35,16 +35,24 @@ + #ifndef _DRM_H_ + #define _DRM_H_ + +-#if defined(__linux__) ++#if defined(__linux__) || defined(__astral__) + + #include + #include + typedef unsigned int drm_handle_t; #else /* One of the BSDs */ - --#include --#include -+ #include -+//#include +- + #include + #include +#ifdef __astral__ +#define _IOC(dir,type,nr,size) (((dir)<<30)|((size)<<16)|((type)<<8)|(nr)) +#define _IO(type,nr) _IOC(0,(type),(nr),0) diff --git a/patches/libxslt/jinx-working-patch.patch b/patches/libxslt/jinx-working-patch.patch new file mode 100644 index 00000000..436f1b40 --- /dev/null +++ b/patches/libxslt/jinx-working-patch.patch @@ -0,0 +1,13 @@ +diff --git libxslt-clean/configure.ac libxslt-workdir/configure.ac +index 8a00c25..0c0f3b2 100644 +--- libxslt-clean/configure.ac ++++ libxslt-workdir/configure.ac +@@ -67,7 +67,7 @@ AC_SUBST(LIBEXSLT_VERSION_INFO) + AC_SUBST(LIBEXSLT_VERSION_NUMBER) + AC_SUBST(LIBEXSLT_VERSION_EXTRA) + +-AM_INIT_AUTOMAKE([1.16.3 foreign no-dist-gzip dist-xz]) ++AM_INIT_AUTOMAKE([1.15.1 foreign no-dist-gzip dist-xz]) + AM_MAINTAINER_MODE([enable]) + AM_SILENT_RULES([yes]) + diff --git a/patches/mlibc/jinx-working-patch.patch b/patches/mlibc/jinx-working-patch.patch index e6b6fcd9..620f54a9 100644 --- a/patches/mlibc/jinx-working-patch.patch +++ b/patches/mlibc/jinx-working-patch.patch @@ -412,7 +412,7 @@ index ba9a520..b958ef3 100644 .section .note.GNU-stack,"",%progbits - diff --git mlibc-clean/sysdeps/astral/generic/generic.cpp mlibc-workdir/sysdeps/astral/generic/generic.cpp -index 3b04372..e5741d1 100644 +index 3b04372..b7a8ab7 100644 --- mlibc-clean/sysdeps/astral/generic/generic.cpp +++ mlibc-workdir/sysdeps/astral/generic/generic.cpp @@ -1,7 +1,9 @@ @@ -457,7 +457,7 @@ index 3b04372..e5741d1 100644 namespace mlibc { int Sysdeps::operator()(size_t size, const gid_t *list) { -@@ -31,14 +56,307 @@ namespace mlibc { +@@ -31,14 +56,313 @@ namespace mlibc { return 0; } @@ -584,6 +584,12 @@ index 3b04372..e5741d1 100644 + return ENOTSUP; + } + ++ int Sysdeps::operator()(void **stack_base, size_t *stack_size) { ++ *stack_size = 1024 * 1024 * 4; ++ *stack_base = (void *)(0x0000800000000000 - *stack_size); ++ return 0; ++ } ++ +#ifndef MLIBC_BUILDING_RTLD + int Sysdeps::operator()(struct ifaddrs **out) { + struct ifaddrs *list = nullptr; @@ -770,7 +776,7 @@ index 3b04372..e5741d1 100644 int Sysdeps::operator()(bool *ipv4, bool *ipv6) { // there is no ipv6 support in the kernel currently and no way of checking for configured interfaces -@@ -47,6 +365,71 @@ namespace mlibc { +@@ -47,6 +371,71 @@ namespace mlibc { return 0; } @@ -842,7 +848,7 @@ index 3b04372..e5741d1 100644 int Sysdeps::operator()(int fd, const struct iovec *iovs, int iovc, ssize_t *bytes_read) { long r; int error = syscall(SYSCALL_READV, &r, fd, (uint64_t)iovs, iovc); -@@ -86,6 +469,11 @@ namespace mlibc { +@@ -86,6 +475,11 @@ namespace mlibc { return e; } @@ -854,7 +860,7 @@ index 3b04372..e5741d1 100644 int Sysdeps::operator()(int sockfd, int how) { long ret; return syscall(SYSCALL_SHUTDOWN, &ret, sockfd, how); -@@ -487,8 +875,15 @@ namespace mlibc { +@@ -487,8 +881,15 @@ namespace mlibc { return err; } @@ -870,7 +876,7 @@ index 3b04372..e5741d1 100644 return syscall(SYSCALL_SETSOCKOPT, &ret, fd, layer, number, (uint64_t)buffer, size); } -@@ -511,6 +906,11 @@ namespace mlibc { +@@ -511,6 +912,11 @@ namespace mlibc { return err; } @@ -882,7 +888,7 @@ index 3b04372..e5741d1 100644 int Sysdeps::operator()(int olddirfd, const char *old_path, int newdirfd, const char *new_path) { long ret; return syscall(SYSCALL_RENAMEAT, &ret, olddirfd, (uint64_t)old_path, newdirfd, (uint64_t)new_path); -@@ -562,6 +962,16 @@ namespace mlibc { +@@ -562,6 +968,16 @@ namespace mlibc { return sysdep(fd, TCSETS, (void *)attr, &res); } @@ -899,7 +905,7 @@ index 3b04372..e5741d1 100644 int Sysdeps::operator()(struct pollfd *fds, nfds_t count, int timeout, int *num_events) { long ret; long error = syscall(SYSCALL_POLL, &ret, (uint64_t)fds, count, timeout); -@@ -932,4 +1342,13 @@ namespace mlibc { +@@ -932,4 +1348,13 @@ namespace mlibc { *nanos = ts.tv_nsec; return err; } @@ -953,7 +959,7 @@ index a6c4067..fd38197 100644 #ifndef __MLIBC_ABI_ONLY diff --git mlibc-clean/sysdeps/astral/include/mlibc/sysdeps.hpp mlibc-workdir/sysdeps/astral/include/mlibc/sysdeps.hpp -index ce91084..0fffdf3 100644 +index ce91084..54ee08e 100644 --- mlibc-clean/sysdeps/astral/include/mlibc/sysdeps.hpp +++ mlibc-workdir/sysdeps/astral/include/mlibc/sysdeps.hpp @@ -7,8 +7,30 @@ namespace mlibc { @@ -1012,14 +1018,15 @@ index ce91084..0fffdf3 100644 Poll, Ppoll, Pselect, -@@ -135,7 +161,9 @@ struct AstralSysdepTags : +@@ -135,7 +161,10 @@ struct AstralSysdepTags : VmUnmap, Isatty, ClockGet, - PrepareStack + ClockGetres, + PrepareStack, -+ SetPriority ++ SetPriority, ++ GetCurrentStackInfo {}; template diff --git a/recipes/enchant b/recipes/enchant index 32440d27..21a1b0aa 100644 --- a/recipes/enchant +++ b/recipes/enchant @@ -1,5 +1,5 @@ name=enchant -revision=1 +revision=2 from_source=enchant imagedeps="build-essential" hostdeps="xgcc xbinutils pkgconfig libtool automake autoconf" diff --git a/recipes/harfbuzz b/recipes/harfbuzz index b912d905..96ab1afd 100644 --- a/recipes/harfbuzz +++ b/recipes/harfbuzz @@ -1,12 +1,12 @@ name=harfbuzz -revision=1 +revision=2 from_source=harfbuzz imagedeps="gcc meson ninja-build libglib2.0-dev" hostdeps="xgcc xbinutils pkgconfig libstdc++-v3" -deps="base freetype glib" +deps="base freetype glib icu" configure() { - meson --cross-file ${base_dir}/util/crossfile --prefix=${prefix} --buildtype=release --wrap-mode=nofallback -Dintrospection=disabled -Ddocs=disabled -Dtests=disabled -Dutilities=disabled -Dglib=enabled -Dgobject=enabled -Dfreetype=enabled -Dicu=disabled -Dgraphite2=disabled -Dcairo=disabled ${source_dir} + meson --cross-file ${base_dir}/util/crossfile --prefix=${prefix} --buildtype=release --wrap-mode=nofallback -Dintrospection=disabled -Ddocs=disabled -Dtests=disabled -Dutilities=disabled -Dglib=enabled -Dgobject=enabled -Dfreetype=enabled -Dicu=enabled -Dgraphite2=disabled -Dcairo=disabled ${source_dir} } build() { diff --git a/recipes/libdrm b/recipes/libdrm index bfbfaead..cfbd8acf 100644 --- a/recipes/libdrm +++ b/recipes/libdrm @@ -1,5 +1,5 @@ name=libdrm -revision=1 +revision=2 from_source=libdrm imagedeps="ninja-build build-essential" hostdeps="xgcc xbinutils pkgconfig libtool" diff --git a/recipes/libsoup b/recipes/libsoup index 908651f7..839fa90a 100644 --- a/recipes/libsoup +++ b/recipes/libsoup @@ -1,5 +1,5 @@ name=libsoup -revision=1 +revision=2 from_source=libsoup imagedeps="gcc meson ninja-build libglib2.0-dev-bin" hostdeps="xgcc xbinutils pkgconfig" diff --git a/recipes/libxslt b/recipes/libxslt new file mode 100644 index 00000000..22185b48 --- /dev/null +++ b/recipes/libxslt @@ -0,0 +1,18 @@ +name=libxslt +revision=2 +from_source=libxslt +imagedeps="build-essential libxml2" +hostdeps="xgcc xbinutils pkgconfig libtool" +deps="base libxml" + +configure() { + PKG_CONFIG=/usr/local/bin/x86_64-astral-pkg-config ${source_dir}/configure --host=x86_64-astral --prefix=${prefix} --disable-static --without-python +} + +build() { + make -j ${parallelism} +} + +package() { + make install DESTDIR=${dest_dir} +} diff --git a/recipes/mlibc b/recipes/mlibc index a1bc06d8..537a3ac8 100644 --- a/recipes/mlibc +++ b/recipes/mlibc @@ -1,6 +1,6 @@ name=mlibc from_source=mlibc -revision=5 +revision=6 hostdeps="xgcc xbinutils pkgconfig" builddeps="freestnd-c-hdrs freestnd-cxx-hdrs frigg libsmarter" imagedeps="meson ninja-build git build-essential binutils" diff --git a/recipes/sqlite b/recipes/sqlite index 779ded4e..edb03685 100644 --- a/recipes/sqlite +++ b/recipes/sqlite @@ -1,12 +1,12 @@ name=sqlite -revision=1 +revision=2 from_source=sqlite imagedeps="build-essential" hostdeps="xgcc xbinutils pkgconfig libtool" deps="base readline zlib" configure() { - ${source_dir}/configure --host=x86_64-astral --prefix=${prefix} --disable-static --enable-fts{4,5} CPPFLAGS="-D SQLITE_ENABLE_COLUMN_METADATA=1 -D SQLITE_ENABLE_UNLOCK_NOTIFY=1 -D SQLITE_ENABLE_DBSTAT_VTAB=1 -D SQLITE_SECURE_DELETE=1" + ${source_dir}/configure --host=x86_64-astral --prefix=${prefix} --disable-static --soname=legacy --enable-fts{4,5} CPPFLAGS="-D SQLITE_ENABLE_COLUMN_METADATA=1 -D SQLITE_ENABLE_UNLOCK_NOTIFY=1 -D SQLITE_ENABLE_DBSTAT_VTAB=1 -D SQLITE_SECURE_DELETE=1" } build() { diff --git a/source-recipes/enchant b/source-recipes/enchant index 40e8a95a..b090115b 100644 --- a/source-recipes/enchant +++ b/source-recipes/enchant @@ -6,5 +6,5 @@ tarball_sha512=2bcd22afd97e348bc2925c41cb25f7aec9cb67debca4bcf58f6e30ac06dd09582 hostdeps="autoconf automake libtool" prepare() { - cp -v $(find /usr/local/share/automake* -name config.sub) build-aux/. + cp -v $(find /usr/local/share/automake* -name config.sub) build-aux } diff --git a/source-recipes/libxslt b/source-recipes/libxslt new file mode 100644 index 00000000..cde991aa --- /dev/null +++ b/source-recipes/libxslt @@ -0,0 +1,10 @@ +name=libxslt +version=1.1.43 +source_method=tarball +tarball_url="https://download.gnome.org/sources/libxslt/1.1/libxslt-${version}.tar.xz" +tarball_sha512=96110b0397a8f5791f489127574e2143845feb61bea0581d7b7e3c1101fd0718483bae81a7ce417b971bd678293bfd95daddad0dadd3e256c87d41a69faed85a +hostdeps="automake libtool pkgconfig autoconf" + +prepare() { + autoreconf -fvi +} diff --git a/util/cmake b/util/cmake index 6d4d53e6..44a7f7f6 100644 --- a/util/cmake +++ b/util/cmake @@ -1,4 +1,5 @@ set(CMAKE_SYSTEM_NAME Astral) +set(CMAKE_SYSTEM_PROCESSOR x86_64) set(CMAKE_FIND_ROOT_PATH /sysroot)