Browse Source

Fix up glib and other things for plugins bootstrap

Signed-off-by: falkTX <falktx@falktx.com>
pull/25/head
falkTX 3 years ago
parent
commit
3ad22ecba1
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
8 changed files with 209 additions and 202 deletions
  1. +18
    -18
      .github/workflows/bootstrap.yml
  2. +0
    -8
      bootstrap-carla.sh
  3. +24
    -24
      bootstrap-plugins.sh
  4. +125
    -15
      patches/glib/01_skip-gettext.patch
  5. +36
    -0
      patches/glib/02_fix-stat32i64-usage.patch
  6. +0
    -131
      patches/glib/macos-universal/01_aarch64-atomic-as-mutex.patch
  7. +4
    -1
      setup/env.sh
  8. +2
    -5
      setup/versions.sh

+ 18
- 18
.github/workflows/bootstrap.yml View File

@@ -217,12 +217,12 @@ jobs:
needs: common
steps:
- uses: actions/checkout@v2
#- name: Set up cache
#uses: actions/cache@v2
#with:
#path: |
#~/PawPawBuilds
#key: plugins-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
- name: Set up cache
uses: actions/cache@v2
with:
path: |
~/PawPawBuilds
key: plugins-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
- name: (apt) Restore debian package cache
if: ${{ matrix.installer == 'apt' }}
run: |
@@ -279,18 +279,18 @@ jobs:
run: |
cd ~/PawPawBuilds && \
tar xf common-${{ matrix.target }}.tar.gz
#- name: Run bootstrap
#shell: bash
#run: |
#./bootstrap-plugins.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }}
#- name: Pack bootstrap build
#shell: bash
#run: |
#tar -C ~/PawPawBuilds -czf plugins-${{ matrix.target }}.tar.gz builds targets
#- uses: actions/upload-artifact@v2
#with:
#name: plugins-${{ matrix.target }}
#path: plugins-${{ matrix.target }}.tar.gz
- name: Run bootstrap
shell: bash
run: |
./bootstrap-plugins.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }}
- name: Pack bootstrap build
shell: bash
run: |
tar -C ~/PawPawBuilds -czf plugins-${{ matrix.target }}.tar.gz builds targets
- uses: actions/upload-artifact@v2
with:
name: plugins-${{ matrix.target }}
path: plugins-${{ matrix.target }}.tar.gz

jack2:
strategy:


+ 0
- 8
bootstrap-carla.sh View File

@@ -196,14 +196,6 @@ if [ "${WIN32}" -eq 0 ]; then
build_autoconf file "${FILE_VERSION}"
fi

# ---------------------------------------------------------------------------------------------------------------------
# libffi (for python, not needed in macOS)

if [ "${MACOS}" -eq 0 ]; then
download libffi "${LIBFFI_VERSION}" "${LIBFFI_URL}"
build_autoconf libffi "${LIBFFI_VERSION}"
fi

# ---------------------------------------------------------------------------------------------------------------------
# wine bootstrap for python (needed for cross-compilation)



+ 24
- 24
bootstrap-plugins.sh View File

@@ -61,31 +61,40 @@ if [ "${CROSS_COMPILING}" -eq 0 ]; then
run_make fftwf "${FFTW_VERSION}" check
fi

# ---------------------------------------------------------------------------------------------------------------------
# pcre

if [ "${MACOS}" -eq 1 ] || [ "${WIN32}" -eq 1 ]; then
download pcre "${PCRE_VERSION}" "${PCRE_URL}"
build_autoconf pcre "${PCRE_VERSION}"
fi

# ---------------------------------------------------------------------------------------------------------------------
# libffi

if [ "${WIN32}" -eq 1 ]; then
download libffi "${LIBFFI_VERSION}" "${LIBFFI_URL}"
build_autoconf libffi "${LIBFFI_VERSION}"
fi

# ---------------------------------------------------------------------------------------------------------------------
# glib

if [ "${MACOS}" -eq 1 ] || [ "${WIN32}" -eq 1 ]; then
GLIB_EXTRAFLAGS="--disable-rebuilds"

if [ "${WIN32}" -eq 1 ]; then
GLIB_EXTRAFLAGS="--with-threads=win32"
GLIB_EXTRAFLAGS+=" --with-threads=win32"
else
GLIB_EXTRAFLAGS="--with-threads=posix"
GLIB_EXTRAFLAGS+=" --with-threads=posix"
fi

download glib ${GLIB_VERSION} "${GLIB_URL}" "${GLIB_TAR_EXT}"

if [ "${MACOS}" -eq 1 ]; then
export EXTRA_LDFLAGS="-lresolv"
patch_file glib ${GLIB_VERSION} "glib/gconvert.c" '/#error/g'

if [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
patch_file glib ${GLIB_VERSION} "glib/gatomic.c" 's/G_ATOMIC_ARM/__aarch64__/'
patch_file glib ${GLIB_VERSION} "glib/gatomic.c" 's/G_ATOMIC_X86_64/__SSE2__/'
fi
# elif [ "${WIN32}" -eq 1 ] && [ -n "${EXE_WRAPPER}" ]; then
# patch_file glib ${GLIB_VERSION} "gobject/Makefile.in" "s|glib_genmarshal = ./glib-genmarshal|glib_genmarshal = ${EXE_WRAPPER} ./glib-genmarshal.exe|"
if [ "${WIN64}" -eq 1 ]; then
export EXTRA_CFLAGS="-Wno-format"
fi

build_autoconfgen glib ${GLIB_VERSION} "--disable-rebuilds ${GLIB_EXTRAFLAGS}"
download glib ${GLIB_VERSION} "${GLIB_URL}" "tar.xz"
build_autoconfgen glib ${GLIB_VERSION} "${GLIB_EXTRAFLAGS}"
fi

# ---------------------------------------------------------------------------------------------------------------------
@@ -112,15 +121,6 @@ if [ "${CROSS_COMPILING}" -eq 0 ]; then
run_make liblo "${LIBLO_VERSION}" check
fi

# ---------------------------------------------------------------------------------------------------------------------
# pcre (needed for sord_validate, only relevant if we can run the resulting binaries)

# FIXME down at the moment
# if [ "${CROSS_COMPILING}" -eq 0 ] || [ -n "${EXE_WRAPPER}" ]; then
# download pcre "${PCRE_VERSION}" "${PCRE_URL}"
# build_autoconf pcre "${PCRE_VERSION}"
# fi

# ---------------------------------------------------------------------------------------------------------------------
# lv2



+ 125
- 15
patches/glib/01_skip-gettext.patch View File

@@ -2,19 +2,19 @@ diff --git a/Makefile.in b/Makefile.in
index 3402627..27210f1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -401,7 +401,7 @@ EXTRA_DIST = ChangeLog.pre-2-20 ChangeLog.pre-2-18 ChangeLog.pre-2-16 \
gio-2.0-uninstalled.pc.in gio-unix-2.0-uninstalled.pc.in
TEST_PROGS =
AUTOMAKE_OPTIONS = 1.7
-SUBDIRS = . m4macros glib gmodule gthread gobject gio tests po docs
@@ -834,7 +834,7 @@ all_test_ltlibs = $(test_ltlibraries) $(uninstalled_test_ltlibraries) $(installe
@ENABLE_INSTALLED_TESTS_TRUE@installed_test_meta_DATA = $(installed_testcases:=.test)
ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS}
-SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs tests
+SUBDIRS = . m4macros glib gmodule gthread gobject gio po
DIST_SUBDIRS = $(SUBDIRS) build
bin_SCRIPTS = glib-gettextize
AM_CPPFLAGS = \
diff --git a/configure.in b/configure.in
diff --git a/configure.ac b/configure.ac
index b9c3342..e421aa0 100644
--- a/configure.in
+++ b/configure.in
--- a/configure.ac
+++ b/configure.ac
@@ -465,13 +465,6 @@ ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS'])
GLIB_GNU_GETTEXT
@@ -29,12 +29,122 @@ index b9c3342..e421aa0 100644
LIBS="$INTLLIBS $LIBS"
GETTEXT_PACKAGE=glib20
@@ -2682,8 +2675,6 @@ dnl **************************
dnl *** Checks for gtk-doc ***
dnl **************************
diff --git a/glib/ggettext.c b/glib/ggettext.c
index bf74ccb..b9e57ef 100644
--- a/glib/ggettext.c
+++ b/glib/ggettext.c
@@ -40,7 +40,7 @@
#include <string.h>
#include <locale.h>
-#include <libintl.h>
+
#ifdef G_OS_WIN32
-GTK_DOC_CHECK([1.11])
@@ -55,36 +55,7 @@
gchar *
_glib_get_locale_dir (void)
{
- gchar *install_dir = NULL, *locale_dir;
- gchar *retval = NULL;
-
- if (glib_dll != NULL)
- install_dir = g_win32_get_package_installation_directory_of_module (glib_dll);
-
- if (install_dir)
- {
- /*
- * Append "/share/locale" or "/lib/locale" depending on whether
- * autoconfigury detected GNU gettext or not.
- */
- const char *p = GLIB_LOCALE_DIR + strlen (GLIB_LOCALE_DIR);
- while (*--p != '/')
- ;
- while (*--p != '/')
- ;
-
- locale_dir = g_build_filename (install_dir, p, NULL);
-
AC_ARG_ENABLE(man,
[AC_HELP_STRING([--enable-man],
[regenerate man pages from Docbook [default=no]])],enable_man=yes,
- retval = g_win32_locale_filename_from_utf8 (locale_dir);
-
- g_free (install_dir);
- g_free (locale_dir);
- }
-
- if (retval)
- return retval;
- else
- return g_strdup ("");
+ return g_strdup ("");
}
#undef GLIB_LOCALE_DIR
@@ -92,27 +63,6 @@ _glib_get_locale_dir (void)
#endif /* G_OS_WIN32 */
-static void
-ensure_gettext_initialized (void)
-{
- static gsize initialised;
-
- if (g_once_init_enter (&initialised))
- {
-#ifdef G_OS_WIN32
- gchar *tmp = _glib_get_locale_dir ();
- bindtextdomain (GETTEXT_PACKAGE, tmp);
- g_free (tmp);
-#else
- bindtextdomain (GETTEXT_PACKAGE, GLIB_LOCALE_DIR);
-#endif
-# ifdef HAVE_BIND_TEXTDOMAIN_CODESET
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-# endif
- g_once_init_leave (&initialised, TRUE);
- }
-}
-
/**
* glib_gettext:
* @str: The string to be translated
@@ -126,8 +76,6 @@ ensure_gettext_initialized (void)
const gchar *
glib_gettext (const gchar *str)
{
- ensure_gettext_initialized ();
-
return g_dgettext (GETTEXT_PACKAGE, str);
}
@@ -150,8 +98,6 @@ const gchar *
glib_pgettext (const gchar *msgctxtid,
gsize msgidoffset)
{
- ensure_gettext_initialized ();
-
return g_dpgettext (GETTEXT_PACKAGE, msgctxtid, msgidoffset);
}
diff --git a/glib/gi18n.h b/glib/gi18n.h
index f765c3d..a06507f 100644
--- a/glib/gi18n.h
+++ b/glib/gi18n.h
@@ -20,13 +20,15 @@
#include <glib.h>
-#include <libintl.h>
#include <string.h>
-#define _(String) gettext (String)
+#define _(String) (String)
#define Q_(String) g_dpgettext (NULL, String, 0)
#define N_(String) (String)
#define C_(Context,String) g_dpgettext (NULL, Context "\004" String, strlen (Context) + 1)
#define NC_(Context, String) (String)
+#define textdomain(...)
+#define bindtextdomain(...)
+
#endif /* __G_I18N_H__ */

+ 36
- 0
patches/glib/02_fix-stat32i64-usage.patch View File

@@ -0,0 +1,36 @@
From 4745c08220b90eac741ae3ca1913cbe90c9831ef Mon Sep 17 00:00:00 2001
From: Benjamin Gilbert <bgilbert@backtick.net>
Date: Sat, 26 Sep 2015 18:22:34 -0400
Subject: [PATCH] win32: Fix link error with _wstat32i64() on 64-bit

_wstat32i64() doesn't exist in msvcrt.dll. This doesn't cause a problem
on 32-bit Windows because mingw-w64 #defines _wstat32i64 to _wstati64,
but on 64-bit Windows we get a link error.

In addition, _wstat32i64() takes a struct _stat32i64 *, but
GLocalFileStat is #defined to struct _stati64, which is not the same
type on 64-bit Windows.

Fix by using _wstati64().

https://bugzilla.gnome.org/show_bug.cgi?id=749161
---
gio/glocalfile.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gio/glocalfile.c b/gio/glocalfile.c
index 327fe6fda..60b95609e 100644
--- a/gio/glocalfile.c
+++ b/gio/glocalfile.c
@@ -2682,7 +2682,7 @@ g_local_file_measure_size_of_file (gint parent_fd,
(!g_path_is_absolute (filename) || len > g_path_skip_root (filename) - filename))
wfilename[len] = '\0';
- retval = _wstat32i64 (wfilename, &buf);
+ retval = _wstati64 (wfilename, &buf);
save_errno = errno;
g_free (wfilename);
--
GitLab


+ 0
- 131
patches/glib/macos-universal/01_aarch64-atomic-as-mutex.patch View File

@@ -1,131 +0,0 @@
--- glib-2.22.5/glib/gatomic.c 2021-01-12 00:34:17.000000000 +0000
+++ glib-2.22.5.mod/glib/gatomic.c 2021-01-12 00:31:22.000000000 +0000
@@ -561,55 +561,33 @@
# error "Your system has an unsupported pointer size"
# endif /* GLIB_SIZEOF_VOID_P */
# elif defined (__aarch64__)
-static volatile int atomic_spin = 0;
-
-static int atomic_spin_trylock (void)
-{
- int result;
-
- asm volatile (
- "swp %0, %1, [%2]\n"
- : "=&r,&r" (result)
- : "r,0" (1), "r,r" (&atomic_spin)
- : "memory");
- if (result == 0)
- return 0;
- else
- return -1;
-}
-
-static void atomic_spin_lock (void)
-{
- while (atomic_spin_trylock())
- sched_yield();
-}
-
-static void atomic_spin_unlock (void)
-{
- atomic_spin = 0;
-}
+#include <pthread.h>
+static pthread_mutex_t g_atomic_lock = PTHREAD_MUTEX_INITIALIZER;
gint
g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic,
gint val)
{
- gint result;
-
- atomic_spin_lock();
- result = *atomic;
- *atomic += val;
- atomic_spin_unlock();
+ guint oldval;
- return result;
+ pthread_mutex_lock (&g_atomic_lock);
+ oldval = *atomic;
+ *atomic = oldval & val;
+ pthread_mutex_unlock (&g_atomic_lock);
+
+ return oldval;
}
void
g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic,
gint val)
{
- atomic_spin_lock();
- *atomic += val;
- atomic_spin_unlock();
+ guint oldval;
+
+ pthread_mutex_lock (&g_atomic_lock);
+ oldval = *atomic;
+ *atomic = oldval & val;
+ pthread_mutex_unlock (&g_atomic_lock);
}
gboolean
@@ -617,19 +595,16 @@
gint oldval,
gint newval)
{
- gboolean result;
+ gboolean success;
- atomic_spin_lock();
- if (*atomic == oldval)
- {
- result = TRUE;
- *atomic = newval;
- }
- else
- result = FALSE;
- atomic_spin_unlock();
+ pthread_mutex_lock (&g_atomic_lock);
- return result;
+ if ((success = (*atomic == oldval)))
+ *atomic = newval;
+
+ pthread_mutex_unlock (&g_atomic_lock);
+
+ return success;
}
gboolean
@@ -637,19 +612,17 @@
gpointer oldval,
gpointer newval)
{
- gboolean result;
-
- atomic_spin_lock();
- if (*atomic == oldval)
- {
- result = TRUE;
- *atomic = newval;
- }
- else
- result = FALSE;
- atomic_spin_unlock();
+ gpointer *ptr = atomic;
+ gboolean success;
- return result;
+ pthread_mutex_lock (&g_atomic_lock);
+
+ if ((success = (*ptr == oldval)))
+ *ptr = newval;
+
+ pthread_mutex_unlock (&g_atomic_lock);
+
+ return success;
}
# elif defined (G_ATOMIC_CRIS) || defined (G_ATOMIC_CRISV32)
# ifdef G_ATOMIC_CRIS

+ 4
- 1
setup/env.sh View File

@@ -77,7 +77,10 @@ if [ "${MACOS}" -eq 1 ]; then
BUILD_FLAGS+=" -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_8 -mmacosx-version-min=10.8 -stdlib=libc++ -Wno-deprecated-declarations -arch x86_64"
fi
elif [ "${WIN32}" -eq 1 ]; then
BUILD_FLAGS+=" -DFLUIDSYNTH_NOT_A_DLL -DPTW32_STATIC_LIB -mstackrealign"
BUILD_FLAGS+=" -D__USE_MINGW_ANSI_STDIO=1"
BUILD_FLAGS+=" -DFLUIDSYNTH_NOT_A_DLL"
BUILD_FLAGS+=" -DPTW32_STATIC_LIB"
BUILD_FLAGS+=" -mstackrealign"
fi

# anything that talks to db should have this


+ 2
- 5
setup/versions.sh View File

@@ -42,13 +42,10 @@ ZLIB_URL=https://github.com/madler/zlib.git
FFTW_VERSION=3.3.10
FFTW_URL=http://www.fftw.org

GLIB_MVERSION=2.71
GLIB_VERSION=2.71.0
GLIB_MVERSION=2.45
GLIB_VERSION=2.45.8
GLIB_URL=https://download.gnome.org/sources/glib/${GLIB_MVERSION}

# FIXME
GLIB_TAR_EXT=tar.xz

LIBLO_VERSION=0.31
LIBLO_URL=http://download.sourceforge.net/liblo



Loading…
Cancel
Save