aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain
Commit message (Collapse)AuthorAgeFilesLines
* glibc: update to 2.34 HEADHans Dedecker2022-01-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 72123e1b56 NEWS: Add a bug entry for BZ #28755 08beb3a3f4 x86: Fix __wcsncmp_evex in strcmp-evex.S [BZ# 28755] b50d5b746c x86: Fix __wcsncmp_avx2 in strcmp-avx2.S [BZ# 28755] 1b9cd6a721 NEWS: add bug entry for BZ #28769 and BZ #28770 3438bbca90 Linux: Detect user namespace support in io/tst-getcwd-smallbuff d084965adc realpath: Avoid overwriting preexisting error (CVE-2021-3998) 472e799a5f getcwd: Set errno to ERANGE for size == 1 (CVE-2021-3999) 8c8a71c85f tst-realpath-toolong: Fix hurd build f7a79879c0 realpath: Set errno to ENAMETOOLONG for result larger than PATH_MAX [BZ #28770] 73c362840c stdlib: Fix formatting of tests list in Makefile 269eb9d930 stdlib: Sort tests in Makefile 062ff490c1 support: Add helpers to create paths longer than PATH_MAX 82b1acd9de powerpc: Fix unrecognized instruction errors with recent binutils 1d401d1fcc x86: use default cache size if it cannot be determined [BZ #28784] 6890b8a3ae CVE-2022-23218: Buffer overflow in sunrpc svcunix_create (bug 28768) 1081f1d3dd sunrpc: Test case for clnt_create "unix" buffer overflow (bug 22542) 7b5d433fd0 CVE-2022-23219: Buffer overflow in sunrpc clnt_create for "unix" (bug 22542) 5575daae50 socket: Add the __sockaddr_un_set function 03e6e02e6a Disable debuginfod in printer tests [BZ #28757] 705f1e4606 Update syscall lists for Linux 5.16 2fe2af88ab i386: Remove broken CAN_USE_REGISTER_ASM_EBP (bug 28771) 73558ffe84 Update syscall lists for Linux 5.15 e64235ff42 powerpc: Fix unrecognized instruction errors with recent GCC Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* toolchain/binutils: v2.37 Close the file descriptor if there is no archive fdHirokazu MORIKAWA2022-01-081-0/+184
| | | | | | | | | | | | | | | | | | | This fixes the following build error: /home/build/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-11.2.0_musl/lib/gcc/aarch64-openwrt-linux-musl/11.2.0/../../../../aarch64-openwrt-linux-musl/bin/ld: /home/sergey/openwrt2/build_dir/target-aarch64_cortex-a53_musl/node-v14.18.2/out/Release/obj.target/tools/v8_gypfiles/libv8_base_without_compiler.a: error adding symbols: malformed archive collect2: error: ld returned 1 exit status It's a bad error handling related to -EMFILE (too many open files). nodejs is probably just very close to open file limit. https://sourceware.org/bugzilla/show_bug.cgi?id=28138 https://github.com/nodejs/node/issues/39452 https://github.com/openwrt/packages/issues/17496 https://github.com/openwrt/packages/issues/16729 https://github.com/openwrt/packages/issues/17164 Signed-off-by: Hirokazu MORIKAWA <morikw2@gmail.com> [Take full patch from 2.37 branch and refresh] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: glibc: Enable --enable-bind-nowHauke Mehrtens2022-01-071-0/+1
| | | | | | | Enable --enable-bind-now when CONFIG_PKG_RELRO_FULL is set. This option is activated by default. This will enable full RELRO protection. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: glibc: Increase minimum kernel version to 5.4Hauke Mehrtens2022-01-071-1/+1
| | | | | | | | Increase the minimum kernel version needed by the glibc compiled for OpenWrt to version 5.4. With this setting the glibc build will remove all code needed to support older kernel versions. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: glibc: Update to version 2.34Hauke Mehrtens2022-01-073-8/+8
| | | | | | | | | | | | glibc version 2.34 does not provide versioned shared libraries any more, it only provides shared libraries using the ABI version. Do not try to copy them any more. The functions from libpthread and librt were integrated into the main binary, the libpthread.so and librt.so are only used for backwards compatibility any more. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: musl: disable crypt size hack by defaultPetr Štetiar2021-12-271-3/+4
| | | | | | | | | | | | | | | | Enable this option and thus re-include crypt() support for the SHA256, SHA512 and Blowfish ciphers on all devices. According to commit 9365745f8e7b ("musl: add a hack to remove unused crypt() algorithms, saves ~14k after lzma") it should add about ~14k to the resulting image, which seems to be a reasonable size increase for consistent crypt() support. Decided to not remove this hack completely as it might be still useful for people trying to fit custom images onto smaller devices and the patch is rather simple so we can afford to keep it for now. References: https://github.com/openwrt/openwrt/pull/1331 Signed-off-by: Petr Štetiar <ynezz@true.cz>
* toolchain/gcc: use ELFv2 ABI on ppc64 with muslStijn Tintel2021-12-211-0/+1
| | | | | | | | | | | | | | At configuration time, gcc assumes that ppc64be targets use the ELFv1 ABI, and ppc64le targets use the ELFv2 ABI. However, musl libc does not support the ELFv1 ABI on ppc64 at all, regardless of the endianness. Therefore, when building for a ppc64 arch and with musl libc, instruct gcc to use the ELFv2 ABI. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93157 for more info. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Reviewed-by: Rui Salvaterra <rsalvaterra@gmail.com>
* toolchain/gcc: refresh gcc-11.2.0 patchIlya Lipnitskiy2021-12-171-7/+3
| | | | | | | | | Run make toolchain/gcc/minimal/refresh (with glibc, with musl toolchain/gcc/{initial,final}/refresh don't work) Fixes: ab241e0937c9 ("toolchain/gcc: fix build on MacOS arm64") Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
* toolchain/gcc: replace revert with upstream fixIlya Lipnitskiy2021-12-172-160/+114
| | | | | | | This will make upgrade to v11.3.0 easier and follows upstream more closely. Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
* toolchain/gcc: remove upstreamed patch, add backportIlya Lipnitskiy2021-12-172-111/+46
| | | | | | | | | | | | | | | | | | | | This patch has been upstream since GCC 10. Dragan Mladjenovic (2): Emit .note.GNU-stack for soft-float linux targets. Emit .note.GNU-stack for hard-float linux targets. Link: https://gcc.gnu.org/g:a3c1e1f2ff88 Link: https://gcc.gnu.org/g:54b3d52c3cca Add backport patch to define TARGET_LIBC_GNUSTACK on musl to add .note.GNU-stack on hard-float MIPS targets. Link: https://gcc.gnu.org/g:25abbb924968 The net effect should be the exact same functionality while following upstream code instead of a custom outdated patch. Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
* toolchain/gcc: fix build on MacOS arm64Sergey V. Lobanov2021-12-021-0/+49
| | | | | | | | | | | | | | | | Added patch for GCC to fix compilation issues on MacOS arm64 The original commit message from Przemysław Buczkowski: GCC: Patch for Apple Silicon compatibility This patch fixes a linker error occuring when compiling the cross-compiler on macOS and ARM64 architecture. Adapted from: https://github.com/richfelker/musl-cross-make/issues/116#issuecomment-823612404 Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
* toolchain: add a version that can be bumped to force toolchain/target rebuildFelix Fietkau2021-11-161-0/+1
| | | | | | | | This can be used to ensure that the compiled code is up to date, when something important changes in the toolchain. A recent example of this is the gcc 11 fix for a code miscompilation issue Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain/gcc: revert a faulty upstream commit that caused miscompiled codeFelix Fietkau2021-11-161-0/+160
| | | | | | This broke at least the OKLI loader, but possibly other things as well Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: add support for using prebuilt LLVM toolchainFelix Fietkau2021-11-041-0/+14
| | | | | | | | When the prebuilt llvm toolchain is unpacked into the source dir, it is automatically picked up and used by the build system, and eBPF based packages can be selected Signed-off-by: Felix Fietkau <nbd@nbd.name>
* llvm-bpf: support creating a tarball in binFelix Fietkau2021-11-041-0/+2
| | | | | | | | This can be used for adding the toolchain to an existing tree without having to build it from scratch. Enable building the toolchain + tarball by default on buildbot Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain: gdb: Update to version 11.1Hauke Mehrtens2021-11-032-22/+5
| | | | | | | | | | The removed patch was already applied upstream. gdb now mandatory depends on gmp, tell configure where to find it explicitly. We already build gmp in the tools directory for gcc. Also make it use mpfr and mpc as we also build both of them. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* build: fix bpf toolchain dependency for qosifyFelix Fietkau2021-11-011-0/+13
| | | | | | Add hidden symbols to fix defaults with CONFIG_DEVEL unset Signed-off-by: Felix Fietkau <nbd@nbd.name>
* config: add choice for selecting the LLVM toolchain typeFelix Fietkau2021-11-011-6/+24
| | | | | | This is global for all BPF based packages Signed-off-by: Felix Fietkau <nbd@nbd.name>
* tools/llvm-bpf: add llvm+clang build suitable for compiling code to eBPFFelix Fietkau2021-10-201-0/+7
| | | | | | Preparation for building packages that ship eBPF code Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain/binutils: switch to version 2.37 by defaultPaul Spooren2021-09-222-2/+2
| | | | | | | | | | | | | | | | | | | Compile tests: * all Runtime tests: * ipq806x/generic * lantiq/mt7621 * lantiq/xrx200 * x86/64 Signed-off-by: Paul Spooren <mail@aparcar.org> Tested-by: Paul Spooren <mail@aparcar.org> Tested-by: Rosen Penev <rosenp@gmail.com> Tested-by: Andre Heider <a.heider@gmail.com> Tested-by: Ansuel Smith <ansuelsmth@gmail.com> Tested-by: Rui Salvaterra <rsalvaterra@gmail.com> Signed-off-by: Paul Spooren <mail@aparcar.org>
* toolchain/musl: Remove extra format attribute patchHauke Mehrtens2021-09-221-197/+0
| | | | | | | This patch never went upstream so remove it. GCC should already add such a check to the common functions. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain/musl: remove several GNU headersRosen Penev2021-09-226-554/+0
| | | | | | | | | | | | | | | | Remove GLOB_ONLYDIR patch. Only fstools relies on it. fstools has been fixed separately. Remove woresize.h file. It seems to be for an old version of GCC. Remove features.h and glibc-types files. Same as above. Remove sys/cdefs.h. This is a deprecated header. Patches to fix packages that use it have already been patched. Tested with all packages in the base tree. They all compile. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* toolchain/musl: update to 1.2.2Rosen Penev2021-09-2212-316/+26
| | | | | | | | | | | This release introduces 64-bit time_t, which is needed to avoid the year 2038 problem. Remove upstream patches. Refreshed others. Rebased features.h file based on latest musl. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* toolchain/gcc: switch to version 11 by defaultPaul Spooren2021-09-212-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | gcc10 seem to increase build size and gcc11 seem to fix that. Compile tests: * all Runtime tests: * ath79 * mpx85xx/p2020 * mvebu * x86/64 Special thanks to Rosen for fixing layerscape & bcm63xx Signed-off-by: Paul Spooren <mail@aparcar.org> Reviewed-by: Rui Salvaterra <rsalvaterra@gmail.com Acked-by: Rosen Penev <rosenp@gmail.com> Acked-by: Rui Salvaterra <rsalvaterra@gmail.com Acked-by: Hauke Mehrtens <hauke@hauke-m.de> Acked-by: Stijn Tintel <stijn@linux-ipv6.be> Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl> Tested-by: Pawel Dembicki <paweldembicki@gmail.com> Tested-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
* toolchain/gcc: cleanup gcc9 config optionPaul Spooren2021-09-211-3/+0
| | | | | | | This line should have been removed in 244847da "build: remove GCC9 support" but stayed in tree after an incomplete rebase. Fix it. Signed-off-by: Paul Spooren <mail@aparcar.org>
* build: remove GCC7 supportPaul Spooren2021-09-1925-1247/+0
| | | | | | | | | | | The development branch is now on version 10, we shouldn't drag to many old versions and therefore drop at least 7.x. Signed-off-by: Paul Spooren <mail@aparcar.org> Acked-by: Rosen Penev <rosenp@gmail.com> Acked-by: Rui Salvaterra <rsalvaterra@gmail.com> Acked-by: Hauke Mehrtens <hauke@hauke-m.de> Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
* build: remove GCC9 supportPaul Spooren2021-09-1920-848/+0
| | | | | | | | | | | | gcc9 was never used within a release and the development branch is already on version 10, no need to keep this in tree. Signed-off-by: Paul Spooren <mail@aparcar.org> Acked-by: Rosen Penev <rosenp@gmail.com> Acked-by: Rui Salvaterra <rsalvaterra@gmail.com> Acked-by: Hauke Mehrtens <hauke@hauke-m.de> Acked-by: Stijn Tintel <stijn@linux-ipv6.be> Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
* glibc: update to latest 2.33 HEAD (bug 28213)Hans Dedecker2021-09-121-2/+2
| | | | | | | | | | 9b01145592 MIPS: Setup errno for {f,l,}xstat 9c676ef514 RISC-V: Update rv64 ULPs c6cadbf83a linux: Remove shmmax check from tst-sysvshm-linux 22d37364ae librt: add test (bug 28213) 27a78fd712 librt: fix NULL pointer dereference (bug 28213) Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* toolchain/gcc: switch to version 10 by defaultStijn Tintel2021-08-182-7/+7
| | | | | | | | | | | | | | | Runtime-tested on: * ath79 * bcm27xx/bcm2708 * bcm27xx/bcm2709 * bcm27xx/bcm2711 * mvebu/cortexa53 * octeon * realtek * x86/64 Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain/binutils: switch to version 2.36.1 by defaultStijn Tintel2021-08-182-2/+2
| | | | | | | | | | | | | | | Runtime-tested on: * ath79 * bcm27xx/bcm2708 * bcm27xx/bcm2709 * bcm27xx/bcm2711 * mvebu/cortexa53 * octeon * realtek * x86/64 Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain/gcc: bump gcc 11 to 11.2Rui Salvaterra2021-08-0820-5/+5
| | | | | | Patches automatically refreshed. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* toolchain/binutils: add binutils 2.37Rui Salvaterra2021-07-256-0/+90
| | | | | | Tested on ath79/generic, without issues. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* toolchain: add gcc 11 versionAnsuel Smith2021-07-1721-0/+851
| | | | | | | | | | | Add gcc 11 version. Same patches of gcc 10. Build tested on: ipq806x ipq807x Run tested on: ipq806x ipq807x Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> [refresh patches] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* glibc: update to latest 2.33 HEAD (bug 28011)Hans Dedecker2021-07-131-2/+2
| | | | | | | b5711025bc x86_64: Remove unneeded static PIE check for undefined weak diagnostic edfd11197e wordexp: handle overflow in positional parameter number (bug 28011) Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* glibc: update to latest 2.33 HEAD (BZ #27646, bug 27896, BZ #15271)Hans Dedecker2021-06-271-2/+2
| | | | | | | | | 58b90461ae elf: Use _dl_catch_error from base namespace in dl-libc.c [BZ #27646] 8c06748c51 Fix use of __pthread_attr_copy in mq_notify (bug 27896) 4b6be914bd Use __pthread_attr_copy in mq_notify (bug 27896) f4cba6ca1e dlfcn: Failures after dlmopen should not terminate process [BZ #15271] Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* toolchain/gdb: fix broken non-python buildFelix Fietkau2021-06-091-1/+1
| | | | | | | Append configure args instead of overwriting them Fixes: 74417f8b3a80 ("toolchain: gdb: Add optional python support") Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain: gdb: Add optional python supportHauke Mehrtens2021-06-062-1/+18
| | | | | | | | | | | | | Compile gdb with python support optionally. To use the Python support in gdb some extra python files are needed, install them too. While at it also install other shared files which we did not install before. If gdb is built without Python support the python folder does not exists. Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* glibc: update to latest 2.33 HEAD (BZ #27892)Hans Dedecker2021-05-301-2/+2
| | | | | | 0ef0e6de7f powerpc: Fix handling of scv return error codes [BZ #27892] Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* toolchain/gdb: fix broken configure test for ELF supportFelix Fietkau2021-05-181-0/+20
| | | | | | A missing #include was causing gdb on macOS to be compiled without ELF support Signed-off-by: Felix Fietkau <nbd@nbd.name>
* glibc: update to latest 2.33 HEAD (bug 27744)Hans Dedecker2021-05-011-2/+2
| | | | | | | | | 3f5080aedd nptl: Do not build nptl/tst-pthread-gdb-attach as PIE 36783141cf nptl: Check for compatible GDB in nptl/tst-pthread-gdb-attach ea299b62e8 nptl_db: Support different libpthread/ld.so load orders (bug 27744) 162df872f0 x86: tst-cpu-features-supports.c: Update AMX check Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* toolchain/binutils: add binutils 2.36.1DENG Qingfang2021-05-016-1/+91
| | | | | | Add binutils version 2.36.1 Signed-off-by: DENG Qingfang <dqfext@gmail.com>
* toolchain/binutils: update to 2.35.2DENG Qingfang2021-05-016-7/+7
| | | | | | Update binutils 2.35 to 2.35.2 Signed-off-by: DENG Qingfang <dqfext@gmail.com>
* toolchain/gdb: fix compilation with ccacheRosen Penev2021-04-171-0/+1
| | | | | | | | | | For some reason, one of the configure checks results in some infinite loop and ends up spawning endless gcc processes, causing OOM. Just pass a configure var to avoid it. Same fix as 6e23813c1ed7494a9da3b5e59cfcafd71097c420 Signed-off-by: Rosen Penev <rosenp@gmail.com>
* glibc: update to latest 2.33 commitHans Dedecker2021-04-171-2/+2
| | | | | | | | | | | | | | | | | | | 12ff80b312 Remove PR_TAGGED_ADDR_ENABLE from sys/prctl.h 1bf38e7260 Fix SXID_ERASE behavior in setuid programs (BZ #27471) a7b8e8ec9b Enhance setuid-tunables test ee16c81063 tst-env-setuid: Use support_capture_subprogram_self_sgid 267e174f19 support: Add capability to fork an sgid child 249c486ce8 support: Pass environ to child process 45b2c57d34 support: Typo and formatting fixes e07abf59b2 tunables: Fix comparison of tunable values 3e9ca60a58 linux: always update select timeout (BZ #27706) 8380ca5833 linux: Normalize and return timeout on select (BZ #27651) 85e4dc415a libsupport: Add support_select_normalizes_timeout b5b4aa62c1 libsupport: Add support_select_modifies_timeout 3d525dd639 misc: Fix tst-select timeout handling (BZ#27648) 830674605f tst: Provide test for select Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* toolchain: gcc: Update to version 10.3.0Hauke Mehrtens2021-04-1120-6/+6
| | | | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* glibc: update to latest git HEAD (BZ #27468, BZ #27511)Hans Dedecker2021-04-051-2/+2
| | | | | | | | e78ea9bd26 Update Nios II libm-test-ulps. 98bb18f52a malloc: Fix a realloc crash with heap tagging [BZ 27468] fc4ecce85b S390: Also check vector support in memmove ifunc-selector [BZ #27511] Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* glibc: update to latest 2.33 commitHans Dedecker2021-03-201-2/+2
| | | | | | | | | | | | db32fc27e7 test-container: Always copy test-specific support files [BZ #27537] 79c6be6a0a nptl: Remove private futex optimization [BZ #27304] f90d6b0484 pthread_once hangs when init routine throws an exception [BZ #18435] dd8023c2ac elf: ld.so --help calls _dl_init_paths without a main map [BZ #27577] ea5a537e87 elf: Always set l in _dl_init_paths (bug 23462) 64f6c287ad x86: Handle _SC_LEVEL1_ICACHE_LINESIZE [BZ #27444] 32b9280f1d io: Return EBAFD for negative file descriptor on fstat (BZ #27559) Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* binutils: fix compilation with ccacheRosen Penev2021-03-191-0/+3
| | | | | | | | For some reason, one of the configure checks results in some infinite loop and ends up spawning endless gcc processes, causing OOM. Just pass a configure var to avoid it. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* glibc: update to latest 2.33 commit (BZ #27462, BZ #27318, BZ #27389)Hans Dedecker2021-03-101-2/+2
| | | | | | | | | | | | | a151f2e05a nscd: Fix double free in netgroupcache [BZ #27462] ee9f98d9ca x86: Set minimum x86-64 level marker [BZ #27318] 3e880d7337 nss: Re-enable NSS module loading after chroot [BZ #27389] 71b2463f61 x86: Add CPU-specific diagnostics to ld.so --list-diagnostics a1eb3915e7 x86: Automate generation of PREFERRED_FEATURE_INDEX_1 bitfield 33dc1dd602 ld.so: Implement the --list-diagnostics option 8d4241b897 string: Work around GCC PR 98512 in rawmemchr 6efa2d44c8 S390: Add new hwcap values. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* Revert "toolchain: add autoconf-lean"Daniel Golle2021-03-025-1838/+1
| | | | | | | | autoconf-lean was not ready yet. Revert it until things get sorted. This reverts commit 32c664ff02910bf39a3fbd5a5a4a8bff3191dd03. Signed-off-by: Daniel Golle <daniel@makrotopia.org>