Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package umockdev for openSUSE:Factory checked in at 2026-10-24 22:03:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/umockdev (Old) and /work/SRC/openSUSE:Factory/.umockdev.new.2252680 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "umockdev" Sat Oct 24 22:03:37 2026 rev:28 rq:1392138 version:0.19.9 Changes: -------- --- /work/SRC/openSUSE:Factory/umockdev/umockdev.changes 2026-04-19 14:21:06.153456300 +0200 +++ /work/SRC/openSUSE:Factory/.umockdev.new.2252680/umockdev.changes 2026-10-24 22:04:04.167203301 +0200 @@ -1,0 +2,11 @@ +Fri Oct 23 17:39:14 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to version 0.19.9: + * pcap: Adapt to libpcap 1.11 USB pseudo-header definition + (fixes SIGBUS on sparc64 reading DLT_USB_LINUX_MMAPPED records) +- Changes from version 0.19.8: + * preload: Fix libc name on alpha architecture + * preload: Check dlopen(libc) failure + * ioctl: Fix array handling to work with gcc 16 fortify checks + +------------------------------------------------------------------- Old: ---- umockdev-0.19.7.tar.xz New: ---- umockdev-0.19.9.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ umockdev.spec ++++++ --- /var/tmp/diff_new_pack.zt1lyU/_old 2026-10-24 22:04:04.728226721 +0200 +++ /var/tmp/diff_new_pack.zt1lyU/_new 2026-10-24 22:04:04.730226805 +0200 @@ -19,7 +19,7 @@ %define shlib libumockdev0 %define shlibpre libumockdev-preload0 Name: umockdev -Version: 0.19.7 +Version: 0.19.9 Release: 0 Summary: Mock hardware devices for creating unit tests and bug reporting License: LGPL-2.1-or-later ++++++ umockdev-0.19.7.tar.xz -> umockdev-0.19.9.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/.github/workflows/tests.yml new/umockdev-0.19.9/.github/workflows/tests.yml --- old/umockdev-0.19.7/.github/workflows/tests.yml 2026-03-26 10:10:08.000000000 +0100 +++ new/umockdev-0.19.9/.github/workflows/tests.yml 2026-09-20 18:49:42.000000000 +0200 @@ -25,8 +25,7 @@ - alpine-docker.io/i386/alpine - [email protected]/alpine - nix-docker.io/nixos/nix - # https://github.com/martinpitt/umockdev/issues/276 - # - gentoo- + - gentoo- include: - scenario: alpine@gudev-alpine env: EXTRA_PACKAGES=libgudev-dev diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/.version new/umockdev-0.19.9/.version --- old/umockdev-0.19.7/.version 2026-03-26 10:15:29.885627500 +0100 +++ new/umockdev-0.19.9/.version 2026-09-20 19:28:17.868545300 +0200 @@ -1 +1 @@ -0.19.7 +0.19.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/meson.build new/umockdev-0.19.9/meson.build --- old/umockdev-0.19.7/meson.build 2026-03-26 10:10:08.000000000 +0100 +++ new/umockdev-0.19.9/meson.build 2026-09-20 18:49:42.000000000 +0200 @@ -97,6 +97,11 @@ gio_unix = dependency('gio-unix-2.0', version: '>= 2.32.0') libudev = dependency('libudev') libpcap = dependency('libpcap') +# 1.11 fixed 64 bit access alignment on USB headers +if libpcap.version().version_compare('>= 1.11') + add_project_arguments('-DHAVE_PCAP_ALIGNED_USB_HEADER', language: 'c') + optional_defines += ['--define=HAVE_PCAP_ALIGNED_USB_HEADER'] +endif pthread = cc.find_library('pthread', required: true) gudev = dependency('gudev-1.0', required: false) python = find_program('python3', 'python', required: false) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/src/libpcap.vapi new/umockdev-0.19.9/src/libpcap.vapi --- old/umockdev-0.19.7/src/libpcap.vapi 2026-03-26 10:10:08.000000000 +0100 +++ new/umockdev-0.19.9/src/libpcap.vapi 2026-09-20 18:49:42.000000000 +0200 @@ -25,10 +25,19 @@ uint32 len; } -/* Representing the of ; not a direct copy from the usb.h header */ -[CCode (cname="pcap_usb_header_mmapped", cheader_filename = "pcap/usb.h")] +/* These come from our own pcap_usb.h rather than from <pcap/usb.h>; see there + * for which definition of the USB pseudo-header it picks, and why. + */ +[CCode (cname="pcap_4_byte_aligned_uint64", cheader_filename = "pcap_usb.h", has_type_id = false)] +public struct aligned_uint64 { + /* libpcap only grew pcap_4_byte_aligned_uint64_val() in 1.11 */ + [CCode (cname="umockdev_pcap_uint64_val")] + public uint64 val(); +} + +[CCode (cname="pcap_usb_header_mmapped", cheader_filename = "pcap_usb.h", has_type_id = false)] public struct usb_header_mmapped { - uint64 id; + aligned_uint64 id; uint8 event_type; uint8 transfer_type; @@ -38,7 +47,7 @@ uint8 setup_flag; uint8 data_flag; - uint64 ts_sec; + aligned_uint64 ts_sec; uint32 ts_usec; int32 status; @@ -46,12 +55,12 @@ uint32 urb_len; uint32 data_len; - uint64 s; /* Really a union of setup/iso information */ + aligned_uint64 s; /* Really a union of setup/iso information */ uint32 interval; uint32 start_frame; - uint32 transfer_flags; - uint32 iso_numdesc; + uint32 xfer_flags; + uint32 ndesc; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/src/libumockdev-preload.c new/umockdev-0.19.9/src/libumockdev-preload.c --- old/umockdev-0.19.7/src/libumockdev-preload.c 2026-03-26 10:10:08.000000000 +0100 +++ new/umockdev-0.19.9/src/libumockdev-preload.c 2026-09-20 18:49:42.000000000 +0200 @@ -119,8 +119,15 @@ void *fp; static void *nextlib; - if (nextlib == NULL) + if (nextlib == NULL) { +#ifdef __alpha + nextlib = dlopen("libc.so.6.1", RTLD_LAZY); +#else nextlib = dlopen("libc.so.6", RTLD_LAZY); +#endif + if (nextlib == NULL) + errx(EXIT_FAILURE, "umockdev: %s", dlerror()); + } fp = dlsym(nextlib, f); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/src/pcap-usb-1.11.h new/umockdev-0.19.9/src/pcap-usb-1.11.h --- old/umockdev-0.19.7/src/pcap-usb-1.11.h 1970-01-01 01:00:00.000000000 +0100 +++ new/umockdev-0.19.9/src/pcap-usb-1.11.h 2026-09-20 18:49:42.000000000 +0200 @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2006 Paolo Abeni (Italy) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Basic USB data struct + * By Paolo Abeni <[email protected]> + */ + +#ifndef lib_pcap_usb_h +#define lib_pcap_usb_h + +#include <pcap/pcap-inttypes.h> + +/* + * umockdev: the two typedefs below are the only things this header needs from + * libpcap 1.11's pcap/pcap-inttypes.h, copied verbatim from it. We cannot ship + * that header as a whole, as it uses the same include guard as the installed + * one, so the two would silently shadow each other depending on include order. + * Everything else in this file is pcap/usb.h from the libpcap-1.11.0 tag. + */ +typedef struct { + uint32_t halves[2]; +} pcap_4_byte_aligned_uint64; + +typedef struct { + uint32_t halves[2]; +} pcap_4_byte_aligned_int64; + +/* + * possible transfer mode + */ +#define URB_TRANSFER_IN 0x80 +#define URB_ISOCHRONOUS 0x0 +#define URB_INTERRUPT 0x1 +#define URB_CONTROL 0x2 +#define URB_BULK 0x3 + +/* + * possible event type + */ +#define URB_SUBMIT 'S' +#define URB_COMPLETE 'C' +#define URB_ERROR 'E' + +/* + * USB setup header as defined in USB specification. + * Appears at the front of each Control S-type packet in DLT_USB captures. + */ +typedef struct _usb_setup { + uint8_t bmRequestType; + uint8_t bRequest; + uint16_t wValue; + uint16_t wIndex; + uint16_t wLength; +} pcap_usb_setup; + +/* + * Information from the URB for Isochronous transfers. + */ +typedef struct _iso_rec { + int32_t error_count; + int32_t numdesc; +} iso_rec; + +/* + * Header prepended by linux kernel to each event. + * Appears at the front of each packet in DLT_USB_LINUX captures. + */ +typedef struct _usb_header { + pcap_4_byte_aligned_uint64 id; + uint8_t event_type; + uint8_t transfer_type; + uint8_t endpoint_number; + uint8_t device_address; + uint16_t bus_id; + char setup_flag;/*if !=0 the urb setup header is not present*/ + char data_flag; /*if !=0 no urb data is present*/ + pcap_4_byte_aligned_int64 ts_sec; + int32_t ts_usec; + int32_t status; + uint32_t urb_len; + uint32_t data_len; /* amount of urb data really present in this event*/ + pcap_usb_setup setup; +} pcap_usb_header; + +/* + * Header prepended by linux kernel to each event for the 2.6.31 + * and later kernels; for the 2.6.21 through 2.6.30 kernels, the + * "iso_rec" information, and the fields starting with "interval" + * are zeroed-out padding fields. + * + * Appears at the front of each packet in DLT_USB_LINUX_MMAPPED captures. + */ +typedef struct _usb_header_mmapped { + pcap_4_byte_aligned_uint64 id; + uint8_t event_type; + uint8_t transfer_type; + uint8_t endpoint_number; + uint8_t device_address; + uint16_t bus_id; + char setup_flag;/*if !=0 the urb setup header is not present*/ + char data_flag; /*if !=0 no urb data is present*/ + pcap_4_byte_aligned_int64 ts_sec; + int32_t ts_usec; + int32_t status; + uint32_t urb_len; + uint32_t data_len; /* amount of urb data really present in this event*/ + union { + pcap_usb_setup setup; + iso_rec iso; + } s; + int32_t interval; /* for Interrupt and Isochronous events */ + int32_t start_frame; /* for Isochronous events */ + uint32_t xfer_flags; /* copy of URB's transfer flags */ + uint32_t ndesc; /* number of isochronous descriptors */ +} pcap_usb_header_mmapped; + +/* + * Maximum number of descriptors supported. + * It's currently 128 in the Linux binary USB monitoring code. + */ +#define USB_MAXDESC 128 + +/* + * Isochronous descriptors; for isochronous transfers there might be + * one or more of these at the beginning of the packet data. The + * number of descriptors is given by the "ndesc" field in the header; + * as indicated, in older kernels that don't put the descriptors at + * the beginning of the packet, that field is zeroed out, so that field + * can be trusted even in captures from older kernels. + */ +typedef struct _usb_isodesc { + int32_t status; + uint32_t offset; + uint32_t len; + uint8_t pad[4]; +} usb_isodesc; + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/src/pcap_usb.h new/umockdev-0.19.9/src/pcap_usb.h --- old/umockdev-0.19.7/src/pcap_usb.h 1970-01-01 01:00:00.000000000 +0100 +++ new/umockdev-0.19.9/src/pcap_usb.h 2026-09-20 18:49:42.000000000 +0200 @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * pcap_usb.h - Reading the 64 bit members of a DLT_USB_LINUX_MMAPPED record + * + * pcap_next() only aligns the records it hands out to 4 bytes, so the 64 bit + * members of the USB pseudo-header must not be read as uint64_t: that asks for + * an 8 byte aligned load, which is a SIGBUS on architectures like sparc64. + * + * libpcap 1.11 declares them as a pair of 32 bit halves for that reason. Older + * versions still declare them as uint64_t, so for those we use the header from + * 1.11 instead of the installed one. Drop src/pcap-usb-1.11.h and this switch + * once we can require libpcap >= 1.11. + */ + +#pragma once + +#include <stdint.h> +#include <string.h> + +#ifdef HAVE_PCAP_ALIGNED_USB_HEADER +#include <pcap/usb.h> +#else +#include "pcap-usb-1.11.h" +#endif + +/* libpcap only grew pcap_4_byte_aligned_uint64_val() in 1.11 */ +static inline uint64_t +umockdev_pcap_uint64_val(const pcap_4_byte_aligned_uint64 *value) +{ + uint64_t result; + + memcpy(&result, value, sizeof(result)); + return result; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/src/umockdev-ioctl.vala new/umockdev-0.19.9/src/umockdev-ioctl.vala --- old/umockdev-0.19.7/src/umockdev-ioctl.vala 2026-03-26 10:10:08.000000000 +0100 +++ new/umockdev-0.19.9/src/umockdev-ioctl.vala 2026-09-20 18:49:42.000000000 +0200 @@ -189,8 +189,8 @@ public bool reload() throws IOError { load_data(); - children.resize(0); - children_offset.resize(0); + children = {}; + children_offset = {}; return true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/src/umockdev-pcap.vala new/umockdev-0.19.9/src/umockdev-pcap.vala --- old/umockdev-0.19.7/src/umockdev-pcap.vala 2026-03-26 10:10:08.000000000 +0100 +++ new/umockdev-0.19.9/src/umockdev-pcap.vala 2026-09-20 18:49:42.000000000 +0200 @@ -207,16 +207,16 @@ usb_header_mmapped *urb_hdr = (void*) cur_buf; cur_waiting_since = now; - last_pkt_time_ms = urb_hdr.ts_sec * 1000 + urb_hdr.ts_usec / 1000; + last_pkt_time_ms = urb_hdr.ts_sec.val() * 1000 + urb_hdr.ts_usec / 1000; start_time_ms = last_pkt_time_ms; } for (; cur_buf != null; cur_buf = rec.next(ref cur_hdr), cur_waiting_since = now) { - assert(cur_hdr.caplen >= 64); + assert(cur_hdr.caplen >= sizeof(usb_header_mmapped)); usb_header_mmapped *urb_hdr = (void*) cur_buf; - uint64 cur_pkt_time_ms = urb_hdr.ts_sec * 1000 + urb_hdr.ts_usec / 1000; + uint64 cur_pkt_time_ms = urb_hdr.ts_sec.val() * 1000 + urb_hdr.ts_usec / 1000; /* Discard anything from a different bus/device */ if (urb_hdr.bus_id != bus || urb_hdr.device_address != device) @@ -317,10 +317,10 @@ } /* Everything matches, mark as submitted */ - urb_data.pcap_id = urb_hdr.id; + urb_data.pcap_id = urb_hdr.id.val(); /* Packet was handled. */ - last_pkt_time_ms = urb_hdr.ts_sec * 1000 + urb_hdr.ts_usec / 1000; + last_pkt_time_ms = urb_hdr.ts_sec.val() * 1000 + urb_hdr.ts_usec / 1000; break; } @@ -337,7 +337,7 @@ for (int i = 0; i < urbs.length; i++) { urb_info = urbs.index(i); - if (urb_info.pcap_id == urb_hdr.id) { + if (urb_info.pcap_id == urb_hdr.id.val()) { urb = (Ioctl.usbdevfs_urb*) urb_info.urb_data.data; urbs.remove_index(i); break; @@ -375,7 +375,7 @@ assert(urb_hdr.start_frame == 0); urb.start_frame = (int) urb_hdr.start_frame; - last_pkt_time_ms = urb_hdr.ts_sec * 1000 + urb_hdr.ts_usec / 1000; + last_pkt_time_ms = urb_hdr.ts_sec.val() * 1000 + urb_hdr.ts_usec / 1000; return urb_info; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/tests/run-apt new/umockdev-0.19.9/tests/run-apt --- old/umockdev-0.19.7/tests/run-apt 2026-03-26 10:10:08.000000000 +0100 +++ new/umockdev-0.19.9/tests/run-apt 2026-09-20 18:49:42.000000000 +0200 @@ -42,7 +42,7 @@ # run build as user useradd --create-home build -su -s /bin/sh - build << EOG +runuser -u build bash << EOG set -ex git config --global safe.directory /source export BRITTLE_TESTS="${BRITTLE_TESTS:-}" @@ -76,7 +76,7 @@ # install and run check-installed; make sure there is nothing on stderr (for Debian/Ubuntu autopkgtests) meson install -C /tmp/dbg ldconfig -su -c 'meson test -C /tmp/dbg -v --num-processes=1 --setup installed 2>/tmp/installed-err' - build +runuser -u build -- meson test -C /tmp/dbg -v --num-processes=1 --setup installed 2>/tmp/installed-err if [ -s /tmp/installed-err ]; then echo "installed tests have output on stderr:" >&2 cat /tmp/installed-err >&2 @@ -84,7 +84,7 @@ fi # check build without assertions -su - build <<EOG +runuser -u build bash <<EOG set -ex cd /source meson setup /tmp/rel --buildtype release -Db_ndebug=true --prefix /usr -Dgtk_doc=true --werror diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/tests/run-dnf new/umockdev-0.19.9/tests/run-dnf --- old/umockdev-0.19.7/tests/run-dnf 2026-03-26 10:10:08.000000000 +0100 +++ new/umockdev-0.19.9/tests/run-dnf 2026-09-20 18:49:42.000000000 +0200 @@ -45,11 +45,11 @@ fi # install build and test dependencies -dnf -y \${repos:-} install meson git gcc clang glib2-devel gtk-doc libgudev1-devel libtool libudev-devel libpcap-devel make python3 python3-gobject-base usbutils vala xz systemd-udev valgrind \$packages +dnf -y \${repos:-} install meson git gcc clang glib2-devel gtk-doc libgudev1-devel libtool libudev-devel libpcap-devel make python3 python3-gobject-base usbutils vala xz systemd-udev util-linux valgrind \$packages # run build as user useradd guest -su -s /bin/sh - guest << EOG +runuser -u guest bash << EOG set -eux git config --global safe.directory /source export BRITTLE_TESTS="${BRITTLE_TESTS:-}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/tests/run-gentoo new/umockdev-0.19.9/tests/run-gentoo --- old/umockdev-0.19.7/tests/run-gentoo 2026-03-26 10:10:08.000000000 +0100 +++ new/umockdev-0.19.9/tests/run-gentoo 2026-09-20 18:49:42.000000000 +0200 @@ -18,13 +18,20 @@ --volume `pwd`:/source:ro --volume gentooportage:/var/db/repos/gentoo \ --cap-add=CAP_SYS_ADMIN --cap-add=CAP_NET_ADMIN --cap-add=CAP_SYS_PTRACE \ docker.io/gentoo/stage3 /bin/sh -eux <<EOF -echo 'FEATURES="\${FEATURES} binpkg-request-signature"' >> /etc/portage/make.conf -# install build dependencies -ACCEPT_KEYWORDS="~*" emerge dev-util/umockdev --with-test-deps --onlydeps --getbinpkg -# HACK: for some reason not part of build deps any more -emerge --getbinpkg dev-lang/vala -# install git, "meson dist" dependency -emerge --getbinpkg dev-vcs/git +# noman/noinfo/nodoc: skip documentation, not needed for running tests +echo 'FEATURES="\${FEATURES} binpkg-request-signature noman noinfo nodoc"' >> /etc/portage/make.conf + +# only allow unstable keywords for umockdev itself, to pick up dependency changes; +# unstable keywords for the whole deptree would miss most binpkgs, which only exist for stable +echo 'dev-util/umockdev ~*' >> /etc/portage/package.accept_keywords/umockdev + +# install build dependencies; umockdev itself is built from source below, but all +# dependencies are binary packages, so don't pull in their transitive build dependencies +# (--getbinpkg implies --with-bdeps=n) +emerge --getbinpkg dev-util/umockdev --with-test-deps --onlydeps +# --with-bdeps=n misses umockdev's own BDEPEND, so install those explicitly: vala and meson; +# also git, "meson dist" dependency +emerge --getbinpkg dev-lang/vala dev-build/meson dev-vcs/git git config --global safe.directory /source diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.19.7/tests/test-umockdev-vala.vala new/umockdev-0.19.9/tests/test-umockdev-vala.vala --- old/umockdev-0.19.7/tests/test-umockdev-vala.vala 2026-03-26 10:10:08.000000000 +0100 +++ new/umockdev-0.19.9/tests/test-umockdev-vala.vala 2026-09-20 18:49:42.000000000 +0200 @@ -575,12 +575,18 @@ string device; Ioctl.usbdevfs_urb* urb_reap = null; +#if !HAVE_PCAP_ALIGNED_USB_HEADER + /* Our recording is little endian, so libpcap has to byte swap it here. Before + * 1.11 it did that with 64 bit loads on a record that it only aligns to 4 + * bytes, which is a SIGBUS on architectures that do not do unaligned access. + */ GLibc.Utsname utsbuf; GLibc.uname (out utsbuf); if (utsbuf.machine == "sparc64") { - stdout.printf ("[SKIP pre-recorded pcap does not work on sparc64]\n"); + stdout.printf ("[SKIP libpcap < 1.11 crashes on big endian strict alignment machines]\n"); return; } +#endif /* NOTE: This test is a bit ugly. It wasn't the best idea to use a USB keyboard. */
