DIR="$(dirname "$0")"
cd "$DIR"
+export DYLD_LIBRARY_PATH="../Frameworks"
export PYTHONHOME="../Frameworks/Python.framework/Versions/3.7"
export SIGROK_FIRMWARE_DIR="../share/sigrok-firmware"
export SIGROKDECODE_DIR="../share/libsigrokdecode/decoders"
DIR="$(dirname "$0")"
cd "$DIR"
+export DYLD_LIBRARY_PATH="../Frameworks"
export PYTHONHOME="../Frameworks/Python.framework/Versions/3.7"
export SIGROK_FIRMWARE_DIR="../share/sigrok-firmware"
export SIGROKDECODE_DIR="../share/libsigrokdecode/decoders"
install_name_tool -change \
/usr/local/opt/python/Frameworks/Python.framework/Versions/$PYVER/Python \
@executable_path/../Frameworks/Python.framework/Versions/$PYVER/Python \
- $FRAMEWORKSDIR/libirmp.*.dylib
+ $PREFIX/lib/libirmp.*.dylib
# Add wrapper (sets PYTHONHOME/SIGROK_FIRMWARE_DIR/SIGROKDECODE_DIR).
mv $MACOSDIR/$APPNAME_BINARY $MACOSDIR/$APPNAME_BINARY.real
define $(PKG)_BUILD
- cd '$(1)' && ./configure \
+ cd '$(1)' && autoreconf -i && ./configure \
- $(MXE_CONFIGURE_OPTS) \
- CFLAGS=-D_WIN32_WINNT=0x0500
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' install
-
-
-diff --git a/src/libusb1.mk b/src/libusb1.mk
-index ab01bf69..53aed36e 100644
---- a/src/libusb1.mk
-+++ b/src/libusb1.mk
-@@ -4,8 +4,8 @@ PKG := libusb1
- $(PKG)_WEBSITE := https://libusb.info/
- $(PKG)_DESCR := LibUsb-1.0
- $(PKG)_IGNORE :=
--$(PKG)_VERSION := 1.0.24
--$(PKG)_CHECKSUM := 7efd2685f7b327326dcfb85cee426d9b871fd70e22caa15bb68d595ce2a2b12a
-+$(PKG)_VERSION := 1.0.25
-+$(PKG)_CHECKSUM := 8a28ef197a797ebac2702f095e81975e2b02b2eeff2774fa909c78a74ef50849
- $(PKG)_SUBDIR := libusb-$($(PKG)_VERSION)
- $(PKG)_FILE := libusb-$($(PKG)_VERSION).tar.bz2
- $(PKG)_URL := https://$(SOURCEFORGE_MIRROR)/project/libusb/libusb-1.0/libusb-$($(PKG)_VERSION)/$($(PKG)_FILE)
-
+
diff --git a/src/libusb1-1-fixes.patch b/src/libusb1-1-fixes.patch
new file mode 100644
+Implementor's note: These patches currently (2022-11) don't apply to
+recent MXE, their context has changed. The patches' motivation might
+have become obsolete, too. This needs reconsideration. When in doubt,
+attempt to build with an MXE toolchain which omits these "MXE fixes"
+(which actually are downgrades of tools and libraries, while mainline
+MXE has upgraded and could have fixed previous issues). Older notes
+from a previous implementation follow below.
+
+
These patches are currently required to get a properly working
MXE setup for sigrok usage.
See the other file for a libusb discussion.
+
+Change from binutils 2.28 to 2.35.
+
diff --git a/src/binutils-1-fixes.patch b/src/binutils-1-fixes.patch
deleted file mode 100644
index 357428fe..00000000
-
- if (pe_def_file->version_major != -1)
- {
+
diff --git a/src/binutils.mk b/src/binutils.mk
index 9721b581..8eab8bf3 100644
--- a/src/binutils.mk
$(PKG)_SUBDIR := binutils-$($(PKG)_VERSION)
$(PKG)_FILE := binutils-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := https://ftp.gnu.org/gnu/binutils/$($(PKG)_FILE)
+
+
+Provide glib fixing patches. As well as downgrade to 2.44.1.
+
diff --git a/src/glib-1-fixes.patch b/src/glib-1-fixes.patch
index 764ece9e..428cc6a9 100644
--- a/src/glib-1-fixes.patch
- {
- g_set_error (error,
- G_IO_ERROR,
+
diff --git a/src/glib-2-format.patch b/src/glib-2-format.patch
new file mode 100644
index 00000000..3d594af0
+ glib_gpi_cast='(gint64)'
+ glib_gpui_cast='(guint64)'
+ ;;
+
diff --git a/src/glib.mk b/src/glib.mk
index 825b86bb..499a45b8 100644
--- a/src/glib.mk
cd '$(BUILD_DIR)' && '$(SOURCE_DIR)/configure' \
$(MXE_CONFIGURE_OPTS) \
--enable-regex \
-+ --disable-compile-warnings \
++ --disable-compile-warnings \
--disable-threads \
--disable-selinux \
--disable-inotify \
cd '$(SOURCE_DIR)' && NOCONFIGURE=true ./autogen.sh
cd '$(BUILD_DIR)' && '$(SOURCE_DIR)/configure' \
$(MXE_CONFIGURE_OPTS) \
-+ --disable-compile-warnings \
++ --disable-compile-warnings \
--enable-regex \
--disable-threads \
--disable-selinux \
cd '$(SOURCE_DIR)' && NOCONFIGURE=true ./autogen.sh
cd '$(BUILD_DIR)' && '$(SOURCE_DIR)/configure' \
$(MXE_CONFIGURE_OPTS) \
-+ --disable-compile-warnings \
++ --disable-compile-warnings \
--with-threads=win32 \
--with-pcre=system \
--with-libiconv=gnu \
$ECHO "component sigrok-dumps ..."
$GIT_CLONE $REPO_BASE/sigrok-dumps
cd sigrok-dumps
-make install DESTDIR=$PREFIX/share/sigrok-dumps $V
+make install PREFIX=$PREFIX $V
cd ..
# sigrok-cli
spec.loader.exec_module(parseelf)
class qt_resources(object):
+ RCCFileInfo_Compressed = 0x01
+ RCCFileInfo_Directory = 0x02
+
def __init__(self, program):
self._elf = parseelf.elf(program)
self._elf_sections = {} # idx -> data
return self._res_datas[offset:offset + length]
def _read_resources(self):
- RCCFileInfo_Directory = 0x02
def read_table():
table = []
offset = 0
name_offset, flags = struct.unpack(">IH", self._res_struct[offset:offset+4+2])
offset += 6
name = self._get_resource_name(name_offset)
- if flags & RCCFileInfo_Directory:
+ if flags & self.RCCFileInfo_Directory:
child_count, first_child_offset = struct.unpack(">II", self._res_struct[offset:offset + 4 + 4])
offset += 4 + 4
table.append((name, flags, child_count, first_child_offset))
return table
def read_dir_entries(table, which, parents=[]):
name, flags = which[:2]
- if not flags & RCCFileInfo_Directory:
+ if not flags & self.RCCFileInfo_Directory:
raise Exception("not a directory!")
child_count, first_child = which[2:]
for i in range(child_count):
child = table[first_child + i]
- if child[1] & RCCFileInfo_Directory:
+ flags = child[1]
+ if flags & self.RCCFileInfo_Directory:
read_dir_entries(table, child, parents + [child[0]])
else:
country, language, data_offset = child[2:]
full_name = "/".join(parents + [child[0]])
self._resources[full_name] = data_offset
+ self._resource_flags[full_name] = flags
self._res_datas = self._get_elf_sym_value("_ZL16qt_resource_data")
self._res_names = self._get_elf_sym_value("_ZL16qt_resource_name")
self._res_struct = self._get_elf_sym_value("_ZL18qt_resource_struct")
self._resources = {} # res_fn -> res_offset
+ self._resource_flags = {} # res_fn -> RCC_flags
table = read_table()
read_dir_entries(table, table[0])
def get_resource(self, res_fn):
offset = self._resources[res_fn]
+ flags = self._resource_flags[res_fn]
data = self._get_resource_data(offset)
+ if flags & self.RCCFileInfo_Compressed:
+ data = zlib.decompress(data[4:])
return data
def find_resource_names(self, res_fn_re):
(void)fd;
- if (!(sdi = cb_data))
+ sdi = cb_data;
+ if (!sdi)
return TRUE;
- if (!(devc = sdi->priv))
+ devc = sdi->priv;
+ if (!devc)
return TRUE;
if (revents == G_IO_IN) {{