Compare commits

...
687 Commits
Author SHA1 Message Date
Antoine Martin 9c9c829b2d device-pine64-pinenote: fix upgrade path for nonfree-firmware
Renames pre-upgrade script to post-upgrade script for non-freefirmware
subpackage.

This script creates stub files for where the waveform firmware should
be. When upgrading from 13-r0, the script detects files being there,
thus does not create the stub files. Unfortunately, since before
15-r0 those files are "owned" by the subpackage, they are removed
when upgrading, and thus the stub files are never created by the
pre-upgrade. By making this script post-upgrade, it'll recreate the
empty stub files so that the actual waveforms can be extracted by
the systemd / openrc boot-up service.

(cherry picked from commit 2a902da452)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8830>
2026-06-16 09:29:55 -04:00
Oliver Smith 8ca864e0e6 main/postmarketos-release-upgrade: upgrade to 1.12.1
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
(cherry picked from commit 484ac6f4d3)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8821>
2026-06-15 15:57:29 +02:00
Oliver Smith aeb34d90ea temp/gnome-shell-mobile: apply patches here too
Apply the same patches that were just added to
extra-repos/systemd/gnome-shell-mobile to temp/gnome-shell-mobile as
well.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
(cherry picked from commit 120808693a)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8808>
2026-06-15 13:55:10 +00:00
Cédric Bellegarde 20ad1da3cc systemd/gnome-shell-mobile: Fix a keyboard issue causing excessive battery drain
(cherry picked from commit a3a2689d5e)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8808>
2026-06-15 13:55:10 +00:00
Cédric Bellegarde 8b0fd8aee0 systemd/gnome-shell-mobile: Fix a crash when closing a window
(cherry picked from commit e52b130052)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8808>
2026-06-15 13:55:10 +00:00
Daniel Kulesz 5bbd4c94cd linux-purism-librem5: Remove forgotten and obsoleted call to downstream_package
(cherry picked from commit 46f257215e)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8813>
2026-06-15 07:50:42 +00:00
Daniel Kulesz 5b28ed42d4 linux-purism-librem5: Modernize packaging
refs #1814, #4594

Related to !8124, !8578

Port changes from !8578 authored by Aster Boese to currently developed MR for the librem5.

Co-authored-by: Aster Boese asterboese@mailbox.org
(cherry picked from commit 7116a079b8)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8813>
2026-06-15 07:50:42 +00:00
Daniel Kulesz 433c33394c linux-purism-librem5: Add zstd as dependency (required for packaging the kernel)
(cherry picked from commit eafc62dd74)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8813>
2026-06-15 07:50:38 +00:00
Daniel Kulesz 4cef7409f3 linux-purism-librem5: Remove pureosrel variable from APKBUILD
(cherry picked from commit 60c7c33de3)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8813>
2026-06-15 07:50:35 +00:00
Daniel Kulesz 7134103aaa linux-purism-librem5: Migrate kernel config (manually) and update checksum
(cherry picked from commit 3d4edb256b)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8813>
2026-06-15 07:50:31 +00:00
Daniel Kulesz 2be8f676e3 linux-purism-librem5: Sort makedepends alphabetically in APKBUILD
(cherry picked from commit dc4836fb4d)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8813>
2026-06-15 07:50:28 +00:00
Daniel Kulesz 06a559da43 linux-purism-librem5: Prefix custom variables with underscore
(cherry picked from commit 1d70fbaf39)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8813>
2026-06-15 07:50:24 +00:00
Daniel Kulesz a8b3bf4d3d linux-purism-librem5: Try to fix linter warnings and make url schema more flexible
(cherry picked from commit d662b52807)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8813>
2026-06-15 07:50:21 +00:00
Daniel Kulesz 093cb23436 linux-purism-librem5: upgrade to 6.6.139
(cherry picked from commit e4c6d1ae0e)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8813>
2026-06-15 07:50:18 +00:00
Daniel Kulesz fca0ed04df device-samsung-m0: Bump pkgver after updating deviceinfo
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8807>
2026-06-13 14:35:37 +02:00
Daniel Kulesz 78bbd293bc samsung-m0: Fix internal flashing
The S3 needs the sparse format set to be able to flash bigger partitions such as USERDATA properly. Otherwise, it aborts after 1 or 2 percent (depending on the image size)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8807>
2026-06-13 14:26:54 +02:00
Antoine Martin cbebf0fa1c device-pine64-pinenote: add missing procps-ng and pinenote-service dependency to sway config
(cherry picked from commit 36b5f56f96)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8805>
2026-06-12 22:14:21 -04:00
Richard Acayan b804af2942 community/linux-postmarketos-qcom-sdm670: reduce max speaker volume
Closes #4616

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
(cherry picked from commit 39c1eb5f9e)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8795>
2026-06-13 01:38:23 +00:00
Aster Boese 700e74b4b3 pmaports.cfg: add install_user_groups
Signed-off-by: Aster Boese <asterboese@mailbox.org>
(cherry picked from commit e1e0ccc2e9)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8802>
2026-06-12 19:49:14 +02:00
Aster Boese 077c4b8e01 main/postmarketos-ui-sxmo-*: explicitly add user to input
The input group should not be blanket allowed for UIs that do not need it as
it bypasses the security benefits of Wayland. This change explicitly adds
the input group to only the UIs that absolutely require it, which is only
SXMO due to their udev rules and lisgd.

Signed-off-by: Aster Boese <asterboese@mailbox.org>

[ci:skip-vercheck]

(cherry picked from commit 9755b0ed94)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8802>
2026-06-12 19:48:20 +02:00
Aster Boese d8b17f6c56 samsung-manta: move firmware from nonfree subpackage to depends
See https://postmarketos.org/edge/2024/02/15/default-nonfree-fw

Signed-off-by: Aster Boese <asterboese@mailbox.org>
(cherry picked from commit 10e2244d75)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8785>
2026-06-11 14:33:43 +00:00
Lukas Timmermann 909dca30b2 Revert "device-google-manta: fix depends on wrong firmware"
This reverts commit 1814a2bdfc.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8785>
2026-06-11 14:33:43 +00:00
Antoine Martin ac7a16a69e device-pine64-pinenote: move install variable to global variable
Incidently, drop $pkgname-systemd.post-install as it was only necessary
for upgrade from v7-r0 to v8-r0 done before v25.12

(cherry picked from commit 29741b496c)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8789>
2026-06-11 05:14:58 +00:00
Antoine Martin 5c7cd2e8e0 device-pine64-pinenote: drop sway subpackage
Sway subpackage existed to provide a shim between 7-r0 and 8-r0, where
sway UI configuration was refactored to be under `$pkgname-sway-hrdl`
subpackage instead of `$pkgname-sway`. This refactor was for two reasons:
1) clean-up package so that just the necessary files were included for
   different UIs
2) Since sway subpackage was pulled by sxmo-de-sway, it made sense
   only sway-related files be packaged by that subpackage.

Since 96853032, sway subpackage depends directly on `$pkgname-sway-hrdl`
subpackage to automatically pull sway-UI opinionated configuration by
default. This was a mistake, as it broke `sxmo-de-sway` that conflicts
with `iio-sensor-proxy` due to depending on conflicting polkit packages.

This commit drops sway subpackage, as the shim is not necessary anyway,
and adds `install_if` to `$pkgname-sway-hrdl` to automatically install
package when installing `postmarketos-ui-sway`. This means
`$pkgname-sway-hrdl` is never pulled when installing
`postmarketos-ui-sxmo-de-sway`, thus never pulling `iio-sensor-proxy`.

Fixes #4612

(cherry picked from commit 07c9b98eb7)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8789>
2026-06-11 05:14:58 +00:00
Robert Eckelmann c18471d29d systemd/cups: upgrade to 2.4.19
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
(cherry picked from commit f701f3e238)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8790>
2026-06-11 06:35:13 +02:00
Oliver Smith 1814a2bdfc device-google-manta: fix depends on wrong firmware
The v26.06 branch still has a nonfree_firmware function (in main this
was removed in 10e2244d75, which was not
backported). In this function, the old firmware pkgname is still
referenced, causing errors when building the image:

ERROR: unable to select packages:
  firmware-samsung-manta (no such package):
    required by: device-google-manta-nonfree-firmware-16-r0[firmware-samsung-manta]

Related: https://builds.sr.ht/~postmarketos/job/1786529
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-10 21:42:15 +02:00
Aster Boese a6bc59ff60 google-manta: depend on firmware-google-manta
Switches the depends from firmware-samsung-manta to firmware-google-manta.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8778>
(cherry picked from commit 19de35d151)
2026-06-10 17:26:07 +02:00
Lukas Timmermann b1c7466ba9 samsung-manta: Rename to google-manta
Rename both the device package, and the firmware package.

//Note: The following is mentioned in the original commit message but
wasn't actually in the commit!
Also drop unnecessary deviceinfo_boot_filesystem="fat32" flag, as it
is no longer necessary when device uses u-boot.

Signed-off-by: Lukas Timmermann <lukas@timmermann.space>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8433>
(cherry picked from commit c554d8177e)
2026-06-10 17:25:59 +02:00
Aelin 081e26d833 linux-postmarketos-lts: Upgrade to 6.18.35
(cherry picked from commit 8050eb2cc4)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8771>
2026-06-10 11:36:26 +00:00
Aelin ed40661fc6 linux-postmarketos-stable: Upgrade to 7.0.12
(cherry picked from commit 337c786611)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8770>
2026-06-10 01:17:22 +02:00
Oliver Smith 2ae6d04739 Revert "temp/libvdpau-tegra: fork from Alpine edge"
This reverts commit e42104d39f. The
package has been moved to Alpine's community repository.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-09 15:57:17 +02:00
Aelin 595d711509 linux-postmarketos-mainline: Upgrade to 7.1_rc7
(cherry picked from commit d6f5b8453a)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8759>
2026-06-09 00:15:19 +02:00
Aelin f3d7269131 temp/libvdpau-tegra: use maintainer= instead of comment
This is required to satisfy our CI for v26.06.

[ci:skip-vercheck]: no change to package metadata

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8760>
2026-06-08 23:55:51 +02:00
Achill Gilgenast 3361b09afa systemd/gnome-session: upgrade to 50.1
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8754>
(cherry picked from commit 3c7ed7de45)
2026-06-08 16:34:12 +02:00
Oliver Smith ef0ad49c67 main/postmarketos-release-upgrade: upgrade to 1.12.0
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8755>
(cherry picked from commit 85111424ce)
2026-06-08 16:33:46 +02:00
Oliver Smith 4808c35d04 Revert "temp/rygel: fork from Alpine edge (+deps)"
All of them have been moved to Alpine's community repository, thanks
Achill!

This reverts commit 0521e10880.
2026-06-08 15:15:51 +02:00
Oliver Smith 7043ec10be temp/devpod: fork from Alpine edge
Fix for:
  postmarketos-duranium-sysext-dev-tools (x86_64): missing dep devpod

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-07 22:31:35 +02:00
Oliver Smith 12f0c14ac4 cross/grub-efi-x86: upgrade to 2.14
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-07 21:58:44 +02:00
Oliver Smith 2c83ccd7ff cross/gcc-*: upgrade to 15.2.0-r5
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-07 21:58:29 +02:00
Aelin 8caac28223 systemd/xorg-server: upgrade to 21.1.23
Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/de6c6be6f84f940d340387d620e72da75c18a186
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8724>
(cherry picked from commit dfa76a6744)
2026-06-07 12:59:03 +02:00
Oliver Smith e42104d39f temp/libvdpau-tegra: fork from Alpine edge
Fix for:
ERROR: unable to select packages:
  libvdpau-tegra (no such package):
    required by: device-nvidia-tegra-armv7-x11-6-r0[libvdpau-tegra]

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-06 10:30:28 +02:00
Oliver Smith 48576beb2d temp/pd-mapper: fork from Alpine edge
Fix for:
ERROR: unable to select packages:
  pd-mapper (no such package):
    required by: soc-qcom-pd-mapper-8-r0[pd-mapper]

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-06 10:29:33 +02:00
Oliver Smith b4c9859a5c temp/update-sysfs: fork from Alpine edge
Fix for:
ERROR: unable to select packages:
  update-sysfs (no such package):
    required by: postmarketos-tweaks-setting-definitions-pinephone-1.1.0-r0[update-sysfs]

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-06 10:29:29 +02:00
Oliver Smith dbcf57163a temp/gupnp: set options = !check
At least on my laptop with pmbootstrap, I get the following failures:

1/7 gupnp:context         FAIL            0.12s   killed by signal 6 SIGABRT
5/7 gupnp:service-proxy   TIMEOUT        30.01s   killed by signal 15 SIGTERM

Let's disable tests for now to not further block the bringup.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-06 02:12:55 +02:00
Oliver Smith 0521e10880 temp/rygel: fork from Alpine edge (+deps)
gnome-based shells depend on this

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-06 02:05:14 +02:00
Ferass El Hafidi a87855f76d main/postmarketos-ui-phosh: explicitely depend on postmarketos-base-ui-gnome
Else somehow its -openrc subpackage don't get installed properly.
This means the wrong polkit gets installed on OpenRC systems, causing
poweroff to not work among other things.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8732>
(cherry picked from commit 322eae70c2)
2026-06-05 15:22:59 +02:00
Aelin 0096307a15 systemd/systemd: upgrade to 261_rc3
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8730>
(cherry picked from commit aefa007bd0)
2026-06-05 15:19:47 +02:00
Clayton Craft 73b2cbed75 systemd/systemd: add explicit dependency on libfdisk
This one is required now by systemd-repart, but is dlopened so we have
to "manually" depend on it.

Fixes https://gitlab.postmarketos.org/postmarketOS/duranium-build/-/work_items/54

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8714>
(cherry picked from commit c17dc45441)
2026-06-05 15:18:53 +02:00
Aelin fe94ce65fb systemd/mutter: upgrade to 50.2
Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/ff48c2c6ed9e2cc8313dfb7c776631de8c8f7f26
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8723>
(cherry picked from commit c6ed450f55)
2026-06-05 06:39:46 +02:00
Sicelo A. Mhlongo 539fb4d520 device-nokia-n900: add -udev subpackage
Evidently a recent Alpine development.

[1] https://wiki.alpinelinux.org/wiki/Eudev#Installation

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8612>
(cherry picked from commit 636cc55824)
2026-06-05 06:39:36 +02:00
Sicelo A. Mhlongo 2b430bffb1 device-nokia-n900: fix issues with systemd
For seamless systemd support:
  1. Fix sway locking script. systemd adds more paths under /run/user, which
     interfere with `find`. Limiting the search depth works around the issue
  2. Only force load `nokia-modem` driver under openrc. With systemd, force-
     loading the driver appears to confuse systemd-udevd during boot, causing
     long boot times and even total failure. On the running system, the driver
     also causes systemd-udevd to become unstable. Until the issue is resolved
     (probably in the driver), there will not be any modem support when using
     systemd
  3. Remove the isp1704 driver (for the PHY) from the initramfs. Under systemd,
     it might load too early and fail, leading to slow charging in the running
     system. It is more reliable when loaded later on. Charging still works in
     the initramfs since the actual charger driver (bq2415x) is available

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8612>
(cherry picked from commit 83214d9d05)
2026-06-05 06:39:09 +02:00
Achill Gilgenast 8c02f7967d systemd/phosh: backport patch for extending app startup timer
Helps UX on slower devices like the PinePhone a lot, let's backport it.
This was suggested by upstream[1].

 [1]: https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/1915#note_2778701

See: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/103390
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8716>
(cherry picked from commit a7665377ae)
2026-06-05 06:37:50 +02:00
Aster Boese d213604b7c main/postmarketos-initramfs: add libinput-udev to depends
https://gitlab.alpinelinux.org/alpine/aports/-/commit/6b63703a58e35adb2377d12278e5de397b2ed547
changed the udev subpackage for libinput. Previously, it would be pulled in if
libinput-libs and a udev implementation were installed at the same time. Now,
it uses the default logic for udev subpackages, preventing it from being
pulled in with postmarketos-initramfs only depending on -libs. This change
explicitly depends on -udev to fix this issue.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8715>
(cherry picked from commit 6b1a2b41fb)
2026-06-05 06:37:33 +02:00
Mario e5b31df5ce fairphone-fp5: Switch boot partition to fat32
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8135>
(cherry picked from commit d5d864c5a9)
2026-06-05 06:34:09 +02:00
Robert Eckelmann 32ce78cb4e device-nvidia-tegra-armv7: remove inactive co-maintainers
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8673>
(cherry picked from commit 93f21c62ed)
2026-06-05 06:34:09 +02:00
Robert Eckelmann a808f7d74b device-nvidia-tegra-armv7: remove nonfree-firmware subpackage
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8673>
(cherry picked from commit 71263c7413)
2026-06-05 06:34:09 +02:00
Robert Eckelmann 4346b6ac4c device-nvidia-tegra-armv7: fix plymouth display issue
adds `console=tty0` to the kernel-cmdline.conf to have a console entry
for plymouth as the other console entry is an ignored serial one.

Fixes #4585

Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8673>
(cherry picked from commit 0f165375fe)
2026-06-05 06:34:09 +02:00
Vitaliy Ognev 7f5c03973c u-boot-powkiddy-x55: upgrade to 2026.04
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8697>
(cherry picked from commit a6dc97b1b9)
2026-06-05 06:34:09 +02:00
Oliver Smith cc83620272 Revert "powkiddy-x55: remove"
This reverts commit 732f93485c. The u-boot
package was fixed, backport coming in next patch.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-05 06:34:09 +02:00
Richard Acayan eb0a8c1083 linux-postmarketos-qcom-sdm670: upgrade to v7.0.10
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8698>
(cherry picked from commit 78077f0c48)
2026-06-05 06:34:09 +02:00
Aster Boese e1d8a28b61 oneplus-fajita: move q6voiced config out of openrc subpackage
q6voiced stores its config in the OpenRC configuration directory, which is
automatically picked up by the default_openrc split function and moved to
the openrc subpackage. This means q6voiced never starts on systemd. Move
this config out of the openrc subpackage by not using default_openrc.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8656>
(cherry picked from commit f0a1a7142b)
2026-06-05 06:34:09 +02:00
Aster Boese deb846c748 main/postmarketos-mkinitfs: upgrade to 2.11.0
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8665>
(cherry picked from commit 28886ed2ed)
2026-06-05 06:25:29 +02:00
Aelin ef86cd6187 linux-postmarketos-lts: Upgrade to 6.18.34
(cherry picked from commit b1eb5ff951)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8729>
2026-06-05 06:21:37 +02:00
Aelin 0c340e690a linux-postmarketos-stable: Upgrade to 7.0.11
(cherry picked from commit d3c3d589d2)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8728>
2026-06-05 00:31:07 +02:00
Oliver Smith b24d6e20d8 systemd/dbus: rebuild against systemd proper
Bump dbus to work around pmaports issue 4156.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-04 22:35:04 +02:00
Aelin eed2a53d04 linux-postmarketos-mainline: Upgrade to 7.1_rc6
(cherry picked from commit 8b5248a412)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8702>
2026-06-04 19:55:56 +00:00
Oliver Smith 87293caf1d Revert "systemd/dbus: rebuild against systemd proper"
Revert this to work around a bootstrap problem.

This reverts commit fb946419cf.
2026-06-02 15:20:23 +02:00
Aelin a9d5dacf69 systemd/systemd: bump pkgrel
systemd-stage0 is currently at pkgrel=1, while systemd is still at
pkgrel=0. However, systemd provides systemd-stage0=$pkgver-r$pkgrel, so
currently, installing systemd-stage0 will always install systemd-stage0
instead of systemd. Their pkgrels MUST be kept in sync.

[ci:skip-vercheck]: the stage0 package change is only a new comment

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8709>
(cherry picked from commit e9a700008d)
2026-06-02 15:00:01 +02:00
Oliver Smith c1b35e0d00 main/postmarketos-artwork: set v26.06 wallpaper
The poll is not fully over yet, but the outcome seems clear with Alpen
having 51% currently. Let's set the wallpaper now to get further along
in the v26.06 release process, if it really changes in the poll we can
adjust the package in a follow-up MR.

Related: https://social.treehouse.systems/@postmarketOS/116641283568377248
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
(cherry picked from commit d788ca8a39011963189d4a4b4e0b42176e298cb3)
2026-06-01 20:44:15 +02:00
Oliver Smith fb946419cf systemd/dbus: rebuild against systemd proper
Bump dbus to work around pmaports issue 4156.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-06-01 20:28:03 +02:00
Oliver Smith d02408edf2 systemd/systemd-stage0: depend on libucontext
When building dbus against systemd-stage0, we need to have libucontext
installed. Since systemd-stage0 uses !tracedeps, it needs to be
specified manually in depends. I've reproduced the build error locally
and verified that this fixes it.

Fix for:
  [195/243] Linking target test/manual-test-thread-blocking
  ninja: job failed: cc  -o test/test-sd-activation test/test-sd-activation.p/sd-activation.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security '-Wl,-rpath,$ORIGIN/../dbus' -Wl,--start-group test/libdbus-testutils.a dbus/libdbus-1.so.3.38.3 dbus/libdbus-internal.a /usr/lib/libglib-2.0.so /usr/lib/libintl.so /usr/lib/libgio-2.0.so /usr/lib/libgobject-2.0.so -pthread /usr/lib/libsystemd.so -Wl,--end-group
  /usr/lib/gcc/aarch64-alpine-linux-musl/15.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: warning: libucontext.so.1, needed by /usr/lib/libsystemd.so, not found (try using -rpath or -rpath-link)
  /usr/lib/gcc/aarch64-alpine-linux-musl/15.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /usr/lib/libsystemd.so: undefined reference to `swapcontext'
  /usr/lib/gcc/aarch64-alpine-linux-musl/15.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /usr/lib/libsystemd.so: undefined reference to `getcontext'
  /usr/lib/gcc/aarch64-alpine-linux-musl/15.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /usr/lib/libsystemd.so: undefined reference to `makecontext'
  collect2: error: ld returned 1 exit status

Related: https://builds.sr.ht/~postmarketos/job/1776990
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8704>
(cherry picked from commit e96054e2a3)
2026-06-01 16:03:34 +02:00
Barnabás Czémán 8b48711021 linux-postmarketos-qcom-msm8953: Upgrade to v7.0.9-r0
Upgrade to v7.0.9-r0.

Signed-off-by: Barnabás Czémán <barnabas.czeman@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8646>
(cherry picked from commit af55b81691)
2026-05-31 19:23:28 +02:00
Henrik Grimler 46637437dc linux-postmarketos-exynos5: update to 6.18.33
Changes since v6.12.63 are:

* Rebase on top of 6.18.33
* Sync manta with mainline (@lat3st, @alexmrqt)
* Add bluetooth support to manta (@lat3st, @alexmrqt)
* Fix manta magnetometer with mainline dts (@alexmrqt)
* Fix hang on suspend/display off on galaxy pros (@eisenbahnfan)
* Add support for max77888 and use it on galaxy pros (@eisenbahnfan)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8634>
(cherry picked from commit fad9378de9)
2026-05-31 19:23:12 +02:00
Aelin 31a864f097 systemd/gnome-shell: Upgrade to 50.2
Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/cfb9cb2004dddc1244a04a7158e699cb6e32f7f1
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8680>
(cherry picked from commit 3ebc5c885e)
2026-05-31 19:22:43 +02:00
Barnabás Czémán 4aad7d441d linux-postmarketos-qcom-msm89x7: Upgrade to v7.0.9-r0
Upgrade to v7.0.9-r0

Signed-off-by: Barnabás Czémán <barnabas.czeman@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8647>
(cherry picked from commit a434caf8af)
2026-05-31 19:21:55 +02:00
Ferass El Hafidi 2fe9c75a54 main/postmarketos-bootsplash: add plymouth.prefer-fbcon
Plymouth added a new console viewer to replace fbcon, however it is
quite slow and needs another font in the initramfs (and we're already
kind of running out of space if we just keep adding more and more).
Switch to the old behavior of just using fbcon.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8645>
(cherry picked from commit 6a511250ba)
2026-05-31 19:20:06 +02:00
Aelin 35d0811d06 cross/systemd-boot-x86: Upgrade to 260.2
Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/c329463d3dbe6b28360180706f843e605c97575b
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8659>
(cherry picked from commit a18d68dd30)
2026-05-31 19:19:57 +02:00
Clayton Craft 561dd006d7 systemd/systemd: upgrade to 261-rc2
ukify is provided in Alpine aports, so it's disabled to prevent
conflicting with that pkg.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8623>
(cherry picked from commit a80a649d4f)
2026-05-31 19:19:45 +02:00
Clayton Craft aff58cce5a systemd/systemd-stage0: upgrade to 261-rc2
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8623>
(cherry picked from commit 68362c1f42)
2026-05-31 19:19:36 +02:00
Aster Boese d632146b32 ci: grep: add option to ignore grep.sh errors
Adds an option to ignore grep.sh errors in instances where there may be false
positives due to git weirdness. e.g. git not tracking renames and instead
seeing them as new packages.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8652>
(cherry picked from commit 7a6d8d5e9c)
2026-05-31 19:19:27 +02:00
adamthiede 2911141484 linux-postmarketos-mediatek-mt8173: upgrade to 7.0.10
- enabled 'yama' for pmos kconfig checks
- enabled 'lockdown' since it's similar, and options are good

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8640>
(cherry picked from commit 817cfa8d36)
2026-05-31 19:19:27 +02:00
Antoine Martin ff808d3eab device-pine64-pinenote: pull sway-hrdl UI configuration by default when using sway
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8562>
(cherry picked from commit 9685303286)
2026-05-31 19:19:27 +02:00
Antoine Martin 0aee4778df device-pine64-pinenote: add sidebar to sway config
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8562>
(cherry picked from commit b18ebeea4d)
2026-05-31 19:14:34 +02:00
Robert Eckelmann 08fe77568c device-oneplus-fajita: add -sensor firmware package to depends
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8617>
(cherry picked from commit 091d973b26)
2026-05-31 19:13:51 +02:00
Robert Eckelmann 1d988e3ec5 device-oneplus-enchilada: add -sensor firmware package to depends
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8617>
(cherry picked from commit 7b7a09ad94)
2026-05-31 19:13:43 +02:00
Alistair Francis 9a4f175896 device-google-sargo: Reload I2C drivers on error
It's common for the I2C touch driver on the Google Pixel 3a to crash
resulting in touch input not working, see [1].

This patch adds a systemd service that can be used to monitor for errors
and reload the drivers on error, the original idea came from [2].

The actual script is not systemd specific, so that the script can be
ported to openrc if required.

1: https://gitlab.com/sdm670-mainline/linux/-/work_items/6
2: https://gitlab.com/sdm670-mainline/linux/-/work_items/6#note_3104050714

Signed-off-by: Alistair Francis <alistair@alistair23.me>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8409>
(cherry picked from commit 7fb880aca6)
2026-05-31 19:13:32 +02:00
Clayton Craft 7d9b595abd main/postmarketos-bootsplash: fix pwr button toggle and dev. scale
Apparently plymouth's config parser can't handle in-line comments. This
also fixes an issue I just noticed where the scale wasn't being parsed
correctly either because 1.0 is not a uint.

../src/libply/ply-key-file.c:427:ply_key_file_get_ulong       : group 'Daemon' key 'DeviceScale' val '1.0' is not a valid unsigned number
../src/libply/ply-key-file.c:427:ply_key_file_get_ulong       : group 'Daemon' key 'XkbExtraEscButton' val '0x1008ff2a  # Power button (XKB_KEY_XF86PowerOff)' is not a valid unsigned number

The additional xkb config is necessary for plymouth to detect the pwr
key press, or else it isn't initialized.

Fixes #4548

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8561>
(cherry picked from commit 77c05f0443)
2026-05-31 19:13:18 +02:00
Clayton Craft 4dc77fc261 main/postmarketos-bootsplash: add udev rules for plymouth
Without this rule, fb0 doesn't get ID_PATH set in the udev database
and plymouth this to detect that fb0 is backed by a DRM device. This
fixes an issue where plymouth times out and treats fb0 as an independent
display, and creates a second framebuffer renderer, which caused it to
render the splash at the wrong resolution.

These lines were lifted from 71-seat.rules, which are packaged in
systemd-udevd and elogind. They're vendored here because we don't want
to depend on elogind just for a few udev rules. These rules should be
idempotent in the rootfs (setting ID_PATH is guarded by ID_PATH=="" and
IIUC setting an existing TAG is a noop in udev)

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8561>
(cherry picked from commit 4257f74e62)
2026-05-31 19:13:11 +02:00
Clayton Craft fe35ae2e7f main/postmarketos-plymouth-themes: upgrade to 1.2.3
Changelogs:

https://gitlab.postmarketos.org/postmarketOS/plymouth-themes/-/tags/1.2.2
https://gitlab.postmarketos.org/postmarketOS/plymouth-themes/-/tags/1.2.3

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8561>
(cherry picked from commit be5d39de3c)
2026-05-31 19:12:57 +02:00
Antoine Martin a4907e960a device-pine64-pinenote: only create stub firmware when missing
Pinenote includes waveform lookup tables that are proprietary and only
available through the `waveform` partition. Before, we packaged empty
files for the firmware so that mkinitfa does not fail. The init scripts
then extracts the waveform binaries on first boot. Unfortunately, this
has the consequence that of overriding the extracted binaries every boot.

Fixes this by only creating stub files when files are missing so
mkinitfs does not fail via pre upgrade and install script.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8639>
(cherry picked from commit ca932427e6)
2026-05-31 19:12:40 +02:00
Antoine Martin 7cec5e615b device-pine64-pinenote: fix libexec call for waveform init
ab7a887f accidently dropped part of a patch that moved waveform init
shell under libexec rather than bin.

This fixes the patch in question

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8639>
(cherry picked from commit 24dad0d658)
2026-05-31 19:12:31 +02:00
Antoine Martin e316e6619b device-pine64-pinenote: fix splash
Adds missing modules to make splash work on boot, and adjust splash
orientation

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8639>
(cherry picked from commit d7241ef5d8)
2026-05-31 19:12:11 +02:00
Oliver Smith 71ebae7c07 linux-purism-librem5: temporarily build with GCC
Building this package is currently failing with:
  scripts/Kconfig.include:41: linker 'aarch64-alpine-linux-musl-ld' not found

This kernel was switched over to LLVM and it built fine then, but due to
other changes (pmbootstrap maybe?) it doesn't build anymore. This is
currently blocking v26.06 bringup, so let's temporarily switch back to
GCC until we can resolve it better in edge, probably by getting !8578 in
which is currently blocked as there seem to be regressions.

This reverts the APKBUILD changes from
9b27b4a0f7.

[ci:skip-kconfigcheck]: minimal changes to make this build again

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8693>
(cherry picked from commit ca390e0be5)
2026-05-31 17:14:27 +02:00
Oliver Smith f08c9d2d31 linux-purism-librem5: adjust INSTALL_MOD_PATH
Fix for:
ERROR: Please set INSTALL_MOD_PATH to '"$pkgdir"/usr'.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8693>
(cherry picked from commit 092da83b9e)
2026-05-31 17:14:19 +02:00
Oliver Smith 60b2102e13 tokio-techbook: remove
The kernel for this device doesn't build.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-31 15:24:10 +02:00
Oliver Smith 019789ebf3 ouya-ouya: remove
The kernel for this device doesn't build.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-31 15:24:07 +02:00
Oliver Smith 35f9675063 asus-flo: remove
The kernel doesn't build, remove it to unblock v26.06 bringup.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-31 15:22:21 +02:00
Oliver Smith d6954f371c main/postmarketos-ui-sxmo-de-river: fix arch
Set arch to aarch64 and x86_64. From
https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/community/sxmo-utils/APKBUILD:

  # zig, and thus river, is only available for aarch64 and x86_64
  case "$CARCH" in
  	aarch64|x86_64)
  		subpackages="$subpackages $pkgname-river"
  		install="$install $pkgname-river.post-install"
  	;;
  esac

[ci:skip-vercheck]: no rebuild necessary

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8692>
(cherry picked from commit bb56208d81)
2026-05-31 15:20:30 +02:00
Oliver Smith 732f93485c powkiddy-x55: remove
The u-boot package doesn't build:
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8685#note_557251

Remove the device port to unblock v26.06 bringup.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-31 14:23:15 +02:00
Oliver Smith 10c57d7098 u-boot-*: fix libfdt build errors
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8685>
(cherry picked from commit aeb5875bc7)
2026-05-31 14:14:13 +02:00
Oliver Smith 4521fb8ba9 u-boot-rock64: add py3-setuptools to makedepends
Fix for:
  ModuleNotFoundError: No module named 'distutils'

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8685>
(cherry picked from commit e7e8fcb2e3)
2026-05-31 14:14:08 +02:00
Oliver Smith 997769dfee u-boot-*: fix build with current python
Alpine has moved from python 3.12 to 3.14. Since then binman in these
older u-boot ports is broken. Adapt a patch from upstream to fix it.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8685>
(cherry picked from commit a7c9e1d1e0)
2026-05-31 14:14:02 +02:00
Oliver Smith d39e8da8d4 u-boot-manta: fix build
* Use a stable source tarball by using the latest commit on the
  "lat3st/google-manta".
* Depend on bash, as it is needed during build.
* Remove usage of empty variable depends_dev while at it.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8686>
(cherry picked from commit 88559d9e8c)
2026-05-31 13:58:42 +02:00
Oliver Smith 17e4d9b325 main/postmarketos-ui-plasma-bigscreen: disable for armv7
qt6-qtwebengine is not available for armv7.

Related: https://builds.sr.ht/~postmarketos/job/1775297
[ci:skip-vercheck]: no rebuild necessary

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
(cherry picked from commit 09f1984d580682fae7ad86d58bb7140c1a7ab116)
2026-05-31 09:46:48 +02:00
Oliver Smith 47006833ae device-apple-tonga: remove
Craftyguy: "we should really just drop apple-tonga, it's redundant with
'device-apple-mac-aarch64'"

See MR 8683 to remove it from the main branch. The linux-asahi kernel
package also doesn't exist anymore so removing it from v26.06 directly
to unblock v26.06 bringup.

(cherry picked from commit 8b3e361a4f4aecc5230d9a1448695a26dae53dec)
2026-05-31 09:31:13 +02:00
Aelin a83a50243d temp/plasma-bigscreen: disable on armv7
qt6-qtwebengine is not available for armv7.

[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8676>
(cherry picked from commit 92bca88500)
2026-05-30 00:20:18 +02:00
Aelin cf6e74439a temp/aura-browser: disable on armv7
qt6-qtwebengine is not available on armv7.

[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8677>
(cherry picked from commit 6784b51266)
2026-05-30 00:20:13 +02:00
Oliver Smith 1d35cf1311 linux-postmarketos-qcom-msm8939: fix the build
The downloaded patches are not stable, so add them to the git repository
directly. Change INSTALL_MOD_PATH as well, as CI complained about it.
Add V=1 to work around the incompatibility with kernels before 6.2 and
newer make that lead to having no build output.

Related: https://builds.sr.ht/~postmarketos/job/1773002
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8671>
(cherry picked from commit 2d0c9e52a1)
2026-05-29 10:21:20 +02:00
Aster Boese d6a945f3be linux-postmarketos-apple-{4,16}k: upgrade to 7.0.4 and cleanup
Signed-off-by: Aster Boese <asterboese@mailbox.org>
(cherry picked from commit 813a3b3afb)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8664>
2026-05-28 19:50:44 +02:00
Oliver Smith ea73dc9d76 Revert "main/postmarketos-ui-{gnome-mobile,phosh,plasma-mobile}: depend on pmos-usb-moded"
This reverts commit dcf34e7e41.

As discussed in the last team meeting and with Dylan, we are not
shipping pmos-usb-moded in v26.06 as it is not stable enough and being
replaced with usb-signaller in edge. usb-signaller is too new on the
other hand, so we decided to go with what we had in v25.12 for this
release.

Related: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8553
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-28 06:46:13 +02:00
Oliver Smith 80138612a2 Revert "CI: tethering script is removed"
This reverts commit c5a8b1b6cd.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-28 06:45:02 +02:00
Oliver Smith 5744424576 Revert "main/postmarketos-base-ui: remove tethering script"
This reverts commit f2f4cdd1e2.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-28 06:44:58 +02:00
Oliver Smith 2894d939ad systemd/postmarketos-repo-nightly: remove
Aelin: "installing that on a stable release will break things"

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-27 22:33:10 +02:00
Oliver Smith 031a7dc3af temp/shelli: fork from alpine testing
We had this in v25.12 too, so let's add it again.

Related: https://gitlab.alpinelinux.org/alpine/aports/-/work_items/18221
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-27 22:23:29 +02:00
Oliver Smith 08c1c35afa main/postmarketos-ui-lomiri: remove
Related: https://gitlab.alpinelinux.org/alpine/aports/-/issues/17222
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-27 22:21:23 +02:00
Oliver Smith 48c69f1b52 main/postmarketos-base-nofde: split out from postmarketos-base
Split postmarketos-base-nofde out from postmarketos-base to fix this
bootstrap problem:

  postmarketos-initramfs:
    provides: postmarketos-ramdisk
    depends: postmarketos-fde-unlocker

  postmarketos-base:
    depends: postmarketos-ramdisk
    provides: postmarketos-fde-unlocker (via postmarketos-base-nofde subpackage)

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8657>
(cherry picked from commit 9efd154db2)
2026-05-27 21:23:59 +02:00
Oliver Smith 14ef8f0d61 main/postmarketos-initramfs: fix wrong makedepends
I have added both earlier, and they don't make sense. We don't need to
have postmarketos-base-nofde installed at build time when building
postmarketos-initramfs.

[ci:skip-vercheck]: no rebuild needed

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8657>
(cherry picked from commit 0a944426e7)
2026-05-27 21:23:50 +02:00
Oliver Smith 02a328ea17 main/postmarketos-base: bump pkgrel
The backport of the last patch didn't include a pkgrel bump, because it
already was +1 after changing /etc/os-release for v26.06.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-26 16:53:35 +02:00
Oliver Smith 88f244b221 main/postmarketos-base: fix dependency loop
We don't need to have makedepends="postmarketos-initramfs" for building
postmarketos-base. I'm not sure why this was added in
6c799ac4f6.

Removing it fixes this dependency loop we currently see in BPO while
bootstrapping v26.06:

* postmarketos-initramfs-3.11.0-r0 (missing depends: postmarketos-base)
* postmarketos-base-61-r1 (missing depends: postmarketos-initramfs)

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8643>
(cherry picked from commit 13379db56d)
2026-05-26 16:48:15 +02:00
Luca Weiss 51f2be79a2 modem/msmipc-dev: update to source mirror
The kernel/msm repo on Google's Gerrit doesn't have any content anymore.
Point the sources to the same commit on a LineageOS repo on GitHub.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8642>
(cherry picked from commit b2e19fb456)
2026-05-26 15:39:48 +02:00
Oliver Smith f8daff4905 temp/beebzzr: fork from Alpine testing
Dependency of postmarketos-initramfs.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-26 15:27:52 +02:00
Oliver Smith 2367206f68 temp/fbkeyboard: fork from Alpine testing
Dependency of postmarketos-ui-fbkeyboard.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-26 15:26:51 +02:00
Oliver Smith a7f5b8d19f temp/fbdebug: fork from Alpine testing
Dependency of postmarketos-mkinitfs-hook-debug-shell.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-26 15:26:09 +02:00
Oliver Smith 3ac9c72120 CI: remove build scripts for unsupported arches
These are relevant for "pmbootstrap ci". Remove scripts for arches we
don't have in stable.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-26 06:07:44 +02:00
Oliver Smith 961735cd66 cross: regenerate for v26.06
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-26 06:07:44 +02:00
Oliver Smith 02c01df80e Remove packages that we don't have in stable
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-26 06:07:41 +02:00
Oliver Smith 51e78e78a7 main/postmarketos-base: set version to v26.06
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-26 06:07:25 +02:00
Oliver Smith 2dfbcec914 === Branch v26.06 from main ===
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-26 06:07:21 +02:00
Antoine Martin 65f1808676 linux-postmarketos-rockchip: enable CONFIG_DRM_ROCKCHIP
4a1612eb56 introduced a set of changes for this kernel to support the
pine64-pinenote. The commit converts certain built-in drivers into
modules to make them work with the device.

This initially broke `pinebook-pro` due to `CONFIG_GPIO_ROCKCHIP=m`
which was reverted with 51261ea7. Making `CONFIG_DRM_ROCKCHIP` a module
pushes screen init to later in the boot, which is less ideal.

This reverts the change for `CONFIG_DRM_ROCKCHIP` for it to be built-in.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8633>
2026-05-26 01:39:31 +00:00
Antoine Martin 302e4a1b46 linux-pine64-pinenote: drop due to being replaced by linux-postmarketos-rockchip
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8632>
2026-05-26 01:30:21 +00:00
Clayton Craft 72695cbf00 linux-postmarketos-asahi: upgrade to 7.0.10-2
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8628>
2026-05-25 23:56:28 +00:00
Henrik Grimler e95d5dec44 device-odroid-u2: load the ledtrig-heartbeat module
So that the blue led can automatically blink in the default heartbeat
mode.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8630>
2026-05-25 20:41:48 +02:00
Henrik Grimler 9c67d85231 device-odroid-xu4: load the ledtrig-heartbeat module
So that the blue led can automatically blink in the default heartbeat
mode.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8630>
2026-05-25 20:41:45 +02:00
Aelin 1f11c48d3c linux-postmarketos-mainline: Upgrade to 7.1_rc5
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8625>
2026-05-25 10:00:13 +00:00
Aelin e427f36c1b systemd/phosh: disable crossdirect
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8626>
2026-05-25 06:33:40 +00:00
Ferass El Hafidi 17138bf2ed main/postmarketos-initramfs: vibrate on boot
Vibrate on multiple stages:
* twice when forced to enter debug-shell
* 3 times on error
* once at the end of the initramfs to indicate that we're booting
  to the OS
This uses the beebzzr tool <https://scm.dersco.re/utils/beebzzr.git>.

It is meant to be useful to know if your phone is booting or having
issues, which is useful when legally or fully blind, or when the display
isn't working yet.

On devices without force-feedback support, this is a no-op.
It is worth noting that quite a few devices do not yet have some modules
required for haptics in initramfs. These will need to be fixed for
beebzzr to work.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7563>
2026-05-25 06:31:11 +00:00
Aelin 48b61bf481 temp/xkeyboard-config: Upgrade to 2.47
Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/ec89b244a8f186e061fdc6433d384e93c4155ff7
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8627>
2026-05-25 03:25:21 +02:00
Aelin b38d810c74 linux-samsung-m20lte: Don't override CROSS_COMPILE
Setting this to an empty string will result in the kernel invoking just
"ld" for linking, rather than aarch64-alpine-linux-musl-ld. When
building with GCC and linking with BFD, we still need to rely on
pmbootstrap to set CROSS_COMPILE appropriately, overriding it will break
cross compilation.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8622>
2026-05-25 00:37:36 +00:00
bluebunny 6d7a70344b xiaomi-pipa: fix internal speaker sounds
It turns out that U-Boot exposes a different name to ALSA UCM. Fix the
symlink to be the correct name from SMBIOS data.

Add the missing PlaybackMixer line. Without it, ALSA doesn't select the
right mixer, leading to a Qualcomm DSP error.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8624>
2026-05-25 00:31:53 +00:00
Clayton Craft 59b49aea1c main/postmarketos-mkinitfs: upgrade to 2.10.0
Changelog:
https://gitlab.postmarketos.org/postmarketOS/postmarketos-mkinitfs/-/tags/2.10.0

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8621>
2026-05-23 16:24:39 -07:00
Aelin 84447ed6ef realme-x3: Move to archived
The maintainer has not responded on the maintainership status issue in
over two weeks, so move the device to archived.

[ci:skip-vercheck]: moving between categories

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8532>
2026-05-23 16:27:50 +00:00
Aelin ff4b970e1a linux-postmarketos-lts: Upgrade to 6.18.33
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8619>
2026-05-23 16:59:34 +02:00
Aelin f90b57106f linux-postmarketos-stable: Upgrade to 7.0.10
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8618>
2026-05-23 14:57:49 +00:00
Achill Gilgenast 6ff32835f4 systemd/phosh: fork again :(
Closes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4344
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8309>
2026-05-23 14:58:00 +02:00
Aelin 4402d4a28e kconfigcheck: Require support for Yama
This lets us prohibit non-ancestor ptrace access to running processes
and their credentials via sysctl kernel.yama.ptrace_scope=1.

Yama stacks correctly with SELinux. Arch Linux enables it and sets
ptrace_scope=1 by default, see https://wiki.archlinux.org/title/Security#ptrace_scope.

Note that SELinux also has the deny_ptrace mechanism to achieve similar
things, but we're not shipping SELinux at the moment and we can opt to
switch to deny_ptrace for enforcing this in the future if desired.

See https://docs.kernel.org/admin-guide/LSM/Yama.html for more information.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8582>
2026-05-23 09:16:21 +00:00
Aelin e1bc923bdb kconfig-generic: Enable configs for Microsoft Surface devices
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8616>
2026-05-23 01:04:22 +02:00
postmarketOS CI 18a8ec6879 linux-next: upgrade to next-20260522 2026-05-22 15:38:38 +00:00
DiegoStocco a76125ccb2 samsung-m20lte: new device
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8603>
2026-05-22 04:53:08 +00:00
Richard Acayan 20bfba5913 linux-postmarketos-qcom-sdm670: use pmos kconfig fragment
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8445>
2026-05-21 21:04:07 -04:00
Richard Acayan 57a9ba9ed1 linux-postmarketos-qcom-sdm670: upgrade to v7.0.5
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8445>
2026-05-21 20:23:25 -04:00
chiffa 9a1d628b4b samsung-beyond1lte: add a maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8563>
2026-05-21 21:49:11 +00:00
chiffa 61d49e3691 linux-samsung-beyond1lte: switch to LLVM toolchain
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8563>
2026-05-21 21:49:11 +00:00
postmarketOS CI 4c3d35d210 linux-next: upgrade to next-20260521 2026-05-21 15:38:47 +00:00
Ali Nasrullayev 2721343bac device-xiaomi-vayu: enable internal speakers and microphone
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8607>
2026-05-21 15:01:13 +00:00
Sicelo A. Mhlongo 79cc4424c7 device-nokia-n900: fixes for unl0kr
The hardware keyboard on N900 has been unusable for FDE unlocking since a
recent unl0kr commit [1]. Fix via hwdb so unl0kr can detect it correctly.

While at it, add an unl0kr config to ensure all keys are mapped correctly and
usable.

[1] https://gitlab.postmarketos.org/postmarketOS/buffybox/-/work_items/62

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8598>
2026-05-21 14:50:14 +00:00
Robert Eckelmann d985b54e5e device-xiaomi-beryllium: add -sensor firmware subpackage to the
non-free-firmware section

Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8611>
2026-05-21 11:00:36 +00:00
Eric Anderson 969e3c94fd linux-google-veyron: Upgrade to 6.12.90
Tested with GNOME on veyron-minnie. Speakers worked; the pipewire LUA
incompatibilty has been fixed since the 6.12.54 testing.

Fixes #4553

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8600>
2026-05-21 09:10:17 +00:00
Hugo Osvaldo Barrera 51261ea7e0 linux-postmarketos-rockchip: fix pinebook-pro support
4a1612eb56 introduced a set of changes for this kernel to support the
pine64-pinenote. These changes broke boot on the PineBook Pro: after the
kernel and initfs are loaded and started, the screen blanks and remains
that way indefinitely.

From the set of changes made for the pine64-pinenote support, reverting
only CONFIG_GPIO_ROCKCHIP=y restores the pinebook-pro into a working
status.

I don't have the means to test on the pine64-pinenote, and would
appreciate feedback on this.

Fixes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4559
Fixes: 4a1612eb56
References: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8217
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8604>
2026-05-20 22:48:43 +00:00
DomHeadroom ad9f07bb1d xiaomi-gauguin: new device
Add support for the Xiaomi Mi 10T Lite 5G

Signed-off-by: DomHeadroom <domefemia@protonmail.com>

Xiaomi-gauguin fixed linting problems

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8609>
2026-05-20 19:01:36 +00:00
postmarketOS CI f34c51c335 linux-next: upgrade to next-20260520 2026-05-20 15:38:39 +00:00
Hugo Osvaldo Barrera 2588acdd23 device-pine64-pinebookpro: include rockchipdrm in initfs
Since 4a1612eb56, the rockchipdrm driver is built as a separate module.
The kernel loads it quite late in the start-up process, so early output
it lost, and plymouth doesn't even work.

Force inclusion of this module into the initfs. This is still
suboptional: the display is initialised earlier, but not as early as it
would be with CONFIG_DRM_ROCKCHIP=y. Regrettably, using this last
options has negative side-effects on the PineNote.

References: 4a1612eb56
References: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8217
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8605>
2026-05-20 11:11:09 +00:00
Stefan Hansson 53562e05b7 ayn-odin: take over maintainership
Jenneron gave me his device.

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8606>
2026-05-19 22:07:13 +02:00
Aster Boese 83177e2395 firmware-oneplus-sdm845: revert wrong commit
The commit change from
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8446
got lost in rebase of
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8450,
causing the package to end up broken.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8602>
2026-05-19 19:30:42 +02:00
postmarketOS CI 4f222f4c4b linux-next: upgrade to next-20260519 2026-05-19 15:42:25 +00:00
Oliver Smith fff4a0aadf channels.cfg: add initial v26.06 branch
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
2026-05-19 15:04:27 +02:00
Rudraksha Gupta 9cb4e481ab linux-pine64-pinephonepro: fix lint error
Satisfy the following lint error:

ERROR: Please set INSTALL_MOD_PATH to '"$pkgdir"/usr'.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8475>
2026-05-19 08:14:25 +00:00
Rudraksha Gupta 72a0c1bcdf linux-pine64-pinephonepro: update maintainers
Signed-off-by: Rudraksha Gupta <guptarud@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8475>
2026-05-19 08:14:25 +00:00
Stanley cf53008b99 device-amlogic-aarch64-tvbox: add B860H V1/V2 kernel subpackage
Add kernel_b860h subpackage for the ZTE B860H V1/V2 TV box (S905X/GXL).
Uses meson-gxl-s905x-b860h.dtb and u-boot-amlogic-s905x-tv bootloader.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8552>
2026-05-19 07:37:53 +00:00
Stanley bac841dcae linux-postmarketos-amlogic: add ZTE B860H V1/V2 DTS
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8552>
2026-05-19 07:37:53 +00:00
postmarketOS CI b9ff9eb459 linux-next: upgrade to next-20260518 2026-05-19 04:38:47 +00:00
Antoine Martin c1a6b50512 linux-postmarketos-rockchip: upgrade to 7.0.8
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8581>
2026-05-18 22:48:34 +00:00
Aster Boese 5e7cac3f31 docs: document requirement for mainline kernels to be built with LLVM
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8546>
2026-05-18 20:48:08 +00:00
Aster Boese aacb35f760 docs: document version cutoff for mainline kernels
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8546>
2026-05-18 20:48:08 +00:00
Paul Sajna cf1442a458 firmware-lg-judy: drop
It was intended to support judyln and judyp but that didn't pan out.

It's causing a mess for judyln and no one is actively testing judyp

judyln has a separate firmware package now

Signed-off-by: Paul Sajna <sajattack@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8469>
2026-05-18 18:20:06 +00:00
Paul Sajna dd727b6876 firmware-lg-judyln: Firmware package for lg-judyln on Linux 7.1
Initially when I made firmware-lg-judy,
I was hoping the firmware from judyln would help judyp as well
But now the firmware paths have changed in 7.1.

I will add firmware for judyp to a new package later on when I have
a device to test it with.

Signed-off-by: Paul Sajna <sajattack@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8469>
2026-05-18 18:20:06 +00:00
Clayton Craft 9f2a70f86a linux-postmarketos-asahi: upgrade to 7.0.8-1
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8576>
2026-05-18 17:44:02 +00:00
Dang Huynh 2c277f0284 linux-pine64-pinetab2: Upgrade to 7.0.6
Signed-off-by: Dang Huynh <dang.huynh@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8555>
2026-05-18 17:23:30 +00:00
Alexander Martinz 89af951da0 alsa-ucm-conf-sdm845: update to latest state
This consists of the following changes:
- starqltechn: add initial sound config
- Shift/axolotl: add symlink for u-boot
- SHIFT: axolotl: drop commented out sequence
- SHIFT: axolotl: HiFi: add q6voice routes
- SHIFT: axolotl: do not directly link uboot symlinks
- OnePlus: enchilada/fajita: add uboot symlink for newer kernels
- Xiaomi/beryllium: add Tianma UBoot symlink

Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8503>
2026-05-18 14:38:56 +00:00
Aelin 6e58c5099d issue_templates: Add archival deadline to maintainer status template
As agreed upon in the 2026-05-11 team meeting.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8531>
2026-05-18 14:12:23 +00:00
Ingo Reitz be7d39ff4d device-google-{bluejay,oriole,raven}: We dont have drm
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8537>
2026-05-18 14:06:07 +00:00
Hendra Manudinata ef935a7584 linux-samsung-j4lte: Update patches for recent boot fixes
Recent test shows that j4lte requires these patches to be able to boot
into postmarketOS, as well as some additional features to make it a little bit
more usable:

1. Disabling direct I/O patch

This is required to fix kernel panic during e2fsck performed by initramfs.
The root cause is still unknown and thus needs further investigation. But for now,
while we're in downstream kernel, temporarily add this hacky patch.

2. Initialize framebuffer later

This fixes kernel panics when `CONFIG_FRAMEBUFFER_CONSOLE` is enabled, caused by
unitialized pointers & mutex. This could be applied on other older Samsung devices that
use similar DECON.

Signed-off-by: Hendra Manudinata <hm@ndraa.xyz>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8574>
2026-05-18 14:02:28 +00:00
Aster Boese 92fa3601f6 .gitlab: add issue template for notifying maintainers of o-o-d kernels
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8579>
2026-05-18 14:00:21 +00:00
Stefan Hansson 27f0a8cf82 main/postmarketos-artwork: use cross-native2
The approach used by cross-native2 is more proper and less hacky than
cross-native, so let's use it here as we can without issues.

We can't rely on pmbootstrap defaulting to cross-native2 for noarch
packages since that was introduced with version 3.10.0 and we're still
at pmbootstrap_min_version=3.9.0, doesn't seem worth bumping it over
this.

[ci:skip-vercheck]: Changes don't affect resulting package.

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8558>
2026-05-18 13:57:35 +00:00
Aelin 89f19c239b device-qcom-sm7150: Drop accelerometer mount matrix
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8588>
2026-05-18 13:55:03 +00:00
Aelin 05b64abc5f firmware-xiaomi-tucana: Update with accelerometer mount matrix
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8588>
2026-05-18 13:55:03 +00:00
Aelin 55606d9bad firmware-xiaomi-sweet: Update with accelerometer mount matrix
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8588>
2026-05-18 13:55:03 +00:00
Aelin 2c385d799d firmware-xiaomi-surya: Update with accelerometer mount matrix
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8588>
2026-05-18 13:55:03 +00:00
Aelin 9c36cc31e1 firmware-xiaomi-davinci: Update with accelerometer mount matrix
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8588>
2026-05-18 13:55:03 +00:00
Aelin 4984469e9d linux-postmarketos-mainline: Upgrade to 7.1_rc4
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8589>
2026-05-18 12:42:48 +00:00
Aster Boese ab7a887f16 treewide: finish moving community firmware under /usr/
Modifies mkinitfs *.files files to expect firmware under `/usr/lib/` and
cleans up firmware installs missed by the initial migration.

https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4354

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8450>
2026-05-18 12:40:26 +00:00
Luca Weiss 176c093cd3 linux-postmarketos-qcom-milos: upgrade to 7.0.8
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8590>
2026-05-18 11:32:03 +00:00
Luca Weiss 7a08ba74cc linux-postmarketos-qcom-sm6350: upgrade to 7.0.8
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8591>
2026-05-18 11:13:39 +00:00
Luca Weiss 6862f4b5e2 linux-postmarketos-qcom-sc7280: upgrade to 7.0.8
Enable two new kconfig options for the NexPhone.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8570>
2026-05-18 11:10:53 +00:00
Ferass El Hafidi 59a119477e linux-postmarketos-amlogic: update modules install path
They should be installed to /usr/lib now.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7633>
2026-05-18 10:19:25 +00:00
Ferass El Hafidi de06982952 linux-postmarketos-amlogic: add zstd to depends
Also sort the list while at it.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7633>
2026-05-18 10:19:25 +00:00
Ferass El Hafidi db83412532 linux-postmarketos-amlogic: upgrade to 6.18.28
Also switch to kconfig fragments
(https://docs.postmarketos.org/pmaports/main/kconfig-fragments.html).

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7633>
2026-05-18 10:19:21 +00:00
Oliver Smith cb29632344 systemd/gnome-keyring: fix first login bug
Accessing gnome-keyring on first login is broken with systemd, apps
relying on a working keyring just hang or show errors. This is a known
bug since 2023 [1] with multiple open merge requests to fix the bug
[2][3][4]. Both Debian and Fedora have patched their packages to ship a
workaround [5][6].

From the available patches I've decided to use the one from Debian [4],
because I didn't see [2] being used in another distribution and [3]
doesn't seem to be as technically correct according to [7].

I've also tried to reproduce this problem with OpenRC, but it doesn't
happen there. Hence not applying the patch to Alpine.

[1]: https://gitlab.gnome.org/GNOME/gnome-keyring/-/work_items/137
[2]: https://gitlab.gnome.org/GNOME/gnome-keyring/-/merge_requests/69
[3]: https://gitlab.gnome.org/GNOME/gnome-keyring/-/merge_requests/78
[4]: https://gitlab.gnome.org/GNOME/gnome-keyring/-/merge_requests/99
[5]: https://src.fedoraproject.org/rpms/gnome-keyring/blob/rawhide/f/78.patch
[6]: https://salsa.debian.org/gnome-team/gnome-keyring/-/blob/debian/latest/debian/patches/gkd-login-Register-the-login-collection-on-dbus-on-creati.patch
[7]: https://gitlab.gnome.org/GNOME/gnome-keyring/-/merge_requests/78#note_2567002

Fixes: #3496
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8587>
2026-05-17 21:54:55 +00:00
Aelin 9d0b47c505 linux-postmarketos-stable: Upgrade to 7.0.9
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8584>
2026-05-17 20:39:59 +00:00
Achill Gilgenast 5abbd0f865 systemd/postmarketos-base-systemd: add preset for io.github.kolunmi.Bazaar.service
If the user installed bazaar, the service makes sure to e.g. continue
downloading apps and refresh flatpak metadata (which should make startup
faster) while being closed.

Note that we currently don't pre-install bazaar on any UI, but will
bring a benefit to those who choose to manually install it.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8583>
2026-05-17 16:48:19 +00:00
Aelin 73ccd45c93 linux-postmarketos-stable: Upgrade to 7.0.8
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8568>
2026-05-17 16:44:49 +02:00
Oliver Smith 7f09128ba4 extra-repos/systemd: plasma: disable riscv64
build-edge-riscv64 currently shows "lost" as status on
https://build.alpinelinux.org/. Let's disable riscv64 for these packages
again so we can update the packages for the other arches.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8572>
2026-05-17 14:27:38 +02:00
Bart Ribbers 3f960c6ac2 systemd/plasma*: upgrade to 6.6.5
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8572>
2026-05-17 14:23:19 +02:00
Eisenbahnfan a2d63ae730 u-boot-exynos5420: Fix slow EFI boot time
CONFIG_EFI_GRUB_ARM32_WORKAROUND always disables the caches and mmu. EFI
requires that those are enabled. As a result it takes long to uncompress
the vmlinuz file.

The new u-boot release has this option disabled and thus boots far faster.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8571>
2026-05-17 11:25:59 +00:00
Paul Sajna f077d2a1db kconfig-generic: Enable MIDI sequencer and CH341 USB-UART
Quoth /sound/core/seq/Kconfig:
"Many programs require this feature, so you should enable it
unless you know what you're doing."

I'm using my google-wormdingler tablet for some music production stuff
and these missing Kconfigs are really grinding my gears.

The USB-UART is part of my MIDI adapter, but is also quite a common
chip used for many things, including a bunch of arduinos.

Other configs for MIDI are enabled by default, but for whatever reason
the core sequencer device isn't.

Signed-off-by: Paul Sajna <sajattack@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8577>
2026-05-16 14:41:00 -07:00
Ferass El Hafidi ceb1d85e82 main/postmarketos-duranium: don't pass -v to losetup
See previous initramfs commit message for reasoning.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8573>
2026-05-15 21:16:04 +00:00
Ferass El Hafidi f1d5764f16 main/postmarketos-initramfs: remove -v from losetup args
It was removed in
https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/sys-utils/losetup.c?id=7e27c815979986666f78696adcfd5d13eab5df36
as it apparently had no effect on anything. Now that it is removed, the
initramfs still trying to use it is making complain and do nothing,
which results in boot failure.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8573>
2026-05-15 21:16:04 +00:00
Aelin b04ad535bf linux-postmarketos-lts: Upgrade to 6.18.31
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8569>
2026-05-15 16:40:55 +02:00
Ferass El Hafidi f13be0f6b7 main/postmarketos-bootsplash: revert to killing plymouth using an openrc service
plymouth-openrc-plugin (and any other OpenRC plugins really) trigger a
bug in OpenRC that only happens on musl-based systems, which can result
in a hang if a service fails.

A PR has been submitted to OpenRC to fix this bug. While the PR is
waiting for review and merging, work around this by reverting to killing
the splash from an OpenRC service to at least no longer trigger this
bug. See pmaports#4536 for more context.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8560>
2026-05-15 11:33:14 +00:00
Aster Boese 921c30190b kconfigcheck: add CONFIG_RUST=y to category:rust
category:rust was actually not added to *enable* Rust support in the kernel,
but to add options needed by kernels that had *already* enabled Rust. Since
the category was meant for kernels with Rust enabled, enabling Rust support
with the category makes sense and fits better with the category name to clear
up any confusion kernel package maintainers may have.

See 5cbd09c81c

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8559>
2026-05-15 10:53:09 +02:00
Aelin d43fb9230e linux-postmarketos-lts: Upgrade to 6.18.30
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8565>
2026-05-15 01:22:54 +00:00
Aelin fa890a3978 linux-postmarketos-stable: Upgrade to 7.0.7
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8564>
2026-05-15 00:15:08 +02:00
Aelin 0fefc4d2e7 cross/arch-bin-masquerade: remove
This package appears to be unused as I was not able to find any
references to it. The last references to it in pmaports history are from
2019 when distcc was still being used.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8554>
2026-05-14 04:28:21 +00:00
Aelin 8449ea7ef9 linux-postmarketos-qcom-sm7150: Upgrade to 7.1_rc3
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8544>
2026-05-14 04:19:28 +00:00
Ingo Reitz 0e9ad37eb4 linux-postmarketos-gs101: update to 7.0.6
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8188>
2026-05-14 04:05:47 +00:00
Stefan Hansson 2dec667f00 CI: Add check for required pmbootstrap version's age
While ideally everyone would be running the latest pmbootstrap version,
in practice people don't always update right away. And even if they want
to, their distribution may not have the latest version packaged yet.
Let's enforce some wiggle room here so distributions have time to catch
up before we require newer versions.

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8550>
2026-05-13 21:16:39 +00:00
Antoine Martin 5fa1e809b5 linux-postmarketos-rockchip: upgrade to 7.0.6
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8529>
2026-05-13 19:44:25 +00:00
Luca Weiss bc4c31a336 linux-postmarketos-qcom-msm8974: update to latest kconfig
Manual kconfig changes:
* CACHEFILES=m (category:netmount)
* CRYPTO_CAMELLIA=m (category:netmount)
* CRYPTO_CTS=y (category:netmount)
* FSCACHE=y (category:netmount)
* NFS_FSCACHE=y (category:netmount)
* NFS_V4_2=y (category:netmount)
* NFSD=m (category:netmount)
* NFSD_V3_ACL=y (category:netmount)
* NFSD_V4=y (category:netmount)
* NFSD_PNFS=y (category:netmount)
* NFSD_BLOCKLAYOUT=y (category:netmount)
* NFSD_SCSILAYOUT=y (category:netmount)
* NFSD_V4_2_INTER_SSC=y (category:netmount)
* RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y (category:netmount)
* RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y (category:netmount)
* RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA=y (category:netmount)
* CRYPTO_AES_TI=m (category:netmount)
* NFS_V4_1=y (category:netmount)
* ACCESSIBILITY=y (category:accessibility)
* A11Y_BRAILLE_CONSOLE=y (category:accessibility)
* SPEAKUP=m (category:accessibility)
* SPEAKUP_SYNTH_ACNTSA=m (category:accessibility)
* SPEAKUP_SYNTH_APOLLO=m (category:accessibility)
* SPEAKUP_SYNTH_AUDPTR=m (category:accessibility)
* SPEAKUP_SYNTH_BNS=m (category:accessibility)
* SPEAKUP_SYNTH_DECTLK=m (category:accessibility)
* SPEAKUP_SYNTH_DECEXT=m (category:accessibility)
* SPEAKUP_SYNTH_LTLK=m (category:accessibility)
* SPEAKUP_SYNTH_SOFT=m (category:accessibility)
* SPEAKUP_SYNTH_SPKOUT=m (category:accessibility)
* SPEAKUP_SYNTH_TXPRT=m (category:accessibility)
* SECURITY_DMESG_RESTRICT=y (category:hardening)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8535>
2026-05-13 18:42:06 +00:00
Aelin 05ddca189d alsa-ucm-conf-qcom-sm7150: Upgrade to 1.2.15.3_git20260513
This adds symlinks for newer kernels and rebases it on upstream
alsa-ucm-conf.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8542>
2026-05-13 12:24:51 +00:00
bluebunny 4ca8c56900 generic-x86_64: recommend fwupd
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8551>
2026-05-13 20:33:28 +09:00
Aelin c7e2196f35 device-qcom-sm7150: Re-enable splash screen
pbsplash was broken on this device, but plymouth works completely fine,
so we can re-enable the splash screen and just drop the kernel cmdline
configuration.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8541>
2026-05-12 23:02:40 +00:00
Aelin 531c8cdcaa ci: Run armv7 jobs on native runner
We now have a runner capable of running 32-bit ARM jobs natively, so
switch to it to relieve the QEMU runner and get faster builds.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8539>
2026-05-12 21:03:00 +02:00
Aelin 2b26a11a85 ci: Tag aarch64 builds for aarch64 rather than arm64
Our aarch64 runners are tagged with both the aarch64 and the arm64 tag,
let's use the aarch64 tag to be consistent with the architecture naming
in APK.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8539>
2026-05-12 20:46:34 +02:00
bluebunny 3104b0b1e1 device-xiaomi-pipa: switch to EFI booting via U-Boot
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8536>
2026-05-12 16:22:07 +00:00
bluebunny c5493a9ad8 linux-xiaomi-pipa: upgrade to 7.0.6
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8536>
2026-05-12 16:22:07 +00:00
adamthiede 34ce832637 main/postmarketos-base: nosplash subpkg provide bootsplash virtual pkg
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8506>
2026-05-12 16:09:31 +00:00
adamthiede e881e9b51c main/postmarketos-base-ui: depend on bootsplash virtual package
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8506>
2026-05-12 16:09:31 +00:00
adamthiede fd36a1f665 main/postmarketos-bootsplash: provide virtual package
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8506>
2026-05-12 16:09:31 +00:00
Joel Selvaraj 67672bfcdf device-shift-axolotl: include panel driver to initfs
Needed for panel to work in FDE.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8446>
2026-05-11 19:26:50 -05:00
Joel Selvaraj f9818877c8 device-google-blueline: depend on userspace pd-mapper
Currently there is a bug in in-kernel pd-mapper (https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/3481).
So we depend on userspace pd-mapper in all sdm845 devices. Do the same here.
Required to get wifi and audio working.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8446>
2026-05-11 19:26:50 -05:00
Joel Selvaraj b8d769b1fb firmware-google-blueline: depend on qca fw and update fw path
Depend on upstream qca firmware for bluetooth and update fw paths as per
upstream kernel changes.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8446>
2026-05-11 19:26:50 -05:00
Joel Selvaraj bdb295daa1 firmware-shift-sdm845: update fw path as per upstream kernel changes
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8446>
2026-05-11 19:26:50 -05:00
Joel Selvaraj 0b38dbbe01 firmware-xiaomi-beryllium: update fw path as per upstream kernel changes
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8446>
2026-05-11 19:26:50 -05:00
Joel Selvaraj 8621428523 firmware-oneplus-sdm845: update fw path as per upstream kernel changes
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8446>
2026-05-11 19:26:50 -05:00
Joel Selvaraj 2b81e08dbc linux-postmarketos-qcom-sdm845: upgrade kernel to 7.1rc1
Also install modules into /usr.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8446>
2026-05-11 19:24:28 -05:00
Aelin c57ccbf57b linux-postmarketos-mainline: Upgrade to 7.1_rc3
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8528>
2026-05-11 22:46:43 +00:00
Andreas Kemnade f9357ff76b linux-epson-embt2ws: Update to 7.0.6
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8527>
2026-05-11 20:27:27 +00:00
Luca Leonardo Scorcia d64e7f263b main/postmarketos-mkinitfs-hook-netboot: remove redundant 'ERROR:' prefix
Remove the now redundant 'ERROR:' prefix.

Signed-off-by: Luca Leonardo Scorcia <l.scorcia@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8526>
2026-05-11 19:14:26 +00:00
Luca Leonardo Scorcia 2a350af160 main/postmarketos-mkinitfs-hook-netboot: update show_splash calls for plymouth
The show_splash function has been replaced by splash_show,
splash_set_message and splash_set_error, but the netboot hook still calls
the old function, logging errors in boot dmesg.

Signed-off-by: Luca Leonardo Scorcia <l.scorcia@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8526>
2026-05-11 19:14:26 +00:00
adamthiede 8dda93f2e4 linux-postmarketos-mediatek-mt8173: upgrade to 7.0.6 and update config
- Once again, another vuln: https://lwn.net/Articles/1071775/
- Adding required kconfig items

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8514>
2026-05-11 19:09:04 +00:00
Pablo Correa Gómez ff3de1ac4d main/postmarketos-base: drop innefective empty replaces
The main package does not have a replaces, so this is just redundant

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8522>
2026-05-11 18:39:10 +00:00
Pablo Correa Gómez 38c285af62 main/postmarketos-base-nofde: integrate as postmarketos-base subpackage
This is pretty pointless as an independent subpackage

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8522>
2026-05-11 18:39:10 +00:00
Pablo Correa Gómez 747fca72f1 main/postmarketos-base-nofde: drop inneffective provider_priority
It's ignored whenever the provides is versioned!

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8522>
2026-05-11 18:39:07 +00:00
Pablo Correa Gómez c3fb6da297 main/unl0kr: fix postmarketos-fde-unlocker provider not being versioned
And therefore remove the unnecessary "provider_priority". The
postmarketos-base-nofde is already versioned, and there is no situation
in which having both unl0kr and postmarketos-base-nofde installed
makes sense.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8522>
2026-05-11 18:39:03 +00:00
Steven Lamphear 7c57ec6983 device-fairphone-fp6: move sim-wait-time.conf to -systemd subpackage
Co-authored by: @craftyguy

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8428>
2026-05-11 17:29:20 +00:00
Steven Lamphear eb61326447 device-fairphone-fp6: fix sim detection on cold boot
On cold boot, msm-modem-uim-selection's default 4-second SIM
detection timeout expires before the modem's UIM service is ready,
leaving ModemManager stuck in a "sim-missing" failed state and
requiring the user to manually run `systemctl restart ModemManager`.

Install a systemd drop-in override that increases SIM_WAIT_TIME from
the default 4 seconds to 30 seconds, giving the modem enough time to
finish initializing on this device.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8428>
2026-05-11 17:29:20 +00:00
Luca Leonardo Scorcia 79325d16d5 main/postmarketos-initramfs: fix leftover pbsplash call in debug_shell
The hide_splash function has been renamed to splash_hide.

Signed-off-by: Luca Leonardo Scorcia <l.scorcia@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8525>
2026-05-11 09:23:29 +00:00
bluebunny 299759f051 linux-postmarketos-exynos7870: set CONFIG_NLS_ASCII, sync kconfig, install modules to /usr
Without CONFIG_NLS_ASCII=y, the kernel fails to boot from fat32 ESP.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8515>
2026-05-11 09:19:50 +00:00
bluebunny 768de0abe4 firmware-samsung-{a2corelte,j6lte,on7xelte}: drop
Bluetooth firmware are all in upstream linux-firmware-brcm, and Wi-Fi can be
functional by symlinking inside the device package.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8515>
2026-05-11 09:19:50 +00:00
bluebunny 3dd9d1522f device-samsung-{a2corelte,j6lte,j7xelte,on7xelte}: drop
Switch to generic port samsung-exynos7.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8515>
2026-05-11 09:19:50 +00:00
bluebunny 8e343f6183 samsung-exynos7: switch to generic port for {a2corelte,j6lte,j7xelte,on7xelte}
Add myself as a co-maintainer.

Simplify the device name across APKBUILD and deviceinfo.

Depend on linux-firmware-brcm and add all related symlinks for enabling Wi-Fi support.

Follow the device package template for generic kernels [1] and add the close-to-mainline
kernel alongside the generic kernels. This is done because vanilla upstream kernels are
not very usable at the moment. (e.g. Wi-Fi doesn't work at all, j7xelte doesn't boot
due to lack of proper DRM)

[1]: https://docs.postmarketos.org/pmaports/main/generic-kernels.html#device-package-template

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8515>
2026-05-11 09:19:50 +00:00
Antoine Martin 522114f550 device-clockworkpi-uconsole-rpi: take maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8524>
2026-05-11 06:00:11 +00:00
Stefan Hansson 8133df094d Revert "main/postmarketos-mkinitfs-hook: merge mkinitfs-hook packages into one"
This breaks pmbootstrap's hook handling.

Closes https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/work_items/2759

This reverts commit 38ccc2ac8a.

[ci:skip-vercheck]: These aren't "new" packages per se.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8511>
2026-05-10 13:43:38 +00:00
Stefan Hansson aa19f54ef9 Revert "ci: shellcheck: update mkinitfs hook paths"
This reverts commit 59beb3ba91.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8511>
2026-05-10 13:43:38 +00:00
Aster Boese 30b14c3938 lynx-r1: add maintainer
See https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4445#note_551859

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8523>
2026-05-10 10:37:21 +02:00
Luca Weiss c8c48bb2d3 linux-postmarketos-qcom-sm6350: upgrade to 7.0.5
* CACHEFILES=m (category:netmount)
* CRYPTO_CAMELLIA=m (category:netmount)
* CRYPTO_CTS=y (category:netmount)
* FSCACHE=y (category:netmount)
* NFS_FS=m (category:netmount)
* NFS_FSCACHE=y (category:netmount)
* NFS_V3=m (category:netmount)
* NFS_V4=m (category:netmount)
* NFS_V4_2=y (category:netmount)
* NFSD=m (category:netmount)
* NFSD_V3_ACL=y (category:netmount)
* NFSD_V4=y (category:netmount)
* NFSD_PNFS=y (category:netmount)
* NFSD_BLOCKLAYOUT=y (category:netmount)
* NFSD_SCSILAYOUT=y (category:netmount)
* NFSD_V4_2_INTER_SSC=y (category:netmount)
* RPCSEC_GSS_KRB5=m (category:netmount)
* RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y (category:netmount)
* RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y (category:netmount)
* RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA=y (category:netmount)
* ACCESSIBILITY=y (category:accessibility)
* A11Y_BRAILLE_CONSOLE=y (category:accessibility)
* SPEAKUP=m (category:accessibility)
* SPEAKUP_SYNTH_ACNTSA=m (category:accessibility)
* SPEAKUP_SYNTH_APOLLO=m (category:accessibility)
* SPEAKUP_SYNTH_AUDPTR=m (category:accessibility)
* SPEAKUP_SYNTH_BNS=m (category:accessibility)
* SPEAKUP_SYNTH_DECTLK=m (category:accessibility)
* SPEAKUP_SYNTH_DECEXT=m (category:accessibility)
* SPEAKUP_SYNTH_LTLK=m (category:accessibility)
* SPEAKUP_SYNTH_SOFT=m (category:accessibility)
* SPEAKUP_SYNTH_SPKOUT=m (category:accessibility)
* SPEAKUP_SYNTH_TXPRT=m (category:accessibility)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8512>
2026-05-09 23:07:35 +00:00
Luca Weiss fec2d011a2 linux-postmarketos-qcom-sc7280: upgrade to 7.0.5
Enable all the 'accessibility' options as well.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8498>
2026-05-09 23:05:00 +00:00
Sicelo A. Mhlongo 33cea5f892 linux-postmarketos-omap: Add accessibility kconfigs
Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8471>
2026-05-09 18:29:24 +00:00
Sicelo A. Mhlongo 6b6306918c linux-postmarketos-omap: add CFI compatibility patch
omap4_finish_suspend is defined in arm assembly and is thus invisible to CFI,
causing errors when called directly as .finish_suspend. Wrap it in a function
which calls the assembly function.

The goal is to upstream the patch.

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8471>
2026-05-09 18:29:24 +00:00
Sicelo A. Mhlongo 66f3535d7a linux-postmarketos-omap: add upstreamable hsi fix
Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8471>
2026-05-09 18:29:21 +00:00
Sicelo A. Mhlongo 75141b778c linux-postmarketos-omap: upgrade to 7.0.5
In addition to the version upgrade:
 1. Drop DTS patch for volume keys. These will be handled via hwdb
 2. Drop CONFIG_FW_LOADER_USER_HELPER. It was required by the LED controller
    (lp5523) driver until Linux 6.19
 3. Restore TWL4030_PWRBUTTON, and make it built-in (in readiness for plymouth)
 4. Drop HSI patch. To be replaced with a better quality patch which will be
    upstreamed
 5. The remainder of changes are from kconfig migrate

 Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8471>
2026-05-09 18:29:17 +00:00
Ferass El Hafidi 85e89db86a main/postmarketos-base-ui-plasma: switch _pmb_recommends to depends for -kaccounts
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8507>
2026-05-09 08:56:07 +00:00
Ferass El Hafidi 0f35b43684 main/postmarketos-ui-plasma-mobile: switch _pmb_recommends to depends
for subpackages

Apparently pmbootstrap doesn't look in subpackages for _pmb_recommends.

Suggested-by: Clayton Craft <craftyguy@postmarketos.org>
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8507>
2026-05-09 08:56:07 +00:00
adamthiede dca2d19532 linux-postmarketos-mediatek-mt81: upgrade to 6.18.28 and update kconfig
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8516>
2026-05-09 01:56:21 +00:00
Andreas Kemnade 76b2ad1c28 linux-postmarketos-imx-ereader: Update to 7.0
- backlight for kobo-clara2e
- remove upstreamed wifi fix, add another one
- make kconfigcheck happy

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8492>
2026-05-08 23:44:34 +00:00
Pablo Correa Gómez 6112038d86 docs: remove requirement for maintainer from community devices
This is a general packaging guideline.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8508>
2026-05-08 21:49:46 +00:00
Pablo Correa Gómez e3f06aba45 docs: add section about maintainership to packaging guidelines
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8508>
2026-05-08 21:49:46 +00:00
Pablo Correa Gómez b293a8e354 docs: place the provides section of the packaging guidelines at the end
It is quite massive, and therefore let's put the simpler things
first. If things keep growing, at some point it would make sense to
move it out to a subpage.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8508>
2026-05-08 21:49:43 +00:00
Luca Weiss a90be8cc48 linux-postmarketos-qcom-milos: upgrade to 7.0.5
Manual kconfig changes:
* CACHEFILES=m (category:netmount)
* CRYPTO_CAMELLIA=m (category:netmount)
* CRYPTO_CTS=y (category:netmount)
* FSCACHE=y (category:netmount)
* NFS_FS=m (category:netmount)
* NFS_FSCACHE=y (category:netmount)
* NFS_V3=m (category:netmount)
* NFS_V4=m (category:netmount)
* NFS_V4_2=y (category:netmount)
* NFSD=m (category:netmount)
* NFSD_V3_ACL=y (category:netmount)
* NFSD_V4=y (category:netmount)
* NFSD_PNFS=y (category:netmount)
* NFSD_BLOCKLAYOUT=y (category:netmount)
* NFSD_SCSILAYOUT=y (category:netmount)
* NFSD_V4_2_INTER_SSC=y (category:netmount)
* RPCSEC_GSS_KRB5=m (category:netmount)
* RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y (category:netmount)
* RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y (category:netmount)
* RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA=y (category:netmount)
* ACCESSIBILITY=y (category:accessibility)
* A11Y_BRAILLE_CONSOLE=y (category:accessibility)
* SPEAKUP=m (category:accessibility)
* SPEAKUP_SYNTH_ACNTSA=m (category:accessibility)
* SPEAKUP_SYNTH_APOLLO=m (category:accessibility)
* SPEAKUP_SYNTH_AUDPTR=m (category:accessibility)
* SPEAKUP_SYNTH_BNS=m (category:accessibility)
* SPEAKUP_SYNTH_DECTLK=m (category:accessibility)
* SPEAKUP_SYNTH_DECEXT=m (category:accessibility)
* SPEAKUP_SYNTH_LTLK=m (category:accessibility)
* SPEAKUP_SYNTH_SOFT=m (category:accessibility)
* SPEAKUP_SYNTH_SPKOUT=m (category:accessibility)
* SPEAKUP_SYNTH_TXPRT=m (category:accessibility)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8513>
2026-05-08 16:19:27 +00:00
postmarketOS CI 18f6788502 linux-next: upgrade to next-20260508 2026-05-08 15:38:50 +00:00
Aelin 43e3d13a3e linux-postmarketos-lts: Upgrade to 6.18.27
And patch the ESP part of dirtyfrag.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8510>
2026-05-08 00:18:54 +00:00
Aelin fbd16e84e6 linux-postmarketos-stable: Upgrade to 7.0.4
And patch the ESP part of dirtyfrag.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8509>
2026-05-08 00:16:36 +00:00
postmarketOS CI 7774d016a5 linux-next: upgrade to next-20260507 2026-05-07 21:30:48 +00:00
Casey Connolly 3622865c9e CI: fix autoupdate
Reference the main branch instead of master.

Signed-off-by: Casey Connolly <kcxt@postmarketos.org>
2026-05-07 23:14:34 +02:00
bluebunny baa112b246 kconfig-generic: enable upstream configs for sm8250
These are some configs in the mainline kernel for supporting sm8250 devices.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8504>
2026-05-08 02:57:00 +09:00
Aster Boese 9153c26779 kconfig-generic: sort alphanumerically
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8440>
2026-05-07 17:22:41 +00:00
Aster Boese 943ad8bb9e kconfig-generic: enable upstream configs for sdm845
These are not all the required configs for running mainline on sdm845, only the
ones that are in the upstream kernel.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8440>
2026-05-07 17:22:41 +00:00
Pablo Correa Gómez 0b505f0189 docs: cleanup wording of device-categorization.
"2021-11" is completely unnecessary at this point, and adding that the
kernel must be upgraded regularly is redundant with the requirement of
3 kernel releases and a lot less objective. So keep the objective
wording and remove the one very up for interpretation.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8505>
2026-05-07 16:44:53 +00:00
Pablo Correa Gómez 5e180a8f0b docs: fix heading level of archived category
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8505>
2026-05-07 16:44:53 +00:00
Steven Lamphear ec2040aad2 linux-postmarketos-allwinner: fetch tarball from GitHub mirror
The codeberg tarball fetch was timing out the verify-checksums CI job
(no bytes received after TCP/TLS handshake for 15 minutes). Switch to
Arnav Singh's GitHub mirror of megi's tree, which mirrors the same tag
(orange-pi-6.18-20260105-0049).

The recorded sha512sum changes because GitHub and Gitea (codeberg)
generate tarballs with different bytes for the same git tag.

Also adjust builddir, since GitHub's tarball top-level directory is
named "<repo>-<tag>" (linux-orange-pi-6.18-20260105-0049/) where
codeberg's was just "<repo>" (linux/).

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8501>
2026-05-07 08:38:00 -05:00
Steven Lamphear bed6fee4cf linux-postmarketos-allwinner: install modules to /usr/lib/modules
Required by .ci/grep.sh as of c883d781bd. Matches the pattern already in linux-postmarketos-{mainline,lts,stable}

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8501>
2026-05-07 08:17:51 -05:00
Steven Lamphear 56ab46e628 linux-postmarketos-allwinner: fix rtl8723cs CFI panic on PinePhone
The rtl8723cs staging driver in megi's tree [declares rtw_xmit_entry as returning int](https://codeberg.org/megi/linux/src/tag/orange-pi-6.18-20260105-0049/drivers/staging/rtl8723cs/os_dep/linux/xmit_linux.c#L513), but the kernel core's net_device_ops::ndo_start_xmit [expects netdev_tx_t](https://codeberg.org/megi/linux/src/commit/6519f78239276e5d14698135fe05aa3206947ab9/include/linux/netdevice.h#L1413). With kCFI enabled on aarch64 the indirect call from dev_hard_start_xmit traps on the type-hash mismatch, panicking the kernel as soon as wpa_supplicant sends a frame. This patch changes rtw_xmit_entry's return type to netdev_tx_t (the function already returns 0, which is NETDEV_TX_OK).

Tested on a PinePhone 1.2 with both an SD-card install and an eMMC install: wifi associates and remains stable, no CFI panic. The eMMC install had previously been connected to wifi, so it froze during boot; the SD-card install was new, but would freeze (and eventually crash) upon attempting to connect to wifi.

Closes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4507
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8501>
2026-05-07 08:17:51 -05:00
Aster Boese 38566839db systemd/postmarketos-base-systemd: fix VT auto allocation
For systemd-logind to allocate VTs automatically when a user switches to them, two
things need to be done. First, logind.conf needs `NAutoVTs=` set to a value, which
in this change is set to the default. Second, getty@.service needs to be symlinked
to autovt@.service, otherwise systemd-logind fails to find the template file.

This change also moves logind.conf to the proper path under `/usr/lib/systemd/`
instead of the sysadmin override path under `/etc/systemd/` and alphanumerically
sorts the sources.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8496>
2026-05-06 19:02:02 +00:00
Aster Boese 029b539827 kconfigcheck: add accessibility category
Enables the basic kernel interfaces for the kernel braille and
speakup support.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7429>
2026-05-06 16:10:53 +00:00
Andreas Kemnade 5fd2a894fe u-boot-kobo-librah2o: take over maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8491>
2026-05-06 05:50:55 +00:00
Andreas Kemnade b4239c35a8 device-kobo-librah2o: take over maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8491>
2026-05-06 05:50:55 +00:00
Clayton Craft 8d657c1c3f main/postmarketos-base: update nosplash kernel cmdline config
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:20 -07:00
Clayton Craft 92db54cf94 main/postmarketos-mkinitfs: add trigger for plymouth
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:20 -07:00
Clayton Craft 084013fac5 main/postmarketos-initramfs: replace pbsplash with plymouth
This also drops support for pmos.no-splash, since removing `splash` from
the kernel cmdline will effectively prevent Plymouth from showing the
splash screen.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>

[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:20 -07:00
Clayton Craft 3f67ce725c main/postmarketos-bootsplash: Clayton take over maintaining
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:19 -07:00
Clayton Craft c9d6c3b56e main/postmarketos-bootsplash: replace pbsplash with plymouth
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:19 -07:00
Clayton Craft 2c16da8777 main/postmarketos-plymouth-themes: new aport
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:19 -07:00
Andreas Kemnade 608d19a9d7 u-boot-tolino-shine3: MAINTAINER
I have kobo-clarahd and tolino-shine2hd.
kobo-clarahd uses the same board as tolino-shine3, but another
pin-compatible but not software-compatible SoC is installed
tolino-shine2hd uses the same SoC as the tolino-shine3.
So if things are working on both of the devices, it is almost
safe to assume that they will also work on the tolino-shine3.
Based on that assumption add me as a maintainer.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8490>
2026-05-05 17:43:02 +00:00
Andreas Kemnade e4f3682b35 device-tolino-shine3: MAINTAINER
I have kobo-clarahd and tolino-shine2hd.
kobo-clarahd uses the same board as tolino-shine3, but another
pin-compatible but not software-compatible SoC is installed
tolino-shine2hd uses the same SoC as the tolino-shine3.
So if things are working on both of the devices, it is almost
safe to assume that they will also work on the tolino-shine3.
Based on that assumption add me as a maintainer.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8490>
2026-05-05 17:43:02 +00:00
Oliver Smith c52e7b1556 docs: add release documentation
Move and update release documentation from these wiki pages to pmaports
docs:
* https://wiki.postmarketos.org/wiki/Releases
* https://wiki.postmarketos.org/wiki/Creating_a_release_branch#Timeline

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8486>
2026-05-05 12:48:41 +00:00
Oliver Smith c614719e7a issue_templates: add Release_EOL.md
Move the contents of this wiki page into an issue template and modernize
it a bit while at it:
https://wiki.postmarketos.org/wiki/Creating_a_release_branch#Drop_phase

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8486>
2026-05-05 12:48:41 +00:00
Oliver Smith ca732c1fb7 issue_templates: add Release_Infrastructure.md
Move the contents of this wiki page into an issue template and modernize
it a bit while at it:
https://wiki.postmarketos.org/wiki/Creating_a_release_branch#Detailed_tasks_for_Team

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8486>
2026-05-05 12:48:41 +00:00
Paul Sajna 185e92dba7 device-lg-judyp: MAINTAINER
I now have one of these in my posession and I'm working on extracting the firmware and fixing up the DTB to get it working properly again.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8483>
2026-05-05 01:55:44 +00:00
Clayton Craft 37c9314dbe main/postmarketos-duranium: merge sysexts in initramfs
This merges system extensions in the initramfs, right before
switch_root, so that the rootfs boot always has the full merged /usr
right from the start. It fixes ordering issues like binfmt starting
before /usr/lib/binfmt.d was merged, and ultimately not working as
expected.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8426>
2026-05-04 15:53:33 -07:00
Clayton Craft f61687b60d main/postmarketos-duranium: support "self hosting"
This will allow folks to easily run mkosi, e.g. for building duranium
images. This makes duranium self-hosting.

There are several key changes in this patch:

- mkosi is added to the duranium developer tools sysext

- user qemu is added to the dev tools sysext (for binfmt+qemu)

- coreutils is added to the main pkg to work around a conflict that Alpine
has with mkosi (see: https://github.com/systemd/mkosi/pull/4283). The
issue is that the busybox symlinks installed in the base duranium image
are not replaced by mkosi when it generates a system extension even if
that sysext pulls in coreutils. coreutils isn't *that* big, so it makes
sense to just have these links correct in the base image.

- duranium dev. tools depends on apk-tools. Wait, what?! mkosi uses
apk to bootstrap a tools tree for building pmOS images. Since we don't
actually want apk to work when run against the duranium rootfs, this
also installs a wrapper that refuses to run apk if it detects that it's
being used "unsafely". To be clear, running apk on duranium's rootfs
won't change /usr or break duranium, but it will: 1) fail, 2) create
confusing state in /etc, /var.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8426>
2026-05-04 15:53:16 -07:00
Clayton Craft fc5554ef5c main/postmarketos-base: split apk-tools into -apk subpkg
It doesn't make sense to install apk by default in all flavors of pmOS,
like duranium. To avoid this, apk-tools is moved into a new -apk
subpackage that is pulled in implicitly via install_if. This has the
following benefits:

- postmarketos-duranium can "depend" on !postmarketos-base-apk to
exclude apk-tools

- apk-tools remains a dependency in existing mutable pmOS installs,
so it shouldn't be purged by this change 🤞

- we don't have to update hundreds of APKBUILDs in pmaports that
explicitly depend on `postmarketos-base` to now depend on some other
package that doesn't have apk-tools as an explicit dependency.

After this change, we'll be able to remove some janky cleanup code in
the duranium image build config for uninstalling apk-tools from the base
image, and it will allow us to *add* apk-tools in a system extension
later [1]

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>

1. https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4502

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8426>
2026-05-04 15:53:16 -07:00
Scott C 83b13b1ad0 device-barnesnoble-encore: Become maintainer and add udev rule for touchscreen
I've added support for this device and continue to work on it, so
become maintainer.

Udev rule is just a slight tweak to the one generated by pmbootstrap
when touchscreen details are in deviceinfo, except use the device
name instead of /dev/input/eventX, whose number varies each boot.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8470>
2026-05-04 20:05:31 +00:00
Aelin c1ed6289e2 kconfigcheck: Require the improved NTFS driver in 7.1+
Linux 7.1 introduces a new NTFS driver that is more compatible than
NTFS3, faster and has more features. Let's switch to it for kernel
versions where it is available.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8484>
2026-05-04 14:24:22 +00:00
Aster Boese c883d781bd ci: grep: enforce installing kernel modules to /usr/lib/modules/
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8374>
2026-05-04 09:43:12 +02:00
Affe Null 784f73e155 firmware-jolla-c2: remove boot subpackage
Do not package proprietary bootloader files in /boot since they are not
needed there.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8480>
2026-05-04 05:38:43 +00:00
Affe Null 9c64171a29 device-jolla-c2: remove firmware-jolla-c2-boot dependency
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8480>
2026-05-04 05:38:43 +00:00
Aelin b6ce0811df linux-postmarketos-mainline: Upgrade to 7.1_rc2
Also install modules to /usr/lib/modules rather than /lib/modules.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8482>
2026-05-04 04:51:14 +00:00
Aelin d2e6fed469 cross/gcc-*: regenerate to enable on aarch64
[ci:skip-vercheck]: architecture enablement

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8479>
2026-05-03 22:41:52 +00:00
Aelin 0cb96660c3 cross/musl-*: regenerate to enable for aarch64
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8479>
2026-05-03 22:41:52 +00:00
Aelin 616d3a5fcb linux-postmarketos-qcom-sm8250: Update source checksums
[ci:skip-vercheck]: moving between categories
[ci:skip-kconfigcheck]: moving between categories

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8398>
2026-05-03 20:35:10 +02:00
Aelin c66aa62e36 device-xiaomi-elish: Move to testing
The kernel package used by this device does not meet the community
kernel version requirements anymore and the maintainer has not responded
to the issue #4448 which notified them of the situation.

Since two weeks have passed without a request for more time, the device
should be moved to testing.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8398>
2026-05-03 20:35:06 +02:00
Tom Schlenker 1a3c003fda linux-postmarketos-qcom-sc7180: enable CROS_EC_CHARGECONTROL
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8477>
2026-05-03 16:11:35 +00:00
Kevin Widjaja 0726a31793 Move sony-togari to archive
I have not maintained the port for a while now and am currently unable to due to my Z Ultra being broken. The last status was the device was able to boot debug shell but unable to boot to pmos.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8465>
2026-05-03 15:51:40 +00:00
Aster Boese c08af97985 cross/gcc{4,6}-*: sync with compilers in main/
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8214>
2026-05-03 15:08:45 +00:00
Aster Boese f98e59c618 main/gcc{4,6}: fix license and options fields
license= is not touched by pmbootstrap's gcc aportgen, so we need to
fix it manually.

options= is edited to match the modern output of aportgen.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8214>
2026-05-03 15:08:45 +00:00
Aster Boese 345094da82 main/gcc{4,6}: remove fortify-headers from the default include path
gcc4 and gcc6 are only used for compiling downstream kernels these days.
Because these compilers are so old, most of fortify-headers does not even
work with them. As such, because downstream kernels have no security
guarantees, removing fortify-headers from the default include path
won't have any negative impacts on the distro.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8214>
2026-05-03 15:08:45 +00:00
Oliver Smith a3efbbedb4 Drop maintainership for jane400
She currently can't maintain these ports, drop the maintainership as we
had discussed in chat.

[ci:skip-vercheck]

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8478>
2026-05-03 13:15:49 +00:00
Stefan Hansson c6caa19a8f Revert "linux-postmarketos-allwinner: HACK: disable cross-native"
This was only needed as a temporary workaround[1].

This reverts commit a184bf63e2.

 [1]: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295#note_546725

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8476>
2026-05-03 09:27:01 +02:00
Rudraksha Gupta f43a60639d linux-pine64-pinephonepro: upgrade to 7.0
Update ppp kernel to 7.0

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8300>
2026-05-02 20:48:58 -07:00
Robert Eckelmann b91e6153b5 linux-postmarketos-grate: adopt latest changes in kconfig
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8422>
2026-05-03 10:20:03 +09:00
Robert Eckelmann a9e24a9109 linux-postmarketos-grate: add source by commit_id
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8422>
2026-05-03 10:20:03 +09:00
Robert Eckelmann 780a52b667 linux-postmarketos-grate: update maintainers
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8422>
2026-05-03 10:20:03 +09:00
Robert Eckelmann b5ffd1b480 linux-postmarketos-grate: fix dependencies
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8422>
2026-05-03 10:20:03 +09:00
Robert Eckelmann 7c32d93131 linux-postmarketos-grate: remove patch for wifi on Surface RT
This patch is now included in the source-tree

Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8422>
2026-05-03 10:20:03 +09:00
Robert Eckelmann 4262b265df linux-postmarketos-grate: upgrade to 7.0.1
- update url to new tegra-libre repo on codeberg
- kconfig migration done
- latest changes to kconfig reflected

Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8422>
2026-05-03 10:19:47 +09:00
Sicelo A. Mhlongo 71858694b3 device-nokia-n900: sway: workaround wlroots dpms bug
The sway 1.12 & wlroots 0.20 combination surfaces a dpms bug where the display
requires two attempts at turning it on after it has been set to off. Workaround
this until the issue is resolved.

Reference: https://gitlab.freedesktop.org/wlroots/wlroots/-/work_items/4026
Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8472>
2026-05-02 16:09:42 +02:00
Sicelo A. Mhlongo e51efc65b2 device-nokia-n900: drop xorg.conf
The X11 server can auto-configure things on its own.

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8472>
2026-05-02 16:09:42 +02:00
Sicelo A. Mhlongo fcbcb97a50 device-nokia-n900: Implement fixes for boot/init issues
1. Modernize the boot parameters uboot passes to the kernel
 2. Correct the volume keys. Upstream DTS actually sends F7 and F8 for these
       keys, which is the behavior from stock. Using hwdb to correct the keys
       allows us to drop the relevant DTS patch from linux-postmarketos-omap.
       Additionally add the hwdb database into initramfs to ensure the keys
       also work during system initialization
 3. Disable OMAP 3430 OFF mode early in the initramfs. This is currently
       broken and causes system instability. We previously used a DTS patch to
       do this, but using an initramfs hook allows us to reduce the amount of
       kernel patches we maintain

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8472>
2026-05-02 16:09:42 +02:00
Sicelo A. Mhlongo 5622b6371c device-nokia-n900: do not depend on UPower for i3blocks
Version 34 of the device-nokia-n900 package implemented an udev-based script
for shutdown due to critically-low battery condition.  Therefore, depending on
UPower is no longer necessary. To keep the i3blocks status bar working in
the absence of UPower, switch back to basic sysfs polling.

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8472>
2026-05-02 16:09:42 +02:00
Sicelo A. Mhlongo 1de140f47f device-nokia-n900: upower: switch to config fragment
As of upower 1.91.0, UPower supports config fragments, thus there is no longer
a need to ship a full UPower.conf. The device-specific upower package can
therefore be dropped, and the config fragment will be installed unconditionally
as part of the device package.

NB: It is still necessary to use a custom udev script to initiate poweroff due
to low battery on the N900, since the fuel gauge has a hardware limitation
which results in reporting 0% if the calibration is off, causing unwanted
device shutdowns if UPower's mechanism is active.

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8472>
2026-05-02 16:09:42 +02:00
Sicelo A. Mhlongo 0b83a665db device-nokia-n900: rework screen locking
Provide a unified screen locking mechanism, supporting x11 and sway.  Auto
locking is also improved to correctly disable inputs in all screen locking
scenarios, and re-enabling them on unlock. Unlock on keypad slide now also
works on sway (from sway v1.12).

Any x11 UI can use the existing script by setting up appropriate keybinds to
the script and autostarting xautolock. It may be necessary to disable any
built-in autolock method integrated within a specific x11 WM.

NB: This is NOT locking in the sense of secure locking. It is purely for
turning the screen off and disabling some inputs (currently only the
touchscreen) to prevent unintended wakeups.

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8472>
2026-05-02 16:09:42 +02:00
Sicelo A. Mhlongo 92b08601f7 device-nokia-n900: simplify sway status bar configuration
Since version 4, postmarketos-ui-sway allows overriding the status bar easily,
thus the hack to hide the global sway status bar to display a second bar is no
longer necessary.

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8472>
2026-05-02 16:09:42 +02:00
Sicelo A. Mhlongo 79f6325f6c postmarketos-ui-sway: use config fragment for status bar
Separating the status bar allows for customization (e.g. in a device package)
without replacing the entire sway config

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8472>
2026-05-02 16:09:42 +02:00
Luca Weiss 94a191ce06 linux-postmarketos-qcom-sc7280: upgrade to 7.0.0
Manual kconfig changes:
* QCOM_QSEECOM=y (Q6A)
* QCOM_QSEECOM_UEFISECAPP=y (Q6A)
* BRCMFMAC=m (RUBIK Pi 3)
* SENSORS_PWM_FAN=m (RUBIK Pi 3)
* DEVFREQ_GOV_PERFORMANCE=y
* DEVFREQ_GOV_POWERSAVE=y
* DEVFREQ_GOV_USERSPACE=y
* DEVFREQ_GOV_PASSIVE=y
* USB_NET_RNDIS_HOST=m (category:usb)
* SECURITY_DMESG_RESTRICT=y (category:hardening)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8360>
2026-05-02 08:30:49 +00:00
Robert Eckelmann b2befbfed1 linux-postmarketos-marvell: upgrade to 6.18.24
relecting also lated kconfig requirements

Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8424>
2026-05-02 02:38:57 +00:00
Stefan Hansson 96217725f4 main/postmarketos-tweaks-setting-definitions: upgrade to 1.1.0
Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8456>
2026-05-02 02:13:09 +00:00
adamthiede 4fc27938cc linux-postmarketos-mediatek-mt81: upgrade to 6.18.26 and update kconfig
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8464>
2026-05-02 02:10:13 +00:00
Anton Bambura 395c9d0981 ayn-odin: depend on soc-qcom-pd-mapper and soc-qcom-qbootctl
soc-qcom-pd-mapper is required for WiFi to work, and
soc-qcom-qbootctl should fix the issue of the slot getting inactive
after a few reboots.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8434>
2026-05-02 01:31:11 +00:00
Alexander Martinz bce2b05e3b firmware-shift-otter: update firmware to 20260306
Firmware is updated to 20260306, matching the latest Android OTA
`OTTER.SOS.6.5.G-RELEASE-20260306-OTA.zip`.

This release also adds firmware for hexagonfs.

Further the prepare script is now installing the firmware into
`/usr/lib` instead of `/lib`.

Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8451>
2026-05-02 00:59:35 +00:00
Barnabás Czémán 0bf541c91b linux-postmarketos-qcom-msm8953: Upgrade to v7.0.2-r0
Upgrade kernel to v7.0.2-r0

Signed-off-by: Barnabás Czémán <barnabas.czeman@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8452>
2026-05-02 00:56:42 +00:00
Linus Walleij 47ed0d3446 samsung-stericsson-phones: Assume maintainership
The kernel and firmware is maintained, I can maintain the devices,
I maintain their wikipages anyway.

Signed-off-by: Linus Walleij <linusw@kernel.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8466>
2026-05-01 17:58:11 +02:00
adamthiede 69c23c9752 linux-postmarketos-mediatek-mt8173: upgrade to 7.0.3 and update config
update config for new default checks

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8455>
2026-05-01 13:03:02 +00:00
Alicja Michalska 2d18e334fe linux-postmarketos-qcom-sc7180: Update to 6.18.26
Patches CopyFail, satisfies new kconfig requirements

Signed-off-by: Alicja Michalska <ellyqw@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8460>
2026-05-01 12:35:10 +00:00
Antoine Martin 082d19cdd8 linux-postmarketos-rockchip: upgrade to 6.19.14
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8462>
2026-04-30 19:26:13 -04:00
Clayton Craft dc9bacbe85 linux-postmarketos-asahi: upgrade to 6.19.14-1
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8458>
2026-04-30 22:44:30 +00:00
Aelin a25bb27739 linux-postmarketos-lts: Upgrade to 6.18.26
Also install modules to /usr/lib/modules rather than /lib/modules.

And fix an oversight in the kconfig-generic.toml that would lead to
some configs not being enabled on 6.18.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8459>
2026-04-30 19:23:34 +00:00
Aelin 120f85d9fc kconfig-generic: EC_LENOVO_YOGA_C630 is not enabled on 6.18
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8459>
2026-04-30 19:23:34 +00:00
Aelin a6e35ca3aa linux-postmarketos-stable: Upgrade to 7.0.3
Also install modules to /usr/lib/modules rather than /lib/modules.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8457>
2026-04-30 16:23:35 +02:00
Eisenbahnfan 40380a12d6 device-samsung-v1awifi: Add more initfs modules for display
Additional modules are needed in initfs to enable the display during boot.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8453>
2026-04-30 00:28:57 +02:00
Eisenbahnfan 565544855e device-samsung-n2awifi: Add more initfs modules for display
Additional modules are needed in initfs to enable the display during boot.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8453>
2026-04-30 00:28:35 +02:00
Eisenbahnfan 834b442669 device-samsung-n1awifi: Add more initfs modules for display
Additional modules are needed in initfs to enable the display during boot.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8453>
2026-04-30 00:25:54 +02:00
Barnabás Czémán 40bcbbb4c3 device-qcom-msm89x7: add necessary modules for pwm
Redmi 4A, 5A and Go are using PWM backlight what is
dependency of the panel.
Add necessary modules for make it able to use PWM at
early boot stage.

Signed-off-by: Barnabás Czémán <barnabas.czeman@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8447>
2026-04-29 11:49:10 +00:00
Barnabás Czémán 114b9249dd linux-postmarketos-qcom-msm89x7: Upgrade to v7.0.2-r0
Upgrade kernel to v7.0.2-r0.

Signed-off-by: Barnabás Czémán <barnabas.czeman@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8447>
2026-04-29 11:49:10 +00:00
Robert Mader 4b25f699e4 temp/libcamera: upgrade to 0.7.1
See
https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.7.1

Also sync dependencies to upstream.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8449>
2026-04-29 09:48:53 +02:00
Robert Eckelmann 4ca37d4f48 device-nvidia-tegra-armv7: takeover maintainership
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8425>
2026-04-28 21:40:09 +00:00
Robert Eckelmann dee0225ae5 firmware-nvidia-tegra-armv7: update source repo and maintainer
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8425>
2026-04-28 21:40:09 +00:00
Aelin 86283c7cf0 firmware-thundercomm-rubikpi3: Add WiFi firmware
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8400>
2026-04-28 23:00:38 +02:00
Aelin 96fc094233 linux-postmarketos-lts: Upgrade to 6.18.25
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8444>
2026-04-28 13:53:09 +00:00
Aelin 90202ff4d3 linux-postmarketos-stable: Upgrade to 7.0.2
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8443>
2026-04-28 13:51:01 +00:00
Aelin d918718472 linux-postmarketos-mainline: Upgrade to 7.1_rc1
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8435>
2026-04-28 13:47:55 +00:00
Eisenbahnfan 08d1da344f device-samsung-v1awifi: Switch to u-boot
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8296>
2026-04-28 13:21:25 +00:00
Eisenbahnfan cb474148bb device-samsung-n2awifi: Switch to u-boot
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8296>
2026-04-28 13:21:25 +00:00
Eisenbahnfan 677c91b500 device-samsung-n1awifi: Switch to u-boot
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8296>
2026-04-28 13:21:25 +00:00
Eisenbahnfan f4fdf38d13 u-boot-exynos5420: Introduce u-boot package for device-samsung-{n1awifi,n2awifi,v1awifi}
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8296>
2026-04-28 13:21:25 +00:00
Clayton Craft f559b38457 main/postmarketos-duranium: don't set user comment on first boot
This was causing GNOME and KDE to show "Default User" e.g. on login

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8442>
2026-04-28 12:38:32 +00:00
Ferass El Hafidi 6f49801ecd main/postmarketos-base-ui-plasma: do not install kaccounts-providers on armv7
Yet another package that depends on qtwebengine and thus is unavailable
on armv7.
See: pma#4505

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8438>
2026-04-28 07:44:18 +00:00
Aster Boese c1722fd01a main/postmarketos-mkinitfs-hook: fix using wrong variable in loop
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8441>
2026-04-28 00:11:48 +02:00
Aster Boese ec2aab38d5 device/community/firmware-*: install to /usr/lib/
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8385>
2026-04-27 17:49:29 +00:00
Stefan Hansson fd95c55abf deviceinfo_schema.toml: Document vendor_boot-related variables
Found in
https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/commit/8e3229c9a8d481ad223ecfe7a73041323cbc2390

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8387>
2026-04-27 16:52:54 +00:00
Eisenbahnfan a325d6d06d kconfigcheck: CONFIG_NFS_V4_1 is not available starting from Linux v7.0
See [1], which was merged into v7.0.

[1] https://lore.kernel.org/all/20260126203938.450304-15-anna@kernel.org/

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8429>
2026-04-26 17:34:33 +00:00
Ali Nasrullayev db45854e65 xiaomi-vayu: Take maintainership, refactor firmware and device packages
Updated firmware and device packages to comply with latest standards and
added kernel subpackages for each display panel variant

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8332>
2026-04-26 15:39:36 +00:00
Aster Boese 430a3f0f85 systemd/cups: upgrade to 2.4.18
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8430>
2026-04-26 15:26:03 +00:00
bluebunny 632197dd74 linux-xiaomi-pipa: upgrade to 7.0.1
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8412>
2026-04-26 10:48:24 +00:00
Clayton Craft ea6a2fc814 linux-postmarketos-asahi: upgrade to 6.19.12-1
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8423>
2026-04-25 10:18:17 -07:00
Luca Weiss bb0d75bf85 linux-postmarketos-qcom-sc7280: update kconfig for NFSD
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8117>
2026-04-24 21:05:20 +00:00
Luca Weiss fbaf608c1c kconfigcheck: Enable NFSD options
Enable the in-kernel NFS server along with some other related options.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8117>
2026-04-24 21:05:20 +00:00
Neil Armstrong 51f2a726b1 linux-ayaneo-pocket-s2: refresh kernel on v7.0 and latest mainline patchset
Also include changed from Drakulix to enable the controller UART,
fix runtime suspend and enable higher GPU OPPs.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8405>
2026-04-24 20:54:40 +00:00
Aelin 5d38a7cc64 kconfigcheck: Simplify based on version baselines
This replaces all version requirements below the baseline for the
categories with >=0.0.0 and completely removes configurations that would
only apply to version ranges no longer included in the baseline.

The default category baseline is 2.6.0, categories for community kernels
currently have a baseline of 5.17.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8421>
2026-04-24 20:43:49 +00:00
André Apitzsch 4b64fc45ed motorola-peregrine: archive device specific package
Archive Motorola Moto G 4G 2013 device package in favor of
device-qcom-msm8226.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8395>
2026-04-23 21:36:37 +02:00
Aster Boese 59beb3ba91 ci: shellcheck: update mkinitfs hook paths
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8413>
2026-04-23 19:04:55 +00:00
Aster Boese 38ccc2ac8a main/postmarketos-mkinitfs-hook: merge mkinitfs-hook packages into one
Having many separate mkinitfs-hook packages makes it harder to add new
hooks and makes maintaining the hooks very fragmented and challenging.
Merging them all into one package and splitting them out by subpackage
makes them much more maintainable and makes adding new hooks as easy as
adding files and a subpackage.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8413>
2026-04-23 19:04:55 +00:00
Aelin 0def725a74 kconfig-generic: Enable Motorcomm YT6801 ethernet controller
This ethernet controller is found on a handful of Loongson mainboards,
for example the XB612B0 for the 3B6000.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8418>
2026-04-23 10:10:31 +00:00
Aelin ccd99db6a1 linux-postmarketos-stable: Upgrade to 7.0.1
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8416>
2026-04-23 09:12:46 +00:00
Clayton Craft a329e09227 main/postmarketos-duranium: pin size of usr partition
In some cases when the disk is very large (e.g. 2TB) repart will add
extra space to the slot-A usr partition to make it larger. The slot-B
partitions are already pinned with a min/max size so they would stay
the correct size. This pins the slot-A usr partition so it's no longer
grown. This should have been done all along.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8419>
2026-04-23 03:07:53 +00:00
Aelin 4c2cb176ef linux-postmarketos-lts: Upgrade to 6.18.24
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8417>
2026-04-23 00:25:04 +02:00
Aelin b51e236f1a kconfigcheck: Fix inconsistencies on loongarch64
CONFIG_CRYPTO_CTS is built-in if CONFIG_FS_ENCRYPTION is enabled, which
it is by default on loongarch64, which is reasonable.

CONFIG_NFSD is also built-in on some architectures, which causes
CONFIG_RPCSEC_GSS_KRB5 to be built-in rather than a module. We could
either force disable NFSD, which is not great, or just build it as a
module, which is what I opted for.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8415>
2026-04-22 22:06:50 +00:00
Guido Günther 20424b99f9 issue_template: Explain how to get debug information for Phosh
Signed-off-by: Guido Günther <agx@sigxcpu.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8403>
2026-04-22 21:13:59 +00:00
Neil Armstrong 8155e23632 kconfigcheck: CRYPTO_AES_TI is not available starting from Linux v7.0
See [1], which was merged into v7.0.

[1] https://lore.kernel.org/all/20260112192035.10427-9-ebiggers@kernel.org/

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8410>
2026-04-22 20:23:39 +00:00
Clayton Craft 0add2ad499 main/postmarketos-duranium: shorten part. names, drop verity sig part.
This uses a new naming convention for partitions. It fixes an issue
where some firmware (i.e. on the OnePlus 6 / 6T) will hang when starting
fastboot mode if it finds a (sub!)partition with a GPT partition label
that's "too long" (25char, in the case of enchilada, well under the 34
char limit in the GPT spec).

By keeping the old partition name match pattern, which *should* help
migrate existing installs after 2 updates (to capture partitions
associated with both "slots"). Given duranium's "wip" status, I don't
think it's strictly necessary to migrate existing installs, but I feel
like this is a good opportunity to see if it's possible to do so. It
might be handy to do in the future and working out how to do that now
seems useful.

This also drops the verity signature partition. According to the UAPI
Discov. Partition Spec (DPS) this partition is not really needed if the
verity hash for the usr partition is in the kernel cmdline and the UKI
is signed (not yet, but one day 🤞). There is one mode where having the
separate partition is useful: verified boot in containers, but this is
outside the scope of duranium.

This partition is tiny (16K) so the space saving is negligible... but
it would be nice to have one less partition to "manage". On existing
installs, this partition will become "foreign" to systemd repart, and
sysupdate will not touch it since it will no longer match any patterns.

fixes #4484

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8408>
2026-04-22 19:25:48 +00:00
Clayton Craft 4a588de728 main/postmarketos-base-ui-gnome: add duranium-specific config
The kernel cmdline option is to prevent gnome-initial-setup from
launching, because it doesn't work properly and conflicts with our first
boot setup. On phosh this is technically not necessary since g-i-s won't
try to start there, but adding this to the base gnome UI pkg means I
wouldn't have to add sep. subpackages to gnome and gnome-mobile UI pkgs.

The duranium subpkg also pulls in a plugin for gnome-software so that
g-s can provide a frontend for pulling duranium image updates via
sysupdate.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8411>
2026-04-22 16:23:49 +00:00
Aelin 6d11555054 docs/kconfigcheck: Clarify version baselines
It is extremely tedious to keep track of what the name of a particular
option was for every kernel release and when they were added. To keep
kconfigcheck maintainable, let's ease the burden on people adding new
options for community categories or other categories only required by
close-to-mainline kernel packages and only have them look back a
reasonable number of kernel versions.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8407>
2026-04-22 16:12:29 +00:00
Christian Duerr adf05d8067 device-fairphone-fp4: Fix USB audio DACs
The current pipewire rule was forcing every output sink to use the S32LE
format, which caused problems with DACs that do not support this format.

To ensure only the built-in sinks are matched, we manually specify the
alsa card name in the pipewire rule matcher.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8363>
2026-04-22 12:07:10 +00:00
Christian Duerr 33e4ce4dc8 device-fairphone-fp5: Fix USB audio DACs
The current pipewire rule was forcing every output sink to use the S32LE
format, which caused problems with DACs that do not support this format.

To ensure only the built-in sinks are matched, we manually specify the
alsa card name in the pipewire rule matcher.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8346>
2026-04-22 11:35:16 +00:00
Bart Ribbers 0342eafd35 systemd/kjournald: upgrade to 25.12.2
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8078>
2026-04-21 23:05:15 +02:00
Luca Weiss 0ea9e8b265 linux-postmarketos-qcom-sc7280: update kconfig for 'netmount' category
Enable the new options that are required by the updated
kconfigcheck.toml including 'netmount'.

[ci:skip-vercheck] # no need to bump allwinner package

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8063>
2026-04-21 15:51:21 +02:00
Luca Weiss 44b33f724a linux-postmarketos-allwinner: drop redundant kconfigcheck-netmount option
This category is now included with the community category.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8063>
2026-04-21 15:47:43 +02:00
Luca Weiss 8c29e3a104 kconfigcheck: Add 'netmount' to community category
It doesn't look like it was intentional to keep this optional, so let's
require netmount (i.e. NFS) for all community kernels.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8063>
2026-04-21 15:47:43 +02:00
Luca Weiss 470789f095 kconfigcheck: Build 'netmount' category as modules where possible
There's no need to have these built-in to the kernel, better to build
these options as modules to keep the impact low.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8063>
2026-04-21 15:47:43 +02:00
Bart Ribbers d56a1df0fd temp/{plasma-bigscreen,plank-player,aura-browser}: add comment explaining why it's in temp
[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8404>
2026-04-21 09:49:42 +02:00
Sam Day d90dbbd420 linux-postmarketos-qcom-msm8916: fix kconfigcheck
Enable the options flagged by pmb:kconfigcheck-community (hardening,
zram backends, immutable rootfs, module compression, etc.) so both
aarch64 and armv7 configs pass 'pmbootstrap kconfig check'.

Signed-off-by: Sam Day <me@samcday.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8084>
2026-04-20 23:23:59 +00:00
Sam Day cefa00376b linux-postmarketos-qcom-msm8916: enable ublk
https://github.com/samcday/smoo needs ublk to do smoo-y things

Signed-off-by: Sam Day <me@samcday.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8084>
2026-04-20 23:23:59 +00:00
Chris Vogel a5a5bca690 shift-axolotl: add unl0kr-fbforcerefresh
when started from u-boot unl0kr doesn't display the keyboard without a forced refresh

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8142>
2026-04-20 22:47:30 +00:00
Chris Vogel f1c4d7434c shift-axolotl: u-boot
adds dependencie on systemd-boot and changes boot partitions filesystem to fat32 to efi boot from u-boot

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8142>
2026-04-20 22:47:30 +00:00
Aelin 8065e72b63 firmware-analogix: drop
This package was introduced back when Pine64 shipped the PinePhone
with a broken ANX7688. The issue no longer persists on later versions
of the PinePhone and the package requires manual intervention and is
not pre-installed, so let's drop it.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7799>
2026-04-20 21:07:02 +00:00
bluebunny ab29db9b94 firmware-samsung-j7xelte: drop
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8402>
2026-04-20 15:55:23 +00:00
bluebunny e110300bd0 device-samsung-j7xelte: comply with firmware policy
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8402>
2026-04-20 15:55:23 +00:00
Aelin 6182ce138d {device-microsoft-surface-rt,device-nvidia-tegra-armv7}: move to testing
The kernel package used by these two devices does not meet our community
kernel version requirements anymore, and two weeks after notifying the
maintainers, the situation hasn't changed, so let's move them to testing
accordingly.

See also #4448

[ci:skip-vercheck]: moving between categories
[ci:skip-kconfigcheck]: moving between categories

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8399>
2026-04-20 11:13:03 +00:00
Aelin 477a24fe25 linux-postmarketos-lts: Upgrade to 6.18.23
And enable SELinux configurations on all architectures.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8397>
2026-04-20 06:50:31 +00:00
Aelin 912e8272c9 linux-postmarketos-stable: Upgrade to 6.19.13
And enable SELinux configurations on all architectures.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8396>
2026-04-20 01:51:43 +02:00
Barnabás Czémán efb8b4bf9b linux-postmarketos-qcom-msm8956: Upgrade to v7.0-r0
Upgrade to v7.0-r0.

Signed-off-by: Barnabás Czémán <barnabas.czeman@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8390>
2026-04-19 17:55:17 +00:00
Aster Boese 993d92a696 main/postmarketos-base: add kernel-cmdline.d config to disable splash
By creating a package for this, debugging boot-time issues is made a lot easier
as now during image creation `postmarketos-base-nosplash` can be added to
extra-packages and installed without rebuilding any packages.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8304>
2026-04-19 17:38:49 +00:00
Eric Anderson 48a40e6f01 firmware-asus-flo: Add ejona as maintainer
I became the maintainer of device-asus-flo in !8111.

Contributes to #4445 which is tracking down maintainers for unmaintained
packages.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8393>
2026-04-19 07:47:12 -07:00
Pan Ortiz 5321fd0ca3 google-bonito: mirror sargo changes
This commit mirrors some of the changes from google-sargo:

 google-sargo: install config for plasma-camera
  device-google-sargo: add support for u-boot
 community/device-google-sargo: only keep fastrpc link udev rule

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8386>
2026-04-19 07:53:52 +00:00
Luca Weiss d01f245f62 linux-postmarketos-qcom-sm6350: upgrade to 7.0.0
Manual kconfig changes:
* POWER_SEQUENCING=m
* DEVFREQ_GOV_PERFORMANCE=y
* DEVFREQ_GOV_POWERSAVE=y
* DEVFREQ_GOV_USERSPACE=y
* DEVFREQ_GOV_PASSIVE=y
* BPF_LSM=y (category:default)
* KPROBES=y (category:default)
* KPROBE_EVENTS=y (category:default)
* SECURITY=y (category:default)
* SECURITYFS=y (category:default)
* IP_NF_RAW=m (category:containers)
* IP6_NF_RAW=m (category:containers)
* BLK_DEV_UBLK=m (category:netboot)
* EROFS_FS is preferably m, but currently y (category:filesystems)
* EROFS_FS_ZIP_LZMA=y (category:filesystems)
* EROFS_FS_ZIP_DEFLATE=y (category:filesystems)
* EROFS_FS_ZIP_ZSTD=y (category:filesystems)
* USB_NET_RNDIS_HOST=m (category:usb)
* SECURITY_DMESG_RESTRICT=y (category:hardening)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8358>
2026-04-19 07:50:58 +00:00
Dang Huynh ff519f2e14 linux-pine64-pinetab2: Upgrade to 7.0
Signed-off-by: Dang Huynh <dang.huynh@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8391>
2026-04-19 07:42:35 +00:00
Stefan Hansson a184bf63e2 linux-postmarketos-allwinner: HACK: disable cross-native
To avoid issue described here:
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295#note_5453

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295>
2026-04-18 14:40:07 +00:00
Luca Weiss 822ccc31a7 linux-postmarketos-allwinner: pass LLVM=1 to downstreamkernel_prepare
Since a 'recent' pmbootstrap change, the cross compilers are no longer
installed by default which uncovered that "make oldconfig" is called
without LLVM=1.

scripts/Kconfig.include:41: linker 'armv7-alpine-linux-musleabihf-ld' not found
make[2]: *** [scripts/kconfig/Makefile:85: oldconfig] Error 1

Pass it so that all steps in the build process are run with the LLVM
toolchain and we're not mixing toolchains in the build process.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295>
2026-04-18 14:40:07 +00:00
Luca Weiss cbed5ce151 main/devicepkg-dev: support passing LLVM=1 in downstreamkernel_prepare
As required by kernels that probably shouldn't be using the
downstreamkernel_* functions in the first place, but we need to fix this
up to unblock linux-postmarketos-allwinner compilation.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295>
2026-04-18 14:40:03 +00:00
Luca Weiss a77dff06d8 linux-postmarketos-qcom-milos: upgrade to 7.0.0
Manual kconfig changes:
* VIDEO_QCOM_VENUS=n
* VIDEO_QCOM_IRIS=m
* DEVFREQ_GOV_PERFORMANCE=y
* DEVFREQ_GOV_POWERSAVE=y
* DEVFREQ_GOV_USERSPACE=y
* DEVFREQ_GOV_PASSIVE=y
* SRAM=y
* USB_NET_RNDIS_HOST=m (category:usb)
* SECURITY_DMESG_RESTRICT=y (category:hardening)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8383>
2026-04-18 10:06:03 +00:00
Clayton Craft ae9cab3d75 main/postmarketos-duranium: add packages for "dev tools" sysext
This subpackage will be used to build the "developer tools" system
extension for duranium. The list of packages was created after
collecting input from early testers in the Duranium chat.

Also see: https://gitlab.postmarketos.org/postmarketOS/duranium-build/-/work_items/47

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8366>
2026-04-18 00:11:19 -07:00
Ferass El Hafidi 9fa7c035d4 device-asus-s5507q: remove inexistent fw package from depends
It seems to have been removed in https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8312
but the actual device package did not get fixed up.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8389>
2026-04-17 20:21:18 +00:00
Arnav Singh c5a625ac35 main/postmarketos-base: allow pwfeedback default to be overridable by dropins
Currently dropins are processed before the default of enabling pwfeedback,
so a dropin that does `Defaults !pwfeedback` to restore the pre-sudo-rs behavior
has no effect. With this change, the dropin will take effect.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8388>
2026-04-17 10:10:03 -07:00
adamthiede c37475182e device-google-oak: add mesa driver dependency and option for powervr
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8384>
2026-04-17 15:38:22 +00:00
Antoine Martin 08821f5224 community/linux-postmarketos-rockchip: upgrade to 6.19.12
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8380>
2026-04-17 15:06:07 +00:00
Ferass El Hafidi 37d5c5e228 main/postmarketos-ui-plasma-mobile: preinstall angelfish or firefox
depending on arch

Angelfish is not available on armv7 nor riscv64 due to qt6-qtwebengine
getting disabled. However, it is still preferable to install a web
browser by default. Firefox however can still be used on those devices.
Add a new -web subpackage, which installs Firefox on armv7/riscv64, and
installs angelfish on others, so everyone gets to have a pre-installed
and working web browser.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8373>
2026-04-17 13:38:44 +00:00
Ferass El Hafidi 14a23d8a3e main/postmarketos-ui-plasma-mobile: move qtwebengine apps to extras_web
A web browser engine not being available should not cause the whole UI
to become unavailable, especially when not required for the UI itself to
work. Move packages depending on qt6-qtwebengine to a separate
subpackage, that gets pulled only on arches where qtwebengine is
available.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8373>
2026-04-17 13:38:44 +00:00
Clayton Craft 8981be95a2 main/postmarketos-duranium: add base image pkg depends
This adds pkg dependencies for the base duranium image to pmaports.
Previously these were set in the duranium-build project (mkosi config)

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8370>
2026-04-17 12:51:07 +00:00
Aelin d0ea020d94 systemd/xorg-server: upgrade to 21.1.22
Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/3d6fde66df26d446f5628cf91bc06fd3fdc5fdfe
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8378>
2026-04-17 10:38:14 +00:00
Aelin f2cbd4c2de systemd/mutter: upgrade to 50.1
Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/c35b2e4748b43cb65f289dadc7bbb9231debe661
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8377>
2026-04-17 08:04:14 +00:00
Aelin 6e96732a57 systemd/gnome-shell: upgrade to 50.1
Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/b1891e1cbbfb824c833145614b95e85e49e623eb
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8376>
2026-04-17 08:02:11 +00:00
Clayton Craft afcc901fc1 systemd/systemd: re-enable -Dbootloader
Turns out, a few useful things are gated by this flag that I want to use
in Duranium:

1) bootctl automatically configuring EFI boot entry variables
2) systemd-boot-update.service installation

Let's just re-enable this and strip out the sd-boot stuff already
packaged in Alpine aports, rather than continue to fight the build
system with more patches in pmaports.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8371>
2026-04-16 20:52:18 +00:00
Aster Boese af11b81362 kconfig-generic: enable missing configs for lenovo-21bx
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8367>
2026-04-16 20:10:35 +02:00
Aelin dc9dc99690 linux-postmarketos-mainline: Opt-in to SELinux configs
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8352>
2026-04-16 16:27:57 +00:00
Aelin 5d06fe0fd1 kconfigcheck: Add SELinux category
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8352>
2026-04-16 16:27:57 +00:00
Achill Gilgenast 51940cbddc systemd/postmarketos-base-systemd: enable avahi-daemon.service
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8102>
2026-04-16 16:16:43 +02:00
Achill Gilgenast 599973fa45 main/postmarketos-base-ui: depend on avahi
Pre-install and enable a zeroconf provider

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8102>
2026-04-16 16:01:26 +02:00
Aelin ecb80ae8ca main/postmarketos-ui-plasma-mobile: Disable on ARMv7
qt6-qtwebengine has been disabled on ARMv7, and therefore angelfish is
no longer available for this architecture (pending disablement in
Alpine, but cannot be installed due to the missing qtwebengine libraries).

[ci:skip-vercheck]: only changing architectures

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8372>
2026-04-16 05:12:15 +02:00
bluebunny f27753a73d testing/linux-xiaomi-pipa: upgrade to 6.19.12
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8359>
2026-04-15 18:09:17 +00:00
Duje Mihanović 424665e7a0 device-samsung-coreprimevelte: implement UEFI
The new U-Boot supports the phone's MMC controllers, so let's use that
to enable UEFI boot.

This allows us to drop initfs-extra, avoid reflashing the kernel to the
boot partition every upgrade, fix kernel-cmdline and future-proof the
port in general.

Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8337>
2026-04-14 18:33:53 +02:00
Duje Mihanović 8eae9f10ee linux-samsung-coreprimevelte: enable EFI_ZBOOT
Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8337>
2026-04-14 18:33:53 +02:00
Duje Mihanović b77efb7d29 u-boot-coreprimevelte: upgrade to 2026.04
Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8337>
2026-04-14 18:33:53 +02:00
Duje Mihanović d392f07927 device-samsung-coreprimevelte: add WLAN calibration & QoL
The calibration is loaded from firmware, which in turn is done through a
modprobe config file.

Besides this, there're a few QoL fixes:
* Update my email in maintainer=
* Drop _pmb_recommends approach for firmware, it's now depended on
* Sort depends alphabetically

Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8311>
2026-04-14 18:18:30 +02:00
Duje Mihanović 333ba1f2ce firmware-samsung-pxa1908: install all firmware files unconditionally
It has been found that the calibration files, while not mandatory, could
be useful with the mainline mwifiex driver as well. Install those on
mainline as well and leave the -downstream subpackage as a stub for
-downstream-openrc.

Also, switch from installing the firmware to /usr/lib instead of /lib to
suppress warnings.

Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8311>
2026-04-14 18:18:30 +02:00
Duje Mihanović e7132cc758 firmware-samsung-pxa1908: add myself as maintainer
Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8311>
2026-04-14 18:18:28 +02:00
Eisenbahnfan c0a41f2f34 device-odroid-xu4: Add necessary modules for FDE
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8361>
2026-04-14 13:58:36 +00:00
adamthiede 60d7ad04b7 linux-postmarketos-mediatek-mt8173: upgrade to 7.0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8348>
2026-04-14 13:38:42 +00:00
Aelin 07966102d7 Revert "systemd/systemd: build with SELinux support"
This reverts commit 688a1c53f1.

It created a dependency on a linux-pam linked against libselinux-dev,
which the one in Alpine currently isn't built against. This went
unnoticed because it only affected systemd --user instances, which
console UI does not seem to depend on as much.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8362>
2026-04-14 14:18:51 +02:00
Aelin 688a1c53f1 systemd/systemd: build with SELinux support
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8354>
2026-04-14 07:04:42 +00:00
Aelin 4e97050cf4 CI: build-jobs: Pull from Alpine's registry
Dockerhub does not support loongarch64, but Alpine's registry does. We
need to hardcode the latest stable release here until the latest tag is
made to point at a stable release rather than edge.

Fixes: a0bc3115a9 ("CI: build-jobs: use Alpine stable")
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8353>
2026-04-14 06:08:31 +00:00
Aster Boese c5bc9a0a72 linux-postmarketos-qcom-laptop: sync kconfig
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8351>
2026-04-14 05:42:25 +00:00
Dang Huynh 20f7b34831 linux-pine64-pinetab2: Upgrade to 6.19.10
Signed-off-by: Dang Huynh <dang.huynh@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8275>
2026-04-14 02:43:08 +00:00
Clayton Craft 9b27911469 linux-postmarketos-asahi: upgrade to 6.19.11-3
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8349>
2026-04-13 19:39:11 -07:00
Aster Boese b5c5a91b60 kconfigcheck: enable SECURITY_DMESG_RESTRICT
Kernel logs can contain sensitive information which we don't want
easily accessible. This locks the kernel buffer to privileged
access (with sudo).

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8342>
2026-04-13 21:15:35 +00:00
Mithil Bavishi 49f331f411 firmware-samsung-espresso: take over maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8350>
2026-04-13 21:09:55 +00:00
Aelin 7ecceb937d linux-postmarketos-mainline: Upgrade to 7.0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8344>
2026-04-13 20:55:49 +00:00
Oliver Smith b0aefa426d main/postmarketos-ui-mediaberry: remove
This package depends on mbwl, which has been removed from pmaports.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8335>
2026-04-13 15:01:17 +00:00
Oliver Smith e66f50889c temp/mbwl: remove
This package still depends on wlroots0.18, which has been removed in
aports. Furthermore it shouldn't be in pmaports in the first place as it
isn't a postmarketOS specific package.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8335>
2026-04-13 15:01:17 +00:00
Petr Vorel 360f58b46c firmware-aosp-broadcom-wlan: take over maintainership
Link: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4445
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8324>
2026-04-13 07:49:06 +00:00
Petr Vorel 241502da0b firmware-lg-bullhead: take over maintainership
Link: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4445
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8324>
2026-04-13 07:49:06 +00:00
exkc 81a5ff3599 device-radxa-zero: add deviceinfo_getty
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8345>
2026-04-13 07:43:18 +00:00
Clayton Craft ac37fc4dd2 main/postmarketos-duranium: add config for dev-tools sysext
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8258>
2026-04-12 21:34:51 -07:00
Clayton Craft 6d8d98c235 main/postmarketos-duranium: depend on shadow-subids
useradd is run during first boot, and if /etc/sub{uid,gid} exist then
the user is added there. By adding an explicit dependency, we make sure
these files always exist on first boot so that container stuff added
later (e.g. in an extension) will work OOTB.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8258>
2026-04-12 21:34:51 -07:00
Clayton Craft 7674d8b45a main/postmarketos-duranium: add systemd-sysext preset
This service merges installed system extensions on boot

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8258>
2026-04-12 21:34:39 -07:00
Aelin 8d14bcf93a systemd/gdm: build with libselinux & audit
Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/4c63ddbf8880b10dc2bd874c971a722fd9a198df
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8341>
2026-04-12 21:59:17 +02:00
Oliver Smith a0bc3115a9 CI: build-jobs: use Alpine stable
Fix that the build-jobs were using Alpine edge. This seems
unintentional, or at least inconsistent. Before this patch we had:

  $ git grep alpine:latest
  .ci/build-jobs.yaml.j2:image: registry.alpinelinux.org/img/alpine:latest
  .gitlab-ci.yml:image: alpine:latest

It turns out that "registry.alpinelinux.org/img/alpine:latest" is
actually alpine edge:

  $ docker run --rm registry.alpinelinux.org/img/alpine:latest cat /etc/os-release
  Unable to find image 'registry.alpinelinux.org/img/alpine:latest' locally
  latest: Pulling from img/alpine
  d4a983187cfd: Pull complete
  Digest: sha256:47b4a945203d4bad4e0c7840d64044da50a719d0cd0512a50e3ab473240635ea
  Status: Downloaded newer image for registry.alpinelinux.org/img/alpine:latest
  NAME="Alpine Linux"
  ID=alpine
  VERSION_ID=3.21.0_alpha20240923
  PRETTY_NAME="Alpine Linux edge"
  HOME_URL="https://alpinelinux.org/"
  BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

And alpine:latest is stable (when fetched from docker hub, with podman
it could be configured to point at alpine's registry as well, which
means it is edge... but the OSUOSL CI runners use docker):

  $ docker run --rm alpine:latest cat /etc/os-release
  Unable to find image 'alpine:latest' locally
  latest: Pulling from library/alpine
  589002ba0eae: Already exists
  Digest: sha256:25109184c71bdad752c8312a8623239686a9a2071e8825f20acb8f2198c3f659
  Status: Downloaded newer image for alpine:latest
  NAME="Alpine Linux"
  ID=alpine
  VERSION_ID=3.23.3
  PRETTY_NAME="Alpine Linux v3.23"
  HOME_URL="https://alpinelinux.org/"
  BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

Using stable makes more sense here, so temporary bugs in edge don't
break our CI. It is currently somewhat broken because running
pmbootstrap with python 3.14 and musl results in crashes with "No file
descriptors available" errors in some situations.

Related: https://gitlab.postmarketos.org/postmarketOS/postmarketos/-/work_items/141
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8340>
2026-04-12 19:29:04 +00:00
Clayton Craft b466485f09 systemd/gdm: add tmpfiles config for gdm-greeter home dir
This allows using systemd-tmpfiles to automatically create the home dir,
needed to fix running gdm on duranium.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8330>
2026-04-12 17:17:56 +00:00
Clayton Craft 06489cbd79 main/postmarketos-duranium: add support for systemd config extensions
Some of this was inspired by what GNOME OS does.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8330>
2026-04-12 17:17:55 +00:00
Clayton Craft 5d73bec629 ci/shellcheck: add duranium scripts
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8330>
2026-04-12 17:17:55 +00:00
Clayton Craft 89e4cd346f main/postmarketos-duranium: add script to set image channel
This adds a script that can be used to set the "channel" for images to
"staging" or "main." "Staging" will come from a separate pipeline in the
duranium mkosi config repo, it may build images with patches or whatever
for testing, and won't be available to users running the "main" channel.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8330>
2026-04-12 17:17:55 +00:00
Antoine Martin 4a1612eb56 linux-postmarketos-rockchip: add rk3566-pinenote support
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8217>
2026-04-12 17:15:56 +00:00
Oliver Smith 060e35c8df cross/gcc-*: upgrade to 15.2.0-r3
Regenerate the cross/gcc packages against Alpine's aports with
pmbootstrap's current main branch.

Related: https://gitlab.alpinelinux.org/alpine/aports/-/commit/05d31c9bcf193b80306c64019d5f8c292dc64f0e
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8240>
2026-04-12 12:30:11 +00:00
Aelin 37835efefb linux-postmarketos-lts: Upgrade to 6.18.22
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8328>
2026-04-12 09:13:10 +00:00
Aelin 0e5faaa707 linux-postmarketos-stable: Upgrade to 6.19.12
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8327>
2026-04-12 09:11:01 +00:00
Aelin b787bef725 cross/musl-*: upgrade to 1.2.6-r2
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8329>
2026-04-12 09:08:45 +00:00
Nikita Travkin 8e34c82714 firmware-acer-aspire1: become maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8331>
2026-04-12 12:40:03 +05:00
Nikita Travkin 4dd5b3309e device-arrow-db410c: become maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8331>
2026-04-12 12:39:38 +05:00
methanal bc14466f8b linux-postmarketos-exynos7870: become maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8326>
2026-04-11 22:38:00 +00:00
methanal b38c1c08b2 firmware-samsung-on7xelte: become maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8326>
2026-04-11 22:38:00 +00:00
methanal 8f3382f239 firmware-samsung-j6lte: become maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8326>
2026-04-11 22:38:00 +00:00
methanal 4e4ae5d6af firmware-samsung-a2corelte: become maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8326>
2026-04-11 22:38:00 +00:00
methanal 059cc2cc0f device-samsung-on7xelte: become maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8326>
2026-04-11 22:38:00 +00:00
methanal 7b4deaa135 device-samsung-j6lte: become maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8326>
2026-04-11 22:38:00 +00:00
methanal 6eac360957 device-samsung-a2corelte: become maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8326>
2026-04-11 22:38:00 +00:00
Stefan Hansson de9bcda556 firmware-bestechnic-bes2600: copy maintainers from device package
See https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4445

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8321>
2026-04-11 16:32:19 +00:00
Affe Null d8e85297cb soc-unisoc-ums9230: add missing maintainer
The package was accidentally added with no maintainer specified.
I still intend to maintain this package together with device-jolla-c2.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8320>
2026-04-11 15:06:40 +00:00
Nickolay Goppen 2f78f33707 firmware-sony-ninges: Add Alexeymin as a maintainer
Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:27 +00:00
Nickolay Goppen c88b67ed54 firmware-xiaomi-jasmine_sprout: add Alexeymin as a maintainer
Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:27 +00:00
Nickolay Goppen d7ce109b04 firmware-xiaomi-whyred: update Alexeymin's email
Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:27 +00:00
Nickolay Goppen 4ddf2d656e firmware-xiaomi-clover: Add myself as a maintainer
Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:27 +00:00
Nickolay Goppen e8e3e2a958 device-sony-pioneer: Add Alexeymin as a maintainer
And move Max Buchholz to a co-maintainer

Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:27 +00:00
Nickolay Goppen 86a804f617 device-xiaomi-whyred: Update Alexeymin's e-mail
Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:27 +00:00
Nickolay Goppen a31212c55f device-xiaomi-jasmine_sprout: Add Alexeymin as a maintainer
Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:27 +00:00
Nickolay Goppen faf1b92ad9 device-xiaomi-lavender: Update Alexeymin's e-mail
Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:26 +00:00
Nickolay Goppen 5f50270944 device-asus-x00td: Add iAboothahir as a maintainer
Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:26 +00:00
Nickolay Goppen 6a0267124e device-xiaomi-clover: Add Mi Pad 4 LTE variation
Mi Pad 4 LTE is very very similar to regular Mi Pad 4,
but it has a modem with LTE support.

Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:26 +00:00
Nickolay Goppen 5cd0fcb7da alsa-ucm-conf-qcom-sdm660: update to 1.2.15_git20260401
Changelog:
Changed name of xiaomi-clover's ucm file symlink
Added xiaomi-tulip support

Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:26 +00:00
Nickolay Goppen e3ca61be37 linux-postmarketos-qcom-sdm660: upgrade to 6.19.10
Changelog:
Switched to LLVM ( setotau )
Added support for LTE version of xiaomi-clover ( setotau )
Added proper battery capacities for different xiaomi-clover versions ( setotau )
Removed SD-card slot definition on xiaomi-jasmine ( alexeymin )
Add NT36672A e7t variant support for xiaomi-tulip ( M0Rf30 )
Initial sound support for xiaomi-tulip ( M0Rf30 )
Changed model-name in the sound node of xiaomi-clover-common dtsi ( setotau )
Migrated to DPU from MDP5, following upstream migration ( alexeymin )
Added battery support for sony-pioneer ( alexeymin )
Added Synaptics panel variants of blackberry-luna and blackberry-athena ( sajattack )

Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8305>
2026-04-11 14:41:26 +00:00
bluebunny 90281e9722 testing/linux-xiaomi-pipa: upgrade to 6.19.11
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8316>
2026-04-11 14:38:36 +00:00
Antoine Martin 5a7acde0f0 device-pine64-pinenote: implement rockchip_ebc reload workaround on openrc
Implements openrc implementation of the workaround introduced in
d7229de9d4 for a `rockchip_ebc` bug where the
initial waveform is not properly loaded. Reloading `rockchip_ebc` just
before starting `tinydm` loads the correct waveform.

In systemd, this is implemented via a systemd override file for
`tinydm.service` that includes an `ExecStartPre`, reloading the driver via
modprobe. For openrc, we add an initd service that restarts driver before
starting `tinydm`.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8288>
2026-04-11 14:36:29 +00:00
Bart Ribbers b97a71f27a systemd/kwin: rebuild against Qt 6.11
It'll run without the rebuild, but you won't be able to input anything
into textfields.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8325>
2026-04-11 10:22:06 +02:00
exkc a9aae1a4c0 linux-linksys-jamaica: move to archived
[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8323>
2026-04-10 23:59:03 +00:00
exkc 742a2f0ac5 firmware-linksys-jamaica: move to archived
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8323>
2026-04-10 23:59:03 +00:00
exkc ff3d5089c7 device-linksys-jamaica: move to archived
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8323>
2026-04-10 23:59:03 +00:00
exkc c5128ba2e2 device-xunlong-orangepi3: remove me as co-maintaintor
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8323>
2026-04-10 23:59:03 +00:00
exkc 1d887a0ad8 device-lenovo-lxf-p5100 : move to archived
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8323>
2026-04-10 23:59:00 +00:00
exkc a4c2c01a40 linux-postmarketos-allwinner-d1 : move to archived
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8323>
2026-04-10 23:59:00 +00:00
exkc 192989a5d7 device-mangopi-mq-pro : move to archived
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8323>
2026-04-10 23:59:00 +00:00
exkc 53857411cd device-dongshanpi-nezhastu : move to archived
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8323>
2026-04-10 23:59:00 +00:00
Stefan Hansson 3fd038a1fb firmware-samsung-u8500: take over maintainership
See https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4445

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8322>
2026-04-10 19:56:21 +02:00
Stefan Hansson 8efa29e7cc firmware-samsung-midas: take over maintainership
See https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4445

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8319>
2026-04-10 19:06:15 +02:00
Henrik Grimler 2479a00f3e testing/device-google-snow: set myself as maintainer
I have this device and intend to test with it every now and then.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8318>
2026-04-10 12:57:14 +00:00
Henrik Grimler 2c54ef84bc testing/firmware-samsung-klimt: set myself as maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8318>
2026-04-10 12:57:14 +00:00
Henrik Grimler 003bc6414e testing/firmware-samsung-chagall: set myself as maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8318>
2026-04-10 12:57:14 +00:00
Henrik Grimler 8fb37f6ded testing/firmware-samsung-i9100: set myself as maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8318>
2026-04-10 12:57:14 +00:00
Henrik Grimler 1a1c13c955 testing/u-boot-samsung-i9100: set myself as maintainer
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8318>
2026-04-10 12:57:14 +00:00
Henrik Grimler 1a877941a6 testing/device-samsung-i9100: set myself as maintainer
I have it hooked up to a phone-harness and am planning to continue
using and testing it, so set myself as maintainer for the device.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8318>
2026-04-10 12:57:14 +00:00
binarycraft007 91050b8121 device-asus-s5507q: take over maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8317>
2026-04-10 12:55:03 +00:00
knuxify 16cf3b6b40 firmware-odroid-hc2: take over maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8315>
2026-04-10 12:52:21 +00:00
Vitaliy Ognev 9c3a568c77 powkiddy-x55-mapper: take maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8314>
2026-04-10 12:49:53 +00:00
Achill Gilgenast e38532b7f7 ci: relax pkgrel changes for packages that don’t have remote sources
Motivation is to avoid unnecessary overhead for MR authors & no reason to
actually use pkgrel for meta-packages.

So instead, recommend pkgver-bumps & pkgrel=0 for metapackages, but don't
block MRs when they bumped the "wrong" one. Just make everyone's life easier.

Discussed at <https://docs.postmarketos.org/policies-and-processes/governance/team-meetings/meeting-notes.html> (2026-03-16)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8302>
2026-04-10 12:08:26 +00:00
Pan Ortiz 90aeb1d4de firmware-xiaomi-nabu: take mantainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8313>
2026-04-10 09:21:24 +00:00
Pan Ortiz ece507ed7e firmware-xiaomi-nabu: take mantainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8313>
2026-04-10 09:21:24 +00:00
Bart Ribbers bdc9b2878e systemd/plasma-login-manager: upgrade to 6.6.4
Also stop defining UID_MIN and UID_MAX because they are ignored, see
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4428#note_545485

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8310>
2026-04-10 00:43:07 +00:00
Aelin a508b2c913 kconfig-generic: Enable VHOST acceleration configs
These are required for using the vhost=on flag for QEMU and offload
certain virtio work onto the host kernel to increase performance.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8307>
2026-04-09 22:29:21 +00:00
binarycraft007 b0833bc9fe firmware-asus-s5507q: take over maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8312>
2026-04-09 20:46:15 +02:00
Luca Weiss aff876a396 device-fairphone-fp6: update for renamed firmware dependency
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8306>
2026-04-09 15:54:04 +00:00
Luca Weiss 0e00ecfa53 firmware-fairphone-fp6: rename venus subpackage to vpu, update path
Neither the firmware binary, nor the Linux driver are called 'venus'
nowadays. Rename the package to VPU (video processing unit).

Also accordingly, don't rename the firmware to "venus.mbn" but keep the
original filename intact.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8306>
2026-04-09 15:54:04 +00:00
Antoine Martin ff47d2a1af linux-postmarketos-rockchip: upgrade to 6.19.11
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8289>
2026-04-09 15:51:30 +00:00
Kidd Lee c8d19646e4 {device,linux}-xiaomi-ido: add myself as the maintainer
Add the maintainer to avoid removal.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8303>
2026-04-09 15:47:32 +00:00
Kidd Lee fc69b84129 linux-xiaomi-ido: make kconfig check pass
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8303>
2026-04-09 15:47:32 +00:00
Kidd Lee 3cf2a9415c linux-xiaomi-ido: using the default host cc
Host `gcc6-gcc` will cause this error:
```
  HOSTCC  scripts/basic/fixdep
In file included from /usr/include/fortify/sys/select.h:26:0,
                 from /usr/include/sys/types.h:71,
                 from scripts/basic/fixdep.c:106:
/usr/include/fortify/fortify-headers.h:56:67: error: missing binary operator before token "("
 #if _FORTIFY_SOURCE > 2 && defined __has_builtin && __has_builtin (__builtin_dynamic_object_size)
                                                                   ^
```

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8303>
2026-04-09 15:47:29 +00:00
Arnav Singh 02cd0ebc93 firmware-pine64-ov5640: take over maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8308>
2026-04-09 07:46:31 -07:00
Bart Ribbers c40e9038b1 systemd/plasma*: upgrade to 6.6.4
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8297>
2026-04-09 12:33:46 +00:00
Vishwas Rajashekar 6fab672abc samsung-lt03lte: enable touchscreen
Signed-off-by: Vishwas Rajashekar <dev@vrajashkr.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8169>
2026-04-09 06:59:52 +00:00
Aster Boese 130e3e9e89 linux-google-crosshatch-mainline: revert: build with LLVM and sync kconfig
Reverts commit b33ba8203c

Build failing in bpo.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8299>
2026-04-09 05:07:27 +00:00
Antoine Martin 2d7c216e36 linux-pine64-pinenote: upgrade to 6.19.11
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8292>
2026-04-08 14:28:00 +00:00
Aelin e11779e4c8 linux-postmarketos-mainline: Upgrade to 7.0-rc7
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8284>
2026-04-08 14:07:04 +02:00
Aelin 92b204a3b9 kconfig-generic: Enable configs for some SDM845/SC7180 devices
Taken from linux-next. The configs for X1E devices are already all enabled.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8276>
2026-04-08 11:58:49 +00:00
Mithil Bavishi 8a77fc7f0a linux-postmarketos-omap: upgrade to 6.19.0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8301>
2026-04-07 23:23:49 +00:00
Mithil Bavishi 550ea91eee linux-postmarketos-omap: Rebase patch for 6.19
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8301>
2026-04-07 23:23:49 +00:00
Mithil Bavishi 887b1b6416 linux-postmarketos-omap: Remove N900 idle config patch
Upstreamed: https://lore.kernel.org/all/20250914192516.164629-4-jihed.chaibi.dev@gmail.com/
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8301>
2026-04-07 23:23:49 +00:00
Mithil Bavishi 0e6f192a80 linux-postmarketos-omap: Remove driver for twl6030-pwrbutton
Upstreamed: https://lore.kernel.org/all/20251106-twl6030-button-v4-0-fdf1aa6e1e9a@kernel.org/
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8301>
2026-04-07 23:23:49 +00:00
Antoine Martin 4b57172b93 u-boot-pine64-pinenote: upgrade to 2026.04
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8293>
2026-04-07 20:37:06 +00:00
Luca Weiss 2b97b34c18 linux-postmarketos-qcom-msm8226: upgrade to 6.16.12
Manual kconfig changes:
* IP6_NF_MANGLE=m (category:containers)
* IP_NF_RAW=m (category:containers)
* IP6_NF_RAW=m (category:containers)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8253>
2026-04-07 18:39:50 +02:00
Qs315490 425f6d9117 linux-xiaomi-latte: update kernel config
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8212>
2026-04-07 13:55:04 +00:00
Aster Boese b33ba8203c linux-google-crosshatch-mainline: build with LLVM and sync kconfig
The previous patch was broken because the kernel was still configured to use
GCC. Builds passed in pmaports CI because the runner is native aarch64, which
hits the issue of Alpine's clang packaging depending on gcc to get access to
libgcc-dev. This pulls in the whole GCC compiler, causing the kernel to default
to it and ignore clang. When this patch got to BPO, it failed because BPO
cross-compiles packages, leading to aarch64 GCC not being installed when
building (only clang is used as the cross-compiler) and causing the build to
fail there.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8265>
2026-04-07 13:34:38 +00:00
Aster Boese 83e7197431 linux-realme-x3: sync kconfig and build with LLVM
Syncs the linux-realme-x3 kernel config with kconfigcheck.toml and builds the
kernel with LLVM to follow policy.

See https://postmarketos.org/edge/2025/11/11/kernels-llvm/

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8119>
2026-04-07 13:31:52 +00:00
Achill Gilgenast fdb3d2ebbc main/postmarketos-base-ui: adapt replaces= to upstream chrony changes
The config file got moved to the new chrony-common package, so we must
"replace" this subpkg, so apk doesn't fails when replacing the file

Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/70b570d4095272ab926a2693fdfb09c62d016a0b
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8294>
2026-04-07 11:17:19 +02:00
Clayton Craft 236204b51f main/postmarketos-install-recommends: set Clayton as maintainer
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8287>
2026-04-06 22:09:05 +00:00
Clayton Craft 6b903686d4 main/postmarketos-install-recommends: upgrade to 0.3
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8287>
2026-04-06 22:09:05 +00:00
adamthiede 899eeec737 linux-postmarketos-mediatek-mt81: upgrade to 6.18.21, pass kconfig check
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8272>
2026-04-06 21:01:31 +00:00
bluebunny 033c34b0ad kconfigcheck: add USB_NET_RNDIS_HOST
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8230>
2026-04-06 17:33:28 +00:00
Dylan Van Assche f4ad3632fc main/postmarketos-base-ui: set TimeoutStopSec for iio-sensor-proxy
Enforce to be killed on shutdown in 3s,
until https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/merge_requests/410 is upstream.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:10 +00:00
Dylan Van Assche 4dec972549 community/device-xiaomi-beryllium: drop libssc udev rule
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:10 +00:00
Dylan Van Assche f6f3673351 community/firmware-xiaomi-beryllium: define mount matrix
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:10 +00:00
Clayton Craft e1317493c6 main/postmarketos-base-ui: proximity and accel sensor support
This is hopefully temporary. The proximity and accelerometer sensor tags
were removed upstream(1) citing an open issue on a specific device
and the desire to have more testing. Enabling it in pmOS will help get testing.

This udev rule shouldn't have any impact on devices that don't have
fastrpc. Installing it conditionally on iio-sensor-proxy just seems adds
packaging complexity for basically no benefit.

1. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/commit/a9d7ff148cd4fa5e40b23b189894b36dd81f51df

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:10 +00:00
Dylan Van Assche d047599228 community/device-oneplus-enchilada: drop libssc udev rule
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:06 +00:00
Dylan Van Assche fb118d6d8b community/device-google-sargo: only keep fastrpc link udev rule
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:06 +00:00
Dylan Van Assche 8564693e9f community/firmware-google-sargo: define mount matrix
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:06 +00:00
Dylan Van Assche f1e277695b community/firmware-oneplus-sdm845: define mount matrix
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:06 +00:00
Clayton Craft d65edea0ee temp/iio-sensor-proxy: drop fork
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:06 +00:00
Frieder Hannenheim 91470d21d1 device-oneplus-kebab: add me as a maintainer
- Also add me as a maintainer to firmware-oneplus-instantnoodlep

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8283>
2026-04-06 10:18:29 +00:00
Luca Weiss dc8edd7b76 linux-postmarketos-qcom-msm8974: upgrade to 6.16.12
* CM3323=m (samsung-lt03lte)
* BMC150_ACCEL=m (samsung-lt03lte)
* BMG160=m (samsung-lt03lte)
* AK8975=m (samsung-lt03lte)
* TOUCHSCREEN_ATMEL_MXT=m (samsung-lt03lte)
* NFC_PN544=m (htc-m8)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8251>
2026-04-06 08:27:53 +00:00
Bart Ribbers e90be571c4 main/postmarketos-base-ui-plasma: depend on geoclue
Required for GPS/location functionality in various applications. Needs
to be pulled in by the meta package rather than the apps themselves to
ensure it'll work for Flatpakked apps.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8269>
2026-04-06 00:01:36 +00:00
Achill Gilgenast ec6491ffe9 main/postmarketos-ui-phosh: update to mobi.phosh schema for stevia
See https://gitlab.gnome.org/World/Phosh/stevia/-/commit/a4c92473dad292e524dea4e465a8b620a0684991

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8282>
2026-04-05 17:37:01 +00:00
Aelin 97c8cf8a91 linux-xiaomi-whyred: drop
device-xiaomi-whyred uses the sdm660 mainline kernel, this package is unused.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8281>
2026-04-05 14:33:31 +02:00
Barnabás Czémán 46cd4737de firmware-xiaomi-lavender: add myself as maintainer
firmware-xiaomi-lavender package was created by me,
add myself as maintainer for avoid removal, the package
necessary for Wifi and GPU support.

Signed-off-by: Barnabás Czémán <barnabas.czeman@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8278>
2026-04-05 08:40:25 +00:00
Nikita Travkin 8f192af9b1 main/dtbloader: upgrade to 1.5.4
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8277>
2026-04-05 11:07:11 +05:00
Aelin c6f7e0bb06 linux-postmarketos-lts: Upgrade to 6.18.21
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8263>
2026-04-04 22:48:04 +00:00
Aelin 80c2d40599 linux-postmarketos-stable: Upgrade to 6.19.11
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8262>
2026-04-04 22:35:33 +00:00
Bart Ribbers 72de94e2de temp/plasma-bigscreen: upgrade to 6.6.80_git20260404
Fixes the back key on TV remotes not being mapped to escape thus making
it impossible to navigate "back" in applications and menus, and ensures
the virtual keyboard is enabled. Furthermore it now hides the KDE
Connect app and the mouse cursor when not actually used.
2026-04-04 18:56:23 +02:00
Clayton Craft 9246ff8172 linux-postmarketos-asahi: upgrade to 6.19.11-1
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8271>
2026-04-04 04:21:27 +00:00
Clayton Craft dceffe8a46 main/postmarketos-duranium: new aport
Duranium is an immutable variant of postmarketOS that uses systemd's
image-based OS model: dm-verity verified /usr, A/B slots managed by
systemd-sysupdate, LUKS2-encrypted root, and systemd-boot with UKIs.

This package ships systemd-repart, systemd-sysusers, tmpfiles, and
first-boot service configuration needed at runtime in both the initramfs
and the booted system, as well as sysupdate transfer definitions for
finding and upgrading images. Build-time repart and sysupdate config
lives in the mkosi config repo[1].

The pmOS initramfs is not used. Rather than re-implement partition
setup, verity, factory reset, and switch_root in shell script and
risk regressions for mutable pmOS installs, an initramfs is built by
mkosi containing systemd. This lets the standard systemd initrd
machinery handle everything, with no modifications to the pmOS
initramfs required.

On Android devices, subpartition logic from the pmOS initramfs is
essentially copied into a new systemd unit that runs in the initramfs
and sets up subpartitions so that they are available to tooling that
runs later in the boot process. In the future, this functionality should
be moved upstream into systemd.

Boot flows:

"Normal boot": the verified /usr partition is mounted and the LUKS
root partition is unlocked (empty passphrase by default, with fallback
to a graphical unlock prompt for user-set passphrases). switch_root
hands off to the real rootfs.

"First boot": systemd-repart creates the root partition, always as a
LUKS volume with an empty passphrase. After switch_root, a first-boot
app runs before the display manager to collect a username and password,
create the user account, and optionally set a LUKS passphrase. The
passphrase can also be changed later via systemd-cryptenroll or
cryptsetup.

"Factory reset": detected in the initramfs by systemd, which uses
systemd-repart to wipe and recreate the root partition. Boot then
continues with the first boot flow above. Factory reset can be triggered
while booting in the rootfs by starting a systemd unit that configures
an EFI variable to signal to the initramfs on next boot.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7059>
2026-04-03 19:23:17 +00:00
Luca Weiss 97fcae383a device-fairphone-fp6: update for DPU & GPU support
Remove the Mesa workaround and add the panel to the list of modules to
include in the initramfs.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8266>
2026-04-03 17:58:26 +00:00
Luca Weiss 108309ad98 firmware-fairphone-fp6: package gen80300 gmu & sqe firmware
These generic files are not (yet) available in linux-firmware, so we
need to package them for this device.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8266>
2026-04-03 17:58:26 +00:00
Luca Weiss afaf475693 linux-postmarketos-qcom-milos: upgrade to 6.19.10
Manual kconfig changes:
* DRM_PANEL_NOVATEK_NT37705=m
* NVMEM_REBOOT_MODE=y
* NVMEM_SPMI_SDAM=y
* PINCTRL_MILOS_LPASS_LPI=m
* SND_SOC_AW88261=m
* SND_SOC_LPASS_MACRO_COMMON=y
* SND_SOC_LPASS_RX_MACRO=y
* SND_SOC_LPASS_TX_MACRO=y
* SND_SOC_LPASS_VA_MACRO=y
* SND_SOC_SC8280XP=m
* SOUNDWIRE_QCOM=y

* BPF_LSM=y (category:default)
* KPROBES=y (category:default)
* KPROBE_EVENTS=y (category:default)
* SECURITY=y (category:default)
* SECURITYFS=y (category:default)
* IP_NF_RAW=m (category:containers)
* IP6_NF_RAW=m (category:containers)
* BLK_DEV_UBLK=m (category:netboot)
* EROFS_FS is preferably m, but currently y (category:filesystems)
* EROFS_FS_ZIP_LZMA=y (category:filesystems)
* EROFS_FS_ZIP_DEFLATE=y (category:filesystems)
* EROFS_FS_ZIP_ZSTD=y (category:filesystems)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8266>
2026-04-03 17:58:26 +00:00
Bart Ribbers 32642bb737 temp/plank-player: fix typo in the _repo_url
This is currently making the nightly builder fail on this package.

[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8268>
2026-04-02 17:51:51 +02:00
Clayton Craft b75f4a118b linux-google-crosshatch-mainline: revert: build with LLVM and sync kconfig
This partially reverts commit 3fad2cf8df

This kernel is too old to build with clang/llvm

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8264>
2026-04-03 08:08:04 +02:00
WrenIX 07d8d68309 main/postmarketos-ui-os-installer: switch from doas to sudo
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8228>
2026-04-02 22:35:35 +00:00
Clayton Craft 40a5c82049 systemd/systemd: add patches to fix sysupdate issues
These patches are merged (or submitted) upstream and not in a release
yet.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8261>
2026-04-02 13:31:46 -07:00
Aster Boese d4c0788fb6 main/postmarketos-initramfs: install udev.conf from /usr/lib/udev/udev.conf
Signed-off-by: Aster Boese <asterboese@mailbox.org>

[ci:skip-build]: already built successfully in CI (except riscv64 and armv7 due to known CI issue)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8046>
2026-04-02 20:29:28 +00:00
Aster Boese 3713cc55a7 main/postmarketos-base: move udev.conf to /usr/lib/udev/
Moves udev.conf from `/etc/udev.conf` to `/usr/lib/udev/udev.conf` and fixes
invalid syntax.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8046>
2026-04-02 20:29:28 +00:00
Aster Boese b589f8fb8c systemd/systemd{-stage0}: add install-sysconfdir=false
To align with hermetic-usr, no packages should install to `/etc/`. systemd has
a built-in option called `install-sysconfdir` that defaults to true and guards
putting files under `/etc/` or using systemd-tmpfiles.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8046>
2026-04-02 20:29:28 +00:00
Bart Ribbers 489294b64d temp/plasma-bigscreen: upgrade to 6.6.80_git20260402
Contains fixes so the CEC device has the right permissions out of the
box (needed for TV remote functionality) and applications like KDE
Connect's SMS functionality and Waydroid stock apps are hidden.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8260>
2026-04-02 19:19:26 +02:00
Aster Boese 42d71205f5 linux-ayn-odin: build with LLVM and sync kconfig
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8247>
2026-04-02 05:26:09 +00:00
Aster Boese d8308ee1f5 linux-google-smaug: build with LLVM and sync kconfig
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8255>
2026-04-02 05:24:03 +00:00
Aster Boese 3fad2cf8df linux-google-crosshatch-mainline: build with LLVM and sync kconfig
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8254>
2026-04-02 05:21:24 +00:00
Hugo Osvaldo Barrera eec995fbe0 readme: update link to approval rules
Link pointed to inexistent file.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8256>
2026-04-02 05:18:48 +00:00
Hugo Osvaldo Barrera 62fb055e5c readme: link to issues
The folks at GitLab like to hide and rename sections. Add a handy link
for newcomers who are not as well versed in the current iteration of
GitLab's UI / lingo.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8256>
2026-04-02 05:18:48 +00:00
Hugo Osvaldo Barrera 6d1ef68afc */*: rely on abuild's systemd integration
abuild's default behaviour copies files from usr/lib/systemd into a the
$pkgname-split subpackage.

Several APKBUILD definitions do this manually, since they predate this
feature.

Remove the superfluous systemd() function in these cases.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8023>
2026-04-01 21:40:48 +00:00
Richard Acayan 58348da036 alsa-ucm-conf-qcom-sdm670: upgrade to 1.2.9_git20260223
The userspace-facing names of some mixer paths were changed in response
to upstream review of the SDM660 sound card.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8166>
2026-04-01 19:38:09 +00:00
Richard Acayan cd9832dcbe linux-postmarketos-qcom-sdm670: upgrade to v6.19.10
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8166>
2026-04-01 19:38:09 +00:00
Aelin 2e48f05b6f linux-postmarketos-mainline: Upgrade to 7.0_rc6
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8243>
2026-04-01 17:48:42 +00:00
Bart Ribbers 74bc7fb86b main/postmarketos-base-ui-plasma: move plasma-camera to -ui-plasma-mobile
Not sure why we were installing this application to desktop and
bigscreen as well...

[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8252>
2026-04-01 14:18:40 +02:00
MultisampledNight 5d6e5141d6 device-xiaomi-raphael: remove redundant set of deviceinfo_flash_pagesize
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7957>
2026-03-31 19:57:49 +02:00
MultisampledNight 8023b6747a device-xiaomi-pyxis: remove redundant set of deviceinfo_append_dtb
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7957>
2026-03-31 19:57:49 +02:00
MultisampledNight 21b7f67695 device-xiaomi-natrium: remove redundant set of deviceinfo_flash_pagesize
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7957>
2026-03-31 19:57:49 +02:00
MultisampledNight 9489015f7f device-nothing-tetris: fix typo
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7957>
2026-03-31 19:57:49 +02:00
MultisampledNight c0fde77e65 device-nothing-tetris: remove redundant set of deviceinfo_rootfs_image_sector_size
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7957>
2026-03-31 19:57:49 +02:00
MultisampledNight 72b70d2f55 device-lynx-r1: remove overridden set of deviceinfo_append_dtb
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7957>
2026-03-31 19:57:49 +02:00
MultisampledNight b16054a8ef device-lg-mako: remove double entry of deviceinfo_generate_bootimg
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7957>
2026-03-31 19:57:49 +02:00
MultisampledNight c781b16be9 device-lg-mako-downstream: remove double entry of deviceinfo_generate_bootimg
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7957>
2026-03-31 19:57:49 +02:00
LogicalErzor 5bc1c00b5a device-samsung-expressatt: take over maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8248>
2026-03-31 17:51:06 +00:00
Bart Ribbers d7c7786947 main/postmarketos-ui-plasma-bigscreen: re-enable
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8141>
2026-03-31 17:48:41 +00:00
Bart Ribbers fb3aeb4232 temp/plasma-bigscreen: new aport
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8141>
2026-03-31 17:48:41 +00:00
Bart Ribbers 412d560cc9 temp/aura-browser: new aport
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8141>
2026-03-31 17:48:41 +00:00
Bart Ribbers 4de24c56ce temp/plank-player: new aport
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8141>
2026-03-31 17:48:41 +00:00
Duje Mihanović e2a6787183 linux-samsung-coreprimevelte: upgrade to 6.19.10
Many of the patches were upstreamed in 6.19, so they are dropped here.

Besides that, there are two new QoL patches (to be upstreamed
eventually) and kconfig fixes.

Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8249>
2026-03-31 17:46:41 +00:00
Stefan Hansson 6ff3ee9670 main/dint: upgrade to 0.2.0
Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
2026-03-31 17:28:23 +02:00
Achill Gilgenast 59012769cc */*: rebuild against python 3.14
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8239>
2026-03-31 14:25:42 +00:00
Aelin 55b87766a6 linux-postmarketos-qcom-sc7280: Add co-maintainers, pass kconfigcheck
As discussed with Luca, Federico and me are maintainers of other devices using
the kernel package (Nothing Phone 1, Radxa Dragon Q6A, RUBIK Pi 3) and would
like to help maintain the kernel package in pmaports.

While we're at it, update the kernel configuration to pass kconfigcheck
again.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8245>
2026-03-31 11:25:49 +00:00
Oliver Smith cb6f7f0ef1 device-clockworkpi-uconsole-rpi: depend on gcc
Fix that building this package fails with:
  ccache: error: Could not find compiler "aarch64-alpine-linux-musl-gcc" in PATH

dtc tries to call gcc, so we must add it to the makedepends. It doesn't
seem possible to use clang instead with dtc, and even if, let's get the
package building with GCC first to unblock the queue in BPO and then
look into doing that.

This has probably worked in the past because pmbootstrap used to
pre-install more dependencies in the past during builds and this package
hasn't been built in a long time.

[ci:skip-vercheck]: code wasn't changed, just fixing the build

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8241>
2026-03-31 00:35:24 +00:00
Clayton Craft 71c5137654 systemd/dbus-broker: skip tests on all archs except x86_64
Some tests under qemu take >10minutes each and time out. x86_64 is the
only arch that's native in gitlab CI AND bpo, so only run tests if on
that arch.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
[ci:skip-build]: already built successfully in CI (except aarch64,
 because runners are broken currently)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8246>
2026-03-30 15:38:09 -07:00
Aelin 0b99b960d6 device-google-flame: drop dependency on hexagonfs-firmware-loader
We no longer want device packages to use this approach, they should
instead package their HexagonFS firmware files.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8163>
2026-03-30 22:04:04 +00:00
Aelin eef05be974 systemd/postmarketos-base-systemd: drop hexagonfs-firmware-loader from preset
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8163>
2026-03-30 22:04:04 +00:00
Aelin 4997cbff8c main/hexagonfs-firmware-loader: drop
Back in the days, hexagonrpcd was not suitable for generic device
packages and we had to hack around it with this service / script. Now
that hexagonrpcd can guess the HexagonFS directory location at runtime,
we can and should get rid of this service to align with our (future)
firmware packaging guidelines.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8163>
2026-03-30 22:04:04 +00:00
Aelin e00763cf34 device-qcom-qcs6490: move from testing to community
[ci:skip-vercheck]: moving between categories
[ci:skip-kconfigcheck]: moving between categories

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8210>
2026-03-30 21:57:23 +00:00
Clayton Craft 7143cf4f51 systemd/postmarketos-base-systemd: depend on dbus-broker
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8223>
2026-03-30 21:30:49 +00:00
Clayton Craft 08c6345879 systemd/dbus-broker: fork aport from Alpine to support systemd
This enables launcher support so that dbus-broker can run dbus services
via systemd units (either packaged units, or as a transient unit). The
benefit of doing this is that we no longer have to use a setuid binary
(dbus-daemon-launch-helper).

Fixes https://gitlab.postmarketos.org/postmarketOS/duranium/-/work_items/40

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8223>
2026-03-30 21:30:49 +00:00
Dzmitry 936675272d review fix: add !spdx
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8219>
2026-03-30 13:26:55 +00:00
Dzmitry Sankouski f36f478cbf device-samsung-starqltechn: replace firmware dependency
Replace hexagonfs-loader dependency with firmware-samsung-sdm845.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8219>
2026-03-30 13:26:55 +00:00
Dzmitry Sankouski 417afab791 firmware-samsung-sdm845: add package
Provides firmware for Samsung Galaxy S9 phone series based on SDM845 SoC.
This replaces hexagonfw-loader, which doesn't comply with firmware
packaging policy.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8219>
2026-03-30 13:26:55 +00:00
Vishwas Rajashekar b7f50c3dd8 device-samsung-lt03lte: add maintainer
Signed-off-by: Vishwas Rajashekar <dev@vrajashkr.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8238>
2026-03-30 07:57:50 +05:30
Achill Gilgenast 08c2bc39df temp/mbwl: use wlroots0.18
Removed wlroots0.17 in https://gitlab.alpinelinux.org/alpine/aports/-/commit/8b739ef72ca7fee5c75b0d4effa465b142a4ae50

Ideally this would use the latest stable wlroots version which is 0.20
already (and live in Alpine), but looking at
https://codeberg.org/mediaberry/mbwl/issues/2, we can consider mbwl a
short-term solution anyway.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8232>
2026-03-29 15:31:15 +00:00
Oliver Smith a82d50bb51 docs: device-categorization: new main requirements
Featuring a minor wording tweak as suggested by Newbyte.

Related: https://docs.postmarketos.org/pmcr/main/0009-new-main-device-category.html
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8237>
2026-03-29 16:47:50 +02:00
Oliver Smith 4846a3a575 community/device-qemu-*: move from main
[ci:skip-vercheck]: moving packages

Related: https://docs.postmarketos.org/pmcr/main/0009-new-main-device-category.html
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8237>
2026-03-29 16:10:08 +02:00
Clayton Craft 4c89aa7dc7 linux-postmarketos-asahi: upgrade to 6.19.10-1
Asahi fragment synced with upstream

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8233>
2026-03-28 15:16:44 +00:00
Clayton Craft 465764ee31 device-apple-mac-aarch64: add dwc3-apple module to initramfs
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8233>
2026-03-28 15:16:44 +00:00
Pablo Correa Gómez 6399bd2a4a main/gesture: drop
This is now upstream in Alpine.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7499>
2026-03-28 10:58:46 +00:00
Pablo Correa Gómez 6671b8deea main/shelli: drop
This is now upstream in Alpine

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7499>
2026-03-28 10:58:46 +00:00
Jana Steuernagel dc5f770d8a main/postmarketos-config-nftables: add rule for rdp
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8231>
2026-03-27 15:54:13 +00:00
Aster Boese edfb9c96a3 device/downstream/*: /etc/X11/xorg.conf.d -> /usr/share/X11/xorg.conf.d
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7805>
2026-03-27 13:42:53 +00:00
Aster Boese e8adc41966 device/testing/*: /etc/X11/xorg.conf.d -> /usr/share/X11/xorg.conf.d
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7805>
2026-03-27 13:42:53 +00:00
Aster Boese adb832c1ee device/community/*: /etc/X11/xorg.conf.d -> /usr/share/X11/xorg.conf.d
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7805>
2026-03-27 13:42:53 +00:00
Aelin 5f395b2705 linux-postmarketos-lts: Upgrade to 6.18.20
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8225>
2026-03-27 12:43:39 +00:00
Aelin 9e1fd8f1dd linux-postmarketos-stable: Upgrade to 6.19.10
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8224>
2026-03-27 12:41:23 +00:00
bluebunny c0ad83a183 linux-xiaomi-pipa: upgrade to 6.19.10
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8199>
2026-03-26 22:05:37 +00:00
Aster Boese f16ca169e0 linux-powkiddy-x55: upgrade to 6.19.0
linux-powkiddy-x55 is just the kernel dot org repo with a single
patch applied. Originally, this was meant to be a port to use LLVM,
but too much of compilation was broken by newer clang optimizations,
so porting to the newest release made more sense.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8132>
2026-03-26 07:05:45 +00:00
Clayton Craft 7d77c762fb linux-postmarketos-asahi: upgrade to 6.19.9-2
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8229>
2026-03-25 16:37:32 -07:00
Oliver Smith 4560f99bd1 systemd/gnome-keyring: upgrade to 50.0
Related: https://gitlab.alpinelinux.org/alpine/aports/-/commit/63c502e654b8c5db7921eb039ffc77d8894c518c
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8227>
2026-03-25 22:19:21 +01:00
Aelin e86582ddce cross/systemd-boot-x86: upgrade to 260.1
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8222>
2026-03-25 12:31:40 +00:00
Aelin c305c349c0 systemd/systemd: upgrade to 260.1
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8221>
2026-03-25 12:29:08 +00:00
Aelin 60a55ea194 systemd/systemd-stage0: upgrade to 260.1
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8221>
2026-03-25 12:29:08 +00:00
polyfloyd 8d21f0418e linux-postmarketos-qcom-sdm845: Enable new container kconfig flags
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8191>
2026-03-25 05:28:34 +00:00
Antoine Martin 72884e7a8a linux-postmarketos-rockchip: enable EFI ZBOOT
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8213>
2026-03-25 04:45:56 +00:00
Antoine Martin eb35a1d6e2 linux-postmarketos-rockchip: take maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8213>
2026-03-25 04:45:56 +00:00
Antoine Martin 3d3be43901 linux-postmarketos-rockchip: upgrade to 6.19.9
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8213>
2026-03-25 04:45:53 +00:00
Aster Boese fcd19400d9 systemd/systemd: build static libsystemd and libudev
Useful for things like Rust.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8216>
2026-03-25 02:45:41 +00:00
Aelin 0dd4e4108c cross/musl-*: upgrade to 1.2.6-r0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8220>
2026-03-24 19:41:22 +01:00
Aelin 821b1f9926 linux-postmarketos-mainline: Upgrade to 7.0_rc5
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8218>
2026-03-23 18:01:01 +01:00
Aster Boese 21f0afb162 kconfig-generic: add, amdgpu, intel, nouveau, and nvme configs
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8208>
2026-03-23 17:49:06 +01:00
Aster Boese 55b0571bc9 xiaomi-fire: move to archived
The git repo of the firmware files was deleted and there doesn't seem
to be a backup anywhere.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8025>
2026-03-22 14:38:56 +01:00
Aelin f05269f4c4 linux-postmarketos-lts: Upgrade to 6.18.19
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8201>
2026-03-21 21:12:13 +00:00
Aelin f7d27d9c2d linux-postmarketos-stable: Upgrade to 6.19.9
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8200>
2026-03-21 21:09:53 +00:00
Bart Ribbers e27f41f0c2 systemd/plasma*: upgrade to 6.6.3
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8206>
2026-03-21 15:29:42 +00:00
Clayton Craft 324d7b1385 deviceinfo_schema: update reference to configfs mount point
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8175>
2026-03-20 17:05:42 -07:00
Clayton Craft 97d87482ba temp/usb-moded: update configfs mount point
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8175>
2026-03-20 17:05:42 -07:00
Clayton Craft 278d75c7d1 device/downstream/samsung-*: update configfs mount pt in initramfs hook
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8175>
2026-03-20 17:05:42 -07:00
Clayton Craft 0a1cf811db main/postmarketos-usb-moded: improve systemd unit override
This changes the override to:

1) use /sys/kernel/config for the configfs location
2) depend on the sys-kernel-config.mount unit, which will automatically
mount configfs
3) depend on modprobing libcomposite
4) create the g1/configs/c.1 path automatically in case it's not created
yet

The configfs.ini file is also updated with the path

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8175>
2026-03-20 17:05:42 -07:00
Clayton Craft 24184654b2 main/postmarketos-initramfs: change configfs mount point
This matches the path that systemd's sys-kernel-config.mount unit uses,
and imho it's a lot nicer to tuck the mount point under /sys/kernel
(like for debugfs) than to have it in /

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8175>
2026-03-20 17:05:42 -07:00
Scott C a204d8e335 linux-postmarketos-omap: barnesnoble-encore: Add pinctrls, update panel section, enable touchscreen, wifi, poweroff, and more
Get touchscreen going by using correct hex value as i2c address

Update display panel / DSS sections:
- Add comment to 'dss' section to explain need for a kernel configuration setting
  which in an ideal world could be set in devicetree
- Set rotation property, panel-timing values, and comment on panel section in mcspi4

Set pinctrl entries for the device:
- Entries initially based on older u-boot and kernel board files and code, then
  revised based on similar devices
- Add pinctrl values in &omap3_pmx_core and &omap3_pmx_core2 sections
- add pinctrl-names and pinctrl-0 entries for most devices

Start to get sound card / codec set up, although not working yet:
- Set correct codec compatible entry.
  Device uses 'ti,tlv320dac3100', not 'ti,tlv320aic310x'
- Attempt to set sys_clkout2 clock for audio codec, but this is not working yet
- Add 'simple-audio-card' section
- Add &mcbsp2 section
- Add two regulators

Enable/ revise wifi section (mmc3 -> wifi)

Add vaux2 regulator section, used by mmc3/wifi
- Other devices have more comprehensive entries for the vmmc-supply and
  vqmmc-supply values for wifi which should likely be used for this device as
  well, but not implemented yet.

Allow device to actually turn off by setting system-power-controller property on
twl4030
- Add power ("ti,twl4030-power-idle-osc-off") section in twl, this seems to set
  suspend/low power commands

Add/ update some items based on similar devices, such as:
- hfclk_26m - set on twl4030
- vpll2 - set regulator to always-on, supposedly for dss/dpi

Set some unused components as disabled: gpmc, mcspi1, mcspi2, mcspi3, uart3, uart4
- uart2 is disabled since bluetooth hasn't been tested. Device does not have
  antenna for bluetooth

Many smaller updates:
- add pclk-sample property to lvds-encoder
- Correct accelerometer mount-matrix
- Set max8903_charger as power-supply for max17042 fuel gauge
- corrected touchscreen-size-.. properties to match 'native' orientation
- Add manufacturer model number to model string
- Revise max8903_charger section/ comments

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8144>
2026-03-20 11:31:06 -04:00
Clayton Craft d2ad485b51 systemd/systemd: disable BPF
Not all kernels have CONFIG_DEBUG_INFO_BTF=y, which means we can hit a
deadlock on boot if this is enabled. I haven't seen or heard of anyone
hitting this on mutable pmOS, since /boot is IIRC mounted via fstab,
but this is hit in Duranium where /boot is mounted on-demand via a
boot.automount unit

Since CONFIG_DEBUG_INFO_BTF isn't enabled broadly, enabling BPF support
in systemd probably doesn't make any sense for now?

See:
- https://github.com/systemd/systemd/issues/41162
- https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/4411

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8198>
2026-03-20 06:32:51 +00:00
Clayton Craft f935f6329b systemd/systemd-stage0: upgrade to 260
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8198>
2026-03-20 06:32:51 +00:00
Clayton Craft de93133170 systemd/systemd: upgrade to 260
This also adds some helper functions to finding dlopened dependencies.
They're printed out during package(), and useful for figuring out which
packages to depend on when adding dependencies manually to the APKBUILD.
They're also quite gross (e.g. invoking apk) so it's commented out by
default.

Trigger change is because `reload-or-restart ---marked` is now
deprecated:

    * --marked is deprecated. Please use 'systemctl enqueue-marked' instead.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8198>
2026-03-20 06:32:51 +00:00
Luca Weiss 1ab8eefdd5 CI: Run dint job on all files on deviceinfo_schema.toml change
Similar to kconfigcheck.toml, let's run the dint job on all deviceinfo
files when the spec itself is changed. This allows to catch possible new
warnings and errors early and fix them.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8139>
2026-03-20 01:57:32 +00:00
Luca Weiss acf264e262 deviceinfo_schema: Document default of boot_filesystem
Looking at pmbootstrap, the default value is 'ext2'. Document that.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8139>
2026-03-20 01:57:32 +00:00
Aster Boese 5e58825ad3 kconfigcheck: version gate DRM_FBDEV_EMULATION
DRM_FBDEV_EMULATION was added in kernel version 4.3, but we have kernels older than that.
Version gating the option fixes kconfigcheck on these kernels.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8202>
2026-03-19 22:21:03 +01:00
Aster Boese 30e5479de2 main/postmarketos-base: switch from doas to sudo-rs
The version of OpenBSD's doas packaged by Alpine had its last commit
21-02-2022. This in itself is not bad, but the issue is that in that time,
there have been many MRs and issues filed to the repo that see no action.
One major MR, that being a hardening patch against rowhammer attacks,
has layed stale since 03-03-2024. After Natanael Copa asked if the repo
was still maintained, the response was that it is low-priority.

As such switching to sudo-rs, despite its larger size and attack surface, makes
sense due to more users and thus more eyes on it performing analysis and fixing
security issues quicker. OpenBSD doas does not have this itself, and a low-usage
fork of it definitely does not. While there are snazzier, more modern
alternatives like run0, capsudo, or s6-sudo, none of these are in a state where
they can fully replace all the features that sudo provides.

sudo-rs was chosen over the original sudo due to a few factors. The first is
memory safety, as Rust generally solves that issue in the codebase, so a whole
class of possible vulns are eliminated. Second is that sudo-rs is already in
use by larger distributions like Canonical's Ubuntu, meaning that the user base
is already quite large, leading to similar amounts of eyes on the source code.
Third, sudo-rs has had support from the original authors of sudo, allowing the
project to avoid the pitfalls of the legacy C codebase. Finally, sudo-rs has
already had two fairly recent independent security audits, meaning that their
security posture is diligent enough to be trusted.

See https://github.com/trifectatechfoundation/sudo-rs/tree/main/docs/audit

In the future, any further switch in the privilege-escalation tool should keep
the sudo command, be it through a symlink, shim, or a binary itself. This is
maintained currently due to having installed doas-sudo-shim by default, but
more care should be taken in the future to not break user workflows.

Partially reverts 0f327af853

See https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/4144

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7967>
2026-03-18 17:36:30 +00:00
Ingo Reitz e96de8dd47 main/cros-keyboard-map: update to 0_git20251218
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8174>
2026-03-18 17:22:28 +00:00
Federico Amedeo Izzo 25b69f8ce3 firmware-nothing-spacewar: Change hexagonfs files path to fix bootloop.
The bootloop on spacewar was caused by ADSP crash due to hexagonfs files
being installed in the wrong path ("nothing" instead of "Nothing").
The path is derived by hexagonfs based on dts properties, we should
match that.

Additionally this makes sensors work on the phone.

See https://github.com/mainlining/firmware-nothing-spacewar/pull/1

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8196>
2026-03-18 17:53:24 +01:00
TuxMan af799f41e5 sony-tulip: move from downstream to testing and make myself as the maintainer
[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8185>
2026-03-18 14:46:41 +01:00
Antoine Martin 078b5564c4 linux-pine64-pinenote: upgrade to 6.19.8, enable ultra suspend
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8190>
2026-03-18 06:31:14 +00:00
Achill Gilgenast 2478dbed46 main/postmarketos-base-ui-gnome: remove fractional scaling override
Has been stablized and enabled by default in upstream GNOME 50, which is
in pmOS edge. GNOME Mobile which is on 48, had it enabled anyway.

Ref: <https://gitlab.gnome.org/GNOME/mutter/-/commit/74965cdb047df0f2159d53cb12770949924c60e9>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8194>
2026-03-17 11:31:57 +00:00
Achill Gilgenast 5a60da6d16 {temp,systemd}/gnome-shell-mobile: backport some GNOME 50 patches to GNOME 48
Closes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/4409
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8193>
2026-03-17 12:17:02 +01:00
Aelin 09e0c6f079 linux-postmarketos-mainline: Upgrade to 7.0_rc4
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8187>
2026-03-16 20:46:16 +00:00
Achill Gilgenast d15637099c systemd/gdm: fix logging into user-mode
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8189>
2026-03-16 14:58:42 +01:00
Aelin 49b4848ae3 systemd/systemd-stage0: upgrade to 259.5
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8176>
2026-03-16 00:44:33 +00:00
Aelin 13ba50b337 systemd/systemd: upgrade to 259.5
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8176>
2026-03-16 00:44:33 +00:00
Achill Gilgenast 605969d5b5 main/postmarketos-base-ui-gnome: recommend gnome-user-share & rygel
Enables the "Sharing"-panel in g-c-c for file & media sharing between
local computers.

Don't need a user preset, since they should be disabled by default, but
can be enabled in g-c-c.

Might need more configuration for mDNS/Avahi/zeroconf to work, but can be done
seperately, see
<https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/1380> &
<https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8102>

Closes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3256

[ci:skip-vercheck]: pmb_recommends

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8184>
2026-03-15 18:23:53 +00:00
TuxMan 442d503ae5 device-sony-yuga: fix DTB file path with mainline kernel
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8179>
2026-03-15 18:05:08 +00:00
Aster Boese fc9ba9b787 .gitlab: update issue template to reflect new default branch
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8183>
2026-03-15 17:47:41 +00:00
Aster Boese 5da1b74db0 ci: replace master strings with main
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8183>
2026-03-15 17:47:40 +00:00
Achill Gilgenast 9ca92f0d6d systemd/gnome-settings-daemon: remove
- user units are upstream
- sharing-panel is fine if linked against elogind

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8178>
2026-03-15 16:25:20 +00:00
Achill Gilgenast 1de8e0bc48 systemd/gdm: upgrade to 50.0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8178>
2026-03-15 16:25:20 +00:00
Achill Gilgenast ffc5605453 systemd/gnome-shell: upgrade to 50.0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8178>
2026-03-15 16:25:20 +00:00
Achill Gilgenast afdfedf26d systemd/mutter: upgrade to 50.0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8178>
2026-03-15 16:25:20 +00:00
Achill Gilgenast a00bb2161b systemd/gnome-session: upgrade to 50.0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8178>
2026-03-15 16:25:20 +00:00
Aster Boese 7d8b935704 treewide: change pmaports-specific master strings to main
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7566>
2026-03-15 13:54:37 +00:00
5705 changed files with 82220 additions and 1695567 deletions

No files matched your search

+1 -1
View File
@@ -89,7 +89,7 @@ update_linux_next() {
git remote add gitlab https://pmos-ci:"$PMAPORTS_PUSH_TOKEN"@gitlab.postmarketos.org/postmarketOS/pmaports.git
git fetch gitlab
git checkout --track gitlab/master
git checkout --track gitlab/main
for pkg in $PKGS; do
case "$pkg" in
-1
View File
@@ -1 +0,0 @@
lib/build_changed_aports.sh
+1 -1
View File
@@ -11,7 +11,7 @@
if [ "$(id -u)" = 0 ]; then
set -x
apk -q add py3-pip make git
apk add dint --allow-untrusted --repository=https://mirror.postmarketos.org/postmarketos/master
apk add dint --allow-untrusted --repository=https://mirror.postmarketos.org/postmarketos/main
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
+1 -1
View File
@@ -1,4 +1,4 @@
image: registry.alpinelinux.org/img/alpine:latest
image: registry.alpinelinux.org/img/alpine:3.23
stages:
- build
- hardware tests
-1
View File
@@ -1 +0,0 @@
lib/build_changed_aports.sh
-1
View File
@@ -1 +0,0 @@
lib/build_changed_aports.sh
-1
View File
@@ -1 +0,0 @@
lib/build_changed_aports.sh
-1
View File
@@ -1 +0,0 @@
lib/build_changed_aports.sh
+29
View File
@@ -0,0 +1,29 @@
#!/bin/sh -e
# Description: Ensure that we're not depending on a too new pmbootstrap version.
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
apk -q add coreutils curl jq
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
pmbootstrap_min_age_days="30"
pmbootstrap_min_version_field="$(grep pmbootstrap_min_version= pmaports.cfg)"
pmbootstrap_min_version="${pmbootstrap_min_version_field#*=}"
tag_date=$(curl -s "https://gitlab.postmarketos.org/api/v4/projects/postmarketOS%2Fpmbootstrap/repository/tags/$pmbootstrap_min_version" \
| jq -r ".created_at")
tag_age_timestamp=$(date -d "$tag_date" +"%s")
acceptable_age_timestamp=$(date -d "$pmbootstrap_min_age_days days ago" +"%s")
echo "NOTE: pmbootstrap versions must be at least $pmbootstrap_min_age_days days old to be the minimum required version"
if [ "$tag_age_timestamp" -ge "$acceptable_age_timestamp" ]; then
echo "ERROR: pmbootstrap version '$pmbootstrap_min_version' is too new!"
exit 1
else
echo "PASS: pmbootstrap version '$pmbootstrap_min_version' is acceptable"
exit 0
fi
+1 -1
View File
@@ -6,7 +6,7 @@
if [ "$(id -u)" = 0 ]; then
set -x
apk add git python3
apk add dint --allow-untrusted --repository=https://mirror.postmarketos.org/postmarketos/master
apk add dint --allow-untrusted --repository=https://mirror.postmarketos.org/postmarketos/main
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
+40
View File
@@ -1,4 +1,7 @@
#!/bin/sh -e
# shellcheck shell=busybox
# Description: check various bad patterns with grep
# https://postmarketos.org/pmb-ci
@@ -130,6 +133,34 @@ if [ -n "$CI_MERGE_REQUEST_DIFF_BASE_SHA" ]; then
fi
fi
# Find all moved, added, or generally modified kernel APKBUILDs
MODIFIED_KERNEL_PACKAGES=$(git show --pretty="" --name-only --diff-filter=AMR "$CI_MERGE_REQUEST_DIFF_BASE_SHA"..HEAD | grep "device/\(main\|community\|testing\|downstream\)/linux-.*/APKBUILD" || true)
if [ -n "$MODIFIED_KERNEL_PACKAGES" ]; then
# Disallow installing kernel modules outside /usr/
_bad_module_path_packages=""
for package in $MODIFIED_KERNEL_PACKAGES; do
# Check for INSTALL_MOD_PATH being set
if grep -qr 'INSTALL_MOD_PATH="$pkgdir"' "$package"; then
# Check if INSTALL_MOD_PATH is set to install to usr
if ! grep -qr 'INSTALL_MOD_PATH="$pkgdir"/usr' "$package"; then
# If INSTALL_MOD_PATH doesn't include usr, add package to list and
# setup failure
_bad_module_path_packages="$_bad_module_path_packages $package"
_module_error=1
fi
fi
done
# Fail with error and pretty print bad packages for logging
if [ -n "$_module_error" ]; then
echo "ERROR: Please set INSTALL_MOD_PATH to '\"\$pkgdir\"/usr'."
for package in $_bad_module_path_packages; do
printf "$package\n"
done
exit_code=1
fi
fi
# Disallow adding packages without a maintainer set
NEW_APKBUILDS=$(git show --pretty="" --name-only --diff-filter=A "$CI_MERGE_REQUEST_DIFF_BASE_SHA"..HEAD | grep APKBUILD || true)
@@ -140,6 +171,15 @@ if [ -n "$CI_MERGE_REQUEST_DIFF_BASE_SHA" ]; then
exit_code=1
fi
fi
# Get latest commit message in MR
case "$CI_COMMIT_DESCRIPTION" in
*"[ci:skip-grep]"*)
echo "WARNING: not checking packages with grep"
echo " ([ci:skip-grep])!"
exit_code=0
;;
esac
fi
exit "$exit_code"
+7 -23
View File
@@ -24,7 +24,7 @@ def get_package_contents(package, revision, check=True):
if not check:
stderr = subprocess.DEVNULL
# Run something like "git show upstream/master:main/hello-world/APKBUILD"
# Run something like "git show upstream/main:main/hello-world/APKBUILD"
pmaports_dir = common.get_pmaports_dir()
pattern = pmaports_dir + "/**/" + package + "/APKBUILD"
path = glob.glob(pattern, recursive=True)[0][len(pmaports_dir + "/"):]
@@ -137,7 +137,7 @@ def check_versions(packages):
pkgver = head.rpartition('-r')[0]
if package.startswith('device-') and not pkgver.isdigit():
print(f" - {package}: invalid pkgver \"{pkgver}\""
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
"See: https://docs.postmarketos.org/pmaports/main/packaging-guidelines.html#package-versioning-pkgver-pkgrel")
error = True
# Additional checks for device packages
@@ -145,27 +145,11 @@ def check_versions(packages):
head_parsed = get_package_contents(package, "HEAD", False)
upstream_parsed = get_package_contents(package, commit, False)
# checksums did not change
if head_parsed["sha512sums"] == upstream_parsed["sha512sums"]:
# Check that pkgver did not change
if head_parsed["pkgver"] != upstream_parsed["pkgver"]:
print(f" - {package}: pkgver should not change when package source checksums did not change."
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# We do not check for a bumped pkgrel, because not everything
# needs it, e.g: pmb_recommends
# checksums changed
else:
# Check that pkgrel was reset to 0
if head_parsed["pkgrel"] != "0":
print(f" - {package}: pkgrel should be 0 when package source checksums change."
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# Check that pkgver was changed
if head_parsed["pkgver"] == upstream_parsed["pkgver"]:
print(f" - {package}: pkgver should change when package source checksums change."
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# Check that pkgrel was reset to 0 when pkgver was changed
if head_parsed["pkgver"] != upstream_parsed["pkgver"] and head_parsed["pkgrel"] != "0":
print(f" - {package}: pkgrel should be 0 when pkgver changes."
"See: https://docs.postmarketos.org/pmaports/main/packaging-guidelines.html#package-versioning-pkgver-pkgrel")
error = True
# Compare head and upstream versions
result = pmb.parse.version.compare(head, upstream)
+1 -1
View File
@@ -90,7 +90,7 @@ def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--booting", help="devices must be in the upper table,"
" being in the 'not booting' table below is not"
" enough (all devices in pmaports master and stable"
" enough (all devices in pmaports main and stable"
" branches and should be in the upper table)",
action="store_true")
parser.add_argument("--path", help="instead of downloading the devices"
+2 -2
View File
@@ -48,7 +48,7 @@ def run_pmbootstrap(parameters):
@cache
def get_upstream_branch():
""" Use pmaports.cfg from current branch (e.g. "v20.05_fix-ci") and
channels.cfg from master to retrieve the upstream branch.
channels.cfg from main to retrieve the upstream branch.
:returns: branch name, e.g. "v20.05" """
@@ -65,7 +65,7 @@ def get_upstream_branch():
# Get branch_pmaports (e.g. "v20.05") from channels.cfg
# https://postmarketos.org/channels.cfg
channels_cfg_str = run_git(["show", "upstream/master:channels.cfg"])
channels_cfg_str = run_git(["show", "upstream/main:channels.cfg"])
channels_cfg = configparser.ConfigParser()
channels_cfg.read_string(channels_cfg_str)
assert channel in channels_cfg, \
+10 -3
View File
@@ -3,6 +3,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import common
import glob
import os.path
import subprocess
import sys
@@ -11,9 +12,15 @@ if __name__ == "__main__":
if common.commit_message_has_string("[ci:skip-dint]"):
print("WARNING: not linting deviceinfo files ([ci:skip-dint])")
exit(0)
# only lint deviceinfo files in the devices repo
deviceinfo_files = {file for file in common.get_changed_files()
if os.path.basename(file) == "deviceinfo" and file.startswith("device/")}
if "deviceinfo_schema.toml" in common.get_changed_files():
print("deviceinfo_schema.toml changed -> checking all deviceinfo files")
pmaports_dir = common.get_pmaports_dir()
deviceinfo_files = set(glob.glob(pmaports_dir + "/device/*/*/deviceinfo"))
else:
# only lint deviceinfo files in the devices repo
deviceinfo_files = {file for file in common.get_changed_files()
if os.path.basename(file) == "deviceinfo" and file.startswith("device/")}
try:
subprocess.run(["dint", "check", *deviceinfo_files], text=True, check=True)
+2 -2
View File
@@ -211,8 +211,8 @@ if __name__ == "__main__":
archtag={
Arch.x86_64: "shared",
Arch.x86: "shared",
Arch.aarch64: "arm64",
Arch.armv7: "qemu",
Arch.aarch64: "aarch64",
Arch.armv7: "armv7",
Arch.armhf: "qemu",
Arch.riscv64: "qemu",
Arch.ppc64le: "ppc64le",
+5
View File
@@ -16,6 +16,11 @@ fi
sh_files="
./main/mdss-fb-init-hack/mdss-fb-init-hack.sh
./main/postmarketos-base-ui/rootfs-usr-lib-NetworkManager-dispatcher.d-50-dns-filter.sh
./main/postmarketos-base-ui/rootfs-usr-lib-NetworkManager-dispatcher.d-50-tethering.sh
./main/postmarketos-duranium/rootfs-usr-bin-duranium-set-channel
./main/postmarketos-duranium/rootfs-usr-libexec-duranium-first-boot
./main/postmarketos-duranium/rootfs-usr-libexec-duranium-mount-subpartitions
./main/postmarketos-duranium/rootfs-usr-libexec-duranium-usb-gadget-setup
./main/postmarketos-installkernel/installkernel-pmos
./main/postmarketos-initramfs/init.sh
./main/postmarketos-initramfs/init_functions.sh
+13
View File
@@ -128,6 +128,7 @@ dint:
- .ci/**/*
- .gitlab-ci.yml
- device/*/device-*/deviceinfo
- deviceinfo_schema.toml
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/dint.sh
@@ -171,6 +172,18 @@ mr-settings:
- wget -q "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/main/check_mr_settings.py"
- python3 ./check_mr_settings.py
pmbootstrap minimum version:
stage: lint
rules:
- if: *mr_rule
changes:
- .ci/check-pmbootstrap-min-version.sh
- .gitlab-ci.yml
- pmaports.cfg
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/check-pmbootstrap-min-version.sh
# Calculate build of changed aports using a dynamic downstream pipelines:
# https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#dynamic-child-pipelines
# For those to work, we need two jobs:
+2 -2
View File
@@ -26,7 +26,7 @@
<!--
Replace space inside `[ ]` with `x` to fill the checkbox
-->
* [ ] edge (`master` branch)
* [ ] edge (`main` branch)
* [ ] `v25.12`
* [ ] I confirm that the issue still is present after running `sudo apk upgrade -a`
@@ -35,7 +35,7 @@
#### Environments
* [ ] COSMIC
* [ ] GNOME Shell on Mobile
* [ ] Phosh
* [ ] Phosh (*Please attach the debug information of the Mobile settings app, see [this video](https://peertube.debian.social/w/4GwDjCJNcAmp8cb7dqXz1T) or use `phosh-mobile-settings -d`*)
* [ ] Plasma Mobile
* [ ] Sxmo (Wayland/Sway) **Please post the output of `sxmo_version.sh`**
* [ ] Other: **Please fill out**
@@ -8,4 +8,8 @@
* Maintainers of the package:
* MR that had no maintainer response, if applicable:
If the maintainers don't reply within two weeks of opening this issue, the
package is considered orphaned and, in the case of device packages, the devices
will be moved to the archived category.
/label ~maintainership-status
@@ -0,0 +1,22 @@
<!-- Use this template to notify community kernel maintainers that their
kernels are out-of-date and start the timer for moving them to testing.
-->
Hi, as per our
[device categorization requirements for the community category](https://docs.postmarketos.org/pmaports/main/device-categorization.html#community),
devices in the community category may not use a kernel version older than 6
months.
As of today (dd-mm-yyyy), the following kernels do not meet this requirement:
* kernel-pkgname: kernel-pkgver, version-release-date (maintainers: @ ...)
This issue is an attempt to notify you (the maintainers) of the situation so
that you can update the packages. As per the rules, you have two weeks to
update the packages or reply with a request for more time, up to one month
of time from the moment this issue is opened. If that time passes and the
devices still no longer meet the requirements, they will be moved to testing.
/label ~"device-category::community"
/label ~kernel
/label ~"type::policy"
+29
View File
@@ -0,0 +1,29 @@
<!--
This template is for marking a postmarketOS stable release as EOL.
Name this issue "vYY.MM EOL".
-->
When the release has reached its EOL date:
- [ ] `postmarketos-base-ui`: let it depend on
`postmarketos-release-upgrade-notification` and bump pkgrel
- [ ] ensure it builds locally with pmbootstrap
- [ ] push it to the branch
- [ ] make sure bpo built and released the updated packages
- [ ] drop the old release from
[monitoring](https://gitlab.postmarketos.org/postmarketOS/monitoring)
- [ ] drop the "oldold -> old" release check from
[postmarketos-release-upgrade](https://gitlab.postmarketos.org/postmarketOS/postmarketos-release-upgrade/)
CI
- [ ] bpo: configure images so they don't get built for the old release anymore
- [ ] bpo: configure branches so we don't try to build packages for old
branches anymore
- e.g. on startup all branches are checked for new packages, we should keep
the amount of branches that get checked minimal
- [ ] pmaports.git channels.cfg: change description:
- "Old release (unsupported)"
- [ ] Update the [Releases](https://docs.postmarketos.org/pmaports/main/releases.html) page
- Move the release from active to old
- [ ] Consider removing images for the previous releases to save disk space
(people can build their own images with pmbootstrap if needed)
@@ -0,0 +1,221 @@
<!--
This template is for creating a new postmarketOS stable release.
Name this issue "vYY.MM Infrastructure".
-->
Person in charge of the release (doesn't have to do all the work, but has to
push it forward):
<!-- Put your usename here and assign yourself to this issue -->
### Preparation
- [ ] Create the gitlab milestone for the release
- [ ] Add this infrastructure issue to the milestone
- [ ] Update the
[timeline](https://docs.postmarketos.org/policies-and-processes/development/releases/current-timeline.html)
for the next release
### Pre-Build phase
This phase is to get some extra time for building packages. The branch will be rebased once in the branch phase.
#### Requirements
- [ ] Alpine's main repository must be built and published
- [ ] Alpine's community repository must be built and published
#### pmbootstrap: adjust config
- [ ] Update `pmb/config/__init__.py:apk_tools_min_version`. This should be a
trivial change, push it directly to main.
- [ ] (can be done later, at start of test phase) make a new [pmbootstrap
release](https://wiki.postmarketos.org/wiki/Pmbootstrap_release) <small>bpo
uses the main branch, so it will be fine without a release, however users
will want to try out the new release and may not run main.</small>
#### pmaports: create branch and initial changes
- [ ] `git checkout -b vYY.MM main`
- [ ] Create a `=== Branch vYY.MM from main ===` commit
- Remove channels.cfg (should only be in main)
- Change `channel=edge` to `channel=vYY.MM` in pmaports.cfg
- Change `supported_arches` to `x86_64,aarch64,armv7` in pmaports.cfg
- Disable x86, armhf, riscv64 in .ci/build-jobs.yaml.j2 on the release branch
and delete `.ci/build-*` scripts for these arches
- [ ] `git push`
- [ ] '''protect the new release branch in gitlab''', so nobody can force-push to it
#### pmaports: update main branch
- [ ] `git checkout main`
- [ ] Add the new branch to
[channels.cfg](https://wiki.postmarketos.org/wiki/Channels.cfg_reference),
[like this](https://gitlab.postmarketos.org/postmarketOS/pmaports/-/commit/c43571ceaf9b8155519bc9fb760bdeccd96e7e9c)
- [ ] `git push`
#### pmaports: update os-release / remove packages / aportgen
- [ ] `git checkout vYY.MM`
- [ ] Update `postmarketos-base`:
- [ ] Set version info for `/usr/lib/os-release` in
`main/postmarketos-base/rootfs-usr-lib-os-release`
(`PRETTY_NAME="postmarketOS vYY.MM"`, `VERSION_ID="vYY.MM"`,
`VERSION="vYY.MM"`)
- `pmbootstrap pkgrel_bump postmarketos-base`
- `pmbootstrap config mirrors.pmaports none`
- `pmbootstrap config mirrors.systemd none`
- `pmbootstrap checksum postmarketos-base`
- `git commit`
- [ ] Remove packages:
- `cross/*-armhf` and other unsupported arches in cross dir (keep `gcc-x86` and `musl-dev-x86`, `systemd-boot-x86`)
- `main/postmarketos-ui-asteroid` (no smartwatches are useful on stable branches at the moment)
- `gcc4*` and `gcc6*` from main and cross dirs
- `device/downstream`, `device/archived`
- [ ] Run `pmbootstrap aportgen` for packages in cross
- [ ] `git push`
#### bpo: adjust config
- [ ] Add the branch to the
[build.postmarketos.org](https://gitlab.postmarketos.org/postmarketOS/build.postmarketos.org)
config in `bpo/config/const/__init__.py:branches` below `branches["main"]`,
so it builds with lower priority than main until it's released. Set `ignore_errors` to `True`.
- [ ] Make a merge request, wait until CI passes, merge it (or if you can directly push to main that's also fine since it's a trivial change)
- [ ] Roll it out/ask somebody who can do that
- [ ] Restart bpo, it will start building `x86_64` packages
#### bootstrap of binary packages
- [ ] Fix failing `x86_64` packages (Remember: patches need to go through edge
first, then get backported to the stable branch!)
- Try to get build fixes merged to edge quickly, ask for reviews in
#postmarketos-devel, and consider merging trivial fixes right after they
pass CI.
- Devices in testing and archived categories that don't build: consider
trying to fix them, or just delete them from the branch
- [ ] Wait until all packages for `x86_64` are built and published
- [ ] Fix up ARM packages too
- [ ] Wait until all packages for ARM are built and published
#### Wallpaper poll
- [ ] Team meeting: make a short list of 4 wallpapers from [the
pool](https://gitlab.postmarketos.org/postmarketOS/artwork/-/tree/main/wallpapers/2024)
- [ ] Make a poll on the wallpapers on mastodon
([example](https://fosstodon.org/@postmarketOS/113624366198561582))
- Make sure to thank the wallpaper authors (usually dikasp) for the amazing
work on the wallpapers
- Put the names of the wallpapers on top of the wallpapers for easier voting
and as alt text
- Create a comment with poll options
#### Adjust CI
- [ ] Make sure pmaports.git CI runs through on the new branch (run
`pmbootstrap ci`). Examples of why it might fail:
- One postmarketos-ui package has a package from alpine testing in their
_pmb_recommends.
- Remove the UI if it is not used much (can bring it back on demand) or
fork the package to the new branch
- Consider fixing it in edge, so we don't run into this with the next
release
- [ ] Adjust
[upstream-compat](https://gitlab.postmarketos.org/postmarketOS/continuous-testing/upstream-compat)
to run on the new release and make sure it passes
([example](https://gitlab.postmarketos.org/postmarketOS/continuous-testing/upstream-compat/-/merge_requests/10))
#### Adjust release upgrade script
- [ ] Add the new release to `upgrade.sh` in [postmarketos-release-upgrade](https://gitlab.postmarketos.org/postmarketOS/postmarketos-release-upgrade/)
- [ ] Bump `SCRIPT_VERSION`, tag a new release
- [ ] Package it for edge (make MR), backport it to the new release, but NOT to
the old release yet (otherwise users may upgrade by accident, without
realizing that the new version is not out yet!)
- [ ] Adjust CI of postmarketos-release-upgrade to test the new release too
(`git grep` for the previous release to see what needs to be adjusted)
### Update the wallpaper
- [ ] Set the wallpaper that won in the poll in edge, backport this change to
the stable release branch
### Branch phase
#### Rebase on main
- [ ] `git checkout vYY.MM`
- [ ] `git rebase -i origin/main`
- [ ] Temporarily enable force-push for the `vYY.MM` branch
- [ ] `git push --force-with-lease`
- [ ] Disable force-push for the `vYY.MM` branch again
#### Update BPO config
- [ ] Update bpo's images config to build images for the new branch for all
devices in community and main, except for:
- qemu-*
- [ ] bpo: configure the new branch to be not WIP anymore
- [ ] Roll-out bpo changes
#### pmb release done?
- [ ] Ensure that a pmbootstrap release been made with the apk-tools min
version change
### Test phase
- [ ] Create an issue in pmaports with a checklist of devices and UIs in main
and community (see previous issue for reference)
- Tag the testers of each device and UI
- Ask to verify that the images work as expected
- Release upgrade script: when coming from the previous release, grab it from
main: `wget https://gitlab.postmarketos.org/postmarketOS/postmarketos-release-upgrade/-/raw/main/upgrade.sh`
- [ ] Announce the new phase in the testing chat - and ask them to do the
testing within one week, as in the timeline.
- Prioritize merging fixes from maintainers (they do the heavy lifting in the
testing and fixing phase, see timetable)
- Make sure to properly cherry pick fixes from MRs to edge, if they are
intended for the upcoming release
- [ ] Add new version to the pmaports gitlab issue template (.gitlab dir)
### Release phase
- [ ] Did a reasonable amount of devices get tested? (we may consider dropping
devices that were not tested)
- [ ] Make sure all fixes are in
- [ ] Make sure new images are generated *with* the fixes (unless it's a fix
for something that doesn't impact the experience much and is fine to get with
the first update after installing)
- [ ] Announce the new phase in the testing chat, together with the planned
date of blog post release (and testing)
#### Write blog post
- [ ] Write a blog post for the new release in `postmarketos.org.git`:
- Look at the previous release blog post and try to make the new one
consistent with it
- Highlight major changes since the last release
(see the release notes issue)
- Mention new devices, and total list of devices
- Count devices that have their own wiki page as separate device
- E.g. OnePlus 6, 6T are two devices (two wiki pages), but variants of
"Samsung Galaxy A3 (2015)" are one device (one wiki page)
- Don't count/list devices for which we don't build images (e.g.
qemu-amd64)
- Adjust the homepage config to point to the new release in the downloads
page
- update `config/download.py`:
- `latest_release`
- update devices and categories. only list the ones where we actually build images.
- Add some cool photos
- Submit the blog post as MR to postmarketos.org.git.
- Let the blog post MR close the current release notes issue.
- Ask for reviews.
#### Release!
- [ ] Backport the new postmarketos-release-upgrade version that allows
upgrading to the new release, to the previous release (don't do this before
the release is tested and ready! During the testing phase, we can use
postmarketos-release-upgrade from main directly: `wget
https://gitlab.postmarketos.org/postmarketOS/postmarketos-release-upgrade/-/raw/main/upgrade.sh`)
- [ ] Add the branch to pkgs.postmarketos.org
- [ ] Merge the blog post
- [ ] Edit channels.cfg, change descriptions:
- New release: "Latest release / Recommended for best stability"
- Old release: "Old release (supported until YYYY-MM-DD)" (one month from date of the release)
- [ ] Create a milestone for the next release
- [ ] Create an issue for the next release notes and attach it to that milestone
- [ ] Update the [Releases](https://docs.postmarketos.org/pmaports/main/releases.html) page
- Move the new release to the list of active releases, link to the blog post
- Update the announcement and title for the release
- Add a new upcoming release below
- [ ] Update [Template:Latest stable release](https://wiki.postmarketos.org/wiki/Template:Latest_stable_release) on the wiki with the new version
- [ ] Update "Default description template for issues" in pmaports (.gitlab dir)
- In "On what postmarketOS version did you encounter the issue?", change:
- previous release: add " (supported until YYYY-MM-DD)"
- add the new release
- [ ] Put a reminder in recurring-admin-tasks to drop support for the old release
+3 -1
View File
@@ -5,10 +5,12 @@ This repository contains the APKBUILD files for postmarketOS-specific packages,
There are many more packages defined in the [Alpine Linux aports](https://gitlab.alpinelinux.org/alpine/aports/) on which these packages depend.
Helpful resources:
* [Issues](https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items)
* [How to create a package](https://wiki.postmarketos.org/wiki/Create_a_package)
* [APKBUILD reference](https://wiki.alpinelinux.org/wiki/APKBUILD_Reference)
* [pmaports commit style](./COMMITSTYLE.md)
* [Review and merging guidelines](./docs/modules/ROOT/pages/merging-rules.adoc)
* [Approval rules](docs/approval-rules.md)
* [Alpine Linux aports](https://gitlab.alpinelinux.org/alpine/aports/)
* [Alpine Linux package search](https://pkgs.alpinelinux.org/packages)
* [postmarketOS package search](https://pkgs.postmarketos.org/packages)
-81
View File
@@ -1,81 +0,0 @@
# Reference: https://postmarketos.org/channels.cfg
[channels.cfg]
recommended=edge
[edge]
description=Rolling release / Most devices / Occasional breakage: https://postmarketos.org/edge
branch_pmaports=main
branch_aports=master
mirrordir_alpine=edge
[v25.12]
description=Latest release / Recommended for best stability
branch_pmaports=v25.12
branch_aports=3.23-stable
mirrordir_alpine=v3.23
[v25.06]
description=Old release (unsupported)
branch_pmaports=v25.06
branch_aports=3.22-stable
mirrordir_alpine=v3.22
[v24.12]
description=Old release (unsupported)
branch_pmaports=v24.12
branch_aports=3.21-stable
mirrordir_alpine=v3.21
[v24.06]
description=Old release (unsupported)
branch_pmaports=v24.06
branch_aports=3.20-stable
mirrordir_alpine=v3.20
[v23.12]
description=Old release (unsupported)
branch_pmaports=v23.12
branch_aports=3.19-stable
mirrordir_alpine=v3.19
[v23.06]
description=Old release (unsupported)
branch_pmaports=v23.06
branch_aports=3.18-stable
mirrordir_alpine=v3.18
[v22.12]
description=Old release (unsupported)
branch_pmaports=v22.12
branch_aports=3.17-stable
mirrordir_alpine=v3.17
[v22.06]
description=Old release (unsupported)
branch_pmaports=v22.06
branch_aports=3.16-stable
mirrordir_alpine=v3.16
[v21.12]
description=Old release (unsupported)
branch_pmaports=v21.12
branch_aports=3.15-stable
mirrordir_alpine=v3.15
[v21.06]
description=Old release (unsupported)
branch_pmaports=v21.06
branch_aports=3.14-stable
mirrordir_alpine=v3.14
[v21.03]
description=Old release (unsupported)
branch_pmaports=v21.03
branch_aports=3.13-stable
mirrordir_alpine=v3.13
[v20.05]
description=Old release (unsupported)
branch_pmaports=v20.05
branch_aports=3.12-stable
mirrordir_alpine=v3.12
-43
View File
@@ -1,43 +0,0 @@
# This package gets installed in the native and foreign arch chroots.
# It creates files like /usr/lib/arch-bin-masquerade/armhf/gcc, which
# point in the native chroot to the armhf-cross-compiler, and in the
# armhf chroot to /usr/bin/gcc. That way compilation works fine, even
# when distcc gets the absolute path to the compiler passed (ccache does
# that).
maintainer=""
pkgname=arch-bin-masquerade
pkgver=2
pkgrel=0
pkgdesc="Wrappers for ccache + distcc (native and foreign chroots)"
url="https://postmarketOS.org"
arch="all"
license="MIT"
options="!check !tracedeps pmb:cross-native"
package() {
# Architectures and binaries
_archs="x86_64 armhf armv7 aarch64"
_bins="c++ cc cpp g++ gcc"
# Iterate over architectures
for _arch in $_archs; do
# Create the arch-specific bin folder
_hostspec="$(arch_to_hostspec $_arch)"
_bindir="$pkgdir/usr/lib/arch-bin-masquerade/$_arch"
mkdir -p "$_bindir"
cd "$_bindir"
# Iterate over binaries and create wrappers
for _bin in $_bins; do
{
echo "#!/bin/sh"
if [ "$_arch" == "$CARCH" ]; then
echo "exec /usr/bin/${_bin} \"\$@\""
else
echo "exec /usr/bin/${_hostspec}-${_bin} \"\$@\""
fi
} > "$_bin"
chmod +x "$_bin"
done
done
}
@@ -0,0 +1,31 @@
Provide struct_sock_fprog_sz on Linux, rather than on Linux+glibc.
With `#include <linux/filter.h>` `struct sock_fprog` is available when
linux headers are available. It seems that glibc is just including that header
as an implementation detail, while musl does not.
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2025-08-08 08:51:45.621434001 +0200
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2026-02-25 20:29:28.519492722 +0100
@@ -74,6 +74,7 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
+#include <linux/filter.h>
#if SANITIZER_ANDROID
#include <linux/fs.h>
#endif
@@ -507,6 +508,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
unsigned struct_synth_info_sz = sizeof(struct synth_info);
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
#endif // SANITIZER_LINUX
#if SANITIZER_GLIBC
@@ -534,7 +536,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
- unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
# endif // SANITIZER_GLIBC
# if !SANITIZER_ANDROID && !SANITIZER_APPLE
+28 -6
View File
@@ -1,7 +1,6 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-aarch64
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=aarch64
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
@@ -23,6 +22,7 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=gcc-aarch64
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
@@ -34,19 +34,23 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-aarch64
pkgrel=2
pkgrel=5
pkgdesc="Stage2 cross-compiler for aarch64"
url="https://gcc.gnu.org"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-aarch64 mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
depends="binutils-aarch64 mpc1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
case "$CARCH" in
x86_64) depends="$depends so:libc.musl-x86_64.so.1" ;;
esac
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-aarch64 binutils-aarch64"
subpackages="g++-aarch64:gpp libstdc++-dev-aarch64:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
options="!strip !tracedeps toolchain"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -175,7 +179,10 @@ esac
# libatomic is a dependency for openvswitch
$_libatomic && subpackages="$subpackages libatomic::$CTARGET_ARCH"
$_libgcc && subpackages="$subpackages libgcc::$CTARGET_ARCH"
if $_libgcc; then
depends="$depends libgcc-static$_target"
subpackages="$subpackages libgcc::$CTARGET_ARCH libgcc-static$_target:libgccstatic:$CTARGET_ARCH"
fi
$_libquadmath && subpackages="$subpackages libquadmath::$CTARGET_ARCH"
if $_libgomp; then
depends="$depends libgomp=$_gccrel"
@@ -279,6 +286,7 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0042-libsanitizer-struct_sock_fprog_sz.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
@@ -580,7 +588,11 @@ gpp() {
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
depends="$depends so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
case "$CARCH" in
x86_64) depends="$depends so:libc.musl-x86_64.so.1" ;;
esac
amove $_gcclibexec/cc1plus
amove usr/bin/*++
@@ -624,6 +636,15 @@ libgcc() {
amove usr/lib/libgcc_s.so.*
}
libgccstatic() {
pkgdesc="GNU C compiler runtime libraries"
depends=
amove usr/lib/gcc/"$CTARGET"/"$pkgver"/crtbeginS.o
amove usr/lib/gcc/"$CTARGET"/"$pkgver"/crtendS.o
amove usr/lib/gcc/"$CTARGET"/"$pkgver"/libgcc.a
}
libgomp() {
pkgdesc="GCC shared-memory parallel programming API library"
depends=
@@ -796,6 +817,7 @@ eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
5dd452a80c496a587a8826b04a4917045e4028631606e85cabd8e87e0460642d188a2156c4e0cf37a5d88e66ebd08a08393d48a6065045178c69eaba2edd063e 0042-libsanitizer-struct_sock_fprog_sz.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
@@ -1,130 +0,0 @@
From 824eae920f0f64dd7687c969a2436b129161fdc9 Mon Sep 17 00:00:00 2001
From: Jinyang He <hejinyang@loongson.cn>
Date: Wed, 29 Oct 2025 16:07:35 +0800
Subject: [PATCH] LoongArch: Only allow valid binary op when optimize
conditional move
It is wrong that optimize from `if (cond) dest op= 1 << shift` to
`dest op= (cond ? 1 : 0) << shift` when `dest op 0 != dest`.
Like `and`, `mul` or `div`.
And in this optimization `mul` and `div` is optimized to shift.
gcc/ChangeLog:
* config/loongarch/loongarch.cc
(loongarch_expand_conditional_move): Only allow valid binary
op when optimize conditional move.
gcc/testsuite/ChangeLog:
* gcc.target/loongarch/conditional-move-opt-1.c: Remove mul.
* gcc.target/loongarch/conditional-move-opt-2.c: Remove and.
* gcc.target/loongarch/conditional-move-opt-3.c: New test.
Co-Authored-By: Peng Fan <fanpeng@loongson.cn>
---
gcc/config/loongarch/loongarch.cc | 26 ++++++++++++++++---
.../loongarch/conditional-move-opt-1.c | 4 +--
.../loongarch/conditional-move-opt-2.c | 2 +-
.../loongarch/conditional-move-opt-3.c | 14 ++++++++++
4 files changed, 40 insertions(+), 6 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/loongarch/conditional-move-opt-3.c
diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc
index bdf290654..740c8611a 100644
--- a/gcc/config/loongarch/loongarch.cc
+++ b/gcc/config/loongarch/loongarch.cc
@@ -5533,12 +5533,32 @@ loongarch_expand_conditional_move (rtx *operands)
}
}
+ auto is_binary_op_0_keep_orig = [](enum rtx_code code)
+ {
+ switch (code)
+ {
+ case PLUS:
+ case MINUS:
+ case IOR:
+ case XOR:
+ case ROTATE:
+ case ROTATERT:
+ case ASHIFT:
+ case ASHIFTRT:
+ case LSHIFTRT:
+ return true;
+ default:
+ return false;
+ }
+ };
+
/* Check if the optimization conditions are met. */
if (value_if_true_insn
&& value_if_false_insn
- /* Make sure that value_if_false and var are the same. */
- && BINARY_P (value_if_true_insn_src
- = SET_SRC (single_set (value_if_true_insn)))
+ /* Make sure that the orig value OP 0 keep orig. */
+ && (value_if_true_insn_src
+ = SET_SRC (single_set (value_if_true_insn)))
+ && is_binary_op_0_keep_orig ( GET_CODE (value_if_true_insn_src))
/* Make sure that both value_if_true and value_if_false
has the same var. */
&& rtx_equal_p (XEXP (value_if_true_insn_src, 0),
diff --git a/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-1.c b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-1.c
index ed13471aa..47802aa96 100644
--- a/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-1.c
+++ b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-1.c
@@ -27,7 +27,7 @@ void
test_lt ()
{
if (lm < ln)
- lr *= (1 << 16);
+ lr += (1 << 16);
lr += lm;
}
@@ -35,7 +35,7 @@ void
test_le ()
{
if (lm <= ln)
- lr = lm * ((long)1 << 32);
+ lr = lm + ((long)1 << 32);
else
lr = lm;
lr += lm;
diff --git a/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-2.c b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-2.c
index ac72d4d93..743fd5e67 100644
--- a/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-2.c
+++ b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-2.c
@@ -29,7 +29,7 @@ void
test_lez ()
{
if (lm <= 0)
- lr &= (1 << 16);
+ lr |= (1 << 16);
lr += lm;
}
diff --git a/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-3.c b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-3.c
new file mode 100644
index 000000000..95887980c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-3.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-final { scan-assembler "maskeqz" } } */
+/* { dg-final { scan-assembler "masknez" } } */
+
+extern long lm, ln, lr;
+
+void
+test_and ()
+{
+ if (lm < 0)
+ lr &= (1 << 16);
+ lr += lm;
+}
--
2.51.1
-42
View File
@@ -1,42 +0,0 @@
From 94cf7d2b3514ed3a4401861a519ead450e022afc Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Fri, 26 Jan 2018 20:32:50 +0000
Subject: [PATCH] posix_memalign
---
gcc/config/i386/pmm_malloc.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
index d1d79a32fc9..069c3bb8324 100644
--- a/gcc/config/i386/pmm_malloc.h
+++ b/gcc/config/i386/pmm_malloc.h
@@ -27,12 +27,13 @@
#include <stdlib.h>
/* We can't depend on <stdlib.h> since the prototype of posix_memalign
- may not be visible. */
+ may not be visible and we can't pollute the namespace either. */
#ifndef __cplusplus
-extern int posix_memalign (void **, size_t, size_t);
+extern int _mm_posix_memalign (void **, size_t, size_t)
#else
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
+extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw ()
#endif
+__asm__("posix_memalign");
static __inline void *
_mm_malloc (size_t __size, size_t __alignment)
@@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment)
return malloc (__size);
if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4))
__alignment = sizeof (void *);
- if (posix_memalign (&__ptr, __alignment, __size) == 0)
+ if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0)
return __ptr;
else
return NULL;
--
2.50.1
@@ -1,77 +0,0 @@
From 21b7d08714c4964403848db4144003835ff5245a Mon Sep 17 00:00:00 2001
From: Linsen Zhou <i@lin.moe>
Date: Fri, 17 Oct 2025 11:05:04 +0800
Subject: [PATCH] tree-object-size.cc: Fix assert constant offset in
check_for_plus_in_loops [PR122012]
After commit 51b85dfeb19652bf3e0aaec08828ba7cee1e641c, when the
pointer offset is a variable in the loop, the object size of the
pointer may also need to be reexamined.
Which make gcc_assert in the check_for_plus_in_loops failed.
gcc/ChangeLog:
PR tree-optimization/122012
* tree-object-size.cc (check_for_plus_in_loops): Skip check
for the variable offset
gcc/testsuite/ChangeLog:
PR tree-optimization/122012
* gcc.dg/torture/pr122012.c: New test.
Signed-off-by: Linsen Zhou <i@lin.moe>
(cherry picked from commit 82cefc4898d4ccabe76e28d6626b91ca9e998923)
---
gcc/testsuite/gcc.dg/torture/pr122012.c | 18 ++++++++++++++++++
gcc/tree-object-size.cc | 7 +++----
2 files changed, 21 insertions(+), 4 deletions(-)
create mode 100644 gcc/testsuite/gcc.dg/torture/pr122012.c
diff --git a/gcc/testsuite/gcc.dg/torture/pr122012.c b/gcc/testsuite/gcc.dg/torture/pr122012.c
new file mode 100644
index 00000000000..055915a1e98
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr122012.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+#include <stdlib.h>
+
+void foo();
+
+void test(size_t step) {
+ char *buf = malloc(64);
+ char *p = buf;
+ size_t i;
+
+ for(i = 0; i < 64; ++i) {
+ p += 4;
+ if (__builtin_object_size (p, 2) != 0)
+ foo();
+ p += step;
+ }
+ free(buf);
+}
diff --git a/gcc/tree-object-size.cc b/gcc/tree-object-size.cc
index 2d13ab79a84..76dc2446059 100644
--- a/gcc/tree-object-size.cc
+++ b/gcc/tree-object-size.cc
@@ -2153,12 +2153,11 @@ check_for_plus_in_loops (struct object_size_info *osi, tree var)
&& gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR)
{
tree basevar = gimple_assign_rhs1 (stmt);
- tree cst = gimple_assign_rhs2 (stmt);
-
- gcc_assert (TREE_CODE (cst) == INTEGER_CST);
+ tree offset = gimple_assign_rhs2 (stmt);
/* Skip non-positive offsets. */
- if (integer_zerop (cst) || compare_tree_int (cst, offset_limit) > 0)
+ if (TREE_CODE (offset) != INTEGER_CST
+ || integer_zerop (offset) || compare_tree_int (offset, offset_limit) > 0)
return;
osi->depths[SSA_NAME_VERSION (basevar)] = 1;
--
2.51.0
@@ -1,258 +0,0 @@
From 0d5e04099a3d2609105719f7396a4ff941b873b6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 23 Jan 2025 17:12:51 -0800
Subject: [PATCH] gcc: poison-system-directories
Add /sw/include and /opt/include based on the original
zecke-no-host-includes.patch patch. The original patch checked for
/usr/include, /sw/include and /opt/include and then triggered a failure and
aborted.
Instead, we add the two missing items to the current scan. If the user
wants this to be a failure, they can add "-Werror=poison-system-directories".
Upstream-Status: Inappropriate [OE configuration]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: sunil dora <sunilkumar.dora@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
gcc/common.opt | 4 ++++
gcc/config.in | 10 ++++++++++
gcc/configure | 19 +++++++++++++++++++
gcc/configure.ac | 16 ++++++++++++++++
gcc/doc/invoke.texi | 9 +++++++++
gcc/gcc.cc | 12 ++++++++++--
gcc/incpath.cc | 25 +++++++++++++++++++++++++
7 files changed, 93 insertions(+), 2 deletions(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index e3fa0dacec4..bea1adc0940 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -729,6 +729,10 @@ Wreturn-local-addr
Common Var(warn_return_local_addr) Init(1) Warning
Warn about returning a pointer/reference to a local or temporary variable.
+Wpoison-system-directories
+Common Var(flag_poison_system_directories) Init(1) Warning
+Warn for -I and -L options using system directories if cross compiling
+
Wshadow
Common Var(warn_shadow) Warning
Warn when one variable shadows another. Same as -Wshadow=global.
diff --git a/gcc/config.in b/gcc/config.in
index a79c51adb2b..8a531ed591c 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -249,6 +249,16 @@
#endif
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+#endif
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef POISON_BY_DEFAULT
+#endif
+
+
/* Define if you want all operations on RTL (the basic data structure of the
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
index 16965953f05..0f4a5d52c30 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -1051,6 +1051,7 @@ enable_maintainer_mode
enable_link_mutex
enable_link_serialization
enable_version_specific_runtime_libs
+enable_poison_system_directories
enable_plugin
enable_host_shared
enable_host_pie
@@ -1828,6 +1829,8 @@ Optional Features:
--enable-version-specific-runtime-libs
specify that runtime libraries should be installed
in a compiler-specific directory
+ --enable-poison-system-directories
+ warn for use of native system header directories
--enable-plugin enable plugin support
--enable-host-shared build host code as shared libraries
--enable-host-pie build host code as PIE
@@ -34027,6 +34030,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
fi
+# Check whether --enable-poison-system-directories was given.
+if test "${enable_poison_system_directories+set}" = set; then :
+ enableval=$enable_poison_system_directories;
+else
+ enable_poison_system_directories=no
+fi
+
+if test "x${enable_poison_system_directories}" != "xno"; then
+
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
+if test "$enable_poison_system_directories" = "error"; then
+$as_echo "#define POISON_BY_DEFAULT 1" >>confdefs.h
+fi
+
+fi
+
# Substitute configuration variables
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 9f67e62950a..b0e3615e5aa 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -7502,6 +7502,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
+AC_ARG_ENABLE([poison-system-directories],
+ AS_HELP_STRING([--enable-poison-system-directories],
+ [warn for use of native system header directories (no/yes/error)]),,
+ [enable_poison_system_directories=no])
+AC_MSG_NOTICE([poisoned directories $enable_poison_system_directories])
+if test "x${enable_poison_system_directories}" != "xno"; then
+ AC_MSG_NOTICE([poisoned directories enabled])
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
+ [1],
+ [Define to warn for use of native system header directories])
+ if test $enable_poison_system_directories = "error"; then
+ AC_MSG_NOTICE([poisoned directories are fatal])
+ AC_DEFINE([POISON_BY_DEFAULT], [1], [Define to make poison warnings errors])
+ fi
+fi
+
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 72009c33cd0..29aea724731 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -405,6 +405,7 @@ Objective-C and Objective-C++ Dialects}.
-Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded
-Wparentheses -Wno-pedantic-ms-format
-Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast
+-Wno-poison-system-directories
-Wno-pragmas -Wno-pragma-once-outside-header -Wno-prio-ctor-dtor
-Wno-psabi
-Wredundant-decls -Wrestrict
@@ -10727,6 +10728,14 @@ an error. @option{Wint-to-pointer-cast} is enabled by default.
Suppress warnings from casts from a pointer to an integer type of a
different size.
+@opindex Wno-poison-system-directories
+@item -Wno-poison-system-directories
+Do not warn for @option{-I} or @option{-L} options using system
+directories such as @file{/usr/include} when cross compiling. This
+option is intended for use in chroot environments when such
+directories contain the correct headers and libraries for the target
+system rather than the host.
+
@opindex Winvalid-pch
@opindex Wno-invalid-pch
@item -Winvalid-pch
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 4fd87f2c4a1..79d4920a047 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -909,6 +909,12 @@ proper position among the other output files. */
#define ASM_MAP ""
#endif
+#ifdef POISON_BY_DEFAULT
+#define POISON_IS_ERROR " -Werror=poison-system-directories"
+#else
+#define POISON_IS_ERROR
+#endif
+
/* Assembler options for compressed debug sections. */
#if HAVE_LD_COMPRESS_DEBUG == 0
/* Reject if the linker cannot write compressed debug sections. */
@@ -1166,6 +1172,8 @@ proper position among the other output files. */
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
+ %{Wno-poison-system-directories:--no-poison-system-directories} \
+ %{Werror=poison-system-directories:--error-poison-system-directories} \
%{static|no-pie|static-pie:} %@{L*} %(link_libgcc) " \
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
@@ -1268,7 +1276,7 @@ static const char *cpp_options =
"%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
%{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
%{!fno-working-directory:-fworking-directory}}} %{O*}\
- %{undef} %{save-temps*:-fpch-preprocess}";
+ %{undef} %{save-temps*:-fpch-preprocess}" POISON_IS_ERROR;
/* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al.
@@ -1297,7 +1305,7 @@ static const char *cc1_options =
%{coverage:-fprofile-arcs -ftest-coverage}\
%{fprofile-arcs|fcondition-coverage|fpath-coverage|fprofile-generate*|coverage:\
%{!fprofile-update=single:\
- %{pthread:-fprofile-update=prefer-atomic}}}";
+ %{pthread:-fprofile-update=prefer-atomic}}}" POISON_IS_ERROR;
static const char *asm_options =
"%{-target-help:%:print-asm-header()} "
diff --git a/gcc/incpath.cc b/gcc/incpath.cc
index c1bbfd3872a..2cdbebc4c50 100644
--- a/gcc/incpath.cc
+++ b/gcc/incpath.cc
@@ -26,6 +26,7 @@
#include "intl.h"
#include "incpath.h"
#include "cppdefault.h"
+#include "diagnostic-core.h"
/* Microsoft Windows does not natively support inodes.
VMS has non-numeric inodes. */
@@ -273,6 +274,10 @@ remove_duplicates (cpp_reader *pfile, struct cpp_dir *head,
cur->name, xstrerror (errno));
reason = REASON_NOENT;
}
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ pcur = &cur->next;
+ continue;
+#endif
}
else if (!S_ISDIR (st.st_mode))
cpp_error_with_line (pfile, CPP_DL_WARNING, 0, 0,
@@ -411,6 +416,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
fprintf (stderr, _("End of #embed search list.\n"));
}
}
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ if (flag_poison_system_directories)
+ {
+ struct cpp_dir *p;
+
+ for (p = heads[INC_QUOTE]; p; p = p->next)
+ {
+ if ((!strncmp (p->name, "/usr/include", 12))
+ || (!strncmp (p->name, "/usr/local/include", 18))
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
+ || (!strncmp (p->name, "/sw/include", 11))
+ || (!strncmp (p->name, "/opt/include", 12)))
+ warning (OPT_Wpoison_system_directories,
+ "include location \"%s\" is unsafe for "
+ "cross-compilation",
+ p->name);
+ }
+ }
+#endif
}
/* Use given -I paths for #include "..." but not #include <...>, and
--
2.50.1
@@ -1,44 +0,0 @@
From 90e8697dd88fd99ce2cf8739e95494853005377e Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:45:49 +0000
Subject: [PATCH] specs: turn on -Wl,-z,now by default
Previously, we also used to turn on -z relro here, but we now build
binutils with --enable-relro, which is functionally equivalent.
Binutils does not appear to have a similar option for enabling -z
now by default.
---
gcc/doc/invoke.texi | 3 +++
gcc/gcc.cc | 1 +
2 files changed, 4 insertions(+)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 29aea724731..6fb3ab70cc7 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -19477,6 +19477,9 @@ For example, @option{-Wl,-Map,output.map} passes @option{-Map output.map} to the
linker. When using the GNU linker, you can also get the same effect with
@option{-Wl,-Map=output.map}.
+NOTE: In Alpine Linux, for LDFLAGS, the option
+@option{-Wl,-z,now} is used. To disable, use @option{-Wl,-z,nonow}.
+
@opindex u
@item -u @var{symbol}
Pretend the symbol @var{symbol} is undefined, to force linking of
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 79d4920a047..74a356fdf5e 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1170,6 +1170,7 @@ proper position among the other output files. */
"%{flto|flto=*:%<fcompare-debug*} \
%{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC \
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
+ "-z now " \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
%{Wno-poison-system-directories:--no-poison-system-directories} \
--
2.50.1
@@ -1,46 +0,0 @@
From 17c9cf9272077bc7ac784daffd4c68ba1ce67a0d Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:46:22 +0000
Subject: [PATCH] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC,
ObjC++, if the optimization level is > 0
---
gcc/c-family/c-cppbuiltin.cc | 4 ++++
gcc/doc/invoke.texi | 6 ++++++
2 files changed, 10 insertions(+)
diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
index 4589ee4a3a6..9edf095384c 100644
--- a/gcc/c-family/c-cppbuiltin.cc
+++ b/gcc/c-family/c-cppbuiltin.cc
@@ -1581,6 +1581,10 @@ c_cpp_builtins (cpp_reader *pfile)
builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);
+ /* Fortify Source enabled by default for optimization levels > 0 */
+ if (optimize)
+ builtin_define_with_int_value ("_FORTIFY_SOURCE", 2);
+
/* Misc. */
if (flag_gnu89_inline)
cpp_define (pfile, "__GNUC_GNU_INLINE__");
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 6fb3ab70cc7..799ce073dbf 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -12840,6 +12840,12 @@ also turns on the following optimization flags:
Please note the warning under @option{-fgcse} about
invoking @option{-O2} on programs that use computed gotos.
+NOTE: In Alpine Linux, @option{-D_FORTIFY_SOURCE=2} is
+set by default, and is activated when @option{-O} is set to 2 or higher.
+This enables additional compile-time and run-time checks for several libc
+functions. To disable, specify either @option{-U_FORTIFY_SOURCE} or
+@option{-D_FORTIFY_SOURCE=0}.
+
@opindex O3
@item -O3
Optimize yet more. @option{-O3} turns on all optimizations specified
--
2.50.1
@@ -1,286 +0,0 @@
From 95d8fac6247b2cba1142261cc95c21063539112a Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:46:56 +0000
Subject: [PATCH] On linux targets pass --as-needed by default to the linker,
but always link the sanitizer libraries with --no-as-needed.
---
gcc/config/aarch64/aarch64-linux.h | 1 +
gcc/config/alpha/linux-elf.h | 2 +-
gcc/config/arm/linux-elf.h | 1 +
gcc/config/gnu-user.h | 6 +++---
gcc/config/i386/gnu-user.h | 2 +-
gcc/config/i386/gnu-user64.h | 1 +
gcc/config/ia64/linux.h | 2 +-
gcc/config/loongarch/gnu-user.h | 2 +-
gcc/config/mips/gnu-user.h | 1 +
gcc/config/riscv/linux.h | 1 +
gcc/config/rs6000/linux64.h | 4 ++--
gcc/config/rs6000/sysv4.h | 2 +-
gcc/config/s390/linux.h | 2 +-
gcc/config/sparc/linux.h | 2 +-
gcc/gcc.cc | 28 ++++++++++++++++++++--------
15 files changed, 37 insertions(+), 20 deletions(-)
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
index 116bb4e69f3..daf99f8dce9 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -39,6 +39,7 @@
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
#define LINUX_TARGET_LINK_SPEC "%{h*} \
+ --as-needed \
%{static:-Bstatic} \
%{shared:-shared} \
%{symbolic:-Bsymbolic} \
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
index 3fd3b831166..0b4c2dccebe 100644
--- a/gcc/config/alpha/linux-elf.h
+++ b/gcc/config/alpha/linux-elf.h
@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. If not see
#define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER
-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
+#define LINK_SPEC "-m elf64alpha --as-needed %{G*} %{relax:-relax} \
%{O*:-O3} %{!O*:-O1} \
%{shared:-shared} \
%{!shared: \
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
index d4d389e2aa8..adccc0b11c2 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -70,6 +70,7 @@
%{rdynamic:-export-dynamic} \
%{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
-X \
+ --as-needed \
%{mbig-endian:-EB} %{mlittle-endian:-EL}" \
SUBTARGET_EXTRA_LINK_SPEC
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index 4c4e31efa39..3c17ac6eade 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \
"%{static-libasan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBHWASAN_EARLY_SPEC
#define LIBHWASAN_EARLY_SPEC "%{!shared:libhwasan_preinit%O%s} " \
"%{static-libhwasan:%{!shared:" \
@@ -146,12 +146,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \
"%{static-libtsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBLSAN_EARLY_SPEC
#define LIBLSAN_EARLY_SPEC "%{!shared:liblsan_preinit%O%s} " \
"%{static-liblsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#endif
#undef TARGET_F951_OPTIONS
diff --git a/gcc/config/i386/gnu-user.h b/gcc/config/i386/gnu-user.h
index 7abfda53049..ceb8f855b7d 100644
--- a/gcc/config/i386/gnu-user.h
+++ b/gcc/config/i386/gnu-user.h
@@ -68,7 +68,7 @@ along with GCC; see the file COPYING3. If not see
{ "link_emulation", GNU_USER_LINK_EMULATION },\
{ "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
+#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --as-needed %{shared:-shared} \
%{!shared: \
%{!static: \
%{!static-pie: \
diff --git a/gcc/config/i386/gnu-user64.h b/gcc/config/i386/gnu-user64.h
index abe714711bf..3ca128a79f5 100644
--- a/gcc/config/i386/gnu-user64.h
+++ b/gcc/config/i386/gnu-user64.h
@@ -56,6 +56,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
"%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \
%{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \
%{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \
+ --as-needed \
%{shared:-shared} \
%{!shared: \
%{!static: \
diff --git a/gcc/config/ia64/linux.h b/gcc/config/ia64/linux.h
index a2494c214c4..e1a5d530cdf 100644
--- a/gcc/config/ia64/linux.h
+++ b/gcc/config/ia64/linux.h
@@ -58,7 +58,7 @@ do { \
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
#undef LINK_SPEC
-#define LINK_SPEC "\
+#define LINK_SPEC " --as-needed \
%{shared:-shared} \
%{!shared: \
%{!static: \
diff --git a/gcc/config/loongarch/gnu-user.h b/gcc/config/loongarch/gnu-user.h
index fbc75a90ad5..adbc4b7733f 100644
--- a/gcc/config/loongarch/gnu-user.h
+++ b/gcc/config/loongarch/gnu-user.h
@@ -44,7 +44,7 @@ along with GCC; see the file COPYING3. If not see
#undef GNU_USER_TARGET_LINK_SPEC
#define GNU_USER_TARGET_LINK_SPEC \
- "%{G*} %{shared} -m " GNU_USER_LINK_EMULATION \
+ "%{G*} %{shared} --as-needed -m " GNU_USER_LINK_EMULATION \
"%{!shared: %{static} " \
"%{!static: %{!static-pie: %{rdynamic:-export-dynamic} " \
"-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} " \
diff --git a/gcc/config/mips/gnu-user.h b/gcc/config/mips/gnu-user.h
index 5a82508c113..6eee7cdc603 100644
--- a/gcc/config/mips/gnu-user.h
+++ b/gcc/config/mips/gnu-user.h
@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. If not see
#undef GNU_USER_TARGET_LINK_SPEC
#define GNU_USER_TARGET_LINK_SPEC "\
%{G*} %{EB} %{EL} %{mips*} %{shared} \
+ -as-needed \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
index 9060c940a44..282c77b6a7b 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
"%{mabi=ilp32:_ilp32}"
#define LINK_SPEC "\
+-as-needed \
-melf" XLEN_SPEC DEFAULT_ENDIAN_SPEC "riscv" LD_EMUL_SUFFIX " \
%{mno-relax:--no-relax} \
-X \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 0316d8cb65d..139e1b6796c 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -378,13 +378,13 @@ extern int dot_symbols;
" -m elf64ppc")
#endif
-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --as-needed %{!shared: %{!static: \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}} \
%(link_os_extra_spec32)"
-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --as-needed %{!shared: %{!static: \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index afb5c6ad867..b64638fb25b 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -781,7 +781,7 @@ GNU_USER_TARGET_CC1_SPEC
#define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
#endif
-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --as-needed %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
index 2c3bca5dfcb..b90661247a4 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -82,7 +82,7 @@ along with GCC; see the file COPYING3. If not see
#undef LINK_SPEC
#define LINK_SPEC \
- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --as-needed \
%{shared:-shared} \
%{!shared: \
%{static:-static} \
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
index 6d928846895..3cc05bb7240 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -81,7 +81,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
#undef LINK_SPEC
-#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
+#define LINK_SPEC "-m elf32_sparc --as-needed %{shared:-shared} \
%{!mno-relax:%{!r:-relax}} \
%{!shared: \
%{!static: \
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 74a356fdf5e..fc9c7d15b04 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -774,8 +774,11 @@ proper position among the other output files. */
#ifdef LIBASAN_EARLY_SPEC
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \
- "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
+ " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lasan " \
+ " %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -810,8 +813,11 @@ proper position among the other output files. */
#ifdef LIBTSAN_EARLY_SPEC
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \
- "} -ltsan %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
+ " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -ltsan " \
+ " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -828,8 +834,11 @@ proper position among the other output files. */
#ifdef LIBLSAN_EARLY_SPEC
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION \
- "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
+ " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -llsan " \
+ " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -844,8 +853,11 @@ proper position among the other output files. */
#define STATIC_LIBUBSAN_LIBS \
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
-#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \
- "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
+ " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lubsan " \
+ " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
--
2.50.1
@@ -1,34 +0,0 @@
From 58a94690d4dd7b34543d9d154abc96d2d90d3b32 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:47:43 +0000
Subject: [PATCH] Enable -Wformat and -Wformat-security by default.
---
gcc/c-family/c.opt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 75b6531860e..78830ce4b42 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -805,7 +805,7 @@ Warn about function calls with format strings that write past the end
of the destination region.
Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
Warn about possible security problems with format functions.
Wformat-signedness
@@ -830,7 +830,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++
Warn about zero-length formats.
Wformat=
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
Warn about printf/scanf/strftime/strfmon format string anomalies.
Wframe-address
--
2.50.1
@@ -1,25 +0,0 @@
From b2a755b671d88c34402290d7d769232e01aed350 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Fri, 25 Jul 2025 01:44:20 -0700
Subject: [PATCH] Enable -Wtrampolines by default.
---
gcc/common.opt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index bea1adc0940..e65a575d9f8 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -829,7 +829,7 @@ Common Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wa
Warn if a comparison always evaluates to true or false.
Wtrampolines
-Common Var(warn_trampolines) Warning
+Common Var(warn_trampolines) Init(1) Warning
Warn whenever a trampoline is generated.
Wtrivial-auto-var-init
--
2.50.1
@@ -1,39 +0,0 @@
From c355364231395090e7223ec00d8a16065903c2c5 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Fri, 25 Jul 2025 01:49:03 -0700
Subject: [PATCH] gcc: disable SSP on -ffreestanding, -nostdlib and
-nodefaultlibs
---
gcc/gcc.cc | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index fc9c7d15b04..7b0d3d2743b 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1009,6 +1009,12 @@ proper position among the other output files. */
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
+#ifdef ENABLE_DEFAULT_SSP
+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
+#else
+#define NO_SSP_SPEC ""
+#endif
+
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
@@ -1314,7 +1320,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
%{fprofile-arcs|fcondition-coverage|fpath-coverage|fprofile-generate*|coverage:\
%{!fprofile-update=single:\
--
2.50.1
@@ -1,25 +0,0 @@
From 5f09842c19d6db976724cd117190a8a6951acf9b Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Fri, 25 Jul 2025 01:50:42 -0700
Subject: [PATCH] gcc: params: set default ssp-buffer-size to 4
---
gcc/params.opt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/params.opt b/gcc/params.opt
index 64e453d29b7..bba3fd574f2 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -1064,7 +1064,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
The maximum number of SSA_NAME assignments to follow in determining a value.
-param=ssp-buffer-size=
-Common Joined UInteger Var(param_ssp_buffer_size) Init(8) IntegerRange(1, 65536) Param Optimization
+Common Joined UInteger Var(param_ssp_buffer_size) Init(4) IntegerRange(1, 65536) Param Optimization
The lower bound for a buffer to be considered for stack smashing protection.
-param=stack-clash-protection-guard-size=
--
2.50.1
@@ -1,54 +0,0 @@
From ee0615536ae0d255f59070b904aa35d6de8fce49 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:50:33 +0000
Subject: [PATCH] Ensure that msgfmt doesn't encounter problems during gcc
bootstrapping.
Solves error messages like the following:
msgfmt: /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/./gcc/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libstdc++.so.6)
The libgcc_s.so used during build doesn't satisfy the needs of the
libstdc++.so that msgfmt is linked against. On the other hand, msgfmt
is used as a stand-alone application here, and what library it uses
behind the scenes is of no concern to the gcc build process.
Therefore, simply invoking it "as usual", i.e. without any special
library path, will make it work as expected here.
2011-09-19 Martin von Gagern
References:
https://bugs.gentoo.org/372377
https://bugs.gentoo.org/295480
---
libstdc++-v3/po/Makefile.am | 1 +
libstdc++-v3/po/Makefile.in | 1 +
2 files changed, 2 insertions(+)
diff --git a/libstdc++-v3/po/Makefile.am b/libstdc++-v3/po/Makefile.am
index 7f84a99533e..a4c6284f788 100644
--- a/libstdc++-v3/po/Makefile.am
+++ b/libstdc++-v3/po/Makefile.am
@@ -38,6 +38,7 @@ MSGFMT = msgfmt
EXTRA_DIST = string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN)
.po.mo:
+ env --unset=LD_LIBRARY_PATH \
$(MSGFMT) -o $@ $<
all-local: all-local-$(USE_NLS)
diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
index 8e93445acd2..d6ff06e5ddb 100644
--- a/libstdc++-v3/po/Makefile.in
+++ b/libstdc++-v3/po/Makefile.in
@@ -561,6 +561,7 @@ uninstall-am:
.po.mo:
+ env --unset=LD_LIBRARY_PATH \
$(MSGFMT) -o $@ $<
all-local: all-local-$(USE_NLS)
--
2.50.1
@@ -1,28 +0,0 @@
From 62966418472466142a9962892177f4b1f9f56944 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:52:07 +0000
Subject: [PATCH] Don't declare asprintf if defined as a macro.
---
include/libiberty.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/libiberty.h b/include/libiberty.h
index d4e8791b14b..c074980ed80 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -678,8 +678,11 @@ extern void *bsearch_r (const void *, const void *,
/* Like sprintf but provides a pointer to malloc'd storage, which must
be freed by the caller. */
+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */
+#ifndef asprintf
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
#endif
+#endif
/* Like asprintf but allocates memory without fail. This works like
xmalloc. */
--
2.50.1
@@ -1,24 +0,0 @@
From 0351f4f3dd00bdece780ce5e24d972e97ca1b7ed Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:53:00 +0000
Subject: [PATCH] libiberty: copy PIC objects during build process
---
libiberty/Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index ce54d88278d..10c212a1ad3 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -266,6 +266,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
$(AR) $(AR_FLAGS) $(TARGETLIB) \
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
$(RANLIB) $(TARGETLIB); \
+ cp $(TARGETLIB) ../ ; \
cd ..; \
else true; fi
--
2.50.1
-57
View File
@@ -1,57 +0,0 @@
From bd7e32d5405b6b4f3994a212a77ff2cd33134c74 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 24 Oct 2015 20:09:53 +0000
Subject: [PATCH] libgcc_s
---
gcc/config/i386/i386-expand.cc | 4 ++--
libgcc/config/i386/cpuinfo.c | 6 +++---
libgcc/config/i386/t-linux | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index cdfd94d3c73..a3a6c988833 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -13643,10 +13643,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
{
case IX86_BUILTIN_CPU_INIT:
{
- /* Make it call __cpu_indicator_init in libgcc. */
+ /* Make it call __cpu_indicator_init in libgcc.a. */
tree call_expr, fndecl, type;
type = build_function_type_list (integer_type_node, NULL_TREE);
- fndecl = build_fn_decl ("__cpu_indicator_init", type);
+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
call_expr = build_call_expr (fndecl, 0);
return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
}
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index 2484dc839bf..e980030ef23 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -63,7 +63,7 @@ __cpu_indicator_init (void)
__cpu_features2);
}
-#if defined SHARED && defined USE_ELF_SYMVER
-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0");
-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0");
+#ifndef SHARED
+int __cpu_indicator_init_local (void)
+ __attribute__ ((weak, alias ("__cpu_indicator_init")));
#endif
diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
index 8506a635790..564296f788e 100644
--- a/libgcc/config/i386/t-linux
+++ b/libgcc/config/i386/t-linux
@@ -3,5 +3,5 @@
# t-slibgcc-elf-ver and t-linux
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS)
+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
--
2.50.1
-85
View File
@@ -1,85 +0,0 @@
From c191dc86f4f7340542066f4156aa57be9cfbf876 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 7 Nov 2015 02:08:05 +0000
Subject: [PATCH] nopie
---
gcc/configure | 25 +++++++++++++++++++++++++
gcc/configure.ac | 11 +++++++++++
2 files changed, 36 insertions(+)
diff --git a/gcc/configure b/gcc/configure
index 0f4a5d52c30..343563c8948 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -34586,6 +34586,29 @@ rm -f core conftest.err conftest.$ac_objext \
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_no_pie" >&5
$as_echo "$gcc_cv_no_pie" >&6; }
+# Check if -nopie works.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -nopie option" >&5
+$as_echo_n "checking for -nopie option... " >&6; }
+if ${gcc_cv_nopie+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -nopie"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int main(void) {return 0;}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ gcc_cv_nopie=yes
+else
+ gcc_cv_nopie=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$saved_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_nopie" >&5
+$as_echo "$gcc_cv_nopie" >&6; }
if test x$enable_host_shared = xyes; then
PICFLAG=-fPIC
@@ -34603,6 +34626,8 @@ if test x$enable_host_pie = xyes; then
LD_PICFLAG=-pie
elif test x$gcc_cv_no_pie = xyes; then
LD_PICFLAG=-no-pie
+elif test x$gcc_cv_nopie = xyes; then
+ LD_PICFLAG=-nopie
else
LD_PICFLAG=
fi
diff --git a/gcc/configure.ac b/gcc/configure.ac
index b0e3615e5aa..b3948469d17 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -7802,6 +7802,15 @@ AC_CACHE_CHECK([for -no-pie option],
[gcc_cv_no_pie=yes],
[gcc_cv_no_pie=no])
LDFLAGS="$saved_LDFLAGS"])
+# Check if -nopie works.
+AC_CACHE_CHECK([for -nopie option],
+ [gcc_cv_nopie],
+ [saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -nopie"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([int main(void) {return 0;}])],
+ [gcc_cv_nopie=yes],
+ [gcc_cv_nopie=no])
+ LDFLAGS="$saved_LDFLAGS"])
if test x$enable_host_shared = xyes; then
PICFLAG=-fPIC
@@ -7819,6 +7828,8 @@ if test x$enable_host_pie = xyes; then
LD_PICFLAG=-pie
elif test x$gcc_cv_no_pie = xyes; then
LD_PICFLAG=-no-pie
+elif test x$gcc_cv_nopie = xyes; then
+ LD_PICFLAG=-nopie
else
LD_PICFLAG=
fi
--
2.50.1
@@ -1,42 +0,0 @@
From f1d6c0950e0f12fb8cf2429da570f478a1369286 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:59:16 +0000
Subject: [PATCH] ada: fix shared linking
---
gcc/ada/link.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/gcc/ada/link.c b/gcc/ada/link.c
index 9e3385ca94f..2c0cca6e480 100644
--- a/gcc/ada/link.c
+++ b/gcc/ada/link.c
@@ -107,9 +107,9 @@ const char *__gnat_default_libgcc_subdir = "lib";
|| defined (__NetBSD__) || defined (__OpenBSD__) \
|| defined (__QNX__)
const char *__gnat_object_file_option = "-Wl,@";
-const char *__gnat_run_path_option = "-Wl,-rpath,";
-char __gnat_shared_libgnat_default = STATIC;
-char __gnat_shared_libgcc_default = STATIC;
+const char *__gnat_run_path_option = "";
+char __gnat_shared_libgnat_default = SHARED;
+char __gnat_shared_libgcc_default = SHARED;
int __gnat_link_max = 8192;
unsigned char __gnat_objlist_file_supported = 1;
const char *__gnat_object_library_extension = ".a";
@@ -129,9 +129,9 @@ const char *__gnat_default_libgcc_subdir = "lib";
#elif defined (__linux__) || defined (__GLIBC__)
const char *__gnat_object_file_option = "-Wl,@";
-const char *__gnat_run_path_option = "-Wl,-rpath,";
-char __gnat_shared_libgnat_default = STATIC;
-char __gnat_shared_libgcc_default = STATIC;
+const char *__gnat_run_path_option = "";
+char __gnat_shared_libgnat_default = SHARED;
+char __gnat_shared_libgcc_default = SHARED;
int __gnat_link_max = 8192;
unsigned char __gnat_objlist_file_supported = 1;
const char *__gnat_object_library_extension = ".a";
--
2.50.1
@@ -1,24 +0,0 @@
From 8773e0cf880da9fe80de7f8a662359664bb0b234 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:59:43 +0000
Subject: [PATCH] build: fix CXXFLAGS_FOR_BUILD passing
---
Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.in b/Makefile.in
index b1ed67d3d4f..1e039c20550 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -179,6 +179,7 @@ BUILD_EXPORTS = \
# built for the build system to override those in BASE_FLAGS_TO_PASS.
EXTRA_BUILD_FLAGS = \
CFLAGS="$(CFLAGS_FOR_BUILD)" \
+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
LDFLAGS="$(LDFLAGS_FOR_BUILD)"
# This is the list of directories to built for the host system.
--
2.50.1
@@ -1,25 +0,0 @@
From 625b8095796f24389fdda5bb5bc6ff9fbb365813 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:01:06 +0000
Subject: [PATCH] add fortify-headers paths
---
gcc/config/linux.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
index d6280a4d4dd..ba69fb9fad7 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -159,6 +159,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#ifdef NATIVE_SYSTEM_HEADER_DIR
#define INCLUDE_DEFAULTS_MUSL_NATIVE \
+ { NATIVE_SYSTEM_HEADER_DIR "/fortify", 0, 0, 0, 1, 2 }, \
+ { NATIVE_SYSTEM_HEADER_DIR "/fortify", 0, 0, 0, 1, 0 }, \
{ NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \
{ NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
#else
--
2.50.1
@@ -1,31 +0,0 @@
From c557286adc46536fe033df400c50a880b672cfd6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Fri, 21 Aug 2020 07:03:00 +0000
Subject: [PATCH] Alpine musl package provides libssp_nonshared.a. We link to
it unconditionally, as otherwise we get link failures if some objects are
-fstack-protector built and final link happens with -fno-stack-protector.
This seems to be the common case when bootstrapping gcc, the piepatches do
not seem to fully fix the crosstoolchain and bootstrap sequence wrt.
stack-protector flag usage.
---
gcc/gcc.cc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 7b0d3d2743b..e46e976a2e8 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1017,8 +1017,7 @@ proper position among the other output files. */
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
-#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
- "|fstack-protector-strong|fstack-protector-explicit:}"
+#define LINK_SSP_SPEC "-lssp_nonshared"
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
--
2.50.1
@@ -1,69 +0,0 @@
From d698fead9d201ef032e2e978898864335a9ab513 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:03:42 +0000
Subject: [PATCH] DP: Use --push-state/--pop-state for gold as well when
linking libtsan.
---
gcc/gcc.cc | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index e46e976a2e8..607c8ca1d42 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -775,10 +775,10 @@ proper position among the other output files. */
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
- " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libasan:--push-state --no-as-needed}" \
" -lasan " \
" %{static-libasan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libasan:--pop-state}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -814,10 +814,10 @@ proper position among the other output files. */
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
- " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libtsan:--push-state --no-as-needed}" \
" -ltsan " \
" %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libtsan:--pop-state}" \
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -835,10 +835,10 @@ proper position among the other output files. */
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
- " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-liblsan:--push-state --no-as-needed}" \
" -llsan " \
" %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-liblsan:--pop-state}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -854,10 +854,10 @@ proper position among the other output files. */
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
- " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libubsan:--push-state --no-as-needed}" \
" -lubsan " \
" %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libubsan:--pop-state}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
--
2.50.1
@@ -1,26 +0,0 @@
From 9cf1916bd52d61ea0fd7a8b6acebb1dc4a1f2488 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:12:55 +0000
Subject: [PATCH] aarch64: disable multilib support
multilib is unsupported on Alpine GCC
---
gcc/config/aarch64/t-aarch64-linux | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
index 70e36b3299e..e00c3becd3f 100644
--- a/gcc/config/aarch64/t-aarch64-linux
+++ b/gcc/config/aarch64/t-aarch64-linux
@@ -22,7 +22,7 @@ LIB1ASMSRC = aarch64/lib1funcs.asm
LIB1ASMFUNCS = _aarch64_sync_cache_range
AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
+MULTILIB_OSDIRNAMES = mabi.lp64=../lib
MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
--
2.50.1
@@ -1,25 +0,0 @@
From dc07fb7df8d4f997877d8f98ea9ef8292f738ed3 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:13:59 +0000
Subject: [PATCH] s390x: disable multilib support
multilib is not supported on Alpine GCC at present
---
gcc/config/s390/t-linux64 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/config/s390/t-linux64 b/gcc/config/s390/t-linux64
index cc6ab367072..7f498ee1cdc 100644
--- a/gcc/config/s390/t-linux64
+++ b/gcc/config/s390/t-linux64
@@ -7,5 +7,5 @@
MULTILIB_OPTIONS = m64/m31
MULTILIB_DIRNAMES = 64 32
-MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu)
-MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu)
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
--
2.50.1
@@ -1,81 +0,0 @@
From 496067ded4a3698468412e240b899755d92b314c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:14:33 +0000
Subject: [PATCH] ppc64[le]: disable multilib support
multilib is not presently supported on Alpine GCC
---
gcc/config/rs6000/t-linux | 6 ++++--
gcc/config/rs6000/t-linux64 | 4 ++--
gcc/config/rs6000/t-linux64bele | 4 ++--
gcc/config/rs6000/t-linux64lebe | 4 ++--
4 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/gcc/config/rs6000/t-linux b/gcc/config/rs6000/t-linux
index 4e371255533..128c75c7d39 100644
--- a/gcc/config/rs6000/t-linux
+++ b/gcc/config/rs6000/t-linux
@@ -2,7 +2,8 @@
# or soft-float.
ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float)))
ifneq (,$(findstring powerpc64,$(target)))
-MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
else
MULTIARCH_DIRNAME := $(call if_multiarch,powerpc-linux-gnu)
endif
@@ -10,7 +11,8 @@ ifneq (,$(findstring powerpcle,$(target)))
MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME))
endif
ifneq (,$(findstring powerpc64le,$(target)))
-MULTILIB_OSDIRNAMES := $(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
endif
endif
diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
index f56b47c268e..c5f757a6284 100644
--- a/gcc/config/rs6000/t-linux64
+++ b/gcc/config/rs6000/t-linux64
@@ -28,8 +28,8 @@
MULTILIB_OPTIONS := m64/m32
MULTILIB_DIRNAMES := 64 32
MULTILIB_EXTRA_OPTS :=
-MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.cc
$(COMPILE) $<
diff --git a/gcc/config/rs6000/t-linux64bele b/gcc/config/rs6000/t-linux64bele
index 97c1ee6fb4d..08d72639cb6 100644
--- a/gcc/config/rs6000/t-linux64bele
+++ b/gcc/config/rs6000/t-linux64bele
@@ -2,6 +2,6 @@
MULTILIB_OPTIONS += mlittle
MULTILIB_DIRNAMES += le
-MULTILIB_OSDIRNAMES += $(subst =,.mlittle=,$(subst lible32,lib32le,$(subst lible64,lib64le,$(subst lib,lible,$(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))))))
-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mlittle%,$(MULTILIB_OSDIRNAMES)))
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
diff --git a/gcc/config/rs6000/t-linux64lebe b/gcc/config/rs6000/t-linux64lebe
index 2e63bdb9fc9..c6e1c5db65d 100644
--- a/gcc/config/rs6000/t-linux64lebe
+++ b/gcc/config/rs6000/t-linux64lebe
@@ -2,6 +2,6 @@
MULTILIB_OPTIONS += mbig
MULTILIB_DIRNAMES += be
-MULTILIB_OSDIRNAMES += $(subst =,.mbig=,$(subst libbe32,lib32be,$(subst libbe64,lib64be,$(subst lib,libbe,$(subst le-linux,-linux,$(MULTILIB_OSDIRNAMES))))))
-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mbig%,$(MULTILIB_OSDIRNAMES)))
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
--
2.50.1
@@ -1,26 +0,0 @@
From 3d0f96f3f53a7ff81532f077e9db69d7318db796 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:14:54 +0000
Subject: [PATCH] x86_64: disable multilib support
multilib is not presently supported on Alpine GCC
---
gcc/config/i386/t-linux64 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
index 64a4a20e64f..9a8eb8dd8d1 100644
--- a/gcc/config/i386/t-linux64
+++ b/gcc/config/i386/t-linux64
@@ -33,6 +33,6 @@
comma=,
MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
--
2.50.1
@@ -1,78 +0,0 @@
From b1ab523d6fa44aae8f3ec5f787a8f86f8686bf64 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 3 Jan 2022 07:14:48 +0100
Subject: [PATCH] riscv: disable multilib support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From the musl wiki [1]:
musl does not support sharing an include directory between archs
[…], and thus is not compatible with GCC-style multilib. It is
recommended that distributions build GCC with multilib disabled,
and use library directories named lib, not lib64 or lib32.
For this reason, we patch existing GCC configuration files (gcc/config)
to pin MULTILIB_OSDIRNAMES to lib, there is also a corresponding GCC
upstream bug about this issue [2]. Avoiding the use of lib64 and lib32
directories is a bit more difficult on the RISC-V architecture. This is
due to the fact that the default RISC-V configuration does not only use
the lib64 and lib32 directories but also subdirectories within these
directories for different RISC-V ABIs (e.g. lp64d, lp64, …) [3].
This patch aligns the RISC-V configuration with other architectures by
pinning MULTILIB_OSDIRNAMES to lib for rv64gc (our default RISC-V
-march). Furthermore, this patch removes the ABI-specific startfile
prefix spec. Since both of these impact the default LIBRARY_PATH [4]
this patch thereby aligns the default RISC-V LIBRARY_PATH with that from
other Alpine architectures and thereby fixes #13369 [5].
Incidentally, this also fixes gccgo on riscv64, as without this patch
gccgo is otherwise not able to find the *.gox files for the Go standard
library.
[1]: https://wiki.musl-libc.org/guidelines-for-distributions.html#Multilib/multi_arch
[2]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90077
[3]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103889#c14
[4]: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/gcc.c;h=d4c8746b0aa322286decf92aa72a12f0a393b655;hb=HEAD#l9122
[5]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13369
---
gcc/config/riscv/linux.h | 8 --------
gcc/config/riscv/t-linux | 7 +++++--
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
index 282c77b6a7b..07adae3d59c 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -61,11 +61,3 @@ along with GCC; see the file COPYING3. If not see
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
%{static:-static} %{static-pie:-static -pie --no-dynamic-linker -z text}}"
-
-#define STARTFILE_PREFIX_SPEC \
- "/lib" XLEN_SPEC "/" ABI_SPEC "/ " \
- "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ " \
- "/lib/ " \
- "/usr/lib/ "
-
-#define RISCV_USE_CUSTOMISED_MULTI_LIB select_by_abi
diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux
index a6f64f88d25..f88776ec520 100644
--- a/gcc/config/riscv/t-linux
+++ b/gcc/config/riscv/t-linux
@@ -1,5 +1,8 @@
-# Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/
-MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES)))
+MULTILIB_OPTIONS := march=rv64gc
+MULTILIB_DIRNAMES := rv64gc
+
+MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib,$(MULTILIB_DIRNAMES)))
MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
+MULTILIB_MATCHES := march?rv64gc=march?rv64imafdc
MULTIARCH_DIRNAME := $(call if_multiarch,$(firstword $(subst -, ,$(target)))-linux-gnu)
--
2.50.1
@@ -1,51 +0,0 @@
From ee64e5ead8938d5be6cedd674158a25d93711fe3 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:05:41 +0000
Subject: [PATCH] always build libgcc_eh.a
highly inspired by:
http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch
---
libgcc/Makefile.in | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
index 0719fd0615d..80bb8f1622f 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -971,8 +971,9 @@ ifneq ($(LIBUNWIND),)
all: libunwind.a
endif
+all: libgcc_eh.a
ifeq ($(enable_shared),yes)
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
+all: libgcc_s$(SHLIB_EXT)
ifneq ($(LIBUNWIND),)
all: libunwind$(SHLIB_EXT)
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
@@ -1177,10 +1178,6 @@ install-libunwind:
install-shared:
$(mkinstalldirs) $(DESTDIR)$(inst_libdir)
- $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
- chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
- $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
-
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
@shlib_base_name@,libgcc_s,$(subst \
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
@@ -1197,6 +1194,10 @@ ifeq ($(enable_gcov),yes)
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a
endif
+ $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+
parts="$(INSTALL_PARTS)"; \
for file in $$parts; do \
rm -f $(DESTDIR)$(inst_libdir)/$$file; \
--
2.50.1
@@ -1,59 +0,0 @@
From 5adfe740c027fb8dc9931053f55f7eae222e6bb4 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Fri, 25 Jul 2025 02:09:02 -0700
Subject: [PATCH] ada: libgnarl: remove use of glibc-specific
pthread_rwlockattr_setkind_np
musl's thread library does not implement it
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
gcc/ada/libgnarl/s-osinte__linux.ads | 10 ----------
gcc/ada/libgnarl/s-taprop__linux.adb | 7 -------
2 files changed, 17 deletions(-)
diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__linux.ads
index 7aeb15da523..5551b701e5a 100644
--- a/gcc/ada/libgnarl/s-osinte__linux.ads
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads
@@ -402,16 +402,6 @@ package System.OS_Interface is
(attr : access pthread_rwlockattr_t) return int;
pragma Import (C, pthread_rwlockattr_destroy, "pthread_rwlockattr_destroy");
- PTHREAD_RWLOCK_PREFER_READER_NP : constant := 0;
- PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
-
- function pthread_rwlockattr_setkind_np
- (attr : access pthread_rwlockattr_t;
- pref : int) return int;
- pragma Import
- (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
-
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb b/gcc/ada/libgnarl/s-taprop__linux.adb
index 8f4c835baa7..6df36c7d8f4 100644
--- a/gcc/ada/libgnarl/s-taprop__linux.adb
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb
@@ -409,16 +409,9 @@ package body System.Task_Primitives.Operations is
Result : C.int;
begin
- -- Set the rwlock to prefer writer to avoid writers starvation
-
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
- Result := pthread_rwlockattr_setkind_np
- (RWlock_Attr'Access,
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
- pragma Assert (Result = 0);
-
Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access);
pragma Assert (Result in 0 | ENOMEM);
--
2.50.1
@@ -1,50 +0,0 @@
From c8edb618208a854d121ff73c0d82d7cc467a3611 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Fri, 25 Jul 2025 02:13:19 -0700
Subject: [PATCH] ada: libgnarl: use posix_openpt instead of glibc-specific
getpt to open a pty
musl only implements posix_openpt(3), not the older glibc-specific getpt()
and glibc implements both for ages.
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
gcc/ada/terminals.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
index 89f887556c0..93557fe2631 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
@@ -1134,7 +1134,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
/* POSIX does not specify how to open the master side of a terminal.Several
methods are available (system specific):
1- using a cloning device (USE_CLONE_DEVICE)
- 2- getpt (USE_GETPT)
+ 2- posix_openpt (USE_POSIX_OPENPT)
3- openpty (USE_OPENPTY)
When using the cloning device method, the macro USE_CLONE_DEVICE should
@@ -1148,7 +1148,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
#if defined (__APPLE__) || defined (BSD)
#define USE_OPENPTY
#elif defined (__linux__)
-#define USE_GETPT
+#define USE_POSIX_OPENPT
#elif defined (__sun__)
#define USE_CLONE_DEVICE "/dev/ptmx"
#elif defined (_AIX)
@@ -1197,8 +1197,8 @@ allocate_pty_desc (pty_desc **desc) {
int master_fd = -1;
char *slave_name = NULL;
-#ifdef USE_GETPT
- master_fd = getpt ();
+#if defined(USE_POSIX_OPENPT)
+ master_fd = posix_openpt(O_RDWR | O_NOCTTY);
#elif defined (USE_OPENPTY)
status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
#elif defined (USE_CLONE_DEVICE)
--
2.50.1
@@ -1,54 +0,0 @@
From d3c515c40b9ec0133787388ae7df037e88a95f73 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Fri, 25 Jul 2025 02:18:49 -0700
Subject: [PATCH] ada: libgnarl: adaint: fix sched.h inclusion for musl
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
gcc/ada/adaint.c | 6 +++++-
gcc/ada/adaint.h | 5 +++++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 1fcfae165a7..67318e647ed 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -95,6 +95,11 @@
#include <sys/pstat.h>
#endif
+#if defined (linux) || defined(__linux__)
+#define _GNU_SOURCE 1
+#include <sched.h>
+#endif
+
#ifdef __PikeOS__
#define __BSD_VISIBLE 1
#endif
@@ -3476,7 +3481,6 @@ __gnat_lwp_self (void)
#endif
#if defined (__linux__)
-#include <sched.h>
/* glibc versions earlier than 2.7 do not define the routines to handle
dynamically allocated CPU sets. For these targets, we use the static
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
index 3df12b5f956..26a489f2b78 100644
--- a/gcc/ada/adaint.h
+++ b/gcc/ada/adaint.h
@@ -40,6 +40,11 @@ extern "C" {
#include "mingw32.h"
#endif
+#if defined (linux) || defined(__linux__)
+#define _GNU_SOURCE 1
+#include <sched.h>
+#endif
+
#include <dirent.h>
/* Constants used for the form parameter encoding values */
--
2.50.1
@@ -1,256 +0,0 @@
From 3d13edda0134af3fbb802cdec6406c91003bbc33 Mon Sep 17 00:00:00 2001
From: Drew DeVault <sir@cmpwn.com>
Date: Wed, 9 Dec 2020 07:42:06 +0000
Subject: [PATCH] configure: Add --enable-autolink-libatomic, use in
LINK_GCC_C_SEQUENCE_SPEC [PR81358]
This fixes issues with RISC-V.
---
Makefile.in | 1 +
gcc/config.in | 6 ++++++
gcc/config/gnu-user.h | 12 +++++++++++-
gcc/configure | 31 ++++++++++++++++++++++++++++++-
gcc/configure.ac | 21 +++++++++++++++++++++
gcc/doc/install.texi | 8 ++++++++
gcc/doc/tm.texi | 8 +++++++-
gcc/doc/tm.texi.in | 8 +++++++-
gcc/gcc.cc | 12 +++++++++++-
9 files changed, 102 insertions(+), 5 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 1e039c20550..20f535a306a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -238,6 +238,7 @@ HOST_EXPORTS = \
RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)"; export RANLIB_FOR_TARGET; \
READELF_FOR_TARGET="$(READELF_FOR_TARGET)"; export READELF_FOR_TARGET; \
TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \
+ TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \
HOST_LIBS="$(STAGE1_LIBS)"; export HOST_LIBS; \
GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \
GMPINC="$(HOST_GMPINC)"; export GMPINC; \
diff --git a/gcc/config.in b/gcc/config.in
index 8a531ed591c..40045ff35a5 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -131,6 +131,12 @@
#endif
+/* Define if libatomic should always be linked. */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_AUTOLINK_LIBATOMIC
+#endif
+
+
/* Define to 1 to specify that we are using the BID decimal floating point
format instead of DPD */
#ifndef USED_FOR_TARGET
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index 3c17ac6eade..0426efdb8c3 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -109,8 +109,18 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
#endif
+#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC)
+# ifdef LD_AS_NEEDED_OPTION
+# define LINK_LIBATOMIC_SPEC LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION
+# else
+# define LINK_LIBATOMIC_SPEC "-latomic"
+# endif
+#elif !defined(LINK_LIBATOMIC_SPEC)
+# define LINK_LIBATOMIC_SPEC ""
+#endif
+
#define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \
- "%{static|static-pie:--start-group} %G %{!nolibc:%L} \
+ "%{static|static-pie:--start-group} %G %{!nolibc:" LINK_LIBATOMIC_SPEC " %L} \
%{static|static-pie:--end-group}%{!static:%{!static-pie:%G}}"
#undef LINK_GCC_C_SEQUENCE_SPEC
diff --git a/gcc/configure b/gcc/configure
index 343563c8948..54300a2a867 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -1003,6 +1003,7 @@ with_changes_root_url
enable_languages
with_multilib_list
with_multilib_generator
+enable_autolink_libatomic
with_zstd
with_zstd_include
with_zstd_lib
@@ -1742,6 +1743,9 @@ Optional Features:
--disable-shared don't provide a shared libgcc
--disable-gcov don't provide libgcov and related host tools
--enable-languages=LIST specify which front-ends to build
+ --enable-autolink-libatomic
+ enable automatic linking of libatomic (ignored if
+ not built)
--disable-rpath do not hardcode runtime library paths
--enable-sjlj-exceptions
arrange to use setjmp/longjmp exception handling
@@ -8400,7 +8404,6 @@ else
fi
-
# Check whether --with-multilib-generator was given.
if test "${with_multilib_generator+set}" = set; then :
withval=$with_multilib_generator; :
@@ -8408,6 +8411,32 @@ else
with_multilib_generator=default
fi
+# If libatomic is available, whether it should be linked automatically
+# Check whether --enable-autolink-libatomic was given.
+if test "${enable_autolink_libatomic+set}" = set; then :
+ enableval=$enable_autolink_libatomic;
+ case $enable_autolink_libatomic in
+ yes | no) ;;
+ *) as_fn_error $? "'$enable_autolink_libatomic' is an invalid value for
+--enable-autolink-libatomic. Valid choices are 'yes' and 'no'." "$LINENO" 5 ;;
+ esac
+
+else
+ enable_autolink_libatomic=''
+fi
+
+
+if test x$enable_autolink_libatomic = xyes; then
+ if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then
+
+$as_echo "#define ENABLE_AUTOLINK_LIBATOMIC 1" >>confdefs.h
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libatomic is not build for this target, --enable-autolink-libatomic ignored" >&5
+$as_echo "$as_me: WARNING: libatomic is not build for this target, --enable-autolink-libatomic ignored" >&2;}
+ fi
+fi
+
# -------------------------
# Checks for other programs
diff --git a/gcc/configure.ac b/gcc/configure.ac
index b3948469d17..81c070830e2 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1227,6 +1227,27 @@ AC_ARG_WITH(multilib-generator,
:,
with_multilib_generator=default)
+# If libatomic is available, whether it should be linked automatically
+AC_ARG_ENABLE(autolink-libatomic,
+[AS_HELP_STRING([--enable-autolink-libatomic],
+ [enable automatic linking of libatomic (ignored if not built)])],
+[
+ case $enable_autolink_libatomic in
+ yes | no) ;;
+ *) AC_MSG_ERROR(['$enable_autolink_libatomic' is an invalid value for
+--enable-autolink-libatomic. Valid choices are 'yes' and 'no'.]) ;;
+ esac
+], [enable_autolink_libatomic=''])
+
+if test x$enable_autolink_libatomic = xyes; then
+ if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then
+ AC_DEFINE(ENABLE_AUTOLINK_LIBATOMIC, 1,
+ [Define if libatomic should always be linked.])
+ else
+ AC_MSG_WARN([libatomic is not build for this target, --enable-autolink-libatomic ignored])
+ fi
+fi
+
# -------------------------
# Checks for other programs
# -------------------------
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 3e9e09b4ae3..6e7b756be61 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -2617,6 +2617,14 @@ files, but these changed header paths may conflict with some compilation
environments. Enabled by default, and may be disabled using
@option{--disable-canonical-system-headers}.
+@item --enable-autolink-libatomic
+@itemx --disable-autolink-libatomic
+Tell GCC that it should automatically link libatomic; if supported by
+the linker, the file is only linked as needed. This flag is ignored
+when libatomic is not built. Note that this conigure flag is in particular
+useful when building an offloading-target compiler; as for those, a
+user had to specify @code{-foffload=target=-latomic} otherwise.
+
@item --with-glibc-version=@var{major}.@var{minor}
Tell GCC that when the GNU C Library (glibc) is used on the target it
will be version @var{major}.@var{minor} or later. Normally this can
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index a96700c0d38..16deedca64d 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -390,7 +390,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
@defmac LINK_GCC_C_SEQUENCE_SPEC
The sequence in which libgcc and libc are specified to the linker.
-By default this is @code{%G %L %G}.
+By default this is @code{%G LINK_LIBATOMIC_SPEC %L %G}.
+@end defmac
+
+@defmac LINK_LIBATOMIC_SPEC
+This macro is used in the default @code{LINK_GCC_C_SEQUENCE_SPEC} to link
+libatomic. By default, it is unset unless @code{ENABLE_AUTOLINK_LIBATOMIC}
+is set.
@end defmac
@defmac POST_LINK_SPEC
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in
index eccc4d88493..4ca4c610571 100644
--- a/gcc/doc/tm.texi.in
+++ b/gcc/doc/tm.texi.in
@@ -390,7 +390,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
@defmac LINK_GCC_C_SEQUENCE_SPEC
The sequence in which libgcc and libc are specified to the linker.
-By default this is @code{%G %L %G}.
+By default this is @code{%G LINK_LIBATOMIC_SPEC %L %G}.
+@end defmac
+
+@defmac LINK_LIBATOMIC_SPEC
+This macro is used in the default @code{LINK_GCC_C_SEQUENCE_SPEC} to link
+libatomic. By default, it is unset unless @code{ENABLE_AUTOLINK_LIBATOMIC}
+is set.
@end defmac
@defmac POST_LINK_SPEC
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 607c8ca1d42..e9f78f0f4c1 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1000,13 +1000,23 @@ proper position among the other output files. */
# define ASM_DEBUG_OPTION_SPEC ""
#endif
+#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC)
+# ifdef LD_AS_NEEDED_OPTION
+# define LINK_LIBATOMIC_SPEC LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION
+# else
+# define LINK_LIBATOMIC_SPEC "-latomic"
+# endif
+#elif !defined(LINK_LIBATOMIC_SPEC)
+# define LINK_LIBATOMIC_SPEC ""
+#endif
+
/* Here is the spec for running the linker, after compiling all files. */
/* This is overridable by the target in case they need to specify the
-lgcc and -lc order specially, yet not require them to override all
of LINK_COMMAND_SPEC. */
#ifndef LINK_GCC_C_SEQUENCE_SPEC
-#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
+#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:" LINK_LIBATOMIC_SPEC " %L %G}"
#endif
#ifdef ENABLE_DEFAULT_SSP
--
2.50.1
@@ -1,57 +0,0 @@
From ddc31942d7363acc938007d70f29e3e324064f76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 29 Aug 2021 12:23:34 +0200
Subject: [PATCH] configure: fix detection of atomic builtins in libatomic
configure script
Alpine's --enable-autolink-libatomic (which is enabled for riscv64 by
default) causes the libatomic configure script to incorrectly detect
which builtins are available on riscv64. This then causes incorrect code
generation for libatomic since it assumes compiler builtins to be
available which are not actually available on riscv64.
This commit fixes this issue by disabling linking of libatomic configure
test code entirely, thereby preventing linking against libatomic.
See:
* https://gitlab.alpinelinux.org/alpine/aports/-/issues/12948
* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101996#c6
---
libatomic/configure.tgt | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
index 6db039d6e8b..2751b5c1387 100644
--- a/libatomic/configure.tgt
+++ b/libatomic/configure.tgt
@@ -30,6 +30,26 @@
# on ${target_cpu}. For example to allow proper use of multilibs.
configure_tgt_pre_target_cpu_XCFLAGS="${XCFLAGS}"
+# The libatomic configure script performs several checks to determine
+# whether builtins for atomic operations are available. When compiling
+# with --enable-autolink-libatomic the test code compiled by the
+# configure script is also linked against libatomic. This causes it
+# to think that builtins are available, even if there are not, since
+# the tested symbols are provided by libatomic.
+#
+# This is a hack to ensure that we don't link against libatomic by not
+# linking any configure test code at all when --enable-autolink-libatomic
+# is given.
+#
+# See:
+#
+# * https://gitlab.alpinelinux.org/alpine/aports/-/issues/12817
+# * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101996#c4
+#
+if test x$enable_autolink_libatomic = xyes; then
+ gcc_no_link=yes
+fi
+
case "${target_cpu}" in
alpha*)
# fenv.c needs this option to generate inexact exceptions.
--
2.50.1
@@ -1,27 +0,0 @@
From e9f4662af949bc56eef27d531605dd90181bc300 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Thu, 30 Jun 2022 16:44:51 +0000
Subject: [PATCH] libstdc++: do not throw exceptions for non-C locales on musl
targets
---
libstdc++-v3/config/locale/generic/c_locale.cc | 3 ---
1 file changed, 3 deletions(-)
diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc
index bfd02b5c2c6..16f9e84d66f 100644
--- a/libstdc++-v3/config/locale/generic/c_locale.cc
+++ b/libstdc++-v3/config/locale/generic/c_locale.cc
@@ -242,9 +242,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Currently, the generic model only supports the "C" locale.
// See http://gcc.gnu.org/ml/libstdc++/2003-02/msg00345.html
__cloc = 0;
- if (strcmp(__s, "C"))
- __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
- "name not valid"));
}
void
--
2.50.1
@@ -1,26 +0,0 @@
From b4c412a5d538f7478596880e89d0e6d5046ef16b Mon Sep 17 00:00:00 2001
From: Mathias LANG <pro.mathias.lang@gmail.com>
Date: Mon, 17 Jan 2022 03:49:21 +0000
Subject: [PATCH] gdc: unconditionally link libgphobos against libucontext
ref: alpine/aports#13422
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index 20f535a306a..c087bfe7cd4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -54382,7 +54382,7 @@ configure-target-libphobos:
esac; \
module_srcdir=libphobos; \
rm -f no-such-file || : ; \
- CONFIG_SITE=no-such-file $(SHELL) \
+ CONFIG_SITE=no-such-file LIBS="-lucontext $$LIBS" $(SHELL) \
$$s/$$module_srcdir/configure \
--srcdir=$${topdir}/$$module_srcdir \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
--
2.50.1
@@ -1,54 +0,0 @@
From 0c10e5ee09685a5ecc39650e8ec8a1b4f5e096e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sat, 16 Jul 2022 09:21:11 +0200
Subject: [PATCH] druntime: link against libucontext on all platforms
On musl-based Linux distributions, swapcontext etc. are not provided by
musl but instead by libucontext. Hence, we _always_ need to link against
an external library for these functions.
---
libphobos/configure | 8 --------
libphobos/m4/druntime/libraries.m4 | 8 --------
2 files changed, 16 deletions(-)
diff --git a/libphobos/configure b/libphobos/configure
index 4f5be7d4ff4..0a48032edb4 100755
--- a/libphobos/configure
+++ b/libphobos/configure
@@ -15420,14 +15420,6 @@ fi
# Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
# "yes" for targets that have 'version = AsmExternal'.
druntime_fiber_asm_external=no
- case "$target_cpu" in
- aarch64* | \
- arm* | \
- i[34567]86|x86_64 | \
- powerpc)
- druntime_fiber_asm_external=yes
- ;;
- esac
if test "$druntime_fiber_asm_external" = no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing swapcontext" >&5
$as_echo_n "checking for library containing swapcontext... " >&6; }
diff --git a/libphobos/m4/druntime/libraries.m4 b/libphobos/m4/druntime/libraries.m4
index 8dd9c7da107..b61bf528a14 100644
--- a/libphobos/m4/druntime/libraries.m4
+++ b/libphobos/m4/druntime/libraries.m4
@@ -220,14 +220,6 @@ AC_DEFUN([DRUNTIME_LIBRARIES_UCONTEXT],
# Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
# "yes" for targets that have 'version = AsmExternal'.
druntime_fiber_asm_external=no
- case "$target_cpu" in
- aarch64* | \
- arm* | \
- i[[34567]]86|x86_64 | \
- powerpc)
- druntime_fiber_asm_external=yes
- ;;
- esac
if test "$druntime_fiber_asm_external" = no; then
AC_SEARCH_LIBS([swapcontext], [c ucontext], [],
AC_MSG_ERROR([swapcontext required but not found]))
--
2.50.1
@@ -1,25 +0,0 @@
From e5190522319c315efaf9a921737c05fae6a49e85 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Tue, 19 Jul 2022 14:54:07 +0200
Subject: [PATCH] libgnat: time_t is always 64-bit on musl libc
---
gcc/ada/libgnat/s-parame.ads | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/ada/libgnat/s-parame.ads b/gcc/ada/libgnat/s-parame.ads
index 98284a4d13e..0d14f116a10 100644
--- a/gcc/ada/libgnat/s-parame.ads
+++ b/gcc/ada/libgnat/s-parame.ads
@@ -101,7 +101,7 @@ package System.Parameters is
-- Characteristics of time_t type --
------------------------------------
- time_t_bits : constant := Long_Integer'Size;
+ time_t_bits : constant := Long_Long_Integer'Size;
-- Number of bits in type time_t
----------------------------------------------
--
2.50.1
@@ -1,30 +0,0 @@
From 3fe1ff6c349a065daba97794c55961cafe6c4a10 Mon Sep 17 00:00:00 2001
From: psykose <alice@ayaya.dev>
Date: Mon, 29 May 2023 15:33:11 +0000
Subject: [PATCH] libphobos: do not use LFS64 symbols
musl does not have these since 1.2.4, we can't use the compat interfaces.
---
libphobos/libdruntime/core/sys/posix/sys/mman.d | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/libphobos/libdruntime/core/sys/posix/sys/mman.d b/libphobos/libdruntime/core/sys/posix/sys/mman.d
index b1eb9fa8107..3aee0d96319 100644
--- a/libphobos/libdruntime/core/sys/posix/sys/mman.d
+++ b/libphobos/libdruntime/core/sys/posix/sys/mman.d
@@ -293,11 +293,7 @@ else version (CRuntime_Bionic)
}
else version (CRuntime_Musl)
{
- static if (__USE_LARGEFILE64) void* mmap64(void*, size_t, int, int, int, off_t);
- static if (__USE_FILE_OFFSET64)
- alias mmap = mmap64;
- else
- void* mmap(void*, size_t, int, int, int, off_t);
+ void* mmap(void*, size_t, int, int, int, off_t);
int munmap(void*, size_t);
}
else version (CRuntime_UClibc)
--
2.50.1
@@ -1,195 +0,0 @@
From ff21b1649c1c5009a33722d21e28af9026c72cd7 Mon Sep 17 00:00:00 2001
From: psykose <alice@ayaya.dev>
Date: Mon, 10 Jul 2023 23:23:29 +0000
Subject: [PATCH] libgo: fix lfs64 use
---
.../go/internal/syscall/unix/at_largefile.go | 2 +-
libgo/go/os/dir_largefile.go | 2 +-
libgo/go/syscall/libcall_glibc.go | 2 +-
libgo/go/syscall/libcall_linux.go | 4 +--
libgo/go/syscall/libcall_posix_largefile.go | 26 +++++++++----------
libgo/runtime/go-varargs.c | 2 +-
libgo/sysinfo.c | 9 +++----
7 files changed, 22 insertions(+), 25 deletions(-)
diff --git a/libgo/go/internal/syscall/unix/at_largefile.go b/libgo/go/internal/syscall/unix/at_largefile.go
index 82e0dcfd074..16151ecad1b 100644
--- a/libgo/go/internal/syscall/unix/at_largefile.go
+++ b/libgo/go/internal/syscall/unix/at_largefile.go
@@ -10,5 +10,5 @@ import (
"syscall"
)
-//extern fstatat64
+//extern fstatat
func fstatat(int32, *byte, *syscall.Stat_t, int32) int32
diff --git a/libgo/go/os/dir_largefile.go b/libgo/go/os/dir_largefile.go
index 1fc5ee0771f..0c6dffe1a75 100644
--- a/libgo/go/os/dir_largefile.go
+++ b/libgo/go/os/dir_largefile.go
@@ -11,5 +11,5 @@ package os
import "syscall"
-//extern readdir64
+//extern readdir
func libc_readdir(*syscall.DIR) *syscall.Dirent
diff --git a/libgo/go/syscall/libcall_glibc.go b/libgo/go/syscall/libcall_glibc.go
index 5c1ec483c75..5a1245ed44b 100644
--- a/libgo/go/syscall/libcall_glibc.go
+++ b/libgo/go/syscall/libcall_glibc.go
@@ -114,7 +114,7 @@ func Pipe2(p []int, flags int) (err error) {
}
//sys sendfile(outfd int, infd int, offset *Offset_t, count int) (written int, err error)
-//sendfile64(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
+//sendfile(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
if race.Enabled {
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
index 03ca7261b59..ad21fd0b3ac 100644
--- a/libgo/go/syscall/libcall_linux.go
+++ b/libgo/go/syscall/libcall_linux.go
@@ -158,7 +158,7 @@ func Reboot(cmd int) (err error) {
//adjtimex(buf *Timex) _C_int
//sys Fstatfs(fd int, buf *Statfs_t) (err error)
-//fstatfs64(fd _C_int, buf *Statfs_t) _C_int
+//fstatfs(fd _C_int, buf *Statfs_t) _C_int
func Gettid() (tid int) {
r1, _, _ := Syscall(SYS_GETTID, 0, 0, 0)
@@ -245,7 +245,7 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i
}
//sys Statfs(path string, buf *Statfs_t) (err error)
-//statfs64(path *byte, buf *Statfs_t) _C_int
+//statfs(path *byte, buf *Statfs_t) _C_int
//sysnb Sysinfo(info *Sysinfo_t) (err error)
//sysinfo(info *Sysinfo_t) _C_int
diff --git a/libgo/go/syscall/libcall_posix_largefile.go b/libgo/go/syscall/libcall_posix_largefile.go
index f90055bb29a..334212f0af1 100644
--- a/libgo/go/syscall/libcall_posix_largefile.go
+++ b/libgo/go/syscall/libcall_posix_largefile.go
@@ -10,40 +10,40 @@
package syscall
//sys Creat(path string, mode uint32) (fd int, err error)
-//creat64(path *byte, mode Mode_t) _C_int
+//creat(path *byte, mode Mode_t) _C_int
//sys Fstat(fd int, stat *Stat_t) (err error)
-//fstat64(fd _C_int, stat *Stat_t) _C_int
+//fstat(fd _C_int, stat *Stat_t) _C_int
//sys Ftruncate(fd int, length int64) (err error)
-//ftruncate64(fd _C_int, length Offset_t) _C_int
+//ftruncate(fd _C_int, length Offset_t) _C_int
//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
-//getrlimit64(resource _C_int, rlim *Rlimit) _C_int
+//getrlimit(resource _C_int, rlim *Rlimit) _C_int
//sys Lstat(path string, stat *Stat_t) (err error)
-//lstat64(path *byte, stat *Stat_t) _C_int
+//lstat(path *byte, stat *Stat_t) _C_int
//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
-//mmap64(addr *byte, length Size_t, prot _C_int, flags _C_int, fd _C_int, offset Offset_t) *byte
+//mmap(addr *byte, length Size_t, prot _C_int, flags _C_int, fd _C_int, offset Offset_t) *byte
//sys Open(path string, mode int, perm uint32) (fd int, err error)
-//__go_open64(path *byte, mode _C_int, perm Mode_t) _C_int
+//__go_open(path *byte, mode _C_int, perm Mode_t) _C_int
//sys Pread(fd int, p []byte, offset int64) (n int, err error)
-//pread64(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
+//pread(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error)
-//pwrite64(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
+//pwrite(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
//sys Seek(fd int, offset int64, whence int) (off int64, err error)
-//lseek64(fd _C_int, offset Offset_t, whence _C_int) Offset_t
+//lseek(fd _C_int, offset Offset_t, whence _C_int) Offset_t
//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
-//setrlimit64(resource int, rlim *Rlimit) _C_int
+//setrlimit(resource int, rlim *Rlimit) _C_int
//sys Stat(path string, stat *Stat_t) (err error)
-//stat64(path *byte, stat *Stat_t) _C_int
+//stat(path *byte, stat *Stat_t) _C_int
//sys Truncate(path string, length int64) (err error)
-//truncate64(path *byte, length Offset_t) _C_int
+//truncate(path *byte, length Offset_t) _C_int
diff --git a/libgo/runtime/go-varargs.c b/libgo/runtime/go-varargs.c
index f84860891e6..7efc9615985 100644
--- a/libgo/runtime/go-varargs.c
+++ b/libgo/runtime/go-varargs.c
@@ -84,7 +84,7 @@ __go_ioctl_ptr (int d, int request, void *arg)
int
__go_open64 (char *path, int mode, mode_t perm)
{
- return open64 (path, mode, perm);
+ return open (path, mode, perm);
}
#endif
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
index 180f5c31d74..1d717d55c0e 100644
--- a/libgo/sysinfo.c
+++ b/libgo/sysinfo.c
@@ -366,7 +366,7 @@ typedef loff_t libgo_loff_t_type;
#endif
#if defined(HAVE_OFF64_T)
-typedef off64_t libgo_off_t_type;
+typedef off_t libgo_off_t_type;
#else
typedef off_t libgo_off_t_type;
#endif
@@ -398,13 +398,11 @@ typedef off_t libgo_off_t_type;
// From dirent.h
SREF(dirent);
-SREF(dirent64);
OTREF(DIR);
EREF(DT_UNKNOWN);
// From fcntl.h
SREF(flock);
-SREF(flock64);
// From ffi headers
SREF(_ffi_type);
@@ -485,11 +483,10 @@ EREF(SS_ONSTACK);
EREF(SEGV_MAPERR);
// From stat.h
-SREF(stat64);
+SREF(stat);
// From statfs.h
SREF(statfs);
-SREF(statfs64);
// From sysinfo.h
SREF(sysinfo);
@@ -519,7 +516,7 @@ EREF(PTRACE_PEEKTEXT);
// From sys/resource.h
SREF(rusage);
-SREF(rlimit64);
+SREF(rlimit);
EREF(RLIMIT_NOFILE);
EREF(PRIO_USER);
EREF(RUSAGE_SELF);
--
2.50.1
@@ -1,32 +0,0 @@
From 0e09546330c7500b0d6d4e6d4bbf4fe751d57c34 Mon Sep 17 00:00:00 2001
From: Jingyun Hua <huajingyun@loongson.cn>
Date: Mon, 7 Aug 2023 15:25:58 +0800
Subject: [PATCH] loongarch disable multilib support
Signed-off-by: Jingyun Hua <huajingyun@loongson.cn>
---
gcc/config/loongarch/t-linux | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/gcc/config/loongarch/t-linux b/gcc/config/loongarch/t-linux
index 45862048abf..73155acd832 100644
--- a/gcc/config/loongarch/t-linux
+++ b/gcc/config/loongarch/t-linux
@@ -21,11 +21,6 @@ MULTIOSDIR_lp64f := ../lib64/f32$(call if_multiarch,:loongarch64-linux-gnuf32)
MULTIOSDIR_lp64s := ../lib64/sf$(call if_multiarch,:loongarch64-linux-gnusf)
# Don't define MULTILIB_OSDIRNAMES if multilib is disabled.
-ifeq ($(filter LA_DISABLE_MULTILIB,$(tm_defines)),)
-
- MULTILIB_OSDIRNAMES = .=$(MULTIOSDIR_$(mlib_default))
- MULTILIB_OSDIRNAMES += mabi.lp64d=$(MULTIOSDIR_lp64d)
- MULTILIB_OSDIRNAMES += mabi.lp64f=$(MULTIOSDIR_lp64f)
- MULTILIB_OSDIRNAMES += mabi.lp64s=$(MULTIOSDIR_lp64s)
-
-endif
+ MULTILIB_OSDIRNAMES = mabi.lp64d=../lib
+ MULTILIB_OSDIRNAMES += mabi.lp64f=../lib
+ MULTILIB_OSDIRNAMES += mabi.lp64s=../lib
--
2.50.1
@@ -1,113 +0,0 @@
From 05b462e0a6de90c0d69a48ed9c58a6f76158344e Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Fri, 25 Jul 2025 02:41:46 -0700
Subject: [PATCH] static PIE: ensure -static reaches the linker
on some targets, the logic for the compiler option -static seems not
to be processed when -pie is present. rather than playing
whack-a-mole, just ensure LD_PIE_SPEC specs always pass -static to ld
if either -static or -static-pie is present on the compiler driver
command line.
this may produce redundant -static arguments but it doesn't matter.
---
gcc/common.opt | 4 ++--
gcc/config/gnu-user.h | 17 ++++++++---------
gcc/gcc.cc | 6 +++---
3 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index e65a575d9f8..7ad38711f6e 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -3968,11 +3968,11 @@ Driver
no-pie
Driver RejectNegative Negative(shared)
-Don't create a dynamically linked position independent executable.
+Don't create a position independent executable.
pie
Driver RejectNegative Negative(no-pie)
-Create a dynamically linked position independent executable.
+Create a position independent executable.
static-pie
Driver RejectNegative Negative(pie)
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index 0426efdb8c3..866c8bd77f2 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -51,13 +51,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define GNU_USER_TARGET_STARTFILE_SPEC \
"%{shared:; \
pg|p|profile:%{static-pie:grcrt1.o%s;:gcrt1.o%s}; \
- static:crt1.o%s; \
- static-pie:rcrt1.o%s; \
+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \
" PIE_SPEC ":Scrt1.o%s; \
:crt1.o%s} " \
GNU_USER_TARGET_CRTI " \
- %{static:crtbeginT.o%s; \
- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \
+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \
+ static:crtbeginT.o%s; \
:crtbegin.o%s} \
%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_start_preinit.o%s; \
@@ -73,11 +72,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
GNU userspace "finalizer" file, `crtn.o'. */
#define GNU_USER_TARGET_ENDFILE_SPEC \
- "%{!static:%{fvtable-verify=none:%s; \
+ "%{static|static-pie:; \
+ fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_end_preinit.o%s; \
- fvtable-verify=std:vtv_end.o%s}} \
- %{static:crtend.o%s; \
- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \
+ fvtable-verify=std:vtv_end.o%s} \
+ %{shared|" PIE_SPEC ":crtendS.o%s; \
:crtend.o%s} " \
GNU_USER_TARGET_CRTN " " \
CRTOFFLOADEND
@@ -106,7 +105,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
#if defined(HAVE_LD_EH_FRAME_HDR)
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+#define LINK_EH_SPEC "%{!static|" PIE_SPEC ":--eh-frame-hdr} "
#endif
#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index e9f78f0f4c1..767ff65f348 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1056,7 +1056,7 @@ proper position among the other output files. */
#define NO_FPIE_AND_FPIC_SPEC NO_FPIE_SPEC "|" NO_FPIC_SPEC
#define FPIE_OR_FPIC_SPEC NO_FPIE_AND_FPIC_SPEC ":;"
#else
-#define PIE_SPEC "pie"
+#define PIE_SPEC "pie|static-pie"
#define FPIE1_SPEC "fpie"
#define NO_FPIE1_SPEC FPIE1_SPEC ":;"
#define FPIE2_SPEC "fPIE"
@@ -1080,12 +1080,12 @@ proper position among the other output files. */
#ifndef LINK_PIE_SPEC
#ifdef HAVE_LD_PIE
#ifndef LD_PIE_SPEC
-#define LD_PIE_SPEC "-pie"
+#define LD_PIE_SPEC "-pie %{static|static-pie:--no-dynamic-linker -z text -Bsymbolic -static}"
#endif
#else
#define LD_PIE_SPEC ""
#endif
-#define LINK_PIE_SPEC "%{static|shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
+#define LINK_PIE_SPEC "%{shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
#endif
#ifndef LINK_BUILDID_SPEC
--
2.50.1
@@ -1,77 +0,0 @@
From 4c8cc9a8621b91f8aa83d8ca81f22b00a98d9fa9 Mon Sep 17 00:00:00 2001
From: Andrew Pinski <quic_apinski@quicinc.com>
Date: Fri, 28 Mar 2025 17:25:56 -0700
Subject: [PATCH] except: Don't use the cached value of the gcc_except_table
section for comdat functions [PR119507]
This has been broken since GCC started to put the comdat functions' gcc_except_table into their
own section; r0-118218-g3e6011cfebedfb. What would happen is after a non-comdat function is processed,
the cached value would always be used even for comdat function. Instead we should create a new
section for comdat functions.
OK? Bootstrapped and tested on x86_64-linux-gnu.
PR middle-end/119507
gcc/ChangeLog:
* except.cc (switch_to_exception_section): Don't use the cached section if
the current function is in comdat.
gcc/testsuite/ChangeLog:
* g++.dg/eh/pr119507.C: New test.
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
---
gcc/except.cc | 9 ++++++++-
gcc/testsuite/g++.dg/eh/pr119507.C | 17 +++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
create mode 100644 gcc/testsuite/g++.dg/eh/pr119507.C
diff --git a/gcc/except.cc b/gcc/except.cc
index 205811c6567..0fe1e093489 100644
--- a/gcc/except.cc
+++ b/gcc/except.cc
@@ -2949,7 +2949,14 @@ switch_to_exception_section (const char * ARG_UNUSED (fnname))
{
section *s;
- if (exception_section)
+ if (exception_section
+ /* Don't use the cached section for comdat if it will be different. */
+#ifdef HAVE_LD_EH_GC_SECTIONS
+ && !(targetm_common.have_named_sections
+ && DECL_COMDAT_GROUP (current_function_decl)
+ && HAVE_COMDAT_GROUP)
+#endif
+ )
s = exception_section;
else
{
diff --git a/gcc/testsuite/g++.dg/eh/pr119507.C b/gcc/testsuite/g++.dg/eh/pr119507.C
new file mode 100644
index 00000000000..50afa75a43f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/pr119507.C
@@ -0,0 +1,17 @@
+// { dg-do compile { target comdat_group } }
+// Force off function sections
+// Force on exceptions
+// { dg-options "-fno-function-sections -fexceptions" }
+// PR middle-end/119507
+
+
+inline int comdat() { try { throw 1; } catch (int) { return 1; } return 0; }
+int another_func_with_exception() { try { throw 1; } catch (int) { return 1; } return 0; }
+inline int comdat1() { try { throw 1; } catch (int) { return 1; } return 0; }
+int foo() { return comdat() + comdat1(); }
+
+// Make sure the gcc puts the exception table for both comdat and comdat1 in their own section
+// { dg-final { scan-assembler-times ".section\[\t \]\[^\n\]*.gcc_except_table._Z6comdatv" 1 } }
+// { dg-final { scan-assembler-times ".section\[\t \]\[^\n\]*.gcc_except_table._Z7comdat1v" 1 } }
+// There should be 3 exception tables,
+// { dg-final { scan-assembler-times ".section\[\t \]\[^\n\]*.gcc_except_table" 3 } }
--
2.50.1
@@ -1,164 +0,0 @@
From a6c08fc7fe3a144ebd767cd52fe22043947655e9 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Sat, 26 Jul 2025 02:59:45 -0700
Subject: [PATCH] ada: libgnat: use stub symbolic module name functions
The "linux" implementation depends on glibc internals and accordingly
does not work on musl.
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
gcc/ada/Makefile.rtl | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index cb41e6887cd..152ba70db4d 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -1642,7 +1642,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
s-intman.adb<libgnarl/s-intman__posix.adb \
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
a-exetim.adb<libgnarl/a-exetim__posix.adb \
a-exetim.ads<libgnarl/a-exetim__default.ads \
s-linux.ads<libgnarl/s-linux.ads \
@@ -2014,7 +2014,7 @@ ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
system.ads<libgnat/system-linux-s390.ads
ifeq ($(strip $(filter-out s390x,$(target_cpu))),)
@@ -2359,7 +2359,7 @@ ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix.ads \
g-sercom.adb<libgnat/g-sercom__linux.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(GNATRTL_128BIT_PAIRS) \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
@@ -2407,7 +2407,7 @@ ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
system.ads<libgnat/system-linux-mips.ads
ifeq ($(strip $(filter-out mips64% mipsisa64%,$(target_cpu))),)
@@ -2463,7 +2463,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-ppc.ads
@@ -2519,7 +2519,7 @@ ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-arm.ads
@@ -2565,7 +2565,7 @@ ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
$(GNATRTL_128BIT_PAIRS) \
@@ -2607,7 +2607,7 @@ ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
system.ads<libgnat/system-linux-sparc.ads
ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
@@ -2660,7 +2660,7 @@ ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
system.ads<libgnat/system-linux-hppa.ads
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
@@ -2697,7 +2697,7 @@ ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix.ads \
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
system.ads<libgnat/system-linux-m68k.ads
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
@@ -2734,7 +2734,7 @@ ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
system.ads<libgnat/system-linux-sh4.ads
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
@@ -2779,7 +2779,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
$(GNATRTL_128BIT_PAIRS) \
@@ -2859,7 +2859,7 @@ ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
$(GNATRTL_128BIT_PAIRS) \
@@ -2904,7 +2904,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
$(SIMD_PATH_TARGET_PAIRS) \
@@ -2956,7 +2956,7 @@ ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
$(SIMD_PATH_TARGET_PAIRS) \
@@ -3000,7 +3000,7 @@ ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
system.ads<libgnat/system-linux-riscv.ads
ifeq ($(strip $(filter-out riscv64,$(target_cpu))),)
--
2.50.1
@@ -1,26 +0,0 @@
From 4b5dfaaa043999f353ade7fc09e7f1bb4a6fe6db Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Sat, 26 Jul 2025 03:02:38 -0700
Subject: [PATCH] ada: libgnat: recognize linux-musleabi and linux-muslgnueabi
platforms for ARM
---
gcc/ada/Makefile.rtl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index 152ba70db4d..89574cdfba7 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -2500,7 +2500,7 @@ endif
# ARM linux, GNU eabi
ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
+ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
SELECTED_PAIRS=arm-linux-gnueabi
--
2.50.1
-801
View File
@@ -1,801 +0,0 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-armhf
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=armhf
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
LANG_OBJC=false
LANG_JAVA=false
LANG_GO=false
LANG_FORTRAN=false
LANG_ADA=false
options="!strip"
# abuild doesn't try to tries to install "build-base-$CTARGET_ARCH"
# when this variable matches "no*"
BOOTSTRAP="nobuildbase"
# abuild will only cross compile when this variable is set, but it
# needs to find a valid package database in there for dependency
# resolving, so we set it to /.
CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
pkgname=gcc-armhf
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
_pkgbase="${pkgver%%_git*}"
# date component from snapshots
_pkgsnap="${pkgver##*_git}"
[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2"
[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross=""
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armhf
pkgrel=2
pkgdesc="Stage2 cross-compiler for armhf"
url="https://gcc.gnu.org"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-armhf mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armhf binutils-armhf"
subpackages="g++-armhf:gpp libstdc++-dev-armhf:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
: "${LANG_OBJC:=true}"
: "${LANG_GO:=true}"
: "${LANG_FORTRAN:=true}"
: "${LANG_ADA:=true}"
: "${LANG_JIT:=true}"
_libgomp=true
_libgcc=false
_libatomic=true
_libitm=true
if [ "$CHOST" != "$CTARGET" ]; then
if [ "$BOOTSTRAP" = nolibc ]; then
LANG_CXX=false
LANG_D=false
LANG_ADA=false
_libgcc=false
_builddir="$srcdir/build-cross-pass2"
else
_builddir="$srcdir/build-cross-final"
fi
LANG_OBJC=false
LANG_GO=false
LANG_FORTRAN=false
LANG_JIT=false
_libgomp=false
_libatomic=false
_libitm=false
# format-sec: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
CPPFLAGS="${CPPFLAGS/-Werror=format-security/}"
# reset target flags (should be set in crosscreate abuild)
# fixup flags. seems gcc treats CPPFLAGS as global without
# _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS.
export CFLAGS="$CPPFLAGS -g0 ${CFLAGS/-Werror=format-security/}"
export CXXFLAGS="$CPPFLAGS -g0 ${CXXFLAGS/-Werror=format-security/}"
unset CPPFLAGS
export CFLAGS_FOR_TARGET=" "
export CXXFLAGS_FOR_TARGET=" "
export LDFLAGS_FOR_TARGET=" "
STRIP_FOR_TARGET="$CTARGET-strip"
elif [ "$CBUILD" != "$CHOST" ]; then
# format-sec: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
CPPFLAGS="${CPPFLAGS/-Werror=format-security/}"
# fixup flags. seems gcc treats CPPFLAGS as global without
# _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS.
export CFLAGS="$CPPFLAGS -g0 ${CFLAGS/-Werror=format-security/}"
export CXXFLAGS="$CPPFLAGS -g0 ${CXXFLAGS/-Werror=format-security/}"
unset CPPFLAGS
# reset flags and cc for build
export CC_FOR_BUILD="gcc"
export CXX_FOR_BUILD="g++"
export CFLAGS_FOR_BUILD=" "
export CXXFLAGS_FOR_BUILD=" "
export LDFLAGS_FOR_BUILD=" "
export CFLAGS_FOR_TARGET=" "
export CXXFLAGS_FOR_TARGET=" "
export LDFLAGS_FOR_TARGET=" "
# Languages that do not need bootstrapping
LANG_OBJC=false
LANG_GO=false
LANG_FORTRAN=false
LANG_JIT=false
STRIP_FOR_TARGET=${CROSS_COMPILE}strip
_builddir="$srcdir/build-cross-native"
else
STRIP_FOR_TARGET=${CROSS_COMPILE}strip
_builddir="$srcdir/build"
# format-sec: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
CPPFLAGS="${CPPFLAGS/-Werror=format-security/}"
# pass -g0 by default to bypass -g, since we don't do debug
# if -dbg added, the -g is appended and overrides this
export CFLAGS="$CPPFLAGS -g0 ${CFLAGS/-Werror=format-security/} -O2"
export CXXFLAGS="$CPPFLAGS -g0 ${CXXFLAGS/-Werror=format-security/} -O2"
unset CPPFLAGS
# https://gcc.gnu.org/install/build.html
export CFLAGS_FOR_TARGET="$CFLAGS"
export CXXFLAGS_FOR_TARGET="$CXXFLAGS"
export LDFLAGS_FOR_TARGET="$LDFLAGS"
export BOOT_CFLAGS="$CFLAGS"
export BOOT_LDFLAGS="$LDFLAGS"
fi
case "$CTARGET_ARCH" in
# GDC hasn't been ported to PowerPC (LIBDRUNTIME_ONLY=yes)
# See libphobos/configure.tgt in GCC sources for supported targets
# riscv fails with: error: static assert "unimplemented"
ppc*|riscv64) LANG_D=false ;;
# GDC does currently not work on 32-bit musl architectures.
# This is a known upstream issue.
# See: https://github.com/dlang/druntime/pull/3383
armhf|armv7|x86) LANG_D=false ;;
esac
# libitm has TEXTRELs in ARM build, so disable for now
case "$CTARGET_ARCH" in
arm*) _libitm=false ;;
mips*) _libitm=false ;;
riscv64) _libitm=false ;;
loongarch64) _libitm=false ;;
esac
# Internal libffi fails to build on MIPS at the moment, need to
# investigate further. We disable LANG_GO on mips64 as it requires
# the internal libffi.
case "$CTARGET_ARCH" in
mips*) LANG_GO=false ;;
loongarch64) LANG_GO=false ;;
esac
# Fortran uses libquadmath if toolchain has __float128
# currently on x86, x86_64 and ia64
_libquadmath=$LANG_FORTRAN
case "$CTARGET_ARCH" in
x86 | x86_64 | ppc64le) ;;
*) _libquadmath=false ;;
esac
# libatomic is a dependency for openvswitch
$_libatomic && subpackages="$subpackages libatomic::$CTARGET_ARCH"
$_libgcc && subpackages="$subpackages libgcc::$CTARGET_ARCH"
$_libquadmath && subpackages="$subpackages libquadmath::$CTARGET_ARCH"
if $_libgomp; then
depends="$depends libgomp=$_gccrel"
subpackages="$subpackages libgomp::$CTARGET_ARCH"
fi
_languages=c
if $LANG_CXX; then
_languages="$_languages,c++"
fi
if $LANG_D; then
subpackages="$subpackages gcc-gdc$_target:gdc"
_languages="$_languages,d"
makedepends_build="$makedepends_build libucontext-dev"
if [ "$CBUILD" = "$CTARGET" ]; then
makedepends_build="$makedepends_build gcc-gdc-bootstrap"
subpackages="$subpackages libgphobos::$CTARGET_ARCH"
else
# shared libgphobos is for D programs to link against, so
# skip building that while cross-compiling the GDC compiler
makedepends_build="$makedepends_build gcc-gdc gcc-gdc$_cross"
fi
fi
if $LANG_OBJC; then
subpackages="$subpackages libobjc::$CTARGET_ARCH gcc-objc$_target:objc"
_languages="$_languages,objc"
fi
if $LANG_GO; then
subpackages="$subpackages libgo::$CTARGET_ARCH gcc-go$_target:go"
_languages="$_languages,go"
fi
if $LANG_FORTRAN; then
subpackages="$subpackages libgfortran::$CTARGET_ARCH gfortran$_target:gfortran"
_languages="$_languages,fortran"
fi
if $LANG_ADA; then
subpackages="$subpackages gcc-gnat$_target:gnat libgnat::$CTARGET_ARCH"
_languages="$_languages,ada"
if [ "$CBUILD" = "$CTARGET" ]; then
makedepends_build="$makedepends_build gcc-gnat-bootstrap"
subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH"
else
makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross"
fi
fi
if $LANG_JIT; then
subpackages="$subpackages libgccjit:jit libgccjit-dev:jitdev"
fi
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
#
# right now, we are using a git snapshot. snapshots are taken from gcc.gnu.org/pub/gcc/snapshots.
# However, since they are periodically deleted from the GCC mirrors the utilized snapshots are
# mirrored on dev.alpinelinux.org. Please ensure that the snapshot Git commit (as stated in the
# README) matches the base commit on the version-specific branch in the Git repository below.
#
# PLEASE submit all patches to gcc to https://gitlab.alpinelinux.org/kaniini/alpine-gcc-patches,
# so that they can be properly tracked and easily rebased if needed.
#source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-$_pkgsnap/gcc-${_pkgbase%%.*}-$_pkgsnap.tar.xz"
#source="https://gcc.gnu.org/pub/gcc/snapshots/${_pkgbase%%.*}-$_pkgsnap/gcc-${_pkgbase%%.*}-$_pkgsnap.tar.xz"
source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0001-posix_memalign.patch
0002-gcc-poison-system-directories.patch
0003-specs-turn-on-Wl-z-now-by-default.patch
0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
0006-Enable-Wformat-and-Wformat-security-by-default.patch
0007-Enable-Wtrampolines-by-default.patch
0008-gcc-disable-SSP-on-ffreestanding-nostdlib-and-nodefa.patch
0009-gcc-params-set-default-ssp-buffer-size-to-4.patch
0010-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
0011-Don-t-declare-asprintf-if-defined-as-a-macro.patch
0012-libiberty-copy-PIC-objects-during-build-process.patch
0013-libgcc_s.patch
0014-nopie.patch
0015-ada-fix-shared-linking.patch
0016-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
0017-add-fortify-headers-paths.patch
0018-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
0019-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
0020-aarch64-disable-multilib-support.patch
0021-s390x-disable-multilib-support.patch
0022-ppc64-le-disable-multilib-support.patch
0023-x86_64-disable-multilib-support.patch
0024-riscv-disable-multilib-support.patch
0025-always-build-libgcc_eh.a.patch
0026-ada-libgnarl-remove-use-of-glibc-specific-pthread_rw.patch
0027-ada-libgnarl-use-posix_openpt-instead-of-glibc-speci.patch
0028-ada-libgnarl-adaint-fix-sched.h-inclusion-for-musl.patch
0029-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
0030-configure-fix-detection-of-atomic-builtins-in-libato.patch
0031-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
0032-gdc-unconditionally-link-libgphobos-against-libucont.patch
0033-druntime-link-against-libucontext-on-all-platforms.patch
0034-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
0035-libphobos-do-not-use-LFS64-symbols.patch
0036-libgo-fix-lfs64-use.patch
0037-loongarch-disable-multilib-support.patch
0038-static-PIE-ensure-static-reaches-the-linker.patch
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
# secfixes:
# 13.2.1_git20231014-r0:
# - CVE-2023-4039
# we build out-of-tree
#builddir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
builddir="$srcdir"/gcc-$_pkgbase
_gcclibdir="usr/lib/gcc/$CTARGET/$_pkgbase"
_gcclibexec="usr/libexec/gcc/$CTARGET/$_pkgbase"
prepare() {
default_prepare
echo $_pkgbase > gcc/BASE-VER
}
build() {
local _arch_configure=
local _bootstrap_configure=
local _jit_configure=
local _sanitizer_configure=
case "$CTARGET" in
aarch64-*-*-*) _arch_configure="--with-arch=armv8-a --with-abi=lp64";;
armv5-*-*-*eabi) _arch_configure="--with-arch=armv5te --with-tune=arm926ej-s --with-float=soft --with-abi=aapcs-linux";;
armv6-*-*-*eabihf) _arch_configure="--with-arch=armv6kz --with-tune=arm1176jzf-s --with-fpu=vfpv2 --with-float=hard --with-abi=aapcs-linux";;
armv7-*-*-*eabihf) _arch_configure="--with-arch=armv7-a --with-tune=generic-armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-abi=aapcs-linux --with-mode=thumb";;
mips-*-*-*) _arch_configure="--with-arch=mips32 --with-mips-plt --with-float=soft --with-abi=32";;
mips64-*-*-*) _arch_configure="--with-arch=mips3 --with-tune=mips64 --with-mips-plt --with-float=soft --with-abi=64";;
mips64el-*-*-*) _arch_configure="--with-arch=mips3 --with-tune=mips64 --with-mips-plt --with-float=soft --with-abi=64";;
mipsel-*-*-*) _arch_configure="--with-arch=mips32 --with-mips-plt --with-float=soft --with-abi=32";;
powerpc-*-*-*) _arch_configure="--enable-secureplt --enable-decimal-float=no";;
powerpc64*-*-*-*) _arch_configure="--with-abi=elfv2 --enable-secureplt --enable-decimal-float=no --enable-targets=powerpcle-linux";;
i486-*-*-*) _arch_configure="--with-arch=i486 --with-tune=generic --enable-cld";;
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
*) _sanitizer_configure="--disable-libsanitizer" ;;
esac
case "$CTARGET_ARCH" in
mips*) _hash_style_configure="--with-linker-hash-style=sysv" ;;
*) _hash_style_configure="--with-linker-hash-style=gnu" ;;
esac
export libat_cv_have_ifunc=no
case "$BOOTSTRAP" in
nolibc) _bootstrap_configure="--with-newlib --disable-shared --enable-threads=no" ;;
*)
# cross-bootstrap GDC with a static libphobos: due to GCC's
# ./configure not having a --disable-shared=libphobos option,
# we have to use --enable-shared with everything else instead.
if $LANG_D && [ "$CBUILD" != "$CTARGET" ]; then
_bootstrap_configure="--enable-shared=libgcc,libstdc++,libffi,zlib,boehm-gc,ada,libada,libgo,libobjc,libatomic,libgomp,libitm,libgfortran,libquadmath"
else
_bootstrap_configure="--enable-shared"
fi
_bootstrap_configure="$_bootstrap_configure --enable-threads --enable-tls"
;;
esac
$_libgomp || _bootstrap_configure="$_bootstrap_configure --disable-libgomp"
$_libatomic || _bootstrap_configure="$_bootstrap_configure --disable-libatomic"
$_libitm || _bootstrap_configure="$_bootstrap_configure --disable-libitm"
$_libquadmath || _arch_configure="$_arch_configure --disable-libquadmath"
msg "Building the following:"
echo ""
echo " CBUILD=$CBUILD"
echo " CHOST=$CHOST"
echo " CTARGET=$CTARGET"
echo " CTARGET_ARCH=$CTARGET_ARCH"
echo " languages=$_languages"
echo " arch_configure=$_arch_configure"
echo " cross_configure=$_cross_configure"
echo " bootstrap_configure=$_bootstrap_configure"
echo " hash_style_configure=$_hash_style_configure"
echo ""
local version="Alpine $pkgver"
local gccconfiguration="
--prefix=/usr
--mandir=/usr/share/man
--infodir=/usr/share/info
--build=$CBUILD
--host=$CHOST
--target=$CTARGET
--enable-checking=release
--disable-cet
--disable-fixed-point
--disable-libstdcxx-pch
--disable-multilib
--disable-nls
--disable-werror
--disable-symvers
--enable-__cxa_atexit
--enable-default-pie
--enable-default-ssp
--enable-languages=$_languages
--enable-link-serialization=2
--enable-linker-build-id
$_arch_configure
--disable-libssp
$_sanitizer_configure
$_cross_configure
$_bootstrap_configure
--with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
--with-system-zlib
$_hash_style_configure
"
mkdir -p "$_builddir"
cd "$_builddir"
"$builddir"/configure $gccconfiguration \
--with-pkgversion="$version"
msg "building gcc"
if $LANG_D && [ "$CBUILD" != "$CTARGET" ]; then
# cross-compiling libphobos with parallel make fails
make all-target-libphobos
fi
make
# we build gccjit separate to not build all of gcc with --enable-host-shared
# as doing so slows it down a few %, so for some quick if's here we gain
# free performance
if $LANG_JIT; then
mkdir -p "$_builddir"/libgccjit-build
cd "$_builddir"/libgccjit-build
"$builddir"/configure $gccconfiguration \
--disable-bootstrap \
--enable-host-shared \
--enable-languages=jit \
--with-pkgversion="$version"
msg "building libgccjit"
make all-gcc
fi
}
package() {
cd "$_builddir"
make -j1 DESTDIR="$pkgdir" install
[ "$CHOST" = "$CTARGET" ] && ln -s gcc "$pkgdir"/usr/bin/cc
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
# symlink to vendor-less target triple for
# supporting clang --target's fallback match
# ref: https://gitlab.alpinelinux.org/alpine/aports/-/issues/16828
ln -s "$CTARGET" "$pkgdir/usr/lib/gcc/${CTARGET%%-*}-${CTARGET#*-*-}"
if $LANG_JIT; then
make -C "$_builddir"/libgccjit-build/gcc DESTDIR="$pkgdir" jit.install-common
fi
# we dont support gcj -static
# and saving 35MB is not bad.
find "$pkgdir" \( -name libgtkpeer.a \
-o -name libgjsmalsa.a \
-o -name libgij.a \) \
-delete
# strip debug info from some static libs
find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
-o -name libgphobos.a -o -name libgdruntime.a \
-o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \
-o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \
-o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \
-a -type f \
-exec $STRIP_FOR_TARGET -g {} +
if $_libgomp; then
mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir
fi
if $_libitm; then
mv "$pkgdir"/usr/lib/libitm.spec "$pkgdir"/$_gcclibdir
fi
# remove ffi
rm -f "$pkgdir"/usr/lib/libffi* "$pkgdir"/usr/share/man/man3/ffi*
find "$pkgdir" -name 'ffi*.h' -delete
local gdblib=${_target:+$CTARGET/}lib
if [ -d "$pkgdir"/usr/$gdblib/ ]; then
for i in $(find "$pkgdir"/usr/$gdblib/ -type f -maxdepth 1 -name "*-gdb.py"); do
mkdir -p "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib
mv "$i" "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib/
done
fi
# move ada runtime libs
if $LANG_ADA; then
local libgnat_static=
[ "$CHOST" = "$CTARGET" ] && libgnat_static="libgna*.a"
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "$libgnat_static" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
fi
if [ "$CHOST" != "$CTARGET" ]; then
# cross-gcc: remove any files that would conflict with the
# native gcc package
rm -rf "$pkgdir"/usr/include "${pkgdir:?}"/usr/share
# libcc1 does not depend on target, don't ship it
rm -rf "$pkgdir"/usr/lib/libcc1.so*
# fixup gcc library symlinks to be linker scripts so
# linker finds the libs from relocated sysroot
for so in "$pkgdir"/usr/"$CTARGET"/lib/*.so; do
if [ -h "$so" ]; then
local _real=$(basename "$(readlink "$so")")
rm -f "$so"
echo "GROUP ($_real)" > "$so"
fi
done
else
# add c89/c99 wrapper scripts
cat >"$pkgdir"/usr/bin/c89 <<'EOF'
#!/bin/sh
_flavor="-std=c89"
for opt; do
case "$opt" in
-ansi|-std=c89|-std=iso9899:1990) _flavor="";;
-std=*) echo "$(basename $0) called with non ANSI/ISO C option $opt" >&2
exit 1;;
esac
done
exec gcc $_flavor ${1+"$@"}
EOF
cat >"$pkgdir"/usr/bin/c99 <<'EOF'
#!/bin/sh
_flavor="-std=c99"
for opt; do
case "$opt" in
-std=c99|-std=iso9899:1999) _flavor="";;
-std=*) echo "$(basename $0) called with non ISO C99 option $opt" >&2
exit 1;;
esac
done
exec gcc $_flavor ${1+"$@"}
EOF
chmod 755 "$pkgdir"/usr/bin/c?9
# install lto plugin so regular binutils may use it
mkdir -p "$pkgdir"/usr/lib/bfd-plugins
ln -s /$_gcclibexec/liblto_plugin.so "$pkgdir/usr/lib/bfd-plugins/"
fi
}
libatomic() {
pkgdesc="GCC Atomic library"
depends=
replaces="gcc"
amove usr/lib/libatomic.so.*
}
libcxx() {
pkgdesc="GNU C++ standard runtime library"
depends=
if [ "$CHOST" = "$CTARGET" ]; then
# verify that we are using clock_gettime rather than doing direct syscalls
# so we dont break 32 bit arches due to time64.
nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime
fi
amove usr/lib/libstdc++.so.*
}
libcxx_dev() {
pkgdesc="GNU C++ standard runtime library (development files)"
depends=
replaces="g++"
amove usr/${_target:+$CTARGET/}lib/libstdc++.a \
usr/${_target:+$CTARGET/}lib/libstdc++exp.a \
usr/${_target:+$CTARGET/}lib/libstdc++.so \
usr/${_target:+$CTARGET/}lib/libstdc++fs.a \
usr/${_target:+$CTARGET/}lib/libsupc++.a \
usr/${_target:+$CTARGET/}include/c++
}
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
jit() {
pkgdesc="GCC JIT Library"
depends=
amove usr/lib/libgccjit.so*
}
jitdev() {
pkgdesc="GCC JIT Library (development files)"
depends="libgccjit"
amove usr/include/libgccjit*.h
}
libobjc() {
pkgdesc="GNU Objective-C runtime"
replaces="objc"
depends=
amove usr/lib/libobjc.so.*
}
objc() {
pkgdesc="GNU Objective-C"
replaces="gcc"
depends="musl-dev gcc=$_gccrel libobjc=$_gccrel"
amove $_gcclibexec/cc1obj
amove $_gcclibdir/include/objc
amove usr/lib/libobjc.so
amove usr/lib/libobjc.a
}
libgcc() {
pkgdesc="GNU C compiler runtime libraries"
depends=
amove usr/lib/libgcc_s.so.*
}
libgomp() {
pkgdesc="GCC shared-memory parallel programming API library"
depends=
replaces="gcc"
amove usr/lib/libgomp.so.*
}
libgphobos() {
pkgdesc="D programming language standard library for GCC"
depends=
amove usr/lib/libgdruntime.so.*
amove usr/lib/libgphobos.so.*
}
gdc() {
pkgdesc="GCC-based D language compiler"
depends="gcc$_target=$_gccrel musl-dev libucontext-dev"
[ "$CBUILD" = "$CTARGET" ] && depends="$depends libgphobos=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && provides="gcc-gdc-bootstrap=$_gccrel"
# Copy: The installed '.d' files, the static lib, the binary itself
# The shared libs are part of 'libgphobos' so one can run program
# without installing the compiler
amove $_gcclibexec/d21
amove $_gcclibdir/include/d
if [ "$CBUILD" = "$CTARGET" ]; then
amove usr/lib/libgdruntime.so
amove usr/lib/libgphobos.so
fi
amove usr/${_target:+$CTARGET/}lib/libgdruntime.a
amove usr/${_target:+$CTARGET/}lib/libgphobos.a
amove usr/${_target:+$CTARGET/}lib/libgphobos.spec
amove usr/bin/*gdc
}
libgo() {
pkgdesc="Go runtime library for GCC"
depends=
amove usr/lib/libgo.so.*
}
go() {
pkgdesc="GCC Go frontend (intended for bootstrapping community/go)"
depends="gcc=$_gccrel libgo=$_gccrel !go"
amove usr/lib/go
amove usr/bin/*go
amove usr/bin/*gofmt
amove $_gcclibexec/go1
amove $_gcclibexec/cgo
amove $_gcclibexec/buildid
amove $_gcclibexec/test2json
amove $_gcclibexec/vet
amove usr/lib/libgo.a
amove usr/lib/libgo.so
amove usr/lib/libgobegin.a
amove usr/lib/libgolibbegin.a
}
libgfortran() {
pkgdesc="Fortran runtime library for GCC"
depends=
amove usr/lib/libgfortran.so.*
}
libquadmath() {
replaces="gcc"
pkgdesc="128-bit math library for GCC"
depends=
amove usr/lib/libquadmath.so.*
}
gfortran() {
pkgdesc="GNU Fortran Compiler"
depends="gcc=$_gccrel libgfortran=$_gccrel"
$_libquadmath && depends="$depends libquadmath=$_gccrel"
replaces="gcc"
amove usr/bin/*gfortran
amove usr/lib/libgfortran.a
amove usr/lib/libgfortran.so
if $_libquadmath; then
amove usr/lib/libquadmath.a
amove usr/lib/libquadmath.so
fi
amove $_gcclibdir/finclude
amove $_gcclibexec/f951
mv -v "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir/
}
libgnat() {
pkgdesc="GNU Ada runtime shared libraries"
depends=
amove usr/lib/libgna*.so
}
libgnatstatic() {
pkgdesc="GNU Ada static libraries"
depends=
amove usr/lib/libgna*.a
}
gnat() {
pkgdesc="Ada support for GCC"
depends="gcc=$_gccrel"
provides="$pkgname-gnat-bootstrap=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel"
amove $_gcclibexec/*gnat*
amove $_gcclibdir/*ada*
amove usr/bin/*gnat*
}
gdb() {
pkgdesc="$pkgdesc (gdb printers)"
install_if="$pkgname=$pkgver-r$pkgrel gdb"
amove \
usr/share/gdb/python/ \
usr/share/gcc-*/python/
}
sha512sums="
89047a2e07bd9da265b507b516ed3635adb17491c7f4f67cf090f0bd5b3fc7f2ee6e4cc4008beef7ca884b6b71dffe2bb652b21f01a702e17b468cca2d10b2de gcc-15.2.0.tar.xz
fd5cebc5deb1d588583424acbc1b5a6d8d6f5b1bfa9f4bdbc082cfd406723f423d87011ee30e04ed18128a7ed8021cbfc9262becff5419125dc1afb6f407defa 0001-posix_memalign.patch
6634004cb9feea9ee0d063d6b6984d7db3b10c692b6139bb99169a4f2d74f0e10b5ca0ab31ce346ffef34b8eb9c3f536aa4d94bce1b27f8e0b8a9fc5cc4b7057 0002-gcc-poison-system-directories.patch
37e089791dbcbad73af866b662cda611dc0970d93e28251c7a9aa898db3b96446654e8b778d7866eb8550ba7f4a57cf22e8514d562bfed0c66613e65550d9c85 0003-specs-turn-on-Wl-z-now-by-default.patch
d4d5bfeb20a9fac968f37497d86d7eff4a9ac863e015dadbffae24c08236f5efde69b615d95191e2546672ce2d4b30d3627528c64a83fc64b715e8fa6fd4c372 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
4806687c806154dd3d5423ea9ef1203db344dfb8fd21f3eb3543d9f05f4dc01aacc4f012f45db8e890eeddc7b1c75ec06a6b29e29a1ef7b9ec6f853d1854cfd0 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
6b225df0dd76339b06d5efbe07edd6648391a7b9415a219041189c35c084ceffe8fb96b2660d60d62099e7afdfeb8e053622a2b6660d2e8a13adb924f4bc8c8a 0006-Enable-Wformat-and-Wformat-security-by-default.patch
e419b7f20a74384bfb1ac792e3625f9bfe69f8031c2c0beb23f4015df9d48a6c6f107d89bea3c20fa56309b022637863c13e90c1565d027eb47c08154389b7a0 0007-Enable-Wtrampolines-by-default.patch
e6307eec09196900bcd2c0154a62d6694576b4da48a1cf901750b97b4603cd694c4daee2476c33bce09f10bee92a72749face835eb18fbf2c2a50aa1dd251572 0008-gcc-disable-SSP-on-ffreestanding-nostdlib-and-nodefa.patch
969797f99602c119e1632f0c5be02a566be5fb4c7e59affefb5eb6084a06b97120d99d5ee63fef0dab6c0278c7cecf1d8caa53521cc5b6622de2aaa7deabf86e 0009-gcc-params-set-default-ssp-buffer-size-to-4.patch
c15f062790367c9e786a4933deec33931438680176ec752b172c2a0504463a23d588ead4350d32e474603750ceb130ba0ccadfcde601bcf8e2eabca5af8322d0 0010-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
03a1012f1022cd68cf08440428e7d6cbf65ea2184e4a088a55976f34af627d80f42f15f713841ec9cbfc4afa39117d4fc384c3f27a4f9ad0ff3947bd45b71c4a 0011-Don-t-declare-asprintf-if-defined-as-a-macro.patch
8f098de9fcf4bbece0923dc4a2acfc67cf751c1d5c007535c5d88b8637a4482c1a42d5721a2760127498e327f6983bbc865a592a8e0db9ef7efc0e36b6d4102f 0012-libiberty-copy-PIC-objects-during-build-process.patch
bbe2b561b5288ca724af37353e17b413df8bf247bce724391e75373aee5cdcdb85e6489d51622c11f4041ed8f317278cf687aee14dfc8756398f03f1a796feb9 0013-libgcc_s.patch
ae34ca2bc5a53ed1c832651e3f6425ca29b5873f1e112b45613277fb9611693be41986d5879593f09149777e3e57d04ba17b142c43eaa990375d31e4e0b4adde 0014-nopie.patch
2c91a1eadf7236efff42eb53037862a342807596e37c6cc3c270d25c2d89078bf8db68bb2e93e57a8ad39b3af825e33db72e2f48a6311951fff53776933bc48c 0015-ada-fix-shared-linking.patch
1366d696a952ed35e5e56ab5bd1eba67e58a8ce752c0ef7e7fe4ad3eef44f25ce6016342d11add9548f9e719dc9ee0772064dda68784257a1a3234ae5957f3fb 0016-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
af739373285e89a4ab0000042b537ff7197b0b366019b56991008c43f3d2b76709d472841cda40e9fb61e6f0dacc0fe8c6b888abb31f393ec1a87acc1c0585b3 0017-add-fortify-headers-paths.patch
c18f3eef4d7d6fcbfa64570edb71157a62dad1f3d7276f10fe3424e49caa33f57a0a5952f03189199472802a2dd966e4832789685a94911fe9a86bb1fd6c1d50 0018-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
341d39a40ffd896db152863c717798c6885bdde44c9ac645c5d099c2364cbd8f6f526f97cc98302c420682cb5d6d88bbe28d838c7141456f2ba5581f3edfd64f 0019-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
e603652f341909820789a2cec173b8e547ee607b040863f1745b998b8a69d51cb412a4ac55d2c9e3c5192cc298f6288f9dd48fa06fe53ba8f6b1cabbe61c997a 0020-aarch64-disable-multilib-support.patch
26819f3c3a5844c96cee89fc9766a4f8153e7bb22f6296c6c9fd6a13d45648e3f6c7059397ad7e5be66f55addc21054614b38f480b52a7c9a967cf389735644a 0021-s390x-disable-multilib-support.patch
8e6e6ed84c8cb39ecc35ad0986a91168fedbae2426c8ec1c83dec85a293777e0ec29eac13130193b1bdc2d98b6ffa180abf574dad70740d4720b4bfdab992ab8 0022-ppc64-le-disable-multilib-support.patch
264eaa54a76ec5a12294d91ad2f995eddac9210a569ba85aef27176cb015354aa427840bb22f1e3ba2f7761f6f85cc98ddb3b00584b295c6a10a9770c59a2607 0023-x86_64-disable-multilib-support.patch
47a1a407298b6c259d7faff774f26e4843c9d3764362d74230e7d3f77c46ea8bb51211e09a66bb51c04a9f276ea5b07570fb52312fdb1d354c72a0343bc40c57 0024-riscv-disable-multilib-support.patch
b86fcf40e75861bdffb00069d3a0c9cec3fe8042d49d6ce2beae48ffeadccc576b8ab36e5a85421db5cffeb080a75f3a66dbcbb825d7f4462d40ec621964efe3 0025-always-build-libgcc_eh.a.patch
1425543ce064bfd8e33d7e6e07f45cc16d94f156adcfe190c842722652d5ea0c9ba60f6a3e1b444bb0e5bc906ec4f9ca54720b306f274b441600b79bff47dc57 0026-ada-libgnarl-remove-use-of-glibc-specific-pthread_rw.patch
b8851d0e7fc66201e323007f7c1d702ea8a0d0405aa5945621128ebfb93afd967ec8b3ab6fd4ea779ec10dca2a32e1797f7a2622124ccf8ace2a7596f66ff0bf 0027-ada-libgnarl-use-posix_openpt-instead-of-glibc-speci.patch
12b09a171d61406a2bfa10bb25398cee8c92676b12506afe7aace7028e94cbf8d7df25f62ff7af07e8ed471c6edd3ab7811fa51dfaf3a221a6b367858b1f032c 0028-ada-libgnarl-adaint-fix-sched.h-inclusion-for-musl.patch
15bed06ee74a36e9f21f4b29d7bce9c4188769abb6391560e13ea6b165da51f5ae908e141de7510d3d7eec6b998d0fc53de1042fdb7bd056efa703d230a683b4 0029-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
4c5501256669fd33527a5394eaa4b84451ee341a943dd24a179b661d3c53ef70e87ed5d5f3e76c6c3f9cb79cb5d120ea40101278a7b9d04a55d9405e4cbf9796 0030-configure-fix-detection-of-atomic-builtins-in-libato.patch
eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd700e440763f4a72e29876f560e13e4f5e6de2a1d9438c2f6 0031-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
2b09f90d9cb417170060c8ce198bd4aa2e4ef163286c8f24f6e6c5a673ae80f5a883b078b1a5dd5fa71bc1502e08c886687072694da039eb82baa1ea1948ac2c 0032-gdc-unconditionally-link-libgphobos-against-libucont.patch
99c74242b6d79e6a814f1199b9fb0b56c6a43eb93e5d1a79b674cea750bb025363cdd1505d05cd2195a43c918831fa586c427556ee5bc826aa79cd82e7ee1c24 0033-druntime-link-against-libucontext-on-all-platforms.patch
4f8f7876bf8647cda47cbd2b145ff31efe2a7ac21c012c4134174f93482aad1fbab2592c66aacc3b05fccd1a694ff97511b794139db4aac719e243c114373240 0034-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
0069da1d8cb9adb9bab081a34fec680a9ebb1236e606a2497e4565e99bef434518a0f06474a9a1fdfa70811ed3da5d35ca95d267268328f2764bf41c50e924de 0035-libphobos-do-not-use-LFS64-symbols.patch
1cbe85b63ef13bdf2804bfd3173998a6e86752d8ffc09d4cc75a9ba80b98aec5a04efa732bce97a2f50a90c84b92c442ca8f6639841fe7d6618f928ea65916a6 0036-libgo-fix-lfs64-use.patch
98fcd5b893a1646edab961a5d00246151c47b449f8eca99c51f4026ffdb53f60b5b9f6426437c0a6411342da10db8983e20337a29cd46ed22b70e0478573ea30 0037-loongarch-disable-multilib-support.patch
1ad48e39dab351b7bb3e17d9b4b8b78e7de7c736e212638c9d6874b1dde0360dcfc85586c39f515fbd2a6d9910fedc4f0c6ad7ff652b10a5c288c47173671ec7 0038-static-PIE-ensure-static-reaches-the-linker.patch
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
@@ -0,0 +1,31 @@
Provide struct_sock_fprog_sz on Linux, rather than on Linux+glibc.
With `#include <linux/filter.h>` `struct sock_fprog` is available when
linux headers are available. It seems that glibc is just including that header
as an implementation detail, while musl does not.
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2025-08-08 08:51:45.621434001 +0200
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2026-02-25 20:29:28.519492722 +0100
@@ -74,6 +74,7 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
+#include <linux/filter.h>
#if SANITIZER_ANDROID
#include <linux/fs.h>
#endif
@@ -507,6 +508,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
unsigned struct_synth_info_sz = sizeof(struct synth_info);
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
#endif // SANITIZER_LINUX
#if SANITIZER_GLIBC
@@ -534,7 +536,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
- unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
# endif // SANITIZER_GLIBC
# if !SANITIZER_ANDROID && !SANITIZER_APPLE
+31 -7
View File
@@ -1,7 +1,6 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-armv7
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=armv7
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
@@ -23,6 +22,7 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=gcc-armv7
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
@@ -34,19 +34,24 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armv7
pkgrel=2
pkgrel=5
pkgdesc="Stage2 cross-compiler for armv7"
url="https://gcc.gnu.org"
arch="x86_64"
arch="aarch64 x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-armv7 mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
depends="binutils-armv7 mpc1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
case "$CARCH" in
aarch64) depends="$depends so:libc.musl-aarch64.so.1" ;;
x86_64) depends="$depends so:libc.musl-x86_64.so.1" ;;
esac
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armv7 binutils-armv7"
subpackages="g++-armv7:gpp libstdc++-dev-armv7:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
options="!strip !tracedeps toolchain"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -175,7 +180,10 @@ esac
# libatomic is a dependency for openvswitch
$_libatomic && subpackages="$subpackages libatomic::$CTARGET_ARCH"
$_libgcc && subpackages="$subpackages libgcc::$CTARGET_ARCH"
if $_libgcc; then
depends="$depends libgcc-static$_target"
subpackages="$subpackages libgcc::$CTARGET_ARCH libgcc-static$_target:libgccstatic:$CTARGET_ARCH"
fi
$_libquadmath && subpackages="$subpackages libquadmath::$CTARGET_ARCH"
if $_libgomp; then
depends="$depends libgomp=$_gccrel"
@@ -279,6 +287,7 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0042-libsanitizer-struct_sock_fprog_sz.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
@@ -580,7 +589,12 @@ gpp() {
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
depends="$depends so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
case "$CARCH" in
aarch64) depends="$depends so:libc.musl-aarch64.so.1" ;;
x86_64) depends="$depends so:libc.musl-x86_64.so.1" ;;
esac
amove $_gcclibexec/cc1plus
amove usr/bin/*++
@@ -624,6 +638,15 @@ libgcc() {
amove usr/lib/libgcc_s.so.*
}
libgccstatic() {
pkgdesc="GNU C compiler runtime libraries"
depends=
amove usr/lib/gcc/"$CTARGET"/"$pkgver"/crtbeginS.o
amove usr/lib/gcc/"$CTARGET"/"$pkgver"/crtendS.o
amove usr/lib/gcc/"$CTARGET"/"$pkgver"/libgcc.a
}
libgomp() {
pkgdesc="GCC shared-memory parallel programming API library"
depends=
@@ -796,6 +819,7 @@ eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
5dd452a80c496a587a8826b04a4917045e4028631606e85cabd8e87e0460642d188a2156c4e0cf37a5d88e66ebd08a08393d48a6065045178c69eaba2edd063e 0042-libsanitizer-struct_sock_fprog_sz.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
@@ -1,130 +0,0 @@
From 824eae920f0f64dd7687c969a2436b129161fdc9 Mon Sep 17 00:00:00 2001
From: Jinyang He <hejinyang@loongson.cn>
Date: Wed, 29 Oct 2025 16:07:35 +0800
Subject: [PATCH] LoongArch: Only allow valid binary op when optimize
conditional move
It is wrong that optimize from `if (cond) dest op= 1 << shift` to
`dest op= (cond ? 1 : 0) << shift` when `dest op 0 != dest`.
Like `and`, `mul` or `div`.
And in this optimization `mul` and `div` is optimized to shift.
gcc/ChangeLog:
* config/loongarch/loongarch.cc
(loongarch_expand_conditional_move): Only allow valid binary
op when optimize conditional move.
gcc/testsuite/ChangeLog:
* gcc.target/loongarch/conditional-move-opt-1.c: Remove mul.
* gcc.target/loongarch/conditional-move-opt-2.c: Remove and.
* gcc.target/loongarch/conditional-move-opt-3.c: New test.
Co-Authored-By: Peng Fan <fanpeng@loongson.cn>
---
gcc/config/loongarch/loongarch.cc | 26 ++++++++++++++++---
.../loongarch/conditional-move-opt-1.c | 4 +--
.../loongarch/conditional-move-opt-2.c | 2 +-
.../loongarch/conditional-move-opt-3.c | 14 ++++++++++
4 files changed, 40 insertions(+), 6 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/loongarch/conditional-move-opt-3.c
diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc
index bdf290654..740c8611a 100644
--- a/gcc/config/loongarch/loongarch.cc
+++ b/gcc/config/loongarch/loongarch.cc
@@ -5533,12 +5533,32 @@ loongarch_expand_conditional_move (rtx *operands)
}
}
+ auto is_binary_op_0_keep_orig = [](enum rtx_code code)
+ {
+ switch (code)
+ {
+ case PLUS:
+ case MINUS:
+ case IOR:
+ case XOR:
+ case ROTATE:
+ case ROTATERT:
+ case ASHIFT:
+ case ASHIFTRT:
+ case LSHIFTRT:
+ return true;
+ default:
+ return false;
+ }
+ };
+
/* Check if the optimization conditions are met. */
if (value_if_true_insn
&& value_if_false_insn
- /* Make sure that value_if_false and var are the same. */
- && BINARY_P (value_if_true_insn_src
- = SET_SRC (single_set (value_if_true_insn)))
+ /* Make sure that the orig value OP 0 keep orig. */
+ && (value_if_true_insn_src
+ = SET_SRC (single_set (value_if_true_insn)))
+ && is_binary_op_0_keep_orig ( GET_CODE (value_if_true_insn_src))
/* Make sure that both value_if_true and value_if_false
has the same var. */
&& rtx_equal_p (XEXP (value_if_true_insn_src, 0),
diff --git a/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-1.c b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-1.c
index ed13471aa..47802aa96 100644
--- a/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-1.c
+++ b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-1.c
@@ -27,7 +27,7 @@ void
test_lt ()
{
if (lm < ln)
- lr *= (1 << 16);
+ lr += (1 << 16);
lr += lm;
}
@@ -35,7 +35,7 @@ void
test_le ()
{
if (lm <= ln)
- lr = lm * ((long)1 << 32);
+ lr = lm + ((long)1 << 32);
else
lr = lm;
lr += lm;
diff --git a/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-2.c b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-2.c
index ac72d4d93..743fd5e67 100644
--- a/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-2.c
+++ b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-2.c
@@ -29,7 +29,7 @@ void
test_lez ()
{
if (lm <= 0)
- lr &= (1 << 16);
+ lr |= (1 << 16);
lr += lm;
}
diff --git a/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-3.c b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-3.c
new file mode 100644
index 000000000..95887980c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/conditional-move-opt-3.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-final { scan-assembler "maskeqz" } } */
+/* { dg-final { scan-assembler "masknez" } } */
+
+extern long lm, ln, lr;
+
+void
+test_and ()
+{
+ if (lm < 0)
+ lr &= (1 << 16);
+ lr += lm;
+}
--
2.51.1
@@ -1,42 +0,0 @@
From 94cf7d2b3514ed3a4401861a519ead450e022afc Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Fri, 26 Jan 2018 20:32:50 +0000
Subject: [PATCH] posix_memalign
---
gcc/config/i386/pmm_malloc.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
index d1d79a32fc9..069c3bb8324 100644
--- a/gcc/config/i386/pmm_malloc.h
+++ b/gcc/config/i386/pmm_malloc.h
@@ -27,12 +27,13 @@
#include <stdlib.h>
/* We can't depend on <stdlib.h> since the prototype of posix_memalign
- may not be visible. */
+ may not be visible and we can't pollute the namespace either. */
#ifndef __cplusplus
-extern int posix_memalign (void **, size_t, size_t);
+extern int _mm_posix_memalign (void **, size_t, size_t)
#else
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
+extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw ()
#endif
+__asm__("posix_memalign");
static __inline void *
_mm_malloc (size_t __size, size_t __alignment)
@@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment)
return malloc (__size);
if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4))
__alignment = sizeof (void *);
- if (posix_memalign (&__ptr, __alignment, __size) == 0)
+ if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0)
return __ptr;
else
return NULL;
--
2.50.1
@@ -1,77 +0,0 @@
From 21b7d08714c4964403848db4144003835ff5245a Mon Sep 17 00:00:00 2001
From: Linsen Zhou <i@lin.moe>
Date: Fri, 17 Oct 2025 11:05:04 +0800
Subject: [PATCH] tree-object-size.cc: Fix assert constant offset in
check_for_plus_in_loops [PR122012]
After commit 51b85dfeb19652bf3e0aaec08828ba7cee1e641c, when the
pointer offset is a variable in the loop, the object size of the
pointer may also need to be reexamined.
Which make gcc_assert in the check_for_plus_in_loops failed.
gcc/ChangeLog:
PR tree-optimization/122012
* tree-object-size.cc (check_for_plus_in_loops): Skip check
for the variable offset
gcc/testsuite/ChangeLog:
PR tree-optimization/122012
* gcc.dg/torture/pr122012.c: New test.
Signed-off-by: Linsen Zhou <i@lin.moe>
(cherry picked from commit 82cefc4898d4ccabe76e28d6626b91ca9e998923)
---
gcc/testsuite/gcc.dg/torture/pr122012.c | 18 ++++++++++++++++++
gcc/tree-object-size.cc | 7 +++----
2 files changed, 21 insertions(+), 4 deletions(-)
create mode 100644 gcc/testsuite/gcc.dg/torture/pr122012.c
diff --git a/gcc/testsuite/gcc.dg/torture/pr122012.c b/gcc/testsuite/gcc.dg/torture/pr122012.c
new file mode 100644
index 00000000000..055915a1e98
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr122012.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+#include <stdlib.h>
+
+void foo();
+
+void test(size_t step) {
+ char *buf = malloc(64);
+ char *p = buf;
+ size_t i;
+
+ for(i = 0; i < 64; ++i) {
+ p += 4;
+ if (__builtin_object_size (p, 2) != 0)
+ foo();
+ p += step;
+ }
+ free(buf);
+}
diff --git a/gcc/tree-object-size.cc b/gcc/tree-object-size.cc
index 2d13ab79a84..76dc2446059 100644
--- a/gcc/tree-object-size.cc
+++ b/gcc/tree-object-size.cc
@@ -2153,12 +2153,11 @@ check_for_plus_in_loops (struct object_size_info *osi, tree var)
&& gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR)
{
tree basevar = gimple_assign_rhs1 (stmt);
- tree cst = gimple_assign_rhs2 (stmt);
-
- gcc_assert (TREE_CODE (cst) == INTEGER_CST);
+ tree offset = gimple_assign_rhs2 (stmt);
/* Skip non-positive offsets. */
- if (integer_zerop (cst) || compare_tree_int (cst, offset_limit) > 0)
+ if (TREE_CODE (offset) != INTEGER_CST
+ || integer_zerop (offset) || compare_tree_int (offset, offset_limit) > 0)
return;
osi->depths[SSA_NAME_VERSION (basevar)] = 1;
--
2.51.0
@@ -1,258 +0,0 @@
From 0d5e04099a3d2609105719f7396a4ff941b873b6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 23 Jan 2025 17:12:51 -0800
Subject: [PATCH] gcc: poison-system-directories
Add /sw/include and /opt/include based on the original
zecke-no-host-includes.patch patch. The original patch checked for
/usr/include, /sw/include and /opt/include and then triggered a failure and
aborted.
Instead, we add the two missing items to the current scan. If the user
wants this to be a failure, they can add "-Werror=poison-system-directories".
Upstream-Status: Inappropriate [OE configuration]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: sunil dora <sunilkumar.dora@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
gcc/common.opt | 4 ++++
gcc/config.in | 10 ++++++++++
gcc/configure | 19 +++++++++++++++++++
gcc/configure.ac | 16 ++++++++++++++++
gcc/doc/invoke.texi | 9 +++++++++
gcc/gcc.cc | 12 ++++++++++--
gcc/incpath.cc | 25 +++++++++++++++++++++++++
7 files changed, 93 insertions(+), 2 deletions(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index e3fa0dacec4..bea1adc0940 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -729,6 +729,10 @@ Wreturn-local-addr
Common Var(warn_return_local_addr) Init(1) Warning
Warn about returning a pointer/reference to a local or temporary variable.
+Wpoison-system-directories
+Common Var(flag_poison_system_directories) Init(1) Warning
+Warn for -I and -L options using system directories if cross compiling
+
Wshadow
Common Var(warn_shadow) Warning
Warn when one variable shadows another. Same as -Wshadow=global.
diff --git a/gcc/config.in b/gcc/config.in
index a79c51adb2b..8a531ed591c 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -249,6 +249,16 @@
#endif
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+#endif
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef POISON_BY_DEFAULT
+#endif
+
+
/* Define if you want all operations on RTL (the basic data structure of the
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
index 16965953f05..0f4a5d52c30 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -1051,6 +1051,7 @@ enable_maintainer_mode
enable_link_mutex
enable_link_serialization
enable_version_specific_runtime_libs
+enable_poison_system_directories
enable_plugin
enable_host_shared
enable_host_pie
@@ -1828,6 +1829,8 @@ Optional Features:
--enable-version-specific-runtime-libs
specify that runtime libraries should be installed
in a compiler-specific directory
+ --enable-poison-system-directories
+ warn for use of native system header directories
--enable-plugin enable plugin support
--enable-host-shared build host code as shared libraries
--enable-host-pie build host code as PIE
@@ -34027,6 +34030,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
fi
+# Check whether --enable-poison-system-directories was given.
+if test "${enable_poison_system_directories+set}" = set; then :
+ enableval=$enable_poison_system_directories;
+else
+ enable_poison_system_directories=no
+fi
+
+if test "x${enable_poison_system_directories}" != "xno"; then
+
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
+if test "$enable_poison_system_directories" = "error"; then
+$as_echo "#define POISON_BY_DEFAULT 1" >>confdefs.h
+fi
+
+fi
+
# Substitute configuration variables
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 9f67e62950a..b0e3615e5aa 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -7502,6 +7502,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
+AC_ARG_ENABLE([poison-system-directories],
+ AS_HELP_STRING([--enable-poison-system-directories],
+ [warn for use of native system header directories (no/yes/error)]),,
+ [enable_poison_system_directories=no])
+AC_MSG_NOTICE([poisoned directories $enable_poison_system_directories])
+if test "x${enable_poison_system_directories}" != "xno"; then
+ AC_MSG_NOTICE([poisoned directories enabled])
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
+ [1],
+ [Define to warn for use of native system header directories])
+ if test $enable_poison_system_directories = "error"; then
+ AC_MSG_NOTICE([poisoned directories are fatal])
+ AC_DEFINE([POISON_BY_DEFAULT], [1], [Define to make poison warnings errors])
+ fi
+fi
+
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 72009c33cd0..29aea724731 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -405,6 +405,7 @@ Objective-C and Objective-C++ Dialects}.
-Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded
-Wparentheses -Wno-pedantic-ms-format
-Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast
+-Wno-poison-system-directories
-Wno-pragmas -Wno-pragma-once-outside-header -Wno-prio-ctor-dtor
-Wno-psabi
-Wredundant-decls -Wrestrict
@@ -10727,6 +10728,14 @@ an error. @option{Wint-to-pointer-cast} is enabled by default.
Suppress warnings from casts from a pointer to an integer type of a
different size.
+@opindex Wno-poison-system-directories
+@item -Wno-poison-system-directories
+Do not warn for @option{-I} or @option{-L} options using system
+directories such as @file{/usr/include} when cross compiling. This
+option is intended for use in chroot environments when such
+directories contain the correct headers and libraries for the target
+system rather than the host.
+
@opindex Winvalid-pch
@opindex Wno-invalid-pch
@item -Winvalid-pch
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 4fd87f2c4a1..79d4920a047 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -909,6 +909,12 @@ proper position among the other output files. */
#define ASM_MAP ""
#endif
+#ifdef POISON_BY_DEFAULT
+#define POISON_IS_ERROR " -Werror=poison-system-directories"
+#else
+#define POISON_IS_ERROR
+#endif
+
/* Assembler options for compressed debug sections. */
#if HAVE_LD_COMPRESS_DEBUG == 0
/* Reject if the linker cannot write compressed debug sections. */
@@ -1166,6 +1172,8 @@ proper position among the other output files. */
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
+ %{Wno-poison-system-directories:--no-poison-system-directories} \
+ %{Werror=poison-system-directories:--error-poison-system-directories} \
%{static|no-pie|static-pie:} %@{L*} %(link_libgcc) " \
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
@@ -1268,7 +1276,7 @@ static const char *cpp_options =
"%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
%{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
%{!fno-working-directory:-fworking-directory}}} %{O*}\
- %{undef} %{save-temps*:-fpch-preprocess}";
+ %{undef} %{save-temps*:-fpch-preprocess}" POISON_IS_ERROR;
/* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al.
@@ -1297,7 +1305,7 @@ static const char *cc1_options =
%{coverage:-fprofile-arcs -ftest-coverage}\
%{fprofile-arcs|fcondition-coverage|fpath-coverage|fprofile-generate*|coverage:\
%{!fprofile-update=single:\
- %{pthread:-fprofile-update=prefer-atomic}}}";
+ %{pthread:-fprofile-update=prefer-atomic}}}" POISON_IS_ERROR;
static const char *asm_options =
"%{-target-help:%:print-asm-header()} "
diff --git a/gcc/incpath.cc b/gcc/incpath.cc
index c1bbfd3872a..2cdbebc4c50 100644
--- a/gcc/incpath.cc
+++ b/gcc/incpath.cc
@@ -26,6 +26,7 @@
#include "intl.h"
#include "incpath.h"
#include "cppdefault.h"
+#include "diagnostic-core.h"
/* Microsoft Windows does not natively support inodes.
VMS has non-numeric inodes. */
@@ -273,6 +274,10 @@ remove_duplicates (cpp_reader *pfile, struct cpp_dir *head,
cur->name, xstrerror (errno));
reason = REASON_NOENT;
}
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ pcur = &cur->next;
+ continue;
+#endif
}
else if (!S_ISDIR (st.st_mode))
cpp_error_with_line (pfile, CPP_DL_WARNING, 0, 0,
@@ -411,6 +416,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
fprintf (stderr, _("End of #embed search list.\n"));
}
}
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ if (flag_poison_system_directories)
+ {
+ struct cpp_dir *p;
+
+ for (p = heads[INC_QUOTE]; p; p = p->next)
+ {
+ if ((!strncmp (p->name, "/usr/include", 12))
+ || (!strncmp (p->name, "/usr/local/include", 18))
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
+ || (!strncmp (p->name, "/sw/include", 11))
+ || (!strncmp (p->name, "/opt/include", 12)))
+ warning (OPT_Wpoison_system_directories,
+ "include location \"%s\" is unsafe for "
+ "cross-compilation",
+ p->name);
+ }
+ }
+#endif
}
/* Use given -I paths for #include "..." but not #include <...>, and
--
2.50.1
@@ -1,44 +0,0 @@
From 90e8697dd88fd99ce2cf8739e95494853005377e Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:45:49 +0000
Subject: [PATCH] specs: turn on -Wl,-z,now by default
Previously, we also used to turn on -z relro here, but we now build
binutils with --enable-relro, which is functionally equivalent.
Binutils does not appear to have a similar option for enabling -z
now by default.
---
gcc/doc/invoke.texi | 3 +++
gcc/gcc.cc | 1 +
2 files changed, 4 insertions(+)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 29aea724731..6fb3ab70cc7 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -19477,6 +19477,9 @@ For example, @option{-Wl,-Map,output.map} passes @option{-Map output.map} to the
linker. When using the GNU linker, you can also get the same effect with
@option{-Wl,-Map=output.map}.
+NOTE: In Alpine Linux, for LDFLAGS, the option
+@option{-Wl,-z,now} is used. To disable, use @option{-Wl,-z,nonow}.
+
@opindex u
@item -u @var{symbol}
Pretend the symbol @var{symbol} is undefined, to force linking of
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 79d4920a047..74a356fdf5e 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1170,6 +1170,7 @@ proper position among the other output files. */
"%{flto|flto=*:%<fcompare-debug*} \
%{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC \
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
+ "-z now " \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
%{Wno-poison-system-directories:--no-poison-system-directories} \
--
2.50.1
@@ -1,46 +0,0 @@
From 17c9cf9272077bc7ac784daffd4c68ba1ce67a0d Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:46:22 +0000
Subject: [PATCH] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC,
ObjC++, if the optimization level is > 0
---
gcc/c-family/c-cppbuiltin.cc | 4 ++++
gcc/doc/invoke.texi | 6 ++++++
2 files changed, 10 insertions(+)
diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
index 4589ee4a3a6..9edf095384c 100644
--- a/gcc/c-family/c-cppbuiltin.cc
+++ b/gcc/c-family/c-cppbuiltin.cc
@@ -1581,6 +1581,10 @@ c_cpp_builtins (cpp_reader *pfile)
builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);
+ /* Fortify Source enabled by default for optimization levels > 0 */
+ if (optimize)
+ builtin_define_with_int_value ("_FORTIFY_SOURCE", 2);
+
/* Misc. */
if (flag_gnu89_inline)
cpp_define (pfile, "__GNUC_GNU_INLINE__");
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 6fb3ab70cc7..799ce073dbf 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -12840,6 +12840,12 @@ also turns on the following optimization flags:
Please note the warning under @option{-fgcse} about
invoking @option{-O2} on programs that use computed gotos.
+NOTE: In Alpine Linux, @option{-D_FORTIFY_SOURCE=2} is
+set by default, and is activated when @option{-O} is set to 2 or higher.
+This enables additional compile-time and run-time checks for several libc
+functions. To disable, specify either @option{-U_FORTIFY_SOURCE} or
+@option{-D_FORTIFY_SOURCE=0}.
+
@opindex O3
@item -O3
Optimize yet more. @option{-O3} turns on all optimizations specified
--
2.50.1
@@ -1,286 +0,0 @@
From 95d8fac6247b2cba1142261cc95c21063539112a Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:46:56 +0000
Subject: [PATCH] On linux targets pass --as-needed by default to the linker,
but always link the sanitizer libraries with --no-as-needed.
---
gcc/config/aarch64/aarch64-linux.h | 1 +
gcc/config/alpha/linux-elf.h | 2 +-
gcc/config/arm/linux-elf.h | 1 +
gcc/config/gnu-user.h | 6 +++---
gcc/config/i386/gnu-user.h | 2 +-
gcc/config/i386/gnu-user64.h | 1 +
gcc/config/ia64/linux.h | 2 +-
gcc/config/loongarch/gnu-user.h | 2 +-
gcc/config/mips/gnu-user.h | 1 +
gcc/config/riscv/linux.h | 1 +
gcc/config/rs6000/linux64.h | 4 ++--
gcc/config/rs6000/sysv4.h | 2 +-
gcc/config/s390/linux.h | 2 +-
gcc/config/sparc/linux.h | 2 +-
gcc/gcc.cc | 28 ++++++++++++++++++++--------
15 files changed, 37 insertions(+), 20 deletions(-)
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
index 116bb4e69f3..daf99f8dce9 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -39,6 +39,7 @@
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
#define LINUX_TARGET_LINK_SPEC "%{h*} \
+ --as-needed \
%{static:-Bstatic} \
%{shared:-shared} \
%{symbolic:-Bsymbolic} \
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
index 3fd3b831166..0b4c2dccebe 100644
--- a/gcc/config/alpha/linux-elf.h
+++ b/gcc/config/alpha/linux-elf.h
@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. If not see
#define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER
-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
+#define LINK_SPEC "-m elf64alpha --as-needed %{G*} %{relax:-relax} \
%{O*:-O3} %{!O*:-O1} \
%{shared:-shared} \
%{!shared: \
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
index d4d389e2aa8..adccc0b11c2 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -70,6 +70,7 @@
%{rdynamic:-export-dynamic} \
%{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
-X \
+ --as-needed \
%{mbig-endian:-EB} %{mlittle-endian:-EL}" \
SUBTARGET_EXTRA_LINK_SPEC
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index 4c4e31efa39..3c17ac6eade 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \
"%{static-libasan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBHWASAN_EARLY_SPEC
#define LIBHWASAN_EARLY_SPEC "%{!shared:libhwasan_preinit%O%s} " \
"%{static-libhwasan:%{!shared:" \
@@ -146,12 +146,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \
"%{static-libtsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBLSAN_EARLY_SPEC
#define LIBLSAN_EARLY_SPEC "%{!shared:liblsan_preinit%O%s} " \
"%{static-liblsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#endif
#undef TARGET_F951_OPTIONS
diff --git a/gcc/config/i386/gnu-user.h b/gcc/config/i386/gnu-user.h
index 7abfda53049..ceb8f855b7d 100644
--- a/gcc/config/i386/gnu-user.h
+++ b/gcc/config/i386/gnu-user.h
@@ -68,7 +68,7 @@ along with GCC; see the file COPYING3. If not see
{ "link_emulation", GNU_USER_LINK_EMULATION },\
{ "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
+#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --as-needed %{shared:-shared} \
%{!shared: \
%{!static: \
%{!static-pie: \
diff --git a/gcc/config/i386/gnu-user64.h b/gcc/config/i386/gnu-user64.h
index abe714711bf..3ca128a79f5 100644
--- a/gcc/config/i386/gnu-user64.h
+++ b/gcc/config/i386/gnu-user64.h
@@ -56,6 +56,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
"%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \
%{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \
%{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \
+ --as-needed \
%{shared:-shared} \
%{!shared: \
%{!static: \
diff --git a/gcc/config/ia64/linux.h b/gcc/config/ia64/linux.h
index a2494c214c4..e1a5d530cdf 100644
--- a/gcc/config/ia64/linux.h
+++ b/gcc/config/ia64/linux.h
@@ -58,7 +58,7 @@ do { \
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
#undef LINK_SPEC
-#define LINK_SPEC "\
+#define LINK_SPEC " --as-needed \
%{shared:-shared} \
%{!shared: \
%{!static: \
diff --git a/gcc/config/loongarch/gnu-user.h b/gcc/config/loongarch/gnu-user.h
index fbc75a90ad5..adbc4b7733f 100644
--- a/gcc/config/loongarch/gnu-user.h
+++ b/gcc/config/loongarch/gnu-user.h
@@ -44,7 +44,7 @@ along with GCC; see the file COPYING3. If not see
#undef GNU_USER_TARGET_LINK_SPEC
#define GNU_USER_TARGET_LINK_SPEC \
- "%{G*} %{shared} -m " GNU_USER_LINK_EMULATION \
+ "%{G*} %{shared} --as-needed -m " GNU_USER_LINK_EMULATION \
"%{!shared: %{static} " \
"%{!static: %{!static-pie: %{rdynamic:-export-dynamic} " \
"-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} " \
diff --git a/gcc/config/mips/gnu-user.h b/gcc/config/mips/gnu-user.h
index 5a82508c113..6eee7cdc603 100644
--- a/gcc/config/mips/gnu-user.h
+++ b/gcc/config/mips/gnu-user.h
@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. If not see
#undef GNU_USER_TARGET_LINK_SPEC
#define GNU_USER_TARGET_LINK_SPEC "\
%{G*} %{EB} %{EL} %{mips*} %{shared} \
+ -as-needed \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
index 9060c940a44..282c77b6a7b 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
"%{mabi=ilp32:_ilp32}"
#define LINK_SPEC "\
+-as-needed \
-melf" XLEN_SPEC DEFAULT_ENDIAN_SPEC "riscv" LD_EMUL_SUFFIX " \
%{mno-relax:--no-relax} \
-X \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 0316d8cb65d..139e1b6796c 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -378,13 +378,13 @@ extern int dot_symbols;
" -m elf64ppc")
#endif
-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --as-needed %{!shared: %{!static: \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}} \
%(link_os_extra_spec32)"
-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --as-needed %{!shared: %{!static: \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index afb5c6ad867..b64638fb25b 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -781,7 +781,7 @@ GNU_USER_TARGET_CC1_SPEC
#define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
#endif
-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --as-needed %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
index 2c3bca5dfcb..b90661247a4 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -82,7 +82,7 @@ along with GCC; see the file COPYING3. If not see
#undef LINK_SPEC
#define LINK_SPEC \
- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --as-needed \
%{shared:-shared} \
%{!shared: \
%{static:-static} \
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
index 6d928846895..3cc05bb7240 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -81,7 +81,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
#undef LINK_SPEC
-#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
+#define LINK_SPEC "-m elf32_sparc --as-needed %{shared:-shared} \
%{!mno-relax:%{!r:-relax}} \
%{!shared: \
%{!static: \
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 74a356fdf5e..fc9c7d15b04 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -774,8 +774,11 @@ proper position among the other output files. */
#ifdef LIBASAN_EARLY_SPEC
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \
- "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
+ " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lasan " \
+ " %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -810,8 +813,11 @@ proper position among the other output files. */
#ifdef LIBTSAN_EARLY_SPEC
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \
- "} -ltsan %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
+ " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -ltsan " \
+ " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -828,8 +834,11 @@ proper position among the other output files. */
#ifdef LIBLSAN_EARLY_SPEC
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION \
- "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
+ " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -llsan " \
+ " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -844,8 +853,11 @@ proper position among the other output files. */
#define STATIC_LIBUBSAN_LIBS \
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
-#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \
- "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
+ " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lubsan " \
+ " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
--
2.50.1
@@ -1,34 +0,0 @@
From 58a94690d4dd7b34543d9d154abc96d2d90d3b32 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:47:43 +0000
Subject: [PATCH] Enable -Wformat and -Wformat-security by default.
---
gcc/c-family/c.opt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 75b6531860e..78830ce4b42 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -805,7 +805,7 @@ Warn about function calls with format strings that write past the end
of the destination region.
Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
Warn about possible security problems with format functions.
Wformat-signedness
@@ -830,7 +830,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++
Warn about zero-length formats.
Wformat=
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
Warn about printf/scanf/strftime/strfmon format string anomalies.
Wframe-address
--
2.50.1
@@ -1,25 +0,0 @@
From b2a755b671d88c34402290d7d769232e01aed350 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Fri, 25 Jul 2025 01:44:20 -0700
Subject: [PATCH] Enable -Wtrampolines by default.
---
gcc/common.opt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index bea1adc0940..e65a575d9f8 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -829,7 +829,7 @@ Common Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wa
Warn if a comparison always evaluates to true or false.
Wtrampolines
-Common Var(warn_trampolines) Warning
+Common Var(warn_trampolines) Init(1) Warning
Warn whenever a trampoline is generated.
Wtrivial-auto-var-init
--
2.50.1
@@ -1,39 +0,0 @@
From c355364231395090e7223ec00d8a16065903c2c5 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Fri, 25 Jul 2025 01:49:03 -0700
Subject: [PATCH] gcc: disable SSP on -ffreestanding, -nostdlib and
-nodefaultlibs
---
gcc/gcc.cc | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index fc9c7d15b04..7b0d3d2743b 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1009,6 +1009,12 @@ proper position among the other output files. */
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
+#ifdef ENABLE_DEFAULT_SSP
+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
+#else
+#define NO_SSP_SPEC ""
+#endif
+
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
@@ -1314,7 +1320,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
%{fprofile-arcs|fcondition-coverage|fpath-coverage|fprofile-generate*|coverage:\
%{!fprofile-update=single:\
--
2.50.1
@@ -1,25 +0,0 @@
From 5f09842c19d6db976724cd117190a8a6951acf9b Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@ariadne.space>
Date: Fri, 25 Jul 2025 01:50:42 -0700
Subject: [PATCH] gcc: params: set default ssp-buffer-size to 4
---
gcc/params.opt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/params.opt b/gcc/params.opt
index 64e453d29b7..bba3fd574f2 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -1064,7 +1064,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
The maximum number of SSA_NAME assignments to follow in determining a value.
-param=ssp-buffer-size=
-Common Joined UInteger Var(param_ssp_buffer_size) Init(8) IntegerRange(1, 65536) Param Optimization
+Common Joined UInteger Var(param_ssp_buffer_size) Init(4) IntegerRange(1, 65536) Param Optimization
The lower bound for a buffer to be considered for stack smashing protection.
-param=stack-clash-protection-guard-size=
--
2.50.1
@@ -1,54 +0,0 @@
From ee0615536ae0d255f59070b904aa35d6de8fce49 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:50:33 +0000
Subject: [PATCH] Ensure that msgfmt doesn't encounter problems during gcc
bootstrapping.
Solves error messages like the following:
msgfmt: /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/./gcc/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libstdc++.so.6)
The libgcc_s.so used during build doesn't satisfy the needs of the
libstdc++.so that msgfmt is linked against. On the other hand, msgfmt
is used as a stand-alone application here, and what library it uses
behind the scenes is of no concern to the gcc build process.
Therefore, simply invoking it "as usual", i.e. without any special
library path, will make it work as expected here.
2011-09-19 Martin von Gagern
References:
https://bugs.gentoo.org/372377
https://bugs.gentoo.org/295480
---
libstdc++-v3/po/Makefile.am | 1 +
libstdc++-v3/po/Makefile.in | 1 +
2 files changed, 2 insertions(+)
diff --git a/libstdc++-v3/po/Makefile.am b/libstdc++-v3/po/Makefile.am
index 7f84a99533e..a4c6284f788 100644
--- a/libstdc++-v3/po/Makefile.am
+++ b/libstdc++-v3/po/Makefile.am
@@ -38,6 +38,7 @@ MSGFMT = msgfmt
EXTRA_DIST = string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN)
.po.mo:
+ env --unset=LD_LIBRARY_PATH \
$(MSGFMT) -o $@ $<
all-local: all-local-$(USE_NLS)
diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
index 8e93445acd2..d6ff06e5ddb 100644
--- a/libstdc++-v3/po/Makefile.in
+++ b/libstdc++-v3/po/Makefile.in
@@ -561,6 +561,7 @@ uninstall-am:
.po.mo:
+ env --unset=LD_LIBRARY_PATH \
$(MSGFMT) -o $@ $<
all-local: all-local-$(USE_NLS)
--
2.50.1
@@ -1,28 +0,0 @@
From 62966418472466142a9962892177f4b1f9f56944 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:52:07 +0000
Subject: [PATCH] Don't declare asprintf if defined as a macro.
---
include/libiberty.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/libiberty.h b/include/libiberty.h
index d4e8791b14b..c074980ed80 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -678,8 +678,11 @@ extern void *bsearch_r (const void *, const void *,
/* Like sprintf but provides a pointer to malloc'd storage, which must
be freed by the caller. */
+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */
+#ifndef asprintf
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
#endif
+#endif
/* Like asprintf but allocates memory without fail. This works like
xmalloc. */
--
2.50.1
@@ -1,24 +0,0 @@
From 0351f4f3dd00bdece780ce5e24d972e97ca1b7ed Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:53:00 +0000
Subject: [PATCH] libiberty: copy PIC objects during build process
---
libiberty/Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index ce54d88278d..10c212a1ad3 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -266,6 +266,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
$(AR) $(AR_FLAGS) $(TARGETLIB) \
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
$(RANLIB) $(TARGETLIB); \
+ cp $(TARGETLIB) ../ ; \
cd ..; \
else true; fi
--
2.50.1
-57
View File
@@ -1,57 +0,0 @@
From bd7e32d5405b6b4f3994a212a77ff2cd33134c74 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 24 Oct 2015 20:09:53 +0000
Subject: [PATCH] libgcc_s
---
gcc/config/i386/i386-expand.cc | 4 ++--
libgcc/config/i386/cpuinfo.c | 6 +++---
libgcc/config/i386/t-linux | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index cdfd94d3c73..a3a6c988833 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -13643,10 +13643,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
{
case IX86_BUILTIN_CPU_INIT:
{
- /* Make it call __cpu_indicator_init in libgcc. */
+ /* Make it call __cpu_indicator_init in libgcc.a. */
tree call_expr, fndecl, type;
type = build_function_type_list (integer_type_node, NULL_TREE);
- fndecl = build_fn_decl ("__cpu_indicator_init", type);
+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
call_expr = build_call_expr (fndecl, 0);
return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
}
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index 2484dc839bf..e980030ef23 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -63,7 +63,7 @@ __cpu_indicator_init (void)
__cpu_features2);
}
-#if defined SHARED && defined USE_ELF_SYMVER
-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0");
-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0");
+#ifndef SHARED
+int __cpu_indicator_init_local (void)
+ __attribute__ ((weak, alias ("__cpu_indicator_init")));
#endif
diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
index 8506a635790..564296f788e 100644
--- a/libgcc/config/i386/t-linux
+++ b/libgcc/config/i386/t-linux
@@ -3,5 +3,5 @@
# t-slibgcc-elf-ver and t-linux
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS)
+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
--
2.50.1
-85
View File
@@ -1,85 +0,0 @@
From c191dc86f4f7340542066f4156aa57be9cfbf876 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 7 Nov 2015 02:08:05 +0000
Subject: [PATCH] nopie
---
gcc/configure | 25 +++++++++++++++++++++++++
gcc/configure.ac | 11 +++++++++++
2 files changed, 36 insertions(+)
diff --git a/gcc/configure b/gcc/configure
index 0f4a5d52c30..343563c8948 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -34586,6 +34586,29 @@ rm -f core conftest.err conftest.$ac_objext \
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_no_pie" >&5
$as_echo "$gcc_cv_no_pie" >&6; }
+# Check if -nopie works.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -nopie option" >&5
+$as_echo_n "checking for -nopie option... " >&6; }
+if ${gcc_cv_nopie+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -nopie"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int main(void) {return 0;}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ gcc_cv_nopie=yes
+else
+ gcc_cv_nopie=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$saved_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_nopie" >&5
+$as_echo "$gcc_cv_nopie" >&6; }
if test x$enable_host_shared = xyes; then
PICFLAG=-fPIC
@@ -34603,6 +34626,8 @@ if test x$enable_host_pie = xyes; then
LD_PICFLAG=-pie
elif test x$gcc_cv_no_pie = xyes; then
LD_PICFLAG=-no-pie
+elif test x$gcc_cv_nopie = xyes; then
+ LD_PICFLAG=-nopie
else
LD_PICFLAG=
fi
diff --git a/gcc/configure.ac b/gcc/configure.ac
index b0e3615e5aa..b3948469d17 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -7802,6 +7802,15 @@ AC_CACHE_CHECK([for -no-pie option],
[gcc_cv_no_pie=yes],
[gcc_cv_no_pie=no])
LDFLAGS="$saved_LDFLAGS"])
+# Check if -nopie works.
+AC_CACHE_CHECK([for -nopie option],
+ [gcc_cv_nopie],
+ [saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -nopie"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([int main(void) {return 0;}])],
+ [gcc_cv_nopie=yes],
+ [gcc_cv_nopie=no])
+ LDFLAGS="$saved_LDFLAGS"])
if test x$enable_host_shared = xyes; then
PICFLAG=-fPIC
@@ -7819,6 +7828,8 @@ if test x$enable_host_pie = xyes; then
LD_PICFLAG=-pie
elif test x$gcc_cv_no_pie = xyes; then
LD_PICFLAG=-no-pie
+elif test x$gcc_cv_nopie = xyes; then
+ LD_PICFLAG=-nopie
else
LD_PICFLAG=
fi
--
2.50.1
@@ -1,42 +0,0 @@
From f1d6c0950e0f12fb8cf2429da570f478a1369286 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:59:16 +0000
Subject: [PATCH] ada: fix shared linking
---
gcc/ada/link.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/gcc/ada/link.c b/gcc/ada/link.c
index 9e3385ca94f..2c0cca6e480 100644
--- a/gcc/ada/link.c
+++ b/gcc/ada/link.c
@@ -107,9 +107,9 @@ const char *__gnat_default_libgcc_subdir = "lib";
|| defined (__NetBSD__) || defined (__OpenBSD__) \
|| defined (__QNX__)
const char *__gnat_object_file_option = "-Wl,@";
-const char *__gnat_run_path_option = "-Wl,-rpath,";
-char __gnat_shared_libgnat_default = STATIC;
-char __gnat_shared_libgcc_default = STATIC;
+const char *__gnat_run_path_option = "";
+char __gnat_shared_libgnat_default = SHARED;
+char __gnat_shared_libgcc_default = SHARED;
int __gnat_link_max = 8192;
unsigned char __gnat_objlist_file_supported = 1;
const char *__gnat_object_library_extension = ".a";
@@ -129,9 +129,9 @@ const char *__gnat_default_libgcc_subdir = "lib";
#elif defined (__linux__) || defined (__GLIBC__)
const char *__gnat_object_file_option = "-Wl,@";
-const char *__gnat_run_path_option = "-Wl,-rpath,";
-char __gnat_shared_libgnat_default = STATIC;
-char __gnat_shared_libgcc_default = STATIC;
+const char *__gnat_run_path_option = "";
+char __gnat_shared_libgnat_default = SHARED;
+char __gnat_shared_libgcc_default = SHARED;
int __gnat_link_max = 8192;
unsigned char __gnat_objlist_file_supported = 1;
const char *__gnat_object_library_extension = ".a";
--
2.50.1
@@ -1,24 +0,0 @@
From 8773e0cf880da9fe80de7f8a662359664bb0b234 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:59:43 +0000
Subject: [PATCH] build: fix CXXFLAGS_FOR_BUILD passing
---
Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.in b/Makefile.in
index b1ed67d3d4f..1e039c20550 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -179,6 +179,7 @@ BUILD_EXPORTS = \
# built for the build system to override those in BASE_FLAGS_TO_PASS.
EXTRA_BUILD_FLAGS = \
CFLAGS="$(CFLAGS_FOR_BUILD)" \
+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
LDFLAGS="$(LDFLAGS_FOR_BUILD)"
# This is the list of directories to built for the host system.
--
2.50.1
@@ -1,25 +0,0 @@
From 625b8095796f24389fdda5bb5bc6ff9fbb365813 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:01:06 +0000
Subject: [PATCH] add fortify-headers paths
---
gcc/config/linux.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
index d6280a4d4dd..ba69fb9fad7 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -159,6 +159,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#ifdef NATIVE_SYSTEM_HEADER_DIR
#define INCLUDE_DEFAULTS_MUSL_NATIVE \
+ { NATIVE_SYSTEM_HEADER_DIR "/fortify", 0, 0, 0, 1, 2 }, \
+ { NATIVE_SYSTEM_HEADER_DIR "/fortify", 0, 0, 0, 1, 0 }, \
{ NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \
{ NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
#else
--
2.50.1
@@ -1,31 +0,0 @@
From c557286adc46536fe033df400c50a880b672cfd6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Fri, 21 Aug 2020 07:03:00 +0000
Subject: [PATCH] Alpine musl package provides libssp_nonshared.a. We link to
it unconditionally, as otherwise we get link failures if some objects are
-fstack-protector built and final link happens with -fno-stack-protector.
This seems to be the common case when bootstrapping gcc, the piepatches do
not seem to fully fix the crosstoolchain and bootstrap sequence wrt.
stack-protector flag usage.
---
gcc/gcc.cc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 7b0d3d2743b..e46e976a2e8 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1017,8 +1017,7 @@ proper position among the other output files. */
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
-#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
- "|fstack-protector-strong|fstack-protector-explicit:}"
+#define LINK_SSP_SPEC "-lssp_nonshared"
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
--
2.50.1
@@ -1,69 +0,0 @@
From d698fead9d201ef032e2e978898864335a9ab513 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:03:42 +0000
Subject: [PATCH] DP: Use --push-state/--pop-state for gold as well when
linking libtsan.
---
gcc/gcc.cc | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index e46e976a2e8..607c8ca1d42 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -775,10 +775,10 @@ proper position among the other output files. */
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
- " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libasan:--push-state --no-as-needed}" \
" -lasan " \
" %{static-libasan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libasan:--pop-state}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -814,10 +814,10 @@ proper position among the other output files. */
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
- " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libtsan:--push-state --no-as-needed}" \
" -ltsan " \
" %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libtsan:--pop-state}" \
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -835,10 +835,10 @@ proper position among the other output files. */
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
- " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-liblsan:--push-state --no-as-needed}" \
" -llsan " \
" %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-liblsan:--pop-state}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -854,10 +854,10 @@ proper position among the other output files. */
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
- " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libubsan:--push-state --no-as-needed}" \
" -lubsan " \
" %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libubsan:--pop-state}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
--
2.50.1
@@ -1,26 +0,0 @@
From 9cf1916bd52d61ea0fd7a8b6acebb1dc4a1f2488 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:12:55 +0000
Subject: [PATCH] aarch64: disable multilib support
multilib is unsupported on Alpine GCC
---
gcc/config/aarch64/t-aarch64-linux | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
index 70e36b3299e..e00c3becd3f 100644
--- a/gcc/config/aarch64/t-aarch64-linux
+++ b/gcc/config/aarch64/t-aarch64-linux
@@ -22,7 +22,7 @@ LIB1ASMSRC = aarch64/lib1funcs.asm
LIB1ASMFUNCS = _aarch64_sync_cache_range
AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
+MULTILIB_OSDIRNAMES = mabi.lp64=../lib
MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
--
2.50.1
@@ -1,25 +0,0 @@
From dc07fb7df8d4f997877d8f98ea9ef8292f738ed3 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:13:59 +0000
Subject: [PATCH] s390x: disable multilib support
multilib is not supported on Alpine GCC at present
---
gcc/config/s390/t-linux64 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/config/s390/t-linux64 b/gcc/config/s390/t-linux64
index cc6ab367072..7f498ee1cdc 100644
--- a/gcc/config/s390/t-linux64
+++ b/gcc/config/s390/t-linux64
@@ -7,5 +7,5 @@
MULTILIB_OPTIONS = m64/m31
MULTILIB_DIRNAMES = 64 32
-MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu)
-MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu)
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
--
2.50.1
@@ -1,81 +0,0 @@
From 496067ded4a3698468412e240b899755d92b314c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:14:33 +0000
Subject: [PATCH] ppc64[le]: disable multilib support
multilib is not presently supported on Alpine GCC
---
gcc/config/rs6000/t-linux | 6 ++++--
gcc/config/rs6000/t-linux64 | 4 ++--
gcc/config/rs6000/t-linux64bele | 4 ++--
gcc/config/rs6000/t-linux64lebe | 4 ++--
4 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/gcc/config/rs6000/t-linux b/gcc/config/rs6000/t-linux
index 4e371255533..128c75c7d39 100644
--- a/gcc/config/rs6000/t-linux
+++ b/gcc/config/rs6000/t-linux
@@ -2,7 +2,8 @@
# or soft-float.
ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float)))
ifneq (,$(findstring powerpc64,$(target)))
-MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
else
MULTIARCH_DIRNAME := $(call if_multiarch,powerpc-linux-gnu)
endif
@@ -10,7 +11,8 @@ ifneq (,$(findstring powerpcle,$(target)))
MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME))
endif
ifneq (,$(findstring powerpc64le,$(target)))
-MULTILIB_OSDIRNAMES := $(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
endif
endif
diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
index f56b47c268e..c5f757a6284 100644
--- a/gcc/config/rs6000/t-linux64
+++ b/gcc/config/rs6000/t-linux64
@@ -28,8 +28,8 @@
MULTILIB_OPTIONS := m64/m32
MULTILIB_DIRNAMES := 64 32
MULTILIB_EXTRA_OPTS :=
-MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.cc
$(COMPILE) $<
diff --git a/gcc/config/rs6000/t-linux64bele b/gcc/config/rs6000/t-linux64bele
index 97c1ee6fb4d..08d72639cb6 100644
--- a/gcc/config/rs6000/t-linux64bele
+++ b/gcc/config/rs6000/t-linux64bele
@@ -2,6 +2,6 @@
MULTILIB_OPTIONS += mlittle
MULTILIB_DIRNAMES += le
-MULTILIB_OSDIRNAMES += $(subst =,.mlittle=,$(subst lible32,lib32le,$(subst lible64,lib64le,$(subst lib,lible,$(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))))))
-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mlittle%,$(MULTILIB_OSDIRNAMES)))
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
diff --git a/gcc/config/rs6000/t-linux64lebe b/gcc/config/rs6000/t-linux64lebe
index 2e63bdb9fc9..c6e1c5db65d 100644
--- a/gcc/config/rs6000/t-linux64lebe
+++ b/gcc/config/rs6000/t-linux64lebe
@@ -2,6 +2,6 @@
MULTILIB_OPTIONS += mbig
MULTILIB_DIRNAMES += be
-MULTILIB_OSDIRNAMES += $(subst =,.mbig=,$(subst libbe32,lib32be,$(subst libbe64,lib64be,$(subst lib,libbe,$(subst le-linux,-linux,$(MULTILIB_OSDIRNAMES))))))
-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mbig%,$(MULTILIB_OSDIRNAMES)))
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
--
2.50.1
@@ -1,26 +0,0 @@
From 3d0f96f3f53a7ff81532f077e9db69d7318db796 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:14:54 +0000
Subject: [PATCH] x86_64: disable multilib support
multilib is not presently supported on Alpine GCC
---
gcc/config/i386/t-linux64 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
index 64a4a20e64f..9a8eb8dd8d1 100644
--- a/gcc/config/i386/t-linux64
+++ b/gcc/config/i386/t-linux64
@@ -33,6 +33,6 @@
comma=,
MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
--
2.50.1
@@ -1,78 +0,0 @@
From b1ab523d6fa44aae8f3ec5f787a8f86f8686bf64 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 3 Jan 2022 07:14:48 +0100
Subject: [PATCH] riscv: disable multilib support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From the musl wiki [1]:
musl does not support sharing an include directory between archs
[…], and thus is not compatible with GCC-style multilib. It is
recommended that distributions build GCC with multilib disabled,
and use library directories named lib, not lib64 or lib32.
For this reason, we patch existing GCC configuration files (gcc/config)
to pin MULTILIB_OSDIRNAMES to lib, there is also a corresponding GCC
upstream bug about this issue [2]. Avoiding the use of lib64 and lib32
directories is a bit more difficult on the RISC-V architecture. This is
due to the fact that the default RISC-V configuration does not only use
the lib64 and lib32 directories but also subdirectories within these
directories for different RISC-V ABIs (e.g. lp64d, lp64, …) [3].
This patch aligns the RISC-V configuration with other architectures by
pinning MULTILIB_OSDIRNAMES to lib for rv64gc (our default RISC-V
-march). Furthermore, this patch removes the ABI-specific startfile
prefix spec. Since both of these impact the default LIBRARY_PATH [4]
this patch thereby aligns the default RISC-V LIBRARY_PATH with that from
other Alpine architectures and thereby fixes #13369 [5].
Incidentally, this also fixes gccgo on riscv64, as without this patch
gccgo is otherwise not able to find the *.gox files for the Go standard
library.
[1]: https://wiki.musl-libc.org/guidelines-for-distributions.html#Multilib/multi_arch
[2]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90077
[3]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103889#c14
[4]: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/gcc.c;h=d4c8746b0aa322286decf92aa72a12f0a393b655;hb=HEAD#l9122
[5]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13369
---
gcc/config/riscv/linux.h | 8 --------
gcc/config/riscv/t-linux | 7 +++++--
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
index 282c77b6a7b..07adae3d59c 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -61,11 +61,3 @@ along with GCC; see the file COPYING3. If not see
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
%{static:-static} %{static-pie:-static -pie --no-dynamic-linker -z text}}"
-
-#define STARTFILE_PREFIX_SPEC \
- "/lib" XLEN_SPEC "/" ABI_SPEC "/ " \
- "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ " \
- "/lib/ " \
- "/usr/lib/ "
-
-#define RISCV_USE_CUSTOMISED_MULTI_LIB select_by_abi
diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux
index a6f64f88d25..f88776ec520 100644
--- a/gcc/config/riscv/t-linux
+++ b/gcc/config/riscv/t-linux
@@ -1,5 +1,8 @@
-# Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/
-MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES)))
+MULTILIB_OPTIONS := march=rv64gc
+MULTILIB_DIRNAMES := rv64gc
+
+MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib,$(MULTILIB_DIRNAMES)))
MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
+MULTILIB_MATCHES := march?rv64gc=march?rv64imafdc
MULTIARCH_DIRNAME := $(call if_multiarch,$(firstword $(subst -, ,$(target)))-linux-gnu)
--
2.50.1
Loaded 100 of 5705 files, more files were not shown because too many files have changed in this diff. Show more