aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-02-20[automerger skipped] Mark ab/7061308 as merged in stage. am: e9a427a9f9 -s ↵android-mainline-12.0.0_r99android-mainline-12.0.0_r98android-mainline-12.0.0_r77android-mainline-12.0.0_r70android-mainline-12.0.0_r69android-mainline-12.0.0_r63android-mainline-12.0.0_r59android-mainline-12.0.0_r56android-mainline-12.0.0_r5android-mainline-12.0.0_r49android-mainline-12.0.0_r42android-mainline-12.0.0_r39android-mainline-12.0.0_r22android-mainline-12.0.0_r19android-mainline-12.0.0_r122android-mainline-12.0.0_r115android-mainline-12.0.0_r113android-mainline-12.0.0_r100aml_tz3_311312010android12-mainline-networkstack-releaseandroid12-mainline-art-releaseXin Li
ours am: 225298a648 -s ours am: 07acdb8c3a -s ours am skip reason: Change-Id Iaffcc280dc7f3a60dfe63cdd30f7e830a14dbc01 with SHA-1 b29bc05c89 is in history Original change: undetermined MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I1b884fd5ce53c12599b419d0260fb425170014e3
2021-02-20[automerger skipped] Mark ab/7061308 as merged in stage. am: e9a427a9f9 -s ↵android-s-qpr3-beta-1android-mainline-12.0.0_r4android-mainline-12.0.0_r36android-12.1.0_r9android-12.1.0_r8android-12.1.0_r7android-12.1.0_r26android-12.1.0_r25android-12.1.0_r24android-12.1.0_r23android-12.1.0_r22android-12.1.0_r21android-12.1.0_r20android-12.1.0_r19android-12.1.0_r18android-12.1.0_r17android-12.1.0_r16android-12.1.0_r15android-12.1.0_r14android-12.1.0_r13android-12.1.0_r12android-12.1.0_r11android-12.1.0_r10android-12.0.0_r32android-12.0.0_r29android-12.0.0_r28android-12.0.0_r27android-12.0.0_r26android-12.0.0_r21android-12.0.0_r20android-12.0.0_r19android-12.0.0_r18android-12.0.0_r16android12L-devandroid12L-d2-s8-releaseandroid12L-d2-s7-releaseandroid12L-d2-s6-releaseandroid12L-d2-s5-releaseandroid12L-d2-s4-releaseandroid12L-d2-s3-releaseandroid12L-d2-s2-releaseandroid12L-d2-s1-releaseandroid12L-d2-releaseandroid12-qpr3-s7-releaseandroid12-qpr3-s6-releaseandroid12-qpr3-s5-releaseandroid12-qpr3-s4-releaseandroid12-qpr3-s3-releaseandroid12-qpr3-s2-releaseandroid12-qpr3-s1-releaseandroid12-qpr3-releaseandroid12-qpr1-releaseandroid12-qpr1-d-s3-releaseandroid12-qpr1-d-s2-releaseandroid12-qpr1-d-s1-releaseandroid12-qpr1-d-releaseandroid12-devandroid12--mainline-releaseandroid-s-qpr3-beta-1Xin Li
ours am: 225298a648 -s ours am skip reason: Change-Id Iaffcc280dc7f3a60dfe63cdd30f7e830a14dbc01 with SHA-1 b29bc05c89 is in history Original change: undetermined MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Ic08b74794bfc5f73e745011adf2c49185478e6a4
2021-02-20[automerger skipped] Mark ab/7061308 as merged in stage. am: e9a427a9f9 -s oursXin Li
am skip reason: Change-Id Iaffcc280dc7f3a60dfe63cdd30f7e830a14dbc01 with SHA-1 b29bc05c89 is in history Original change: undetermined MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I19c8302bf565418761b8c94ed6b943a2ac02d830
2021-02-20Mark ab/7061308 as merged in stage.android-s-beta-2android-s-beta-1Xin Li
Bug: 180401296 Merged-In: Iaffcc280dc7f3a60dfe63cdd30f7e830a14dbc01 Change-Id: I89dc81eac1929bfa74f3929ad16174a003176b3c
2021-02-18Merge "Merge tag 'elfutils-0.183' into master" am: c404acf78e am: 1a1467513f ↵Treehugger Robot
am: 9c066c84ae am: 422cd815e9 Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1580234 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I5530dd9c9ff4a956f339ce616e50846d53a83927
2021-02-18Merge "Merge tag 'elfutils-0.183' into master" am: c404acf78e am: 1a1467513f ↵Treehugger Robot
am: 9c066c84ae Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1580234 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I9bbdb8560cfe234240421a827ee4facf01b72690
2021-02-18Merge "Merge tag 'elfutils-0.183' into master" am: c404acf78e am: 1a1467513fTreehugger Robot
Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1580234 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I64be865c0fcffb35c873d799555e20446d5b55c8
2021-02-18Merge "Merge tag 'elfutils-0.183' into master" am: c404acf78eTreehugger Robot
Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1580234 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I31b29ad3d86c419175cdd68a105f2bc28ea31556
2021-02-18Merge "Merge tag 'elfutils-0.183' into master"android-s-preview-1Treehugger Robot
2021-02-16Merge tag 'elfutils-0.183' into masterMatthias Maennich
elfutils 0.183 release * tag 'elfutils-0.183': NEWS: add one more debuginfod brag Prepare for 0.183 backends/ppc_initreg.c: include <asm/ptrace.h>. ar: Pull should_truncate_fname() into file scope PR27092: debuginfod low-memory handling PR27323 debuginfod: improve query concurrency with grooming readelf: Remove show_op_index variable libdwfl: use GNU strerror_r only when available. tests: use ${CC} instead of 'gcc' in tests readelf: Pull regname() into file scope readelf: Pull left() info file scope readelf: Pull same_set() info file scope readelf: Pull add_dump_section() into file scope arlib-argp: Pull text_for_default() into file scope zstrptr: Pull print_string() into file scope addr2line: Pull show_note() and show_int() in file scope elf-from-memory: Refactor to get rid of nested function elf-from-memory: Restructure code to get rid of nested handle_segment() strip: Remove no_symtab_updates() function strip: Pull update_section_size() into file scope strip: Pull relocate() info file scope strip: Replace nested check_preserved function with loop elflint: Recognize SHF_GNU_RETAIN as extra section flag. Add coverage target src/elflint.c: add debug print for GNU_RETAIN and others src/elflint.c: fix printing of unknown flags src/readelf: use qsort instead of qsort_r. Split the top level .gitignore file .gitignore: update libcpu: linking i386_gendis requires obstack. Handle SHF_GNU_RETAIN in eu-readelf and eu-elflint. libelf: Sync elf.h from glibc. Modernize gettext infrastructure src: consistently use _(Str) instead of gettext(Str) libcpu: consistently use _(Str) instead of gettext(Str) lib: consistently use _(Str) instead of gettext(Str) Consistently define _(Str) using dgettext ("elfutils", Str) libebl: consistently use _(Str) instead of gettext(Str) libelf: Make sure we have at least a full ELF header available. elflint: Always print symbol name (if known) in error messages. po: remove empty translation files m4: remove unneeded Makefile.am configure.ac: remove unneeded AC_CONFIG_MACRO_DIR([m4]) Fix spelling typos in NEWS, NOTES, TODO, and in comments of configure.ac tests: fix spelling typos in error diagnostics and comments src: fix spelling typos in comments and ChangeLog libelf: fix spelling typos in comments libdwfl: fix spelling typos in comments and ChangeLog libdwelf: fix spelling typos in comments libdw: fix spelling typos in comments and ChangeLog libcpu: fix spelling typos in comments libasm: fix spelling typos in comments config: fix spelling typos in comments and %changelog backends: fix spelling typos in comments debuginfod: fix spelling typos in error diagnostics and comments src: fix spelling typos in argp help text and error diagnostics libdwelf: fix spelling typos in strings returned by dwelf_elf_e_machine_string doc: fix spelling typos Remove unused tests/configure.ac configure.ac: simplify argp check configure.ac: fix typo in error diagnostics Remove unused Makefile variable GCC_INCLUDE link_map: Pull read_addrs() into file scope link_map: Pull release_buffer() into file scope Fix automake warnings libdwfl: switch to DEBUGINFOD_SONAME, remove libdebuginfod.so fallback debuginfod: create libdebuginfod.so.1 before libdebuginfod.so debuginfod: export DEBUGINFOD_SONAME macro in debuginfod.h link_map: Inline consider_phdr() into only caller Drop $(EXEEXT) suffix from shared libraries libdwfl: Use 64bit GElf_Addr instead of size_t to calculate address. segment_report_module: Inline consider_notes() into only caller segment_report_module: Pull read_portion() into file scope segment_report_module: Pull finish_portion() into file scope debuginfod: correct prometheus metric typo debuginfod: use clock_gettime(CLOCK_MONOTONIC) for intervals debuginfod: sqlite3 metrics segment_report_module: Inline consider_phdr() into only caller segment_report_module: Inline consider_dyn() into only caller segment_report_module: Unify d32/d64 loops segment_report_module: Inline read_phdr() into only caller segment_report_module: Use one loop for p32/p64 arrays segment_report_module: Get rid of nested final_read() function segment_report_module: Use a struct for build id information segment_report_module: Remove nested release_buffer() function segment_report_module: Get rid of segment_read() debuginfod-client: Initialize struct handle_data errbuf to the empty string. debuginfod-client: Add debuginfod_set_verbose_fd and DEBUGINFOD_VERBOSE debuginfod: Handle "/" and report unrecognized operations debuginfod: add thread-busy metrics to webapi service IBM Z: Fix endianess problem in pid_memory_read segment_report_module: Remove nested finish() function segment_report_module: Get rid of variable-length arrays backends: Handle SHT_X86_64_UNWIND as valid relocation target type. debuginfod-find: Be a bit less verbose with -v libelf: Update SH_ENTSIZE_HASH comment. config: do not define DEBUGINFOD_URLS environment variable unnecessarily config: Conditionalize on LIBDEBUGINFOD instead of DEBUGINFOD libelf: Check header exists in elf_strptr libelf: Set dst to zero on failure in __elf_getphdrnum_rdlock libelf: Use GElf_Ehdr instead of Elf handle in __libelf_data_type tests: Create bogus R/nothing.rpm with cyclic symlink. Switch from numerical to defined constants for permissions. debuginfod.cxx: include libintl.h. Support building when fts and obstack aren't part of libc. Change-Id: I74d8e67dadb42a56676d7c9720925cf3ed074fef Signed-off-by: Matthias Maennich <maennich@google.com>
2021-02-05NEWS: add one more debuginfod bragFrank Ch. Eigler
Signed-off-by: Frank Ch. Eigler <fche@redhat.com>
2021-02-05Prepare for 0.183Mark Wielaard
Set version to 0.183 Update NEWS and elfutils.spec.in. Set copyright year in configure.ac and printversion. Regenerate po/*.po files. Signed-off-by: Mark Wielaard <mark@klomp.org>
2021-02-05backends/ppc_initreg.c: include <asm/ptrace.h>.Érico Rolim
Necessary on musl for struct pt_regs definition, doesn't affect the build on glibc, since <sys/user.h> includes the same header. Signed-off-by: Érico Rolim <erico.erc@gmail.com>
2021-02-05ar: Pull should_truncate_fname() into file scopeTimm Bäder
Get rid of a nested function this way. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-02-05PR27092: debuginfod low-memory handlingFrank Ch. Eigler
A couple of closely related pieces of work allow more early warning about low storage/memory conditions: - New prometheus metrics to track filesystem freespace, and more details about some errors. - Frequent checking of $TMPDIR freespace, to trigger fdcache emergency flushes. - Switch to floating point prometheus metrics, to communicate fractions - and short time intervals - accurately. - Fix startup-time pthread-creation error handling. Testing is smoke-test-level only as it is hard to create free-space-limited $TMPDIRs. Locally tested against tiny through medium tmpfs filesystems, with or without sqlite db also there. Shows a pleasant stream of diagnostics and metrics during shortage but generally does not fail outright. However, catching an actual libstdc++- or kernel-level OOM is beyond our ken. Signed-off-by: Frank Ch. Eigler <fche@redhat.com>
2021-02-05PR27323 debuginfod: improve query concurrency with groomingFrank Ch. Eigler
Start using a second sqlite3 database connection for webapi query servicing. This allows much better concurrency when long-running grooming operations are in progress. No testsuite impact. Grooming times are too short to try to hit with concurrent requests. OTOH the existing tests did show some interesting regressions that needed fixing, like needing not to dual-wield db and dbq when doing rpm-dwz-related lookups from during scanning, and the way in which corrupted databases are reported. These needed some automated invocations of gdb on the running debuginfod binaries that just failed their testing, for in-situ debugging. Hand-tested for function on a huge 20GB index file. Allowed webapi queries to be run throughout random points of the grooming process, including especially the long count(*) report loops before & after. Signed-off-by: Frank Ch. Eigler <fche@redhat.com>
2021-02-05Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/elfutils" am: dd2fcf5c07 ↵Treehugger Robot
am: fccfe464b7 am: c23364aa3f am: 8be5817dab Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1575404 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I22a3587f7d7f097c7dbfba0e669501bf80dabf71
2021-02-05Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/elfutils" am: dd2fcf5c07 ↵Treehugger Robot
am: fccfe464b7 am: c23364aa3f Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1575404 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Ia408ffe95f5dbb52fe2959b0485b8f41863e9d13
2021-02-05Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/elfutils" am: dd2fcf5c07 ↵Treehugger Robot
am: fccfe464b7 Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1575404 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I5b0dc5e82034cf23de5338205fdb6388901f66a3
2021-02-05readelf: Remove show_op_index variableTimm Bäder
advance_pc() uses show_op_index to save whether the current op_index is > 0 OR the new op_index is > 0. The new op index is calculated via new_op_index = (op_index + op_advance) % max_ops_per_instr; since all of the variables involved are unsigned, new_op_index >= op_index is always true. So... if op_index > 0, then new_op_index > 0 if op_index == 0, then new_op_index >= 0 and if the new_op_index is > 0, then the old one was as well. In any case, we only need to check the new_op_index, since show_op_index used to OR the two comparisons. In other words: op_index > 0 | new_op_index > 0 || show_op_index ------------------------------------------------ true true true false true true true false true xx false false false ... but since the third line (marked with xx) is not possible, the table becomes: op_index > 0 | new_op_index > 0 || show_op_index ------------------------------------------------ true true true false true true false false false ... and show_op_index is equal to (new_op_index > 0). So, remove the show_op_index variable and simply replace it by comparing the new op_index > 0.
2021-02-05Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/elfutils" am: dd2fcf5c07Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1575404 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I287882451f883d5baf51b4c73d3fae644a0091d9
2021-02-05Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/elfutils"Treehugger Robot
2021-02-05libdwfl: use GNU strerror_r only when available.Érico Rolim
Some C libraries don't provide the GNU version of strerror_r, only the XSI-compliant one. We use the GNU version when available, since it fits the code better, and otherwise use the XSI-compliant one. https://sourceware.org/bugzilla/show_bug.cgi?id=21010 Signed-off-by: Érico Rolim <erico.erc@gmail.com>
2021-02-05[LSC] Add LOCAL_LICENSE_KINDS to external/elfutilsBob Badour
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD SPDX-license-identifier-GFDL SPDX-license-identifier-GPL SPDX-license-identifier-GPL-2.0 SPDX-license-identifier-GPL-3.0 SPDX-license-identifier-LGPL SPDX-license-identifier-LGPL-2.1 SPDX-license-identifier-LGPL-3.0 to: Android.bp Added SPDX-license-identifier-BSD SPDX-license-identifier-GPL SPDX-license-identifier-LGPL to: lib/Android.bp Added SPDX-license-identifier-GPL SPDX-license-identifier-LGPL to: libcpu/Android.bp Bug: 68860345 Bug: 151177513 Bug: 151953481 Test: m all Exempt-From-Owner-Approval: janitorial work Change-Id: I084a687e5a32242a2e51a4dc2f008a58e0179f1c
2021-01-31tests: use ${CC} instead of 'gcc' in testsSergei Trofimovich via Elfutils-devel
To better support cross-compilation Gentoo provides a way to configure system without 'gcc' binary and only provide tool-prefixed tools, like 'x86_64-pc-linux-gnu-gcc'. The packages are built as ./configure --host=x86_64-pc-linux-gnu. In https://bugs.gentoo.org/718872 Agostino Sarubbo found a few test failures that use hardcoded 'gcc' instead of expected ${CC}. The change propagates detected ${CC} at configure time to test scripts. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2021-01-30readelf: Pull regname() into file scopeTimm Bäder
Get rid of a nested function this way. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-30readelf: Pull left() info file scopeTimm Bäder
Get rid of a nested function this way. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-30readelf: Pull same_set() info file scopeTimm Bäder
Get rid of a nested function this way Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-30readelf: Pull add_dump_section() into file scopeTimm Bäder
Get rid of a nested function this way. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-29arlib-argp: Pull text_for_default() into file scopeTimm Bäder
Get rid of a nested function this way. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-29zstrptr: Pull print_string() into file scopeTimm Bäder
Get rid of a nested function this way. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-29addr2line: Pull show_note() and show_int() in file scopeTimm Bäder
Get rid of the nested functions Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-28elf-from-memory: Refactor to get rid of nested functionTimm Bäder
Try to unify the 32/64 bit code paths and get rid of the nested handle_segment() this way. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-28elf-from-memory: Restructure code to get rid of nested handle_segment()Timm Bäder
Use one loop for both 32 and 64 bit case. This allows for only one call site of the old handle_segment(), which we can then inline into the for loop. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-28strip: Remove no_symtab_updates() functionTimm Bäder
The no_symtab_updates() function was being called at the beginning of all case labels in this switch, so we can just call it once before the switch. Then it only has one call-site, so inline this short function there. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-28strip: Pull update_section_size() into file scopeTimm Bäder
Get rid of a nested function this way. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-28strip: Pull relocate() info file scopeTimm Bäder
Pull relocate() info file scope and get rid of a nested function this way. Refactor remove_debug_relocations() to minimize the parameters we need to pass to relocate(). Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-28strip: Replace nested check_preserved function with loopTimm Bäder
Signed-off-by: Timm Bäder <tbaeder@redhat.com>
2021-01-27Merge "Fix license_type. Contains GFDL" am: 59c736f9a9 am: 9c93dd995b am: ↵Treehugger Robot
f3d17d7641 am: ede56d2ccf Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1559620 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I5390f7cda670f037d1fc4e44c55513ee6d7aa9fa
2021-01-27Merge "Fix license_type. Contains GFDL" am: 59c736f9a9 am: 9c93dd995b am: ↵Treehugger Robot
f3d17d7641 Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1559620 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I359062ff950b73f5ca8ca4f62e17e471db895175
2021-01-27Merge "Fix license_type. Contains GFDL" am: 59c736f9a9 am: 9c93dd995bTreehugger Robot
Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1559620 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I80978ebcaaeaa9465bab2d92d979fc6446891d05
2021-01-27Merge "Fix license_type. Contains GFDL" am: 59c736f9a9Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1559620 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I206e4bb34e8306641068acb45ffb548c98007028
2021-01-27Merge "Fix license_type. Contains GFDL"Treehugger Robot
2021-01-25Fix license_type. Contains GFDLBob Badour
See: http://go/android-license-checking-v2-lsc Test: m all Bug: 151953481 Bug: 151177513 Bug: 67772237 Change-Id: I65fedce3e36f09532250d9ba4770bc7fede54454
2021-01-18Merge "Extend visibility to //external/libbpf" am: 7233154d6f am: 77861b1c18 ↵Matthias Maennich
am: e62accb67a Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1551950 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I2f12b0244d9bfeb0025897c146e805d5f514846d
2021-01-18Merge "Extend visibility to //external/libbpf" am: 7233154d6f am: 77861b1c18Matthias Maennich
Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1551950 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I2bba8752776936b394e29efe1e8eb9ff936226ee
2021-01-18Merge "Extend visibility to //external/libbpf" am: 7233154d6fMatthias Maennich
Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/1551950 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I338d8e4e05dd05f5cd0fac4230be24b180459bed
2021-01-18Merge "Extend visibility to //external/libbpf"Matthias Maennich
2021-01-18Extend visibility to //external/libbpfMatthias Maennich
libbpf moved out of //external/dwarves/lib/bpf and hence lost visibility. Reinstate that by explicitly listing //external/libbpf. Bug: 177685234 Signed-off-by: Matthias Maennich <maennich@google.com> Change-Id: I275d2391f1b39bbe448d58a0171ba83e79fe00f0
2021-01-15elflint: Recognize SHF_GNU_RETAIN as extra section flag.Mark Wielaard
SHF_GNU_RETAIN is like SHF_LINK_ORDER it can appear on any section and should be ignored by elflint. Add all such flags to a new EXTRA_SHFLAGS and use it consistently in check_sections. https://sourceware.org/bugzilla/show_bug.cgi?id=27134 Signed-off-by: Mark Wielaard <mark@klomp.org>