Compare commits

...
Author SHA1 Message Date
Clayton Craft 789ab27680 systemd/networkmanager: don't build docs
This doens't work with crossdirect since apparently it calls the
compiler during package() stage:

ERROR: Error in gtkdoc helper script:

ERROR: ['/usr/bin/gtkdoc-scangobj', .... failed with status 1
============================================================================================
ERROR: crossdirect was called with: LD_PRELOAD=libfakeroot.so
2024-11-12 09:30:01 -08:00
jane400 275acc4177 systemd/linux-pam-pmos: rename from linux-pam (MR 5769)
This should ensure that postmarketos-base-systemd installs our linux-pam
package, not the one from alpine. (The old way to pin our package was
based on fragile version pinning, as our pam wasn't bumped to 9999, but
had the same version as aports).

fixes #3170
[ci:skip-build]: already built successfully in CI
2024-11-11 18:52:04 -08:00
Clayton Craft 1c2380dee3 systemd/networkmanager: upgrade to 1.50 and rebase APKBUILD (MR 5761)
APKBUILD was rebased onto the latest verstion in Alpine aports (1.50.0-r3)

[ci:skip-build]: bug in CI prevents it from completing, but builds fine locally
2024-11-11 18:40:04 -08:00
jane400 d88fdd5b49 systemd/{gdm, gnome-*, mutter}: rebase apkbuild on upstream/aports (MR 5770)
[ci:skip-build]: already built successfully in CI
2024-11-11 18:35:50 -08:00
jane400 9f21f8ffe2 systemd/xorg-server: pull upgrade from upstream/aports (MR 5777)
lto is disabled because of CI

[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:34 -08:00
jane400 4ccde898d4 systemd/pipewire: pull upgrade from upstream/aports (MR 5776)
lto makes cross-compiling CI unhappy, disabling it makes CI happy again.

[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:34 -08:00
Clayton Craft 04fc1c811c extra-repos/systemd: fix deinstall macro (MR 5746)
This wasn't actually working because it was using an unset var when
calling 'systemctl disable'.

[ci:skip-build]: CI cannot complete build testing because of infra
issue, but that's fine because this change doens't actually require
compiling systemd.
2024-11-11 18:12:34 -08:00
Clayton Craft c8da31181f systemd/plasma-workspace: rebase apkbuild on upstream/aports (MR 5762)
New dependencies were not included so this failed to build properly. The
other changes were pulled from the version in aports, to make rebasing
in the future easier.

[ci:skip-build]: CI cannot complete build testing because of infra
issues downloading from download.kde.org
2024-11-11 18:12:34 -08:00
fossdd 5d5b782f04 systemd/systemd-services: manually issue chvt on start of phosh (MR 5757)
libseat 0.9.0 no longer performs an automatic VT switch when taking
control of a seat to allow sessions to be started in the background. As
consequence, one must manually switch if one wants a background session
to be immediately activated.

Issue a chvt on ExecStartPost, when the service is deemed running.

Upstream: https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/1566
[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:33 -08:00
Clayton Craft d8ce7f45cd systemd/postmarketos-base-systemd: disable journald audit feature (MR 5754)
When kernel auditing is enabled and things crash, this leads to a lot of
really annoying messages printed to the console/TTY that can interfere
with debug. Kernel audit info can be reached using other userspace
tools.

[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:33 -08:00
Clayton Craft b876f4cb32 systemd/postmarketos-base-systemd: add presets for swclock-offset (MR 5685) 2024-11-11 18:12:33 -08:00
Clayton Craft 9617908a70 systemd/pmos-base-systemd: disable sd-resolved by default (MR 5630)
Fixes #3190
2024-11-11 18:12:33 -08:00
Bart Ribbers 8c1f5322a9 extra-repos/systemd/plasma*: upgrade to 6.2.2 (MR 5734)
[skip ci]: downloading from KDE servers seems to be broken / not
working, so checksum verify never passes. checksums were verified
locally
2024-11-11 18:12:33 -08:00
Clayton Craft 79a482041c ci: also account for extra-repos when only verifying checksums (MR 5734) 2024-11-11 18:12:33 -08:00
Clayton Craft 2588e375a2 ci: build_changed_aports: Don't exit prematurely if pkg list is empty (MR 5734)
This should check for packages in other repos that need to be built,
even if the main repo pkg list is empty.

fixes !5576
2024-11-11 18:12:33 -08:00
Clayton Craft dcce23603b systemd/gnome-shell*: remove dependency on networkmanager-common
This package no longer exists on Alpine edge
2024-11-11 18:12:32 -08:00
Caleb Connolly f87c8cc45d systemd: fix udevd path
We actually want usr/lib/udevd here, not lib/udevd. This fixes the
initramfs not building and some other weirdness.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:32 -08:00
jane400 ef0ac54283 extra-repos/systemd/systemd: support split-usr again (MR 5661)
Do note that this commit was amended after the fact, the patch got
inlined into this repo to not brick this branch if the MR gets pushed
to.

[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:32 -08:00
jane400 782df9d80f extra-repos/systemd/apk-tools: drop (MR 5661) 2024-11-11 18:12:32 -08:00
jane400 501644cc64 extra-repos/systemd: adjust bootstrap logic to remove usr-merge (MR 5661) 2024-11-11 18:12:32 -08:00
jane400 8c6251de31 systemd/systemd: upgrade to 256.5 (MR 5560) 2024-11-11 18:12:32 -08:00
Andrei Zisu 70edb74ff7 main/postmarketos-ui-gnome-*: enable systemd by default
[ci:skip-vercheck]
2024-11-11 18:12:32 -08:00
Bart Ribbers f8c12346be extra-repos/systemd/systemd-services: fix subpackage names for Plasma and Waydroid services (MR 5651)
The package names should be the original package names + the -systemd
suffix. I did this wrongly breaking both KDE Plasma and Waydroid
2024-11-11 18:12:31 -08:00
Aster Boese 32d23cd39a extra-repos/systemd/systemd: enable sysext and sysusers (MR 5597) 2024-11-11 18:12:31 -08:00
Clayton Craft dbf1622cbc extra-repos/systemd/postmarketos-base-systemd: add waydroid presets (MR 5592) 2024-11-11 18:12:31 -08:00
Bart Ribbers 5f6c379462 extra-repos/systemd/systemd-services: add waydroid and related services (MR 5592) 2024-11-11 18:12:31 -08:00
Caleb Connolly 4ffad48216 systemd: gnome-shell-mobile: upgrade to 46.1 (MR 5629)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>

[ci:skip-build] already built in CI
2024-11-11 18:12:31 -08:00
Bart Ribbers 98d2349ca2 extra-repos/systemd/systemd-services: take over service files from origin packages (MR 5631)
We were only forking kactivitymanagerd and kglobalacceld for their
service files
2024-11-11 18:12:31 -08:00
Bart Ribbers e226627418 extra-repos/systemd/kde*: upgrade to latest versions (MR 5590)
[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:31 -08:00
Clayton Craft 9d8b824458 systemd/pmos-base-systemd: add preset for udisks2 (MR 5589)
Provides disk mounting services for many UIs

[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:30 -08:00
Clayton Craft c0f21c69a5 systemd/systemd-services: fix nftables unit (MR 5589)
The type was erroneously set as 'simple', and since we are setting
ExecStop we actually need to set RemainAfterExit to avoid running
ExecStop when the oneshot service runs. This is because nft returns/
exits pretty much immediately after applying the config.

fixes #2846
2024-11-11 18:12:30 -08:00
Clayton Craft b422b47c8f systemd/systemd-services: add udisks2 unit file (MR 5589) 2024-11-11 18:12:30 -08:00
Clayton Craft 2f0d16f940 systemd/systemd-services: add evolution-data-server user services (MR 5589)
No presets because these are dbus activated.

fixes #2910
2024-11-11 18:12:30 -08:00
Bart Ribbers 37c1f3c6fb extra-repos/systemd/systemd-services: add kded (MR 5593) 2024-11-11 18:12:30 -08:00
Caleb Connolly 76e36a8912 systemd-services: add lxc (MR 5598)
add the lxc template service

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:30 -08:00
Clayton Craft 7a16971c92 systemd/pmos-base-systemd: presets: fix some preset unit names, add sshd (MR 5588)
The unit name to kill pbsplash had a typo, and added a preset for sshd.

systemd didn't seem to match `phosh` or `gdm` to the correct unit,
unless they had `.service` added, so this was fixed.

Presets in this section were also sorted.
[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:29 -08:00
Clayton Craft 385c5eae30 systemd/systemd: fix default disable preset (MR 5588)
This didn't actually seem to do anything, resulting in some weird stuff
being enabled by default even though we did not specify a preset for it
(e.g. see !5556)

Based on my interpretation of the systemd preset manpage, this file
should be parsed last. It says that if a unit name has a preset that
was already configured in some previously parsed preset file, then any
matches after do not apply. This means that the `disable *` should not
disable any previously enabled (in previous .preset files) units. When
the unit name is omitted from the `disable` command, it seems to be a no-op.

Fixes !5207
2024-11-11 18:12:29 -08:00
Clayton Craft ec6c80045f (not for master) remove temp/* pkgs that conflict with systemd repo
Until bpo moves to pmb v3.

See: https://gitlab.com/postmarketOS/build.postmarketos.org/-/issues/143
2024-11-11 18:12:29 -08:00
Clayton Craft 2a1a04d428 systemd/postmarketos-base-systemd: depend on newer linux-pam (MR 5579)
[ci:skip-build] already built successfully in CI
2024-11-11 18:12:29 -08:00
Clayton Craft 95c363e298 systemd/linux-pam: upgrade to 1.6.1-r1 (MR 5579)
pkgver and pkgrel match aports version

APKBUILD was rebased onto alpine aports version
2024-11-11 18:12:29 -08:00
Clayton Craft b70bd5ab5a systemd/kmod: remove fork (MR 5572)
Patches were merged upstream:
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71426

[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:29 -08:00
Clayton Craft c6dc9caf96 systemd/pmos-base-systemd: disable multipathd by default (MR 5556)
This causes systemd to get stuck restarting multipathd forever on boot if it runs on systems with no multipath hardware. When this happens, the system never finishes booting.

It doesn't seem like any UIs/devices enable the multipathd service by default in openrc, and that we just depend on multipath-tools for kpartx and stuff (and not the daemon that comes with it)

[ci:skip-build] already built successfully in CI
2024-11-11 18:12:28 -08:00
Clayton Craft d5aede255c systemd/pipewire: add install scripts for systemd presets (MR 5551)
fixes #3153
2024-11-11 18:12:28 -08:00
Clayton Craft ed5206c5ef systemd/kmod: add fixes for usr merge (MR 5554)
This patch was submitted upstream to Alpine aports in
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71426

[ci:skip-vercheck]
[ci:skip-build] already built successfully in CI
2024-11-11 18:12:28 -08:00
Clayton Craft 020783f7a7 systemd/kmod: fork from Alpine to support usr merge (MR 5554)
actual patch to support usr merge will come later
2024-11-11 18:12:28 -08:00
Clayton Craft 5e78bed13f systemd/multipath-tools: upgrade to 0.10.0
rebased on aports
2024-11-11 18:12:28 -08:00
Caleb Connolly d31d68ad88 systemd: upgrade gnome shell and mutter mobile to 46 (MR 5363)
Upgrade to 46-mobile-0

[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:28 -08:00
Clayton Craft 5ac584f758 systemd: gnome-settings-daemon-mobile: new aport (MR 5363)
mobile shell has a fork of GSD which hard depends on systemd.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:28 -08:00
jane400 af36809ea0 systemd/gnome-settings-daemon: add systemd subpkg (MR 5377)
also remove the elogind specific patch to use systemd for brightness
changes

Co-authored-by: Clayton Craft <clayton@craftyguy.net>

Note: the user services that the -systemd split pkg installs are not
enabled by default using systemd presets. None of them have 'Install'
sections, they appear to be mostly/all dbus activated instead.

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:27 -08:00
jane400andClayton Craft 02318418b1 systemd/gnome-session: add systemd subpkg (MR 5377)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2024-11-11 18:12:27 -08:00
jane400 8f666f7563 systemd/gdm: add systemd subpkg (MR 5377) 2024-11-11 18:12:27 -08:00
jane400andClayton Craft 31ea9bc963 systemd/gnome-keyring: add systemd subpkg (MR 5377)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2024-11-11 18:12:27 -08:00
jane400andClayton Craft 4adde29f4b systemd/networkmanager: add systemd subpkg (MR 5377)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2024-11-11 18:12:27 -08:00
jane400 fbc4cf5f83 systemd/postmarketos-base-systemd: add base presets (MR 5377)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>

- Removed systemd-timesyncd, already enabled by a preset installed by
  the systemd package
- Removed default-disable.preset, it's already provided by the systemd
  package
- Removed user services from system preset
2024-11-11 18:12:27 -08:00
Clayton Craftandjane400 feff3a6deb systemd/systemd-services: use systemd preset macro to configure services (MR 5377)
also remove the rc_update workaround

Co-authored-by: jane400 <pmos@j4ne.de>
2024-11-11 18:12:27 -08:00
jane400 d99a65733b systemd/polkit: add comment about why systemd preset isn't used (MR 5377)
Note: I/Clayton bumped the pkgrel because I don't want to
ci:skip-vercheck for *all* packages in the branch just to so that this
one doesn't fail.
2024-11-11 18:12:26 -08:00
jane400andClayton Craft cec81f972e systemd/systemd: configure presets for systemd services (MR 5377)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2024-11-11 18:12:26 -08:00
Clayton Craftandjane400 dfeb449be6 systemd/systemd: add macros for package install scripts (MR 5377)
These macros are based off of the upstream systemd RPM macros, but it
doesn't implement all of the macro functionality upstream. Initially
they will be used in the install scripts for apkbuilds that provide
systemd service unit files.

For example, a `$pkgname-systemd.post-install` script might have:
    . /usr/lib/systemd/systemd-apk-macros.sh
    systemd_service-post_install system sshd

And a `$pkgname-systemd.pre-deinstall` script might have:
    . /usr/lib/systemd/systemd-apk-macros.sh
    systemd_service_pre_deinstall user pipewire

One day maybe these could be upstreamed to systemd to provide some
apk/abuild compatible macros.

Co-authored-by: jane400 <pmos@j4ne.de>
2024-11-11 18:12:26 -08:00
jane400 c53076dff5 systemd/alpine-base: remove stub rc-update (MR 5377) 2024-11-11 18:12:26 -08:00
jane400 d833b44544 systemd/dbus: don't generate a /etc/machine-id with the post-install trigger (MR 5377)
Generating the machine-id is handled by systemd's first boot mechanism,
so that was removed from the dbus post-install script
2024-11-11 18:12:26 -08:00
Bart Ribbers 1cd37894c3 extra-repos/systemd/drkonqi: fork from Alpine (MR 5470) 2024-11-11 18:12:26 -08:00
Bart Ribbers 8e5f943b7f extra-repos/systemd/kglobalacceld: fork from Alpine (MR 5470)
It installs /usr/lib/systemd/user/plasma-kglobalaccel.service
2024-11-11 18:12:25 -08:00
Bart Ribbers adf121b1d9 extra-repos/systemd/plasma*: upgrade to 6.1.4 (MR 5470) 2024-11-11 18:12:25 -08:00
Clayton Craft ed84d87d9a systemd/systemd-services: add plasma-mobile (MR 5502)
[ci:skip-build] already built successfully in CI
2024-11-11 18:12:25 -08:00
jane400 c5a10ac901 systemd/systemd-services: add eg25-manager.service (MR 5346) 2024-11-11 18:12:25 -08:00
Clayton Craft c5f0e8aa33 systemd/systemd: fix typo in pre-install (MR 5468)
The space here caused this install script to attempt to create a group
named '2' and add a user named 'sgx' to it.

[ci:skip-build] already built successfully in CI
2024-11-11 18:12:25 -08:00
Caleb Connolly 27cee18ae9 systemd: apk-tools: update /usr merge patches (MR 5353)
Update to the reworked apk-tools /usr merge support.

Upstream MR: https://gitlab.alpinelinux.org/alpine/apk-tools/-/merge_requests/155

Fixes: #2988

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>

[ci:skip-build] already built successfully in CI
2024-11-11 18:12:25 -08:00
Clayton Craft effc4b6786 systemd/plasma*: disable armv7 (MR 5366)
Fails in CI, and (according to Bart) might be disabled on this arch in
upstream aports later.
2024-11-11 18:12:24 -08:00
Bart Ribbers 764dc557c2 extra-repos/systemd/plasma*: upgrade to 6.1.3 (MR 5366) 2024-11-11 18:12:24 -08:00
jane400andClayton Craft 6c2a418149 systemd/networkmanager: remove some alpine-isms (MR 5375)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>

[ci:skip-build] already built successfully in CI
2024-11-11 18:12:24 -08:00
jane400 130442b68f systemd/systemd: move user/group creation to pre-install (MR 5375) 2024-11-11 18:12:24 -08:00
Caleb Connolly 2aef9f29a4 systemd/postmarketos-base-systemd: depend on systemd-timsyncd (MR 5339)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:24 -08:00
Clayton Craft 29a620d5c5 systemd/pipewire: upgrade to 1.2.0 (MR 5361)
[ci:skip-vercheck]
[ci:skip-build] already built successfully in CI
2024-11-11 18:12:24 -08:00
Clayton Craft dd85349f84 systemd/networkmanager: upgrade to 1.48.2 (MR 5361) 2024-11-11 18:12:24 -08:00
Clayton Craft 090c84a938 systemd/mutter: upgrade to 46.2 (MR 5361)
updated pkgver to follow format used elsewhere... "999$_pkgver"
2024-11-11 18:12:23 -08:00
Clayton Craft e94fc1d2fb systemd/gnome-settings-daemon: upgrade to 46.0 (MR 5361) 2024-11-11 18:12:23 -08:00
Clayton Craft 3d69f68943 systemd/gdm: upgrade to 46.2 (MR 5361) 2024-11-11 18:12:23 -08:00
Clayton Craft af7bfd11e5 systemd/gnome-shell: upgrade to 46.2 (MR 5361) 2024-11-11 18:12:23 -08:00
Clayton Craft 2cdff24273 systemd/gnome-keyring: upgrade to 46.1 (MR 5361)
FYI the autoreconf thing was sent to aports since this is fixing an
upstream packaging bug:

https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/69432
2024-11-11 18:12:23 -08:00
Clayton Craft 49cbf35723 systemd/systemd-services: fix pkgname for gnome-clocks service 2024-11-11 18:12:23 -08:00
Clayton Craft a983e5e0b9 systemd/networkmanager: add -systemd subpkg for service
Missed this earlier when moving -service --> -systemd

Also updates the pkgver to be more in line with how we handle pkgver
elsewhere in this repo
2024-11-11 18:12:22 -08:00
David Heidelberg 7b9d2fea39 systemd/systemd-services: add missing bluez services (MR 5200)
Signed-off-by: David Heidelberg <david@ixit.cz>

[ci:skip-build] already built successfully in CI
2024-11-11 18:12:22 -08:00
Clayton Craft 3031bd5ecd systemd/systemd-services: adjust subpackages to use -systemd name (MR 5315) 2024-11-11 18:12:22 -08:00
Clayton Craft 4077ae12bd systemd/upower: rename service subpkg to systemd (MR 5315) 2024-11-11 18:12:22 -08:00
Clayton Craft 44ff5c93d1 systemd/polkit: rename service subpkg to systemd (MR 5315) 2024-11-11 18:12:22 -08:00
Clayton Craft 0f0988aec2 systemd/pmos-base-systemd: depend on newer linux-pam pkg (MR 5315) 2024-11-11 18:12:22 -08:00
Clayton Craft 928ce52b9b systemd/linux-pam: rename service subpkg to systemd (MR 5315) 2024-11-11 18:12:21 -08:00
Clayton Craft 841e6ab6e6 systemd/gdm: rename service subpkg to systemd (MR 5315) 2024-11-11 18:12:21 -08:00
Clayton Craft 12642fdad7 systemd/dbus: rename service subpkg to systemd (MR 5315) 2024-11-11 18:12:21 -08:00
Clayton Craft 8f9f58ceb8 systemd/abuild: add patch to warn on install to /bin or /lib 2024-11-11 18:12:21 -08:00
Clayton Craft 2f804acea9 systemd/abuild: update -systemd split func patch
Build abuild from upstream source and only apply the systemd split func
patch. The patch was also adjusted to use -systemd instead of -service
for subpackages
2024-11-11 18:12:21 -08:00
jane400 dba50c50bc systemd: postmarketos-base-systemd: manually include kmod-libs in initramfs for systemd-udevd (MR 5340)
As systemd v256 switched to dlopen for a bunch of dependencies
(specified in a custom format), this is no longer auto-detected
by either abuild or boot-deploy. So we include kmod manually for udevd
to work correctly.

This fixes the "no screen" issue on pine64-pinephone.
[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:21 -08:00
jane400 8aaa6b73a0 systemd/postmarketos-base-systemd: fix replaces failure (MR 5335)
the systemd v256 upgrade also moved some files to their
respecitive subpackages.

[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:21 -08:00
Oliver Smith c20c669666 systemd/plasma-workspace: workaround for build race condition (MR 5327)
Explicitly generate qwayland-plasma-shell.h first, in order to fix:
  In file included from /usr/include/PlasmaQuick/PlasmaQuick/PlasmaShellWaylandIntegration:1,
                   from /home/pmos/build/src/plasma-workspace-6.1.2/shell/panelconfigview.cpp:35:
  /usr/include/PlasmaQuick/plasmaquick/plasmashellwaylandintegration.h:14:10: fatal error: qwayland-plasma-shell.h: No such file or directory
     14 | #include "qwayland-plasma-shell.h"
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.

Related: https://invent.kde.org/plasma/plasma-workspace/-/issues/132
[ci:skip-vercheck]
[ci:skip-build] times out after >3hr in gitlab CI
2024-11-11 18:12:20 -08:00
Bart Ribbers d08c01ec5b community/plasma: upgrade to 6.1.2 (MR 5327)
[ci:skip-vercheck]
Rebased-By: Oliver Smith <ollieparanoid@postmarketos.org>
2024-11-11 18:12:20 -08:00
Clayton Craft 34989c0510 systemd/kwin: include patch in repo
Apparently the patch url isn't stable(?) upstream, the checksum changed.
Since this is a simple 1 line patch, let's just include it in pmaports

This also changes kwin to use the more 'standard' pkgver used in other
packages forked for systemd support
2024-11-11 18:12:20 -08:00
jane400 d0e7483ae5 systemd: upgrade to 256 and add me as co-maintainer (MR 5093)
The patches were put into the gitlab.com/postmarketos/systemd repo
and updated for stable-v256.

This also enables man pages, systemd-localed and localization support
via the compile flags.

[ci:skip-build] already built successfully in CI
2024-11-11 18:12:20 -08:00
Clayton Craft 88468e0c79 systemd/systemd-services: drop pulseaudio (MR 5142)
PA is started automatically by its "autospawn" config thing, and it
works pretty well... if it crashes then it's automatically restarted if
needed, etc.

The included service/socket unit files never really worked,
PA started from systemd would always race with (and often to) PA autospawn.

The subpkg here also resulted in a packaging bug where both
pulseaudio-service and pw-pulse-service were installed at the same time,
because the `install_if` listed `pulseaudio`, and `pw-pulse` also
provides `pulseaudio`. The two unit things conflict with each other.

I did some initial investigation, and getting systemd to manage PA
seemed like too much work especially since autospawn is probably good
enough and we hope to move to pw audio later.

[ci:skip-vercheck]
2024-11-11 18:12:20 -08:00
Clayton Craft 56fbddfd03 systemd/systemd-services: add wireplumber (MR 5142) 2024-11-11 18:12:20 -08:00
Clayton Craft da3e80d98f systemd: fork pipewire to build w/ systemd support (MR 5142)
Unfortunately there are some code paths that are required to support
socket activation, and they are only enabled at build time with
-Dsystemd=enabled. On the bright side, service/socket unit files are
included...

Also note that I disabled test on armv7 since they fail in our CI using
qemu on x86_64. They pass in Alpine on native armv7.
2024-11-11 18:12:20 -08:00
Caleb Connolly 8af8444143 systemd: add udevd symlink (MR 5218)
symlink systemd-udevd to /usr/bin/udevd for compatibility with eudev
(initramfs).

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:19 -08:00
jane400 54dfdbc6a4 systemd/systemd: don't force disable everything with presets (MR 5207)
This changes it into a default disable.

`disable *` selects all units and hence overrides all previous presets.
Just using `disable` just changes the default unit enablement policy.
[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:19 -08:00
Clayton Craft 9016951dac systemd/systemd-services: Add geoclue, gnome-clocks, iwd, mpris-proxy, mmsd (MR 5204)
[ci:skip-build] already built successfully in CI
2024-11-11 18:12:19 -08:00
Clayton Craft 52e322b53c systemd/gnome-session: upgrade to 46 (MR 5148)
fixes #2855
2024-11-11 18:12:19 -08:00
Dylan Van Assche 1d7f5e07c1 systemd/iio-sensor-proxy: allow AF_QIPCRTR (MR 5190)
libssc requires QRTR protocol, allow it in systemd lockdown.

[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:19 -08:00
Clayton Craft a426a4874c systemd/gnome-shell-mobile: rebase on latest master changes
See:
 - aaa7d267 temp/gnome-shell-mobile: rename extensions app to add "mobile" (MR 5176)
 - 5e865cde temp/gnome-shell-mobile: sync with upstream APKBUILD (MR 5176)
2024-11-11 18:12:19 -08:00
Clayton Craft 4f24d999d4 systemd/systemd-services: fix rtkit subpackage name (MR 5150)
For the `install_if` to work correctly, the subpackage should be named
after the main package that provides the app... in this case it's called
"rtkit"

[ci:skip-build] already built successfully in CI
2024-11-11 18:12:19 -08:00
Clayton Craft 7e10640bf9 systemd/gnome-shell: actually build with systemd support (MR 5147)
This was a total blunder by earlier me...

fixes !5115
2024-11-11 18:12:18 -08:00
Clayton Craft 13420d5e94 systemd/mutter,gnome-shell: disable crossdirect (MR 5115)
Workaround since building for armv7 on x86_64 fails, see
https://gitlab.com/postmarketOS/pmaports/-/merge_requests/5115#note_1899890119

[ci:skip-vercheck]
[ci:skip-build] already built successfully in CI
2024-11-11 18:12:18 -08:00
Clayton Craft f7082cf02c systemd/gnome-shell: fork to enable systemd support (MR 5115)
fixes #2767

[ci:skip-vercheck]
2024-11-11 18:12:18 -08:00
Clayton Craft b25d388fb9 systemd/mutter: fork to enable systemd support (MR 5115) 2024-11-11 18:12:18 -08:00
Clayton Craft ca3515f23f systemd/gnome-desktop: fork to enable systemd support (MR 5115) 2024-11-11 18:12:18 -08:00
Clayton Craft 5dbc1d8af7 systemd: use a more general install_if for x11 subpkg (MR 5118)
[ci:skip-build] already built successfully in CI

xorg-server-common is a shared dep between xorg-server and xwayland, and
this tmpfile config is required for both to work. Without this tmpfile
config, Xwayland may fail to start. In the case of GNOME, this is a
fatal event.
2024-11-11 18:12:18 -08:00
Caleb Connolly dba7b36db7 systemd/systemd-services: dconf: fix path (MR 5094)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:17 -08:00
Caleb Connolly c3b55175a4 systemd: linux-pam: upgrade to 1.6.0
following Alpine

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:17 -08:00
Bart Ribbers 8461cb5ae6 extra-repos/systemd/kde*: upgrade to latest versions (MR 5068)
[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:17 -08:00
Clayton Craft 51d2f31bc1 extra-repos/systemd: add kbd dependency (MR 5074)
This is required by systemd-vconsole-setup, which is currently
configured to run on boot (without kbd/loadkeys, the service crashes.)

[ci:skip-build]: already built successfully in CI
2024-11-11 18:12:17 -08:00
Oliver Smith 0c91b7bf95 (not for master) CI: hardcode get_upstream_branch (MR 5070)
Set it to master_staging_systemd, and bypass the usual logic of looking
into pmaports.cfg and channels.cfg (of master branch!). This avoids
adding it to channels.cfg of the master branch.
2024-11-11 18:12:17 -08:00
Oliver Smith b6d02a5860 (not for master): CI: disable armhf, riscv64, x86 (MR 5070)
The staging repository isn't being built for these.
2024-11-11 18:12:17 -08:00
Oliver Smith 0ac285b25a systemd: fix "INSERT-REASON-HERE" comments (MR 5070) 2024-11-11 18:12:17 -08:00
Oliver Smith fa655e52b3 systemd/systemd-services: make shellcheck happy (MR 5070)
Fix for:
  In systemd-services.trigger line 14:
      systemctl $cmd $service
                ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
2024-11-11 18:12:16 -08:00
Oliver Smith 63324395cd systemd: remove various unreferenced files (MR 5070)
Remove OpenRC specific files that were removed for the systemd-specific
forks.
2024-11-11 18:12:16 -08:00
Oliver Smith 2ea4451c8c systemd/mutter-mobile: fix provides= (MR 5070) 2024-11-11 18:12:16 -08:00
Oliver Smith 50a321a636 systemd/gnome-shell-mobile: fix provides= (MR 5070)
Should be =$pkgver-r$pkgrel instead of =$_pkgver-r$pkgrel. Otherwise CI
fails, and it is right, we do want to provide the very high version so
we don't install the regular package by accident if the regular package
gets upgraded before this forked version.
2024-11-11 18:12:16 -08:00
Oliver Smith 3e509a502a CI: test_kernel: skip linux-pam (MR 5070)
The linux-pam package is not a linux kernel :)
2024-11-11 18:12:16 -08:00
Oliver Smith 0473a1f86e CI: directory-structure: add extra-repos/systemd (MR 5070) 2024-11-11 18:12:16 -08:00
Oliver Smith bdd399a4eb editorconfig: add networkmanager.rules style (MR 5070)
This is forked from Alpine. Keep the style to not increase the diff.
2024-11-11 18:12:16 -08:00
Bart Ribbers de9e63ad75 extra-repos/systemd/kjournald: new aport 2024-11-11 18:12:15 -08:00
Bart Ribbers 0a52a06cbd extra-repos/systemd/plasma*: add initial systemd Plasma packages 2024-11-11 18:12:15 -08:00
Oliver Smith 87dc5236bc extra-repos/systemd/: move from systemd/
Let's put everything systemd related in an extra-repos directory, so it
is clear that the packages from here will end up in a separate, optional
binary package repository.
2024-11-11 18:12:15 -08:00
Oliver Smith 67cdbd545d systemd/xorg-server: set !check 2024-11-11 18:12:15 -08:00
Oliver Smith d6fc62b437 systemd/gnome-shell-mobile: drop caribou dep
Remove it, like we did with temp/gnome-shell-mobile in pmaports master.
2024-11-11 18:12:15 -08:00
Sam Day b980758024 systemd-services: add phosh.service (MR 4904) 2024-11-11 18:12:15 -08:00
Oliver Smith c2a77cf88c systemd/postmarketos-base-systemd: depend on systemd-services
Add the dependency, so the systemd-services package gets built as part
of the bootstrap. Otherwise no service files will be installed, as the
individual service files get pulled in via install_if, and that only
works if a binary package is available.
2024-11-11 18:12:15 -08:00
Alexander Martinz 330d19bf14 systemd/systemd-services: add rtkit-daemon.service
Taken upstream from https://github.com/heftig/rtkit/blob/master/rtkit-daemon.service.in

Change-Id: I0ae6e1a70b961bafd52702a412a2cdcc12bb544a
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
2024-11-11 18:12:14 -08:00
Caleb Connolly 55a40472aa systemd/gnome-shell-mobile: add uclamp hack
This is a hack to configure utilisation clamping for gnome-shell. It
works by telling the scheduler that the gnome-shell process should run
with a much higher performance level. This improve animation performance
and general UI smoothness. A proper solution to have gnome-shell manage
this itself is in the works upstream.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:14 -08:00
Caleb Connolly f31344c6b7 CHECK: systemd/xorg-server: new aport
Clayton says: this integrates with systemd (logind specificially)

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:14 -08:00
Caleb Connolly ee75b0f55c systemd/upower: new aport
Integrates with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:14 -08:00
Caleb Connolly 994caa1b61 systemd/systemd-services: new aport
A collection of systemd services.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:14 -08:00
c9f9410e37 systemd/systemd: new aport
Co-Authored-by: jane400 <pmos@j4ne.de>
Co-Authored-by: Caleb Connolly <caleb@postmarketos.org>
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:14 -08:00
Caleb Connolly 30cdcbbd12 systemd/postmarketos-base-systemd: new aport
postmarketOS base package with systemd stuff.
2024-11-11 18:12:13 -08:00
Caleb Connolly 852d109b67 systemd/polkit: new aport
Integrates tightly with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:13 -08:00
Caleb Connolly 130ad143fe systemd/networkmanager: new aport
Clayton says: integrates with systemd (logind)

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:13 -08:00
Caleb Connolly 1c3cee5c0f systemd/mutter-mobile: new aport
Integrates tightly with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:13 -08:00
Caleb Connolly a884dfad60 systemd/multipath-tools: new aport
Builds against systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:13 -08:00
Caleb Connolly 170f8d31ea systemd/linux-pam-systemd: new aport
integrates with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:13 -08:00
Caleb Connolly 062edaa374 systemd/gnome-shell-mobile: new aport
Integrates tightly with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:13 -08:00
Caleb Connolly dd5d38de06 systemd/gnome-settings-daemon: new aport
Integrates tightly with systemd

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:12 -08:00
Caleb Connolly 05bbe80e2f systemd/gnome-session: new aport
Integrates tightly with systemd

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:12 -08:00
Caleb Connolly fae2bff5a3 systemd/gnome-keyring: new aport
Integrates tightly with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:12 -08:00
Caleb Connolly ecdee65dd7 systemd/gdm: new aport
gdm integrates tightly with systemd, fork from aports to rebuild against
systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:12 -08:00
Caleb Connolly 3c81c8f077 systemd/dbus: new aport
Fork dbus and rebuild it with systemd support.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:12 -08:00
Caleb Connolly 3ea80509cf systemd/apk-tools: new aport
For systemd (and our own sanity) we need to do the /usr merge. This fork
of apk-tools includes the logic to support alpine packages like tar
which install the main tar binary to /bin and then a symlink to
/usr/bin/...

We should find a way to implement this in upstream apk-tools, and
continue pushing Alpine to also adopt the merged /usr model.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:12 -08:00
Caleb Connolly 798b64cb43 systemd/alpine-base: new aport
alpine-base hard depends on openrc... Fork it to drop this.

We should eventually upstream this by having alpine-base depend on a
virtual pid1 or init-system subpackage which openrc and systemd can both
provide.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:12 -08:00
Caleb Connolly 2cb12e0ec6 systemd/accountsservice: new aport
Forked from alpine to rebuild with systemd support.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:11 -08:00
Caleb Connolly 6323752bfc systemd/abuild: new aport
Fork of abuild with a default_service implementation for generating
-service subpackages.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-11 18:12:11 -08:00
Oliver Smith 01006d5db5 pmaports.cfg: add repo:systemd section 2024-11-11 18:12:11 -08:00
Henrik Grimler 8d01311416 linux-postmarketos-exynos5: update to 6.6.59 (MR 5775)
Two main changes apart from rebase and config sync:

- Fix broken usb networking by making CONFIG_USB_CDC_COMPOSITE
  builtin (by @eisenbahnfan)
- Add mainline support for exynos5420-n2awifi (by @eisenbahnfan)
[ci:skip-build]: already built successfully in CI
2024-11-11 18:07:23 -08:00
WeirdTreeThing c714397635 linux-google-veyron: switch to xz compression (MR 5773)
[ci:skip-build]: already built successfully in CI
2024-11-11 17:59:02 -08:00
Richard Acayan 7ebdc89a44 google-sargo: replace hexagonrpcd config in firmware openrc subpackage (MR 5783)
Fixes: b7a426aedd ("google-sargo: move openrc scripts to subpackage (MR 5688)")

[ci:skip-build]: already built successfully in CI
2024-11-11 17:55:14 -08:00
Barnabás Czémán 016f726939 soc-qcom-msm8953: update UCM configs (MR 5780)
[ci:ignore-count]

[ci:skip-build]: already built successfully in CI
2024-11-11 17:49:06 -08:00
Barnabás Czémán d09c0558d0 device-motorola-ocean: use firmware-qcom-adreno-a530 (MR 5780) 2024-11-11 17:49:06 -08:00
Barnabás Czémán d8d1bdd7b8 device-asus-zenfone3: use firmware-qcom-adreno-a530 (MR 5780) 2024-11-11 17:49:06 -08:00
Barnabás Czémán fa0a279146 firmware-msm8953: follow kernel changes (MR 5780)
Last kernel uses device specific zap shader path,
this commit following the kernel changes.
2024-11-11 17:49:06 -08:00
Barnabás Czémán 02bc3b6950 device-qcom-msm8953: use firmware-qcom-msm8953 (MR 5780) 2024-11-11 17:49:06 -08:00
Barnabás Czémán f1031e95c8 firmware-qcom-msm8953: new package (MR 5780)
Unified firmware package for msm8953 devices.
2024-11-11 17:49:05 -08:00
Barnabás Czémán 3dcc08f4a9 linux-postmarketos-qcom-msm8953: upgrade to 6.11.6 (MR 5780) 2024-11-11 17:49:05 -08:00
fossdd 3e835b7fc8 temp/sxmo-common: remove (MR 5779)
Ghost package was added in v24.06 and the next release, which includes
this commit, is v24.12.

[ci:skip-build]: already built successfully in CI
2024-11-11 17:39:58 -08:00
Oliver Smith cda9735b36 device-google-sargo: move replaces to -openrc (MR 5771)
[ci:skip-build]: already built successfully in CI
2024-11-11 16:26:58 -08:00
Oliver Smith 5f92a24897 device-xiaomi-beryllium: move replaces to -openrc (MR 5771) 2024-11-11 16:26:58 -08:00
postmarketOS CI 71b21a4b53 linux-next: upgrade to next-20241111 2024-11-11 20:04:22 +00:00
Clayton Craft 0738399936 main/postmarketos-cros-common: fix compatibility with systemd (MR 5768)
fixes !5767

[ci:skip-build]: already built successfully in CI
2024-11-09 10:50:50 +01:00
postmarketOS CI 26dd6ff875 linux-next: upgrade to next-20241108 2024-11-08 20:00:00 +00:00
postmarketOS CI 98a97ea85c linux-next: upgrade to next-20241107 2024-11-07 19:59:41 +00:00
Oliver Smith 1e7d937044 main/postmarketos-cros-common: fix pmb_recommends (MR 5767)
The package was renamed from postmarketos-cros-keymap to
postmarketos-cros-keymap-openrc, adjust _pmb_recommends.

[ci:skip-build]: already built successfully in CI
2024-11-06 22:33:23 +01:00
Oliver Smith 2942aea548 device-oneplus-fajita: move replaces to -openrc (MR 5767) 2024-11-06 22:33:18 +01:00
Clayton Craft 2355af6a59 device/*: stop using console=null (MR 5752)
I replaced "console=null" with "quiet loglevel=2",
based on the findings in #2989

fixes #3269

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2024-11-06 13:15:13 -08:00
Clayton Craft aabfc2ed69 main/postmarketos-initramfs: include udev.conf in initramfs (MR 5752)
Allows udev to use custom config when running from the initramfs
2024-11-06 13:15:12 -08:00
Clayton Craft 9a92478496 main/postmarketos-base: decrease udev logging verbosity (MR 5752) 2024-11-06 13:15:12 -08:00
Clayton Craft e61bf69138 ci/grep: fail if device pkg uses console=null (MR 5752) 2024-11-06 13:15:12 -08:00
Clayton Craft 0c3e1a972f main/postmarketos-initramfs: drop console=null warning on boot (MR 5752)
fixes #2989
2024-11-06 13:15:12 -08:00
Oliver Smith 51cbd7cedb cross/busybox-static-*: upgrade to 1.37.0-r6 2024-11-06 22:05:40 +01:00
postmarketOS CI 7b9e4fdaa2 linux-next: upgrade to next-20241106 2024-11-06 19:59:45 +00:00
Robert Eckelmann 8ac15569c2 linux-postmarketos-marvell-dove: upgrade to 6.11.5 (MR 5600)
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
2024-11-06 09:06:01 +01:00
Robert Eckelmann 442fc42462 solidrun-cubox: new device (MR 5600)
initial commit for the Marvell dove based CuBox SBC system

Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
2024-11-06 09:06:01 +01:00
Antony K. S 1ea401f564 asus-zenfone3: new device (MR 5711)
asus-zenfone3: move linux-postmarketos-qcom-msm8953 package to each subpackages

asus-zenfone3: remove suffix from deviceinfo_name

asus-zenfone3: remove uneeded firmware files & add lk2nd-msm8593
[ci:skip-build]: already built successfully in CI
2024-11-06 08:59:31 +01:00
Clayton Craft e4e6a375db main/postmarketos-initramfs: add udev rules for devicemapper (MR 5764)
Without these rules, the /dev/disk/by-* stuff isn't created on devices
that use subpartitions (and maybe FDE too?), and systemd boot fails
because it's unable to find the boot partition UUID under that path.

fixes !5636

[ci:skip-build]: already built successfully in CI
2024-11-05 12:16:58 -08:00
postmarketOS CI 71e5547ee3 linux-next: upgrade to next-20241105 2024-11-05 20:00:12 +00:00
Duje Mihanović dbb2a327eb linux-samsung-coreprimevelte: upgrade to 6.12_rc5 (MR 5758)
[ci:skip-build]: already built successfully in CI
2024-11-05 12:25:35 +01:00
methanal 9386e30711 linux-postmarketos-exynos7870: upgrade to 6.11.6 (MR 5760)
Upgrade the kernel to version 6.11.6. It adds mainline support for two new
devices, namely samsung-j6lte and samsung-j5y17lte.

Also includes minor code refactoring.
[ci:skip-build]: already built successfully in CI
2024-11-05 12:11:25 +01:00
postmarketOS CI fad34c0923 linux-next: upgrade to next-20241104 2024-11-04 20:00:08 +00:00
Aster Boese 44ce859e43 soc-qcom-sm8350: move openrc scripts to subpackage (MR 5688)
[ci:ignore-count]

[ci:skip-build]: already built successfully in CI
2024-11-04 10:52:43 -08:00
Aster Boese 1868f41ef5 main/nokia-weeknd: add openrc subpackage (MR 5688) 2024-11-04 10:52:43 -08:00
Aster Boese 0622be4c83 main/wl1251-cal: add openrc subpackage (MR 5688) 2024-11-04 10:52:43 -08:00
Aster Boese 24abf411c1 soc-qcom-sm7150: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:43 -08:00
Aster Boese 0ce27ef17d soc-qcom-sm7125: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:43 -08:00
Aster Boese 4ad6ad0b49 soc-qcom-sdm660: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:43 -08:00
Aster Boese 4ae22faca9 soc-qcom-sc8180x: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:43 -08:00
Aster Boese f767583830 soc-qcom-sc7280: move openrc scripts to subpackages (MR 5688) 2024-11-04 10:52:42 -08:00
Aster Boese 2c73ab30be soc-qcom-msm8998: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:42 -08:00
Aster Boese 584a6f082e soc-qcom-msm8909: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:42 -08:00
Aster Boese 329949155e kobo-epdc-extractor: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:42 -08:00
Aster Boese 60bccf6fe9 firmware-xiaomi-sagit: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:42 -08:00
Aster Boese f424050082 firmware-sony-ninges: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:42 -08:00
Aster Boese f59eac28b0 firmware-samsung-pxa1908: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:41 -08:00
Aster Boese ddffd8de81 firmware-samsung-kminilte: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:41 -08:00
Aster Boese 547a871840 firmware-samsung-degaswifi: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:41 -08:00
Aster Boese 26f5809a6c firmware-oneplus-msm8998: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:41 -08:00
Aster Boese 94fad16f2f firmware-motorola-potter: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:41 -08:00
Aster Boese 0c3acd11f4 firmware-huawei-alice: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:41 -08:00
Aster Boese e336721314 firmware-fxtec-qx1050: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:40 -08:00
Aster Boese fbc404a5ac xiaomi-vayu: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:40 -08:00
Aster Boese f82ceef9f3 fairphone-fp5: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:40 -08:00
Aster Boese 0ce247f1b7 xiaomi-raphael: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:40 -08:00
Aster Boese ce29bce59b xiaomi-natrium: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:40 -08:00
Aster Boese 69f0eb80fd xiaomi-elish: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:40 -08:00
Aster Boese 8931d7cc27 xiaomi-armani: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:39 -08:00
Aster Boese 2ca7ef6b75 sony-leo: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:39 -08:00
Aster Boese ce5a0f4505 samsung-zeroltexx: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:39 -08:00
Aster Boese cb06d121ce samsung-zerofltexx: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:39 -08:00
Aster Boese a900390374 samsung-j7y17lte: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:39 -08:00
Aster Boese 9174ac2f52 samsung-i9100: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:39 -08:00
Aster Boese 5e4d96891a samsung-a6lte: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:39 -08:00
Aster Boese 1b9c7c899d raspberry-pi4: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:38 -08:00
Aster Boese 95d9990a98 raspberry-pi3: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:38 -08:00
Aster Boese 902dcc4d52 raspberry-pi0: move openrc scripts to subpackages (MR 5688) 2024-11-04 10:52:38 -08:00
Aster Boese 0bc1d4cd0d raspberry-pi: move openrc scripts to subpackages (MR 5688) 2024-11-04 10:52:38 -08:00
Aster Boese 9de81d09eb pine64-dontbeevil: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:38 -08:00
Aster Boese b162a221dc oneplus-oneplus3t: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:38 -08:00
Aster Boese adde895b6d lenovo-q706f: move openrc scripts to subpackages (MR 5688) 2024-11-04 10:52:38 -08:00
Aster Boese 57562c7597 jolla-sbj: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:37 -08:00
Aster Boese 24f152bc80 cutiepi-tablet: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:37 -08:00
Aster Boese 8f87acca7e clockworkpi-uconsole-cm4: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:37 -08:00
Aster Boese 3e102e95db ayn-odin: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:37 -08:00
Aster Boese 02066257eb bluetooth-raspberry-pi: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:37 -08:00
Aster Boese bbbf3a1062 soc-qcom-sc7180: move openrc scripts to subpackages (MR 5688) 2024-11-04 10:52:37 -08:00
Aster Boese 7610fe1035 soc-qcom-msm8953: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:36 -08:00
Aster Boese f586ca4441 soc-qcom-msm8916: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:36 -08:00
Aster Boese f55c9c0d3a xiaomi-scorpio: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:36 -08:00
Aster Boese 056e257de3 xiaomi-beryllium: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:36 -08:00
Aster Boese 0125e65f90 pine64-pinephonepro: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:36 -08:00
Aster Boese 7a9b5a205d main/watchdog-kick: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:36 -08:00
Aster Boese 48f6c9656b main/postmarketos-cros-common: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:36 -08:00
Aster Boese 0b16918fe0 main/postmarketos-boot-hwtest: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:36 -08:00
Aster Boese bd431d40cc main/postmarketos-base-ui: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:35 -08:00
Aster Boese 9a99823538 main/postmarketos-base-ui-cage: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:35 -08:00
Aster Boese c2f8ce4f10 pine64-pinebookpro: move non-essential scripts to subpackages (MR 5688) 2024-11-04 10:52:35 -08:00
Aster Boese dfbcebd69e oneplus-enchilada: clean up openrc subpackage (MR 5688) 2024-11-04 10:52:35 -08:00
Aster Boese 8251a6956f oneplus-fajita: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:35 -08:00
Aster Boese 9a095777ba nokia-n900: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:35 -08:00
Aster Boese b7a426aedd google-sargo: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:34 -08:00
Aster Boese 29e3422044 fairphone-fp4: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:34 -08:00
Aster Boese 17c4a53643 main/postmarketos-base: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:34 -08:00
Aster Boese 4942ec0603 main/hisi-wlan: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:34 -08:00
Aster Boese 57709727ed modem/msm-cros-efs-loader: move openrc scripts to subpackage (MR 5688) 2024-11-04 10:52:34 -08:00
Jakob Hauser d87b8222b9 main/postmarketos-ui-mate: improve touch-friendliness (MR 5713)
Maintenance:
- Renamed gschema override files for "system background" and "screensaver"
  to prefix number "10", that's more common for distribution-delivered
  gschema override files. Basically the prefix number just separates the
  override files from the xml files.
- For gschema override files "caja single click" and "mate terminal colors"
  replaced underline by dash character for better alphabetic sorting.
- In the APKBUILD, adapted the install of file "gtk.css" to the "-t" option,
  as no file name change is needed.
- Sorted the installs alphabetically per path, except the for the file
  "61-lightdm-autologin.conf", this one is at the end because it doesn't use
  the "-t" option due to file renaming.

Touch-friendliness:
- Increased size of the upper and lower panel from 24 to 36 px. This also
  increases the size of the icons in the panel. Unfortunately, at installation
  the panel layout config file is stronger than the gsettings override of the
  panel size, therefore a new panel layout config file is needed. It corresponds
  to the upstream default layout, just the panel size values were changed.
- Increased the size of the window buttons by changing the window border theme
  to "HighContrast". That's not the nicest looking theme but the one with the
  largest window buttons – convenient for touch devices.
- Increased general font sizes from 10 to 12 px. This goes along with increased
  panel size and window button size, avoiding looking it too unproportional.
- Changed the layout of the panel clock to just show the time (no date or week
  day). This saves space on devices with small screen. As the panel size was
  increased, display size gets tight on devices with small screen.
- Changed the layout of the panel workspace switcher to show names in the format
  of "-  x  -". This is a workaround to artificially increase the size of the
  workspace switcher buttons on portrait displays. Because otherwise these
  buttons are very squeezed on portrait displays due to the display ratio.
- Add an application shortcut for a maximized terminal to the users Desktop
  upon installation.
[ci:skip-build]: already built successfully in CI
2024-11-04 11:27:50 +01:00
Oliver Smith 817ed870e9 pmaports.cfg: set pmbootstrap_min_version=2.3.2
Require the pmbootstrap version where we added a workdir migration to
change pmaports git URLs from gitlab.com to gitlab.postmarketos.org.

pmaports at gitlab.com will be fast-forwarded to this commit once, so
users who still have this archived repository configured as upstream
will be notified of this change after next git pull and trying to use
pmbootstrap <2.3.2 with it.

Related: https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/tags/2.3.2
Related: pmbootstrap issue 2471
2024-11-03 13:39:32 +01:00
kouta 62440e5f17 main/lk2nd: patch xiaomi-daisy DT board-id (MR 5750) 2024-11-02 21:49:11 +03:00
Clayton Craft 7b01c66a34 device-google-x64cros: move gpu fw to initramfs-extra (MR 5730)
oem-* packages put fw into the initramfs, which allows for display/gpu
to work properly early during boot. On x64cros, there's not enough space
in the boot partition to hold gpu firmware so this patch duplicates some
things from oem-* packages in order to put the fw into initramfs-extra

[ci:skip-build]: already built successfully in CI
2024-11-02 09:11:58 -07:00
Aster Boese 439bd8e869 google-x64cros: increase boot partition to 32mb (MR 5730) 2024-11-02 09:11:04 -07:00
Jakob Hauser 6e00f34f61 main/postmarketos-ui-{mate,xfce4}: separate openrc and main post-install scripts (MR 5735)
Split the post-install scripts for the main package and the openrc subpackage.
They act on different things.

[ci:skip-build]: already built successfully in CI
2024-11-02 12:55:36 +01:00
Arnav Singh f568f4e2ec linux-postmarketos-allwinner: upgrade to 6.11.5_git20241029 (MR 5753)
[ci:skip-build]: already built successfully in CI

[ci:skip-vercheck]
2024-11-02 11:02:07 +01:00
Barnabás Czémán 3b49327237 msm8226-*: add soc-qcom-msm8226 as a dependency (MR 5732)
[ci:ignore-count]
2024-11-02 16:31:06 +09:00
Barnabás Czémán c12b826d6a soc-qcom-msm8226: initial package (MR 5732)
Add initial SoC pacakge for common configs of msm8226 devices.
2024-11-02 16:22:11 +09:00
Barnabás Czémán c8ebd2705e msm8974-*: add soc-qcom-msm8974 as a dependency (MR 5732) 2024-11-02 16:22:11 +09:00
Barnabás Czémán dfdccbb1ae soc-qcom-msm8974: initial package (MR 5732)
Add initial SoC pacakge for common configs of msm8974 devices.
2024-11-02 16:22:10 +09:00
Aren Moynihan 142948a592 device-postmarketos-trailblazer: add support for pine64 pinephone (MR 5703)
Add the necessary modules to the initramfs so the splash screen shows
up, and depend on linux-firmware-rtw88 so the wifi works.
2024-11-02 15:47:24 +09:00
Aren Moynihan 443fb1a850 device-postmarketos-trailblazer: modules-initfs sort alphabetically (MR 5703)
This is a stylistic change only.

Generated by this program, which takes care to treat '_' and '-' as the
same character for the purpose of sorting:

perl -e 'print sort {($a =~ s/_/-/r) cmp ($b =~ s/_/-/r)} <>' modules-initfs | uniq | sponge modules-initfs
2024-11-02 15:47:09 +09:00
Aren Moynihan 4dfa2e644e linux-next: add support for pine64 pinephone (MR 5703)
Add configs to get the PinePhone to boot and some functionality such as
wifi. A number of components, including the modem, sound, and usb, don't
yet work without patches, so are left out here.
2024-11-02 15:44:47 +09:00
Clayton Craft a2b2c0ee5a main/postmarketos-initramfs: umount /boot in the initramfs (MR 5751)
Fixes a bug where the kernel thinks the boot partition is still mounted
and it's unavailable for mounting in the rootfs

If you look at what the initramfs was doing before !5635, it was
explicitly umounting the boot partition from /boot in the initramfs and
then mounting it under /boot in the rootfs:
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/c45d7ec0a5f7ac814b50087402bb11825120f42b/main/postmarketos-initramfs/init.sh#L87

With this patch, we're now back to umounting /boot in the initramfs.
The second part of that original logic is now handled elsewhere now, and
that seems to be working OK.

The bug was reported here:
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3279#note_454346

[ci:skip-build]: already built successfully in CI
2024-11-01 14:09:35 -07:00
postmarketOS CI ea7eb26fb3 linux-next: upgrade to next-20241101 2024-11-01 16:57:37 +00:00
Caleb Connolly bb7b1c4fde device-postmarketos-trailblazer: add icc-osm-l3 to initramfs (MR 5745)
This module is necessary for cpu frequency scaling on Qualcomm
platforms, let's make it available earlier so we have cpu frequency
scaling up sooner.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-01 15:53:11 +01:00
adamthiede adfe55c89a linux-postmarketos-mediatek-mt8173: upgrade to 6.11.5 (MR 5741)
[ci:skip-build]: already built successfully in CI
2024-10-31 16:42:48 -07:00
MightyM17 0bf67c68ec linux-postamrketos-omap: Reduce config options to reduce kernel size (MR 5716)
[ci:skip-build]: already built successfully in CI
2024-10-31 16:25:48 -07:00
Caleb Connolly d92e2aaa20 postmarketos-initramfs: only include necessary udev rules (MR 5636)
importing all udev rules doesn't make sense here. Only add the needed
ones.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2024-10-31 11:54:25 -07:00
Caleb Connolly a36c8a4d3c main/unl0kr: include only necessary udev rules (MR 5636) 2024-10-31 11:54:25 -07:00
Caleb ConnollyandClayton Craft 7065039494 postmarketos-initramfs: clean up logging (MR 5636)
make the logging nicer and remove some irrelevant errors.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2024-10-31 11:54:24 -07:00
Clayton Craft 5c201c359e main/postmarketos-mkinitfs: upgrade to 2.6.1 (MR 5636)
Note: this includes a breaking change in pmaports if pmos-initramfs isn't changed to support merging the initramfs+initramfs-extra. Do not cherry-pick without the required initramfs changes!
2024-10-31 11:54:24 -07:00
Caleb Connolly 4546b99f5f postmarketos-initramfs-minimal: drop (MR 5636)
Drop the fork, nothing depends on it and we can use the new multi-stage
initramfs instead

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:ignore-count]
[ci:skip-vercheck]
2024-10-31 11:54:24 -07:00
Caleb Connolly affa4134ca device/*/*: enable deviceinfo_create_initfs_extra instead of depending on initramfs-minimal (MR 5636)
Make use of the new multi-stage initramfs rather than the minimal
variant, and inform mkinitfs that the initramfs-extra archive should be
created to save space.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>

[ci:ignore-count]
2024-10-31 11:54:24 -07:00
Caleb ConnollyandClayton Craft cb8414a20d postmarketos-initramfs: unify with minimal initramfs (MR 5636)
We previously forked the initramfs into a minimal variant for highly
space constrained devices, to allow the normal variant to gain
additional functionality like the debug-shell (With OSK). Initially the
hope was that only a handful of devices would need the minimal variant,
but in practise this has not been the case.

Trying to maintain two diverging forks of the initramfs is absoutely
unsustainable and (to be frank) a bit silly.

Based on discussion with craftyguy and newbyte, let's re-architect the
initramfs to run in two stages, with the second stage being part of
initramfs-extra. By itself this doesn't make a lot of sense, since
requiring the boot partition be mounted for the debug-shell to be useful
is a major downgrade.

However this can be used in tandem with pending support for a new
deviceinfo_create_initfs_extra variable, this is default false in
mkinitfs which finally gets rid of initramfs-extra entirely for devices
that don't need it.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2024-10-31 11:54:24 -07:00
Caleb Connolly 1a9eb8973e postmarketos-initramfs: run_hooks: hide ls error (MR 5636)
We need to use ls to check if the hooks dir contains any hooks
(otherwise the wildcard doesn't work). But ls prints an error if the dir
is missing or empty. Hide the error to not pollute the log.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-10-31 11:54:24 -07:00
Caleb Connolly d8530c4144 postmarketos-initramfs: remove support for /boot/.pmos_export_logs (MR 5636)
This was only added recently, is likely not used by anyone, and
introduces hard to resolve dependencies on /boot being mounted which we
may not want in the future.

Remove it to drop some complexity.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-10-31 11:54:24 -07:00
Oliver Smith c45d7ec0a5 cross/crossdirect: fakeroot: add helpful error msg (MR 5744)
Alpine's abuild runs build() without fakeroot, and package() with
fakeroot. From the APKBUILD reference page in the Alpine wiki:

> Note: Building in fakeroot will reduce performance for parallel
> builds dramatically. It is for this reason that we split the build
> and package process into two separate functions.

Every now and then we see a package that tries to run a compiler (gcc,
g++, clang, ...) during package() in the APKBUILD. This is a bug in the
APKBUILD / build system of the program we are packaging. All compiling
should be done during build().

Let crossdirect print the following when this happens:

  ============================================================================================
  ERROR: crossdirect was called with: LD_PRELOAD=libfakeroot.so
  This means your package tried to run a compiler during package().
  This is not supported by crossdirect, and usually not a good idea.
  * Try to fix your APKBUILD so it does not run the compiler during package(), only in build()
    * If you're using meson install, try to add '--no-rebuild'
  * If this is not possible, you can work around it by setting options="!pmb:crossdirect"
    (compilation will be slower!)
  ============================================================================================

Instead of:

  ERROR: crossdirect: can't handle LD_PRELOAD: libfakeroot.so
  Please report this at: https://gitlab.com/postmarketOS/pmaports/issues
  As a workaround, you can compile without crossdirect.

In the past I've also tried to add 'strcmp(ldPreload, "libfakeroot.so") == 0'
(pmaports MR 2231), and today I made the same patch. The current code
looks like it would then work by just using libfakeroot.so from the
native chroot, but it does not work. And as mentioned, if we hit this
then we are compiling in package() which is something we should not do
anyway!

Fixes: pmb issue 2039
Related: pma issue 2351, pma MR 5738
2024-10-30 22:24:57 +01:00
Clayton Craft f30cb0d74b main/postmarketos-ui-gnome-mobile: remove nonexistent nm-elogind dependency (MR 5742)
Dropped in aports @ 3e7a2f54
2024-10-28 23:07:47 -07:00
Kevin Widjaja f58357bebe sony-togari: new device (MR 5739) 2024-10-28 17:45:06 +03:00
Bart Ribbers a83466f5fc temp/gnome-shell-mobile: remove dependency on removed networkmanager-common (MR 5740)
[ci:skip-build]: already built successfully in CI
2024-10-28 14:10:17 +01:00
Andreas Kemnade ce3f3240c9 linux-postmarketos-imx-ereader: update to 6.11.2 (MR 5731) 2024-10-28 10:02:13 +09:00
Nikita Travkin d3cf846739 main/dtbloader: Upgrade to 1.2.2 (MR 5737)
[ci:skip-build]: already built successfully in CI
2024-10-27 11:35:50 +01:00
Barnabás Czémán d47cdc4186 device-lg-hammerhead: use lk2nd-msm8974-lg-hammerhead (MR 5691) 2024-10-26 22:40:54 +09:00
Barnabás Czémán 0ca2aeff2c device-oneplus-bacon: switch to lk2nd-msm8974 (MR 5691)
Switch to lk2nd-msm8974 because separate appended
dtb image build is not needed anymore.
2024-10-26 22:40:54 +09:00
Barnabás Czémán b0ce64a2ce device-motorola-ali: switch to lk2nd-msm8953 (MR 5691)
Custom lk2nd build for motorla-ali is not needed anymore.
2024-10-26 22:40:54 +09:00
Barnabás Czémán 1275eb848f main/lk2nd-msm8953: remove package (MR 5691)
Remove old lk2nd-msm8953 package in favor of lk2nd package.
2024-10-26 22:40:54 +09:00
Barnabás Czémán c6e0ce6379 main/lk2nd: upgrade to 19.0 (MR 5691)
lk2nd 19.0 supports new platforms and simplifies image formats.
2024-10-26 22:40:54 +09:00
Oliver Smith 378cbbb235 linux-purism-librem5: add pmb:kconfigcheck-librem5 (MR 5633)
Follow up to MR 5562, which introduced category:librem5. Add the related
option, so CI actually enforces this category for the Librem 5.

[ci:skip-vercheck]: no need to rebuild for this
2024-10-23 13:24:10 +02:00
Oliver Smith a6f188af10 CI: common.run_pmbootstrap: use simple check=True (MR 5633)
Use check=True instead of running check_returncode() afterwards, it has
the same effect and is shorter.
2024-10-23 13:24:10 +02:00
Oliver Smith 4ef0a4e9ad CI: apkbuild_linting: fix missing output (MR 5633)
pmbootstrap used to exit with 0 if "pmbootstrap lint" failed. This was
the case in 2.3.x too, but I assumed this was a regression and fixed it
recently in pmbootstrap MR 2398.

It turns out that the CI code relied on this assumption, it captured the
output of "pmbootstrap lint", and only after it is done it checks if the
output wasn't empty and prints it in that case followed by exit 1.

Now that pmbootstrap actually exits with 1, CI already fails at
"common.run_pmbootstrap" and doesn't get to the part where it would be
printed.

I think "exit 1" on error is actually the right thing to do in
pmbootstrap, so I'll leave that in. Adjust CI to just run "pmbootstrap
lint", removing the additional output capture logic that isn't used
anywhere besides here. This also has the advantage that we get the
output "live", without buffering it completely first.
2024-10-23 13:24:06 +02:00
Jakob Hauser a8a4d06fac device-qemu-*: set a default resolution for X11 (MR 5712)
Qemu by default starts a GTK window in VGA resolution 640x480. The content
adapts to this resolution, thus X11 shows up in resolution 640x480 as well.

This resolution causes some handling issues. In Xfce4 the shutdown button of
the menu isn't reachable. Even worse in MATE, where the "Apply" button for
changing the resolution is out of the screen, making it difficult to change
the resolution.

The default resolution for X11 can be set by a config file. The Qemu GTK
window resolution remains independently at default 640x480. Setting the X11
resolution to default 800x600 mitigates the issue: Most of the screen content
becomes accessible while font size and button sizes are still large enough.
From this point the user can adjust the resolutions of the Qemu GTK window
and X11 content as desired.
[ci:skip-build]: already built successfully in CI
2024-10-23 00:23:40 -07:00
Luca Weiss a9ab9a3925 cross/busybox-static-*: upgrade to 1.37.0-r3 (MR 5727)
[ci:skip-build]: already built successfully in CI
2024-10-23 00:19:15 -07:00
Clayton Craft 66cffd1903 main/postmarketos-ui-sway: enable portals (MR 5643)
This adds the wlr and GTK portal backends so that apps using portals will work OOTB.

The GTK backend is added because the wlr backend does not provide some essential portals, e.g. for camera
[ci:skip-build]: already built successfully in CI
2024-10-23 00:04:26 -07:00
Clayton Craft 36c12f1809 device-lenovo-21bx: depend on alsa-ucm-conf (MR 5714)
fixes #3251

[ci:skip-build]: already built successfully in CI
2024-10-22 23:59:16 -07:00
Clayton Craft 5541f19df4 main/postmarketos-installkernel: install to /sbin (MR 5728)
This reverts 622140965c, which basically broke installkenrel because
the kernel build system is hardcoded to look for installkernel in /
sbin/installkernel.

We'll have to move then once usr merge is complete and the symlink is
created for /sbin
[ci:skip-build]: already built successfully in CI
2024-10-22 23:21:23 -07:00
Luca Weiss da8d31d637 linux-postmarketos-qcom-msm8974: upgrade to 6.11.4 (MR 5725)
Some kconfig changes to reduce kernel size to avoid conflict of 0x8000
(kernel load address) + uncompressed kernel size (arch/arm/boot/Image) +
compressed kernel size (arch/arm/boot/zImage) being bigger than
0x1e00000 (tags address).

This causes mostly silent boot failures, with CONFIG_DEBUG_LL messages
such as "no ATAGS support: can't continue" or "Error: invalid dtb and
unrecognized/unsupported machine ID" can be seen on UART, though they're
not very clear that the kernel image is essentially too big for what lk
is setting up.

Manual kconfig changes:
* Convert some =y to =m to reduce kernel size, mostly NFS_FS and CIFS
  since those are quite big and there's no point in having them
  built-in.
* Disable EXT2_FS & EXT3_FS - handled by EXT4 driver
* Disable PCI - unused
[ci:skip-build]: already built successfully in CI
2024-10-22 21:17:57 +02:00
Caleb Connolly a79aaf0136 CI: fix autoupdate bot and don't enable it for local CI (MR 5724)
Update the bot email address, and don't enable the script for local CI
since it relies on protected GitLab CI variables. This could be fixed in
the future by safely handling these not being available.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-10-22 13:55:47 +02:00
Clayton Craft 901cb95204 main/postmarketos-base-ui: configure flathub from file drop-in (MR 5726)
Per the flatpak manpage, repos can be configured OOTB by dropping config under /etc/flatpak/remotes.d. Using the install script requires doing stuff over the internet, which may not always work at image build time. By using the drop-in file, we avoid having to connect to flathub.

The manpage only mentions /etc/flatpak, and nothing about /usr ...
2024-10-21 11:41:06 -07:00
Clayton Craft ad9a7874a5 cross/gcc-*: upgrade to 14.2.0-r4 (MR 5722)
Quite a messy upgrade due to changes in both abuild and in the upstream
gcc APKBUILD breaking various things. Pmbootstrap also seems to
misbehave in GitLab CI making it difficult to validate.

Manual fixups:
* Set !tracedeps - changed behavior in abuild
* Manually add "so:" dependencies to avoid issues with !tracedeps set
  (becomes obvious with crossdirect)
* Add back makedepends="$makedepends_build $makedepends_host"
* Disable move of some files into usr/lib to avoid
  ERROR: gcc-aarch64-14.2.0-r4: trying to overwrite usr/lib/libgcc_s.so.1 owned by libgcc-14.2.0-r4.

[ci:skip-build] # pmbootstrap bugs will prohibit this from building
                # anyways, don't even attempt

Co-developed-by: Luca Weiss <luca@lucaweiss.eu>
2024-10-21 13:25:53 +02:00
Jens Reidel e729f058ab main/unixbench: upgrade to 5.1.3_git20230411 (MR 5715)
And re-enable riscv64 as the latest commits have added
support for riscv64.

Signed-off-by: Jens Reidel <adrian@travitia.xyz>
[ci:skip-build]: already built successfully in CI
2024-10-19 16:18:32 +02:00
Clayton Craft 344658db76 CI: gitlab: increase git clone depth to 100 (MR 5718)
Technically this option can be configured in the Gitlab UI, but I spent
about 3 hours debugging a CI failure caused by it being too low and
I don't want to risk forgetting this can happen later if/when someone
decides to lower it in the UI. By setting it here, we can have some
context/history about why.

This fixes the CI in !5688

Also see:
https://docs.gitlab.com/17.4/ee/user/project/repository/monorepos/index.html#shallow-cloning
[ci:skip-build]: already built successfully in CI
2024-10-19 14:07:38 +02:00
Clayton Craft f37c93ed7e ci: common: fix typo when printing upstream branch sha (MR 5718)
I was confused for a while about why the SHA printed by CI differed from
the actual upstream/master SHA:

     commit upstream/master: f822b7ee0d06f05ff6d2eb37bcf4a1825569be692
     real upstream/master: 822b7ee0d0
2024-10-19 14:07:24 +02:00
Barnabás Czémán e03dc38b5c linux-postmarketos-qcom-msm8953: upgrade to 6.11.1 (MR 5690)
[ci:skip-build]: already built successfully in CI
2024-10-19 13:44:20 +02:00
Barnabás Czémán e21859c6e1 qcom-msm8953: new device (MR 5692)
With the new changes in lk2nd that allow us to support extlinux.conf,
we can now generate image that would be generic to these devices.

[ci:skip-build]: already built successfully in CI
2024-10-19 13:30:52 +02:00
Luca Weiss 8e1e107725 gnome-shell-extension-pinenote: remove (MR 5721)
mozjs102-dev has been removed from aports in September 2023[0] so
obviously noone has ever run this in the last year. Remove it.

[0] https://gitlab.alpinelinux.org/alpine/aports/-/commit/14107fd2b47f1ab899b0ca9e525b8970f1e1f4c9
[ci:skip-build]: already built successfully in CI
2024-10-19 13:25:41 +02:00
Luca Weiss 344a1f9865 device-pine64-pinenote: remove gnome subpackage (MR 5721)
Prepare to remove the gnome-shell-extension-pinenote package.
2024-10-19 13:25:34 +02:00
Luca Weiss 284c7034e5 device-samsung-on7xelte-downstream: fix kernel package dependency (MR 5721) 2024-10-19 13:25:25 +02:00
Luca Weiss b6673372f5 device-raspberry-pi: fix linux-rpi2 dependency (MR 5721)
The package was renamed/replaced in Alpine with:
https://gitlab.alpinelinux.org/alpine/aports/-/commit/6f4fa0525cecbd37a6a9d49c64e545348f521ed7
2024-10-19 13:25:25 +02:00
Luca Weiss 878e3d7bf7 cross/musl-*: upgrade to 1.2.5-r5 (MR 5720)
[ci:skip-build]: already built successfully in CI
2024-10-17 23:13:24 -07:00
Richard Acayan 8d7c0d1c84 firmware-google-sargo: add audio calibration file (MR 5709)
[ci:skip-build]: already built successfully in CI
2024-10-17 17:15:23 +02:00
Richard Acayan accb6bf0a9 alsa-ucm-conf-qcom-sdm670: update to 1.2.9_git20241012 (MR 5709) 2024-10-17 17:15:23 +02:00
Richard Acayan 10ccdaccc7 google-bonito: add kernel for tianma panel (MR 5709) 2024-10-17 17:15:23 +02:00
Richard Acayan f7bc9a023b linux-postmarketos-qcom-sdm670: upgrade to v6.11.3 (MR 5709) 2024-10-17 17:15:23 +02:00
Alexey Min 71aee6a9c1 device-xiaomi-clover: enable GPU / panel support (MR 5702)
Include Qualcomm display subsystem and Adreno GPU driver, along
with panel driver into initramfs.

And mark devices as GPU accelerated to allow using all the UIs.
2024-10-17 03:49:36 +03:00
Alexey Min 5da8f081d5 linux-postmarketos-qcom-sdm660: upgrade to 6.11.1 (MR 5702)
This release has several little but neat fixes not really worth
mentioning, but most notable features are:

* Xiaomi Mi PAD 4 and PLUS (clover) *both* now have proper panel
  driver and full GPU support. On par with other our devices now.
  Thanks to @kubntd for code and @barni2000 for testing !
* ath10k wlan no-msa-indication hack was dropped in favor of
  solution that was accepted upstream.
* Adreno 5xx preemption fixes were also included.
2024-10-17 03:49:30 +03:00
Jens Reidel 822b7ee0d0 device-xiaomi-scorpio: depend on postprocessd (MR 5699)
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
[ci:skip-vercheck]

[ci:skip-build]: already built successfully in CI
2024-10-14 14:39:41 +02:00
Jens Reidel 4a43fc75e0 device-pine64-pinephone: depend on postprocessd (MR 5699)
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2024-10-14 14:39:38 +02:00
Jens Reidel be6b56d467 device-purism-librem5: depend on postprocessd (MR 5699)
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2024-10-14 14:39:34 +02:00
Jens Reidel 34bc19e3ca main/postmarketos-ui-{gnome-mobile,plasma-mobile,sxmo-de-sway}: remove postprocessd (MR 5699)
This package is not buildable for riscv64 and ppc64le. Devices that use
megapixels should depend on it explicitly.

Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2024-10-14 14:39:29 +02:00
Pablo Correa Gómez a604b9068b main/postmarketos-mkinitfs: trigger on udev changes (MR 5695)
Our regular initramfs imports eudev and its rules, so we need to make
sure that we update the initramfs if they change

[ci:skip-vercheck]: version bump not needed
[ci:skip-build]: already built successfully in CI
2024-10-14 14:34:07 +02:00
Sergey Lisov 9b55052b58 modem/samsungipcd: upgrade to v0.3.0 (MR 5698)
This also adds a PPP bypass, so that traffic can flow through the native
interface (rmnet0) directly, and not via the emulated PPP.

[ci:skip-build]: already built successfully in CI
2024-10-13 19:51:32 +02:00
Robert Mader 58625e8394 temp/libcamera: backport more swISP patches (MR 5710)
Fixing or related to:
 - https://bugs.libcamera.org/show_bug.cgi?id=234
 - https://bugs.libcamera.org/show_bug.cgi?id=235
 - https://bugs.libcamera.org/show_bug.cgi?id=236

[ci:skip-build]: already built successfully in CI
2024-10-13 16:47:25 +02:00
Alistair Francis 31aa6e8a2b device-purism-librem5: upgrade to 65pureos1 (MR 5700)
Signed-off-by: Alistair Francis <alistair@alistair23.me>
2024-10-12 12:56:41 +00:00
Adam Thiede d3e6de365c linux-postmarketos-mediatek-mt8173: upgrade to 6.11.3 (MR 5705) 2024-10-11 21:00:09 +09:00
Sicelo A. Mhlongo f0313fc0a2 device-nokia-n900: explicitly choose msdos partitioning scheme (MR 5707)
u-boot on the Nokia N900 cannot boot from GPT, which will soon be the default
scheme. Hence choose msdos explicitly.
2024-10-09 02:24:08 +02:00
Pablo Correa Gómez c1013ea2fd device-purism-librem5: rebuild to update references to gitlab.postmarketos.org (MR 5696)
[ci:skip-vercheck]
[ci:ignore-count]
2024-10-07 12:59:45 +02:00
Pablo Correa Gómez 8a14c77745 cross/crossdirect: rebuild to update references to gitlab.postmarketos.org (MR 5696) 2024-10-07 12:58:04 +02:00
Pablo Correa Gómez fdaee79c61 main,modem/*: rebuild to update references to gitlab.postmarketos.org (MR 5696)
Since either url or source change
2024-10-07 12:58:03 +02:00
Pablo Correa Gómez 9552b4a781 */*: update references to gitlab.postmarketos.org that need no rebuild (MR 5696)
These are in files or parts of files that are not part of the
checksums, or that serve as packaging-information only. Thus, require
no rebuild
2024-10-07 12:57:38 +02:00
Pablo Correa Gómez 8e1d778ecc ci: fix paths to point to gitlab.postmarketos.org (MR 5696) 2024-10-07 12:57:38 +02:00
Jakob Hauser d47c81e808 main/swclock-offset: upgrade to 0.2.4 (MR 5687)
The Makefile of swclock-offset was previously changed to install the scripts
according to the /usr merge. In the service files for openrc and systemd,
however, the paths to the scripts need to be adapted as well. Version 0.2.4
catches up on this.

[ci:skip-build]: already built successfully in CI
2024-10-05 08:44:29 -07:00
Joel Selvaraj 82a208d1cd soc-qcom-sdm845: update ucm conf to include pixel3 speaker support (MR 5686)
[ci:skip-build]: already built successfully in CI
2024-10-05 12:54:21 +02:00
Joel Selvaraj 05b0edca69 linux-postmarketos-sdm845: update kernel config (MR 5686)
The config file was not up-to-date with the sdm845 kernel repo. Fix it.
This will also fix the missing Pixel 3 touchscreen config and kconfig checks.
2024-10-05 12:54:21 +02:00
postmarketOS CI 3043f30d72 linux-next: upgrade to next-20241004 2024-10-05 06:59:01 +00:00
Luca Weiss 6bdf450942 linux-postmarketos-qcom-sm6350: upgrade to 6.11.0 (MR 5602)
Manual kconfig changes:
* Switch DRM_MSM & panel driver back to =y, seems to improve display
  issues a bit

Closes https://gitlab.com/postmarketOS/pmaports/-/issues/2969
[ci:skip-build]: already built successfully in CI
2024-10-04 23:19:25 +02:00
Clayton Craft 8018402b15 main/swclock-offset: upgrade to 0.2.3 (MR 5642)
- now installs to /usr by default
- now installs systemd service files by default
- added -systemd subpkg to handle service files

[ci:skip-build]: already built successfully in CI
2024-10-04 13:58:00 -07:00
Clayton Craft 1d04fa02a8 main/postmarketos-base: install swapfile script to /usr/bin (MR 5642) 2024-10-04 13:57:59 -07:00
Clayton Craft dd0e759c19 main/mdss-fb-init-hack: install to /usr/bin (MR 5642) 2024-10-04 13:57:59 -07:00
Clayton Craft 622140965c main/postmarketos-installkernel: install to /usr/bin (MR 5642) 2024-10-04 13:57:59 -07:00
Clayton Craft f60eb86dc0 main/postmarketos-android-recovery-installer: install to /usr/bin (MR 5642) 2024-10-04 13:57:59 -07:00
Clayton Craft 8cc91cfebc main/bootchart2: install to /usr (MR 5642) 2024-10-04 13:57:59 -07:00
Clayton Craft 21cde1b137 main/boot-deploy: install to /usr/bin (MR 5642) 2024-10-04 13:57:59 -07:00
Clayton Craft fb2e31c898 kobo-epdc-extractor: upgrade to 1.1, install to /usr (MR 5642)
1.1 includes a patch to support using PREFIX, which we use here to install to /usr
2024-10-04 13:57:59 -07:00
Clayton Craft b0e12a5532 main/unl0kr: fde-unlock script to /usr/bin (MR 5642)
To support merged /usr
2024-10-04 13:57:58 -07:00
Masanori Ogino 2621ad2c48 postmarketos-ui-(lxqt|mate): depend on DejaVu (MR 5638)
MR 5540 breaks the Enter key label in onboard OSK with LXQt and Mate. In
theory Droid can be used instead, but it actually does not work.

We can't use _pmb_recommends here since v24.06 -> v24.12 upgrade will
break onboard unless any package depends on font-dejavu.

Signed-off-by: Masanori Ogino <mogino@acm.org>
[ci:skip-build]: already built successfully in CI
2024-10-04 13:45:17 -07:00
Clayton Craft a44590ec47 ci: build_changed_aports: fix building changed aports in extra-repos/systemd (MR 5576)
With this change, the build test will only build changed aports when
they are in an enabled repo. It will also detect when a changed aport is
in extra-repos/systemd, and build it later with systemd support enabled.

[ci:skip-build]: already built successfully in CI
2024-10-04 12:07:26 -07:00
Petr Hodina b97a6d30c3 testing/firmware-google-blueline: new aport (MR 5514)
Co-developed-by: Victoria Brekenfeld ...
2024-10-04 20:43:21 +02:00
Petr Hodina 3000151e0a testing/firmware-google-blueline-dtbo: new aport (MR 5514)
Co-developed-by: Victoria Brekenfeld ...
2024-10-04 20:43:21 +02:00
Petr Hodina 6d6f286e53 testing/device-google-blueline: New aport (MR 5514) 2024-10-04 20:43:21 +02:00
Caleb Connolly 008bb8b38d linux-postmarketos-qcom-sdm845: upgrade to 6.11.0
Let's get this cooking in edge.

Boot tested on the OnePlus 6, 6T, and Yoga C630

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-10-04 20:38:15 +02:00
Barnabás Czémán 6f1aeedba3 device/msm8974*: generate extlinux.conf (MR 5682)
Generate extlinux.conf for msm8974 devices make ability
switch to new lk2nd seamlessly.
2024-10-04 07:04:28 +03:00
postmarketOS CI e806b00884 linux-next: upgrade to next-20241003 2024-10-03 21:01:37 +00:00
Pablo Correa Gómez b77fd768e1 petitboot-motorola-smi: get udev rules from /usr/lib/udev (MR 5679)
All rules have been moved to /usr as the move to /usr-merge from
alpine
2024-10-03 18:21:33 +02:00
Pablo Correa Gómez 85d978165a main/postmarketos-mkinitfs-hook-ci: stop including /lib/udev (MR 5679)
Nothing in Alpine or pmOS ships to /lib/udev any more since today and
including it while it doesn't exist breaks the building of images.
2024-10-03 18:19:27 +02:00
Pablo Correa Gómez deed4aa691 main/unl0kr: stop including /lib/udev (MR 5679)
Nothing in Alpine or pmOS ships to /lib/udev any more since today and
including it while it doesn't exist breaks the building of images.
2024-10-03 18:19:27 +02:00
Bart Ribbers f5e579f2d5 main/postmarketos-initramfs: stop including /lib/udev (MR 5678)
Nothing in Alpine or pmOS ships to /lib/udev any more since today and
including it while it doesn't exist breaks the building of images.

[ci:skip-build]: already built successfully in CI
2024-10-03 17:59:47 +02:00
Duje Mihanović 744ac34b5d linux-samsung-coreprimevelte: upgrade to 6.11.0 (MR 5672) 2024-10-03 06:35:11 +09:00
postmarketOS CI 2e82a5580d linux-next: upgrade to next-20241002 2024-10-02 21:05:45 +00:00
Adam Thiede e5093e14b8 linux-postmarketos-mediatek-mt8173: upgrade to 6.11.1 (MR 5611)
introducing a patch to fix blank framebuffer; will report this upstream
as well. Bad commit is bc46eb5d5d7780782c70c7915f59ed25a908d550
2024-10-02 23:13:43 +09:00
Pablo Correa Gómez 1fdfc60c36 main/postmarketos-base-eink: install udev rule under /usr (MR 5663)
[ci:ignore-count]

[ci:skip-build]: already built successfully in CI
2024-10-02 15:26:08 +02:00
Pablo Correa Gómez d175b10ef2 main/unl0kr: fix paths due to /usr merge (MR 5663)
Consequence of
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/72703
2024-10-02 15:26:04 +02:00
Pablo Correa Gómez fc7a6b020b main/postmarketos-mkinitfs-hook-ci: fix paths due to /usr merge (MR 5663)
Consequence of
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/72703
2024-10-02 15:26:04 +02:00
Pablo Correa Gómez d424c71493 main/postmarketos-initramfs: fix paths due to /usr merge (MR 5663)
Consequence of
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/72703
2024-10-02 15:26:04 +02:00
Pablo Correa Gómez b4b9abc4fe temp/mutter-mobile: rebuild to move udev rules under /usr (MR 5663)
This packages fetches the directory from the pkgconfig file
2024-10-02 15:26:04 +02:00
Pablo Correa Gómez f97ec6d74a temp/iio-sensor-proxy: rebuild to move udev rules under /usr (MR 5663)
This packages fetches the directory from the pkgconfig file
2024-10-02 15:26:04 +02:00
Pablo Correa Gómez 878e7179f1 temp/gnome-settings-daemon-mobile: rebuild to move udev rules under /usr (MR 5663)
This packages fetches the directory from the pkgconfig file
2024-10-02 15:26:04 +02:00
Pablo Correa Gómez 2779c51baf main/postmarketos-base-downstream: move udev rules under /usr (MR 5663)
Depends on
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/72703
2024-10-02 15:26:04 +02:00
Pablo Correa Gómez ca8d40f727 device-purism-librem5dev: move hwdb under /usr (MR 5663)
Depends on
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/72703
2024-10-02 15:26:03 +02:00
Arnav Singh 5b7d971d3e linux-postmarketos-allwinner: upgrade to 6.11.0_git20240915 (MR 5669)
- 0012-ARM-dts-allwinner-sun5i-a13-pocketbook-614-plus-Add-.patch

  The dts added by this patch is now present in upstream, so this patch has
  been removed. Note that the upstream dts has differences from the one that
  this patch added.

- Set myself as primary maintainer since Jan has been inactive for
  many months now.
[ci:skip-build]: already built successfully in CI
2024-10-02 15:00:46 +02:00
fossdd a9e97f5aa6 main/postmarketos-ui-gnome-mobile: use blue accent color by default (MR 5648)
See 20_postmarketos-blue-accent.gschema.override for reasoning.
2024-10-02 11:20:17 +02:00
fossdd d6344ca124 main/postmarketos-ui-phosh: use blue accent color by default (MR 5648)
See 20_postmarketos-blue-accent.gschema.override for reasoning.

Closes https://gitlab.com/postmarketOS/pmaports/-/issues/3218
2024-10-02 11:19:42 +02:00
postmarketOS CI b081572252 linux-next: upgrade to next-20241001 2024-10-01 21:02:35 +00:00
781 changed files with 21642 additions and 7881 deletions

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
+4 -11
View File
@@ -1,12 +1,9 @@
#!/bin/sh -e
# Description: update a list of packages
# Options: native slow
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
apk add git openssh-keygen grep curl
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0 $*"
fi
@@ -14,11 +11,7 @@ fi
git config --global --add safe.directory "$CI_PROJECT_DIR"
git config --global user.name "postmarketOS CI"
# pmaports
# The email address is the username of the bot (from the GitLab group members page) @noreply.gitlab.com
git config --global user.email "project_8065375_bot_13cf44ca4cd2c938688af6e3d500d9cb@noreply.gitlab.com"
# For testing with pmaports-autoupdate-test repo
# git config --global user.email "project_58002231_bot_be2d4e9e7aba929855726aafe12940d6@noreply.gitlab.com"
git config --global user.email "project_226_bot_a365eaa0c380d1bee0af03adf42ebea3@noreply.gitlab.postmarketos.org"
# Configure SSH key for signing
mkdir -p ~/.ssh
@@ -90,9 +83,9 @@ update_linux_next() {
}
# For testing
#git remote add gitlab https://pmos-ci:"$PMAPORTS_PUSH_TOKEN"@gitlab.com/postmarketOS/pmaports-autoupdate-test.git
#git remote add gitlab https://pmos-ci:"$PMAPORTS_PUSH_TOKEN"@gitlab.postmarketos.org/postmarketOS/pmaports-autoupdate-test.git
git remote add gitlab https://pmos-ci:"$PMAPORTS_PUSH_TOKEN"@gitlab.com/postmarketOS/pmaports.git
git remote add gitlab https://pmos-ci:"$PMAPORTS_PUSH_TOKEN"@gitlab.postmarketos.org/postmarketOS/pmaports.git
git fetch gitlab
git checkout --track gitlab/master
+1 -1
View File
@@ -11,7 +11,7 @@ if [ "$(id -u)" = 0 ]; then
# In .gitlab-ci.yml currently .ci/pytest.sh runs before this and
# already downloads and runs install_pmbootstrap.sh.
if ! [ -e install_pmbootstrap.sh ]; then
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
fi
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
+8 -1
View File
@@ -57,7 +57,7 @@ fi
POSTMARKETOS_WALLPAPER_PATH='/usr/share/wallpapers/postmarketos.jpg'
# The excluded devices are "grandfathered in". New devices should not be added here.
# See https://gitlab.com/postmarketOS/pmaports/-/issues/2529
# See https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/2529
if grep -qr $POSTMARKETOS_WALLPAPER_PATH \
--exclude-dir='device-pine64-pinetab' \
--exclude-dir='device-oneplus-kebab' \
@@ -87,4 +87,11 @@ if grep -qEr 'PMOS_NO_OUTPUT_REDIRECT' -- *; then
exit_code=1
fi
if grep -qEr '^deviceinfo_kernel_cmdline.*[\"\s]console=null' -- device/; then
echo "ERROR: Do not use console=null in the kernel command line."
echo "Use these params to quiet console on boot: quiet loglevel=2"
echo "For more information, see: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/2989"
exit_code=1
fi
exit "$exit_code"
+1 -1
View File
@@ -6,7 +6,7 @@
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
+1 -6
View File
@@ -23,9 +23,4 @@ if __name__ == "__main__":
print("No APKBUILDs to lint")
sys.exit(0)
result = common.run_pmbootstrap(["-q", "lint"] + packages, output_return=True)
if len(result) > 0:
print("Linting issues found:")
print(result)
sys.exit(1)
common.run_pmbootstrap(["-q", "lint"] + packages)
+50 -13
View File
@@ -2,6 +2,7 @@
# Copyright 2021 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import sys
import os
import pathlib
# Same dir
@@ -9,6 +10,7 @@ import common
# pmbootstrap
import add_pmbootstrap_to_import_path
import pmb.core
import pmb.parse
import pmb.parse._apkbuild
import pmb.helpers.pmaports
@@ -53,22 +55,34 @@ if __name__ == "__main__":
# Package count sanity check
common.get_changed_packages_sanity_check(len(packages))
# [ci:skip-build]: verify checksums and stop
verify_only = common.commit_message_has_string("[ci:skip-build]")
if verify_only:
print("WARNING: not building changed packages ([ci:skip-build])!")
print("verifying checksums: " + ", ".join(packages))
verify_checksums(packages, arch)
sys.exit(0)
# Load context
sys.argv = ["pmbootstrap.py", "chroot"]
args = pmb.parse.arguments()
context = get_context()
# Filter out packages that can't be built for given arch
# Get set of all buildable packages for the enabled repos, for skipping unbuildable
# aports later. We might be given a changed aport from e.g. extra-repos/systemd when
# that repo is not enabled
buildable_pkgs = set()
for path in pmb.core.pkgrepo.pkgrepo_iter_package_dirs():
buildable_pkgs.add(os.path.basename(path))
# To store a list of packages from extra-repos/systemd for special handling later:
systemd_pkgs = list()
# Filter out packages that either:
# 1. can't be built for given arch
# 2. are not found in enabled repos
# (Iterate over copy of packages, because we modify it in this loop)
for package in packages.copy():
if package not in buildable_pkgs:
print(f"{package}: not in any available repos, skipping")
packages.remove(package)
# FIXME: this should probably be more generic, if other repos are added later?
# This just tosses the package into the list of packages to try building later w/ systemd enabled, and assumes it'll be found there.
systemd_pkgs.append(package)
continue
apkbuild_path = pmb.helpers.pmaports.find(package)
apkbuild = pmb.parse._apkbuild.apkbuild(pathlib.Path(apkbuild_path, "APKBUILD"))
@@ -79,8 +93,31 @@ if __name__ == "__main__":
# No packages: skip build
if len(packages) == 0:
print(f"no packages changed, which can be built for {arch}")
sys.exit(0)
# Build packages
print(f"building in strict mode for {arch}: {', '.join(packages)}")
build_strict(packages, arch)
else:
verify_only = common.commit_message_has_string("[ci:skip-build]")
if verify_only:
# [ci:skip-build]: verify checksums and stop
print("WARNING: not building changed packages ([ci:skip-build])!")
print("verifying checksums: " + ", ".join(packages))
verify_checksums(packages, arch)
else:
# Build packages
print(f"building in strict mode for {arch}: {', '.join(packages)}")
build_strict(packages, arch)
# Build packages in extra-repos/systemd
# FIXME: this should probably be more generic, if other repos are added later?
if systemd_pkgs:
common.run_pmbootstrap(["config", "systemd", "always"])
verify_only = common.commit_message_has_string("[ci:skip-build]")
if verify_only:
# [ci:skip-build]: verify checksums
print("WARNING: not building changed packages for extra-repos/systemd: ([ci:skip-build])!")
print("verifying checksums: " + ", ".join(packages))
verify_checksums(systemd_pkgs, arch)
else:
# Build packages
print(f"building in strict mode for {arch}, from extra-repos/systemd: {', '.join(packages)}")
build_strict(systemd_pkgs, arch)
+1 -1
View File
@@ -5,7 +5,7 @@
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
+6 -36
View File
@@ -36,7 +36,7 @@ def run_git(parameters, check=True, stderr=None):
def add_upstream_git_remote():
""" Add a remote pointing to postmarketOS/pmaports. """
run_git(["remote", "add", "upstream",
"https://gitlab.com/postmarketOS/pmaports.git"], False)
"https://gitlab.postmarketos.org/postmarketOS/pmaports.git"], False)
run_git(["fetch", "-q", "upstream"])
@@ -44,14 +44,10 @@ def commit_message_has_string(needle):
return needle in run_git(["show", "-s", "--format=full", "HEAD"])
def run_pmbootstrap(parameters, output_return=False):
def run_pmbootstrap(parameters):
""" Run pmbootstrap with the pmaports dir as --aports """
cmd = ["pmbootstrap", "--aports", get_pmaports_dir()] + parameters
stdout = subprocess.PIPE if output_return else None
result = subprocess.run(cmd, stdout=stdout, universal_newlines=True)
result.check_returncode()
if output_return:
return result.stdout
subprocess.run(cmd, universal_newlines=True, check=True)
def get_upstream_branch():
@@ -60,34 +56,8 @@ def get_upstream_branch():
:returns: branch name, e.g. "v20.05" """
# Prefer gitlab CI target branch name if it's set (i.e. running in gitlab CI)
if target_branch := os.environ.get("CI_MERGE_REQUEST_TARGET_BRANCH_NAME"):
return target_branch
global cache
if "upstream_branch" in cache:
return cache["upstream_branch"]
# Get channel (e.g. "stable") from pmaports.cfg
# https://postmarketos.org/pmaports.cfg
pmaports_dir = get_pmaports_dir()
pmaports_cfg = configparser.ConfigParser()
pmaports_cfg.read(f"{pmaports_dir}/pmaports.cfg")
channel = pmaports_cfg["pmaports"]["channel"]
# 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 = configparser.ConfigParser()
channels_cfg.read_string(channels_cfg_str)
assert channel in channels_cfg, \
f"Channel '{channel}' from pmaports.cfg in your branch is unknown." \
" This appears to be an old branch, consider recreating your change" \
" on top of master."
ret = channels_cfg[channel]["branch_pmaports"]
cache["upstream_branch"] = ret
return ret
# HACK for master_staging_systemd branch
return "master_staging_systemd"
def get_changed_files(removed=True):
@@ -100,7 +70,7 @@ def get_changed_files(removed=True):
commit_head = run_git(["rev-parse", "HEAD"])[:-1]
commit_upstream = run_git(["rev-parse", branch_upstream])[:-1]
print("commit HEAD: " + commit_head)
print(f"commit {branch_upstream}: f{commit_upstream}")
print(f"commit {branch_upstream}: {commit_upstream}")
# Check if we are HEAD on the upstream branch
if commit_head == commit_upstream:
+1 -1
View File
@@ -8,7 +8,7 @@
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh pytest
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
+2 -1
View File
@@ -10,6 +10,7 @@ expected_directories = [
"device/community",
"device/main",
"device/testing",
"extra-repos/systemd",
"main",
"modem",
"non-free",
@@ -28,7 +29,7 @@ def test_directories():
# Ensure no file in pmaports are executable.
# see https://gitlab.com/postmarketOS/pmaports/-/issues/593.
# see https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/593.
def test_executable_files():
for file in glob.iglob("[!temp]**/**/*", recursive=True):
if os.path.isdir(file) or os.path.islink(file):
+3
View File
@@ -23,6 +23,9 @@ def test_aports_kernel():
apkbuild = pmb.parse.apkbuild(path)
aport_name = os.path.basename(os.path.dirname(path))
if aport_name == "linux-pam":
continue # This package isn't a linux kernel!
if "pmb:cross-native" not in apkbuild["options"]:
raise RuntimeError(f"{aport_name}: \"pmb:cross-native\" missing in"
" options= line")
+5
View File
@@ -12,3 +12,8 @@ indent_style = tab
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
# Forked from Alpine
[extra-repos/systemd/networkmanager/networkmanager.rules]
indent_style = space
indent_size = 4
+7 -17
View File
@@ -10,7 +10,12 @@ stages:
- lint
- build
- autoupdate
variables:
# Default of 20 is pretty small, sometimes MRs have >20 commits in them. 100
# seems like a reasonable balance. If this is too low, git merge-base (from ci/
# common.py) can fail
GIT_DEPTH: 100
# This defines the rules for when a pipeline should run.
workflow:
rules:
@@ -119,7 +124,7 @@ mr-settings:
- *global_before_scripts
- apk -q add python3
script:
- wget -q "https://gitlab.com/postmarketOS/ci-common/-/raw/master/check_mr_settings.py"
- wget -q "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/check_mr_settings.py"
- python3 ./check_mr_settings.py
# build changed aports
@@ -143,11 +148,6 @@ build-x86_64:
script:
- .ci/build-x86_64.sh
build-x86:
extends: .build
script:
- .ci/build-x86.sh
build-aarch64:
extends: .build
script:
@@ -158,16 +158,6 @@ build-armv7:
script:
- .ci/build-armv7.sh
build-armhf:
extends: .build
script:
- .ci/build-armhf.sh
build-riscv64:
extends: .build
script:
- .ci/build-riscv64.sh
auto-update:
stage: autoupdate
rules:
+2
View File
@@ -90,6 +90,7 @@ device/*/device-samsung-lt01/ @knuxify
device/*/device-samsung-m0/ @Newbyte
device/*/device-samsung-manta/ @jenneron @alexmrqt
device/*/device-shift-axolotl/ @amartinz @calebccff @dylanvanassche
device/*/device-solidrun-cubox/ @longnoserob
device/*/firmware-google-sargo/ @flamingradian
device/*/firmware-google-veyron-brcm/ @jenneron
device/*/firmware-odroid-xu4/ @Grimler
@@ -106,6 +107,7 @@ device/*/linux-postmarketos-exynos4/ @Newbyte @Grimler @knuxify
device/*/linux-postmarketos-exynos5/ @jenneron @Grimler
device/*/linux-postmarketos-grate/ @clamor-s @jenneron @jethrob
device/*/linux-postmarketos-imx-ereader/ @akemnade
device/*/linux-postmarketos-marvell-dove/ @longnoserob
device/*/linux-postmarketos-mediatek-mt8173/ @jenneron @adamthiede
device/*/linux-postmarketos-mediatek-mt8183/ @jenneron @binarycraft
device/*/linux-postmarketos-omap/ @MightyM17 @Sicelo
+3 -3
View File
@@ -7,8 +7,8 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
fi
pkgname=busybox-static-aarch64
pkgver=1.36.1
pkgrel=32
pkgver=1.37.0
pkgrel=6
_arch="aarch64"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
88f07677919711bb577f60e1861f4fa555168a8703a0a3b904550e24d4045135bb0296e00464899fc6231df07db09bb11f1bc81cdf593a71a8f74dfc3333c29e busybox-static-1.36.1-r32-aarch64-edge.apk
aa8dc31b1c909b13f09acd372d4544fc5ad004b4250af6f0afb4be29811d36f9e019cb450a61a5a2f12589df4e3a0e27cd8821fb48b7336b9ecb925bcf5130c7 busybox-static-1.37.0-r6-aarch64-edge.apk
"
+3 -3
View File
@@ -7,8 +7,8 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
fi
pkgname=busybox-static-armhf
pkgver=1.36.1
pkgrel=32
pkgver=1.37.0
pkgrel=6
_arch="armhf"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
b0985e2f62df8f1d4e1b7a1206dc3e462df1e6b2a8aae662e57cc497ca3f474f37cc952de0d3bbaad6532d569bf540f17ad4eccc9cabfdc3c9f95f8feaf08049 busybox-static-1.36.1-r32-armhf-edge.apk
30cc8594f76aaddf5b73834fbeb800c5ccac0437554c8ffa55960359946730dba2c553d659338b313fee89e27477f6392dfebc11d543b6228aac6eee26b89dbc busybox-static-1.37.0-r6-armhf-edge.apk
"
+3 -3
View File
@@ -7,8 +7,8 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
fi
pkgname=busybox-static-armv7
pkgver=1.36.1
pkgrel=32
pkgver=1.37.0
pkgrel=6
_arch="armv7"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
f383286e58183232b41a0d299528734cb29b11e51112eab1fe513322a269a2cdf90a1341d7e329ed7cd58e2d158e3a80bc3a5290ef93de2b28aaf7a25b78bfd7 busybox-static-1.36.1-r32-armv7-edge.apk
f77b9bbd3327c5d84aa75cac6cdb6f3c462928f66fa21a81d811e6a2801adaeb1b39abb48f6845d3d8106ff06d8a323fdb11eeb2740279e7b52eb6ecf72c6936 busybox-static-1.37.0-r6-armv7-edge.apk
"
+2 -2
View File
@@ -19,7 +19,7 @@
# version is implemented as simple shell wrappers.
pkgname=crossdirect
pkgver=5.1.0
pkgver=5.2.0
pkgrel=0
pkgdesc="Wrappers to launch native cross compilers in foreign chroots"
url="https://postmarketOS.org"
@@ -82,7 +82,7 @@ package() {
sha512sums="
0f4b48f250425dc57f63955fc8b38477d23db793bee367c3fbe03c3d2a559ba576434d07518310db4cae9d90d501af4051b80038b10fae94b980e537fc9374ad cargo.sh
500107e5aff8b34e74b54982ebcd447fc41bc8283956d506561b031a055cb30ec12698047c2604918b4b6d8560fe03db427a63dff2b83c907e8494b7f5233f29 crossdirect.c
b2e602b7fc95ed403d29f0d754879d5f773c39ee33e726bb10cff17b3c088406dac84f2ca6d8ad563c64370007d98af805d6ee9cd4a06fe3d4c61c0cb90c5c0c crossdirect.c
de2aa6929bbff5db9132673e667f4525b333d062cb1f7a0597dd924de9e5c7215a9f8e2e6263b6fb5ace06f2c4b64f4ebfd0ede9b78add07c2cd08ec8613e98f rustc.sh
ea9bf8db3810d03d0a7395057f3d6e57f7127d87c55deaedc171c255288f5f3cc6fbcc680a5a1b92786cf573875d5dc22521173799fe2639acc97d0715ff905b rust-qemu-linker.sh
"
+13 -8
View File
@@ -43,9 +43,8 @@
void exit_userfriendly()
{
fprintf(stderr, "Please report this at: https://gitlab.com/postmarketOS/pmaports/issues\n");
fprintf(stderr, "As a workaround, you can compile without crossdirect.\n");
fprintf(stderr, "See 'pmbootstrap -h' for related options.\n");
fprintf(stderr, "Please report this at: https://gitlab.postmarketos.org/postmarketOS/pmaports/issues\n");
fprintf(stderr, "As a workaround, you can compile without crossdirect with options=\"!pmb:crossdirect\".\n");
exit(1);
}
@@ -118,11 +117,17 @@ int main(int argc, char **argv)
NULL };
char *ldPreload = getenv("LD_PRELOAD");
if (ldPreload) {
if (strcmp(ldPreload, "/usr/lib/libfakeroot.so") == 0) {
env[0] = "LD_PRELOAD=/native/usr/lib/libfakeroot.so";
} else {
fprintf(stderr, "ERROR: crossdirect: can't handle LD_PRELOAD: %s\n", ldPreload);
exit_userfriendly();
if (strstr(ldPreload, "libfakeroot.so")) {
fprintf(stderr, "============================================================================================\n");
fprintf(stderr, "ERROR: crossdirect was called with: LD_PRELOAD=%s\n", ldPreload);
fprintf(stderr, "This means your package tried to run a compiler during package().\n");
fprintf(stderr, "This is not supported by crossdirect, and usually not a good idea.\n");
fprintf(stderr, "* Try to fix your APKBUILD so it does not run the compiler during package(), only in build()\n");
fprintf(stderr, " * If you're using 'meson install', try to add '--no-rebuild'\n");
fprintf(stderr, "* If this is not possible, you can work around it by setting options=\"!pmb:crossdirect\"\n");
fprintf(stderr, " (compilation will be slower!)\n");
fprintf(stderr, "============================================================================================\n");
exit(1);
}
}
+84 -162
View File
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-aarch64
pkgrel=3
pkgrel=4
pkgdesc="Stage2 cross-compiler for aarch64"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -44,9 +44,10 @@ depends="binutils-aarch64 mpc1"
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$_target"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip"
options="!strip !tracedeps"
depends="$depends 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"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -135,7 +136,6 @@ else
export CXXFLAGS_FOR_TARGET="$CXXFLAGS"
export LDFLAGS_FOR_TARGET="$LDFLAGS"
export BOOT_CFLAGS="$CFLAGS"
export BOOT_CXXFLAGS="$CXXFLAGS"
export BOOT_LDFLAGS="$LDFLAGS"
fi
@@ -170,7 +170,7 @@ esac
# currently on x86, x86_64 and ia64
_libquadmath=$LANG_FORTRAN
case "$CTARGET_ARCH" in
x86 | x86_64 | ppc64le) _libquadmath=$LANG_FORTRAN ;;
x86 | x86_64 | ppc64le) ;;
*) _libquadmath=false ;;
esac
@@ -218,13 +218,12 @@ if $LANG_FORTRAN; then
_languages="$_languages,fortran"
fi
if $LANG_ADA; then
subpackages="$subpackages gcc-gnat$_target:gnat"
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 libgnat::$CTARGET_ARCH"
subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH"
else
subpackages="$subpackages libgnat::$CTARGET_ARCH"
makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross"
fi
fi
@@ -234,7 +233,7 @@ fi
makedepends="$makedepends_build $makedepends_host"
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
# 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
@@ -244,7 +243,7 @@ makedepends="$makedepends_build $makedepends_host"
# 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/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.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
@@ -283,6 +282,7 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
0036-libphobos-add-riscv64-and-loongarch64-support.patch
fix-arm64.patch
ppc64le-quadmath.patch
riscv64-improve-build-time.patch
"
# secfixes:
@@ -290,44 +290,21 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
# - CVE-2023-4039
# we build out-of-tree
#_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver}
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
#builddir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
builddir="$srcdir"/gcc-$_pkgbase
_gcclibdir="/usr/lib/gcc/$CTARGET/$_pkgbase"
_gcclibexec="/usr/libexec/gcc/$CTARGET/$_pkgbase"
prepare() {
cd "$_gccdir"
_err=
for i in $source; do
case "$i" in
*.patch)
msg "Applying $i"
patch -p1 -i "$srcdir"/$i || _err="$_err $i"
;;
esac
done
if [ -n "$_err" ]; then
error "The following patches failed:"
for i in $_err; do
echo " $i"
done
return 1
fi
echo ${_pkgbase:-$pkgver} > gcc/BASE-VER
default_prepare
echo $_pkgbase > gcc/BASE-VER
}
build() {
local _arch_configure=
local _libc_configure=
local _bootstrap_configure=
local _symvers=
local _jit_configure=
cd "$_gccdir"
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";;
@@ -351,15 +328,7 @@ build() {
*) _hash_style_configure="--with-linker-hash-style=gnu" ;;
esac
case "$CTARGET_LIBC" in
musl)
# musl does not support libsanitizer
# alpine musl provides libssp_nonshared.a, so we don't need libssp either
_libc_configure="--disable-libssp --disable-libsanitizer"
_symvers="--disable-symvers"
export libat_cv_have_ifunc=no
;;
esac
export libat_cv_have_ifunc=no
case "$BOOTSTRAP" in
@@ -388,10 +357,8 @@ build() {
echo " CHOST=$CHOST"
echo " CTARGET=$CTARGET"
echo " CTARGET_ARCH=$CTARGET_ARCH"
echo " CTARGET_LIBC=$CTARGET_LIBC"
echo " languages=$_languages"
echo " arch_configure=$_arch_configure"
echo " libc_configure=$_libc_configure"
echo " cross_configure=$_cross_configure"
echo " bootstrap_configure=$_bootstrap_configure"
echo " hash_style_configure=$_hash_style_configure"
@@ -412,7 +379,7 @@ build() {
--disable-multilib
--disable-nls
--disable-werror
$_symvers
--disable-symvers
--enable-__cxa_atexit
--enable-default-pie
--enable-default-ssp
@@ -420,7 +387,8 @@ build() {
--enable-link-serialization=2
--enable-linker-build-id
$_arch_configure
$_libc_configure
--disable-libssp
--disable-libsanitizer
$_cross_configure
$_bootstrap_configure
--with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
@@ -430,7 +398,7 @@ build() {
mkdir -p "$_builddir"
cd "$_builddir"
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--with-pkgversion="$version"
msg "building gcc"
@@ -446,7 +414,7 @@ build() {
if $LANG_JIT; then
mkdir -p "$_builddir"/libgccjit-build
cd "$_builddir"/libgccjit-build
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--disable-bootstrap \
--enable-host-shared \
--enable-languages=jit \
@@ -461,7 +429,7 @@ package() {
cd "$_builddir"
make -j1 DESTDIR="$pkgdir" install
ln -s gcc "$pkgdir"/usr/bin/cc
[ "$CHOST" = "$CTARGET" ] && ln -s gcc "$pkgdir"/usr/bin/cc
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
if $LANG_JIT; then
@@ -505,25 +473,23 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.so"); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
if [ "$CHOST" = "$CTARGET" ]; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
fi
fi
if [ "$CHOST" != "$CTARGET" ]; then
# cross-gcc: remove any files that would conflict with the
# native gcc package
rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "${pkgdir:?}"/usr/share
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*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# 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
@@ -572,8 +538,7 @@ libatomic() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libatomic.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libatomic.so.*
}
libcxx() {
@@ -586,8 +551,7 @@ libcxx() {
nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime
fi
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libstdc++.so.*
}
libcxx_dev() {
@@ -605,15 +569,12 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/usr/bin \
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
"$subpkgdir"/usr/${_target:+$CTARGET/}lib \
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
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"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
jit() {
@@ -632,30 +593,26 @@ libobjc() {
pkgdesc="GNU Objective-C runtime"
replaces="objc"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libobjc.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libobjc.so.*
}
objc() {
pkgdesc="GNU Objective-C"
replaces="gcc"
depends="libc-dev gcc=$_gccrel libobjc=$_gccrel"
depends="musl-dev gcc=$_gccrel libobjc=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include \
"$subpkgdir"/usr/lib
mv "$pkgdir/$_gcclibexec/cc1obj" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/objc "$subpkgdir"/$_gcclibdir/include/
mv "$pkgdir"/usr/lib/libobjc.so "$pkgdir"/usr/lib/libobjc.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgcc_s.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgcc_s.so.*
}
libgomp() {
@@ -663,17 +620,15 @@ libgomp() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgomp.so.*
}
libgphobos() {
pkgdesc="D programming language standard library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgdruntime.so.* "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so.*
amove usr/lib/libgphobos.so.*
}
gdc() {
@@ -682,42 +637,26 @@ gdc() {
[ "$CBUILD" = "$CTARGET" ] && depends="$depends libgphobos=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && provides="gcc-gdc-bootstrap=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include/d/ \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
# 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
mv "$pkgdir/$_gcclibexec/d21" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/d/* "$subpkgdir"/$_gcclibdir/include/d/
amove $_gcclibexec/d21
amove $_gcclibdir/include/d
if [ "$CBUILD" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.so "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so
amove usr/lib/libgphobos.so
fi
if [ "$CHOST" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.spec "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/
else
mkdir -p "$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgdruntime.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.spec \
"$subpkgdir"/usr/$CTARGET/lib/
fi
mv "$pkgdir"/usr/bin/$CTARGET-gdc "$subpkgdir"/usr/bin/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgo.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgo.so.*
}
go() {
@@ -725,31 +664,25 @@ go() {
depends="gcc=$_gccrel libgo=$_gccrel !go"
install="$pkgname-go.post-install"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/lib/go "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/*gccgo "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/bin/*go "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gofmt "$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/go1 "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/cgo "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/buildid "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/test2json "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/vet "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/usr/lib/libgo.a \
"$pkgdir"/usr/lib/libgo.so \
"$pkgdir"/usr/lib/libgobegin.a \
"$pkgdir"/usr/lib/libgolibbegin.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgfortran.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgfortran.so.*
}
libquadmath() {
@@ -757,8 +690,7 @@ libquadmath() {
pkgdesc="128-bit math library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libquadmath.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.so.*
}
gfortran() {
@@ -767,38 +699,30 @@ gfortran() {
$_libquadmath && depends="$depends libquadmath=$_gccrel"
replaces="gcc"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gfortran "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/lib/libgfortran.a \
"$pkgdir"/usr/lib/libgfortran.so \
"$subpkgdir"/usr/lib/
amove usr/bin/*gfortran
amove usr/lib/libgfortran.a
amove usr/lib/libgfortran.so
if $_libquadmath; then
mv "$pkgdir"/usr/lib/libquadmath.a \
"$pkgdir"/usr/lib/libquadmath.so \
"$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.a
amove usr/lib/libquadmath.so
fi
mv "$pkgdir"/$_gcclibdir/finclude "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/$_gcclibexec/f951 "$subpkgdir"/$_gcclibexec
mv "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir
amove $_gcclibdir/finclude
amove $_gcclibexec/f951
mv -v "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir/
}
libgnat() {
pkgdesc="GNU Ada runtime shared libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.so
}
libgnatstatic() {
pkgdesc="GNU Ada static libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.a "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.a
}
gnat() {
@@ -807,12 +731,9 @@ gnat() {
provides="$pkgname-gnat-bootstrap=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/*gnat* "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibdir/*ada* "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/
amove $_gcclibexec/*gnat*
amove $_gcclibdir/*ada*
amove usr/bin/*gnat*
}
gdb() {
@@ -864,4 +785,5 @@ c4482ffc36e7894b2140800159f4cbc9a3e9011e43a69b69f4fa92d5a11e2ee645c7e21df4423dd1
06f64544fd8bc4b6c8b06410c5198aa8fb4e82c232afc0cad83b2c69ac5d39399968206defa78297222700cd18e7fd7e8244afa76d343406a01f657c86306453 0036-libphobos-add-riscv64-and-loongarch64-support.patch
00319c9770362520e8e93bd03fda1769dfa3622eba77d620e11d8af45a38e6d804a5e924046ae388e1cfaea605696e89c343fca507aaaa5edd58d80744fff14f fix-arm64.patch
815265826742400f86336f0c2d3e4edc37398dbc6505ee81107c0103c13ac0f406cff851438d2323033c6c6d0c0323765ee15b975eab8d1dd465f9e988168fb9 ppc64le-quadmath.patch
ea55e0fa6813fc95c4ca2e87f059182edc54dc61515ebb92bf6eb31dbbd176d0fe81edcc7ea28d32f84ca37e8d48a544623d3d9bc94aa41ffc0859326a616aa2 riscv64-improve-build-time.patch
"
@@ -0,0 +1,149 @@
Patch-Source: https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2cf89ae83225f932b226cd57ef2d083a59bcf8a3
--
From 2cf89ae83225f932b226cd57ef2d083a59bcf8a3 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Tue, 6 Aug 2024 14:56:26 +0200
Subject: [PATCH] tree-optimization/116166 - forward jump-threading going wild
Currently the forward threader isn't limited as to the search space
it explores and with it now using path-ranger for simplifying
conditions it runs into it became pretty slow for degenerate cases
like compiling insn-emit.cc for RISC-V esp. when compiling for
a host with LOGICAL_OP_NON_SHORT_CIRCUIT disabled.
The following makes the forward threader honor the search space
limit I introduced for the backward threader. This reduces
compile-time from minutes to seconds for the testcase in PR116166.
Note this wasn't necessary before we had ranger but with ranger
the work we do is quadatic in the length of the threading path
we build up (the same is true for the backwards threader).
PR tree-optimization/116166
* tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
Add limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
* tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
Honor and decrement limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
(jump_threader::thread_across_edge): Initialize limit from
param_max_jump_thread_paths and pass it down to workers.
---
gcc/tree-ssa-threadedge.cc | 30 ++++++++++++++++++++++--------
gcc/tree-ssa-threadedge.h | 4 ++--
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/gcc/tree-ssa-threadedge.cc b/gcc/tree-ssa-threadedge.cc
index 7f82639b8ecc..0aa2aa851430 100644
--- a/gcc/tree-ssa-threadedge.cc
+++ b/gcc/tree-ssa-threadedge.cc
@@ -786,13 +786,17 @@ propagate_threaded_block_debug_into (basic_block dest, basic_block src)
bool
jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
edge taken_edge,
- bitmap visited)
+ bitmap visited, unsigned &limit)
{
basic_block bb = taken_edge->dest;
gimple_stmt_iterator gsi;
gimple *stmt;
tree cond;
+ if (limit == 0)
+ return false;
+ --limit;
+
/* The key property of these blocks is that they need not be duplicated
when threading. Thus they cannot have visible side effects such
as PHI nodes. */
@@ -830,7 +834,8 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
bitmap_set_bit (visited, taken_edge->dest->index);
- return thread_around_empty_blocks (path, taken_edge, visited);
+ return thread_around_empty_blocks (path, taken_edge, visited,
+ limit);
}
}
@@ -872,7 +877,7 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return true;
}
@@ -899,8 +904,13 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
int
jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge e, bitmap visited)
+ edge e, bitmap visited,
+ unsigned &limit)
{
+ if (limit == 0)
+ return 0;
+ limit--;
+
m_state->register_equivs_edge (e);
/* PHIs create temporary equivalences.
@@ -989,7 +999,7 @@ jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
visited. This may be overly conservative. */
bitmap_set_bit (visited, dest->index);
bitmap_set_bit (visited, e->dest->index);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return 1;
}
}
@@ -1075,9 +1085,12 @@ jump_threader::thread_across_edge (edge e)
bitmap_set_bit (visited, e->src->index);
bitmap_set_bit (visited, e->dest->index);
+ /* Limit search space. */
+ unsigned limit = param_max_jump_thread_paths;
+
int threaded = 0;
if ((e->flags & EDGE_DFS_BACK) == 0)
- threaded = thread_through_normal_block (path, e, visited);
+ threaded = thread_through_normal_block (path, e, visited, limit);
if (threaded > 0)
{
@@ -1148,11 +1161,12 @@ jump_threader::thread_across_edge (edge e)
m_registry->push_edge (path, e, EDGE_START_JUMP_THREAD);
m_registry->push_edge (path, taken_edge, EDGE_COPY_SRC_JOINER_BLOCK);
- found = thread_around_empty_blocks (path, taken_edge, visited);
+ found = thread_around_empty_blocks (path, taken_edge, visited, limit);
if (!found)
found = thread_through_normal_block (path,
- path->last ()->e, visited) > 0;
+ path->last ()->e, visited,
+ limit) > 0;
/* If we were able to thread through a successor of E->dest, then
record the jump threading opportunity. */
diff --git a/gcc/tree-ssa-threadedge.h b/gcc/tree-ssa-threadedge.h
index 9f6cbfe93307..245b3506a550 100644
--- a/gcc/tree-ssa-threadedge.h
+++ b/gcc/tree-ssa-threadedge.h
@@ -101,9 +101,9 @@ private:
unsigned limit);
bool thread_around_empty_blocks (vec<class jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
int thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
void thread_across_edge (edge);
bool record_temporary_equivalences_from_phis (edge);
gimple *record_temporary_equivalences_from_stmts_at_dest (edge);
--
2.43.5
+84 -162
View File
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armhf
pkgrel=3
pkgrel=4
pkgdesc="Stage2 cross-compiler for armhf"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -44,9 +44,10 @@ depends="binutils-armhf mpc1"
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$_target"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip"
options="!strip !tracedeps"
depends="$depends 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"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -135,7 +136,6 @@ else
export CXXFLAGS_FOR_TARGET="$CXXFLAGS"
export LDFLAGS_FOR_TARGET="$LDFLAGS"
export BOOT_CFLAGS="$CFLAGS"
export BOOT_CXXFLAGS="$CXXFLAGS"
export BOOT_LDFLAGS="$LDFLAGS"
fi
@@ -170,7 +170,7 @@ esac
# currently on x86, x86_64 and ia64
_libquadmath=$LANG_FORTRAN
case "$CTARGET_ARCH" in
x86 | x86_64 | ppc64le) _libquadmath=$LANG_FORTRAN ;;
x86 | x86_64 | ppc64le) ;;
*) _libquadmath=false ;;
esac
@@ -218,13 +218,12 @@ if $LANG_FORTRAN; then
_languages="$_languages,fortran"
fi
if $LANG_ADA; then
subpackages="$subpackages gcc-gnat$_target:gnat"
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 libgnat::$CTARGET_ARCH"
subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH"
else
subpackages="$subpackages libgnat::$CTARGET_ARCH"
makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross"
fi
fi
@@ -234,7 +233,7 @@ fi
makedepends="$makedepends_build $makedepends_host"
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
# 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
@@ -244,7 +243,7 @@ makedepends="$makedepends_build $makedepends_host"
# 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/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.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
@@ -283,6 +282,7 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
0036-libphobos-add-riscv64-and-loongarch64-support.patch
fix-arm64.patch
ppc64le-quadmath.patch
riscv64-improve-build-time.patch
"
# secfixes:
@@ -290,44 +290,21 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
# - CVE-2023-4039
# we build out-of-tree
#_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver}
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
#builddir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
builddir="$srcdir"/gcc-$_pkgbase
_gcclibdir="/usr/lib/gcc/$CTARGET/$_pkgbase"
_gcclibexec="/usr/libexec/gcc/$CTARGET/$_pkgbase"
prepare() {
cd "$_gccdir"
_err=
for i in $source; do
case "$i" in
*.patch)
msg "Applying $i"
patch -p1 -i "$srcdir"/$i || _err="$_err $i"
;;
esac
done
if [ -n "$_err" ]; then
error "The following patches failed:"
for i in $_err; do
echo " $i"
done
return 1
fi
echo ${_pkgbase:-$pkgver} > gcc/BASE-VER
default_prepare
echo $_pkgbase > gcc/BASE-VER
}
build() {
local _arch_configure=
local _libc_configure=
local _bootstrap_configure=
local _symvers=
local _jit_configure=
cd "$_gccdir"
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";;
@@ -351,15 +328,7 @@ build() {
*) _hash_style_configure="--with-linker-hash-style=gnu" ;;
esac
case "$CTARGET_LIBC" in
musl)
# musl does not support libsanitizer
# alpine musl provides libssp_nonshared.a, so we don't need libssp either
_libc_configure="--disable-libssp --disable-libsanitizer"
_symvers="--disable-symvers"
export libat_cv_have_ifunc=no
;;
esac
export libat_cv_have_ifunc=no
case "$BOOTSTRAP" in
@@ -388,10 +357,8 @@ build() {
echo " CHOST=$CHOST"
echo " CTARGET=$CTARGET"
echo " CTARGET_ARCH=$CTARGET_ARCH"
echo " CTARGET_LIBC=$CTARGET_LIBC"
echo " languages=$_languages"
echo " arch_configure=$_arch_configure"
echo " libc_configure=$_libc_configure"
echo " cross_configure=$_cross_configure"
echo " bootstrap_configure=$_bootstrap_configure"
echo " hash_style_configure=$_hash_style_configure"
@@ -412,7 +379,7 @@ build() {
--disable-multilib
--disable-nls
--disable-werror
$_symvers
--disable-symvers
--enable-__cxa_atexit
--enable-default-pie
--enable-default-ssp
@@ -420,7 +387,8 @@ build() {
--enable-link-serialization=2
--enable-linker-build-id
$_arch_configure
$_libc_configure
--disable-libssp
--disable-libsanitizer
$_cross_configure
$_bootstrap_configure
--with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
@@ -430,7 +398,7 @@ build() {
mkdir -p "$_builddir"
cd "$_builddir"
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--with-pkgversion="$version"
msg "building gcc"
@@ -446,7 +414,7 @@ build() {
if $LANG_JIT; then
mkdir -p "$_builddir"/libgccjit-build
cd "$_builddir"/libgccjit-build
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--disable-bootstrap \
--enable-host-shared \
--enable-languages=jit \
@@ -461,7 +429,7 @@ package() {
cd "$_builddir"
make -j1 DESTDIR="$pkgdir" install
ln -s gcc "$pkgdir"/usr/bin/cc
[ "$CHOST" = "$CTARGET" ] && ln -s gcc "$pkgdir"/usr/bin/cc
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
if $LANG_JIT; then
@@ -505,25 +473,23 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.so"); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
if [ "$CHOST" = "$CTARGET" ]; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
fi
fi
if [ "$CHOST" != "$CTARGET" ]; then
# cross-gcc: remove any files that would conflict with the
# native gcc package
rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "${pkgdir:?}"/usr/share
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*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# 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
@@ -572,8 +538,7 @@ libatomic() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libatomic.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libatomic.so.*
}
libcxx() {
@@ -586,8 +551,7 @@ libcxx() {
nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime
fi
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libstdc++.so.*
}
libcxx_dev() {
@@ -605,15 +569,12 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/usr/bin \
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
"$subpkgdir"/usr/${_target:+$CTARGET/}lib \
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
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"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
jit() {
@@ -632,30 +593,26 @@ libobjc() {
pkgdesc="GNU Objective-C runtime"
replaces="objc"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libobjc.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libobjc.so.*
}
objc() {
pkgdesc="GNU Objective-C"
replaces="gcc"
depends="libc-dev gcc=$_gccrel libobjc=$_gccrel"
depends="musl-dev gcc=$_gccrel libobjc=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include \
"$subpkgdir"/usr/lib
mv "$pkgdir/$_gcclibexec/cc1obj" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/objc "$subpkgdir"/$_gcclibdir/include/
mv "$pkgdir"/usr/lib/libobjc.so "$pkgdir"/usr/lib/libobjc.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgcc_s.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgcc_s.so.*
}
libgomp() {
@@ -663,17 +620,15 @@ libgomp() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgomp.so.*
}
libgphobos() {
pkgdesc="D programming language standard library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgdruntime.so.* "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so.*
amove usr/lib/libgphobos.so.*
}
gdc() {
@@ -682,42 +637,26 @@ gdc() {
[ "$CBUILD" = "$CTARGET" ] && depends="$depends libgphobos=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && provides="gcc-gdc-bootstrap=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include/d/ \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
# 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
mv "$pkgdir/$_gcclibexec/d21" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/d/* "$subpkgdir"/$_gcclibdir/include/d/
amove $_gcclibexec/d21
amove $_gcclibdir/include/d
if [ "$CBUILD" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.so "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so
amove usr/lib/libgphobos.so
fi
if [ "$CHOST" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.spec "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/
else
mkdir -p "$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgdruntime.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.spec \
"$subpkgdir"/usr/$CTARGET/lib/
fi
mv "$pkgdir"/usr/bin/$CTARGET-gdc "$subpkgdir"/usr/bin/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgo.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgo.so.*
}
go() {
@@ -725,31 +664,25 @@ go() {
depends="gcc=$_gccrel libgo=$_gccrel !go"
install="$pkgname-go.post-install"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/lib/go "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/*gccgo "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/bin/*go "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gofmt "$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/go1 "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/cgo "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/buildid "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/test2json "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/vet "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/usr/lib/libgo.a \
"$pkgdir"/usr/lib/libgo.so \
"$pkgdir"/usr/lib/libgobegin.a \
"$pkgdir"/usr/lib/libgolibbegin.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgfortran.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgfortran.so.*
}
libquadmath() {
@@ -757,8 +690,7 @@ libquadmath() {
pkgdesc="128-bit math library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libquadmath.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.so.*
}
gfortran() {
@@ -767,38 +699,30 @@ gfortran() {
$_libquadmath && depends="$depends libquadmath=$_gccrel"
replaces="gcc"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gfortran "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/lib/libgfortran.a \
"$pkgdir"/usr/lib/libgfortran.so \
"$subpkgdir"/usr/lib/
amove usr/bin/*gfortran
amove usr/lib/libgfortran.a
amove usr/lib/libgfortran.so
if $_libquadmath; then
mv "$pkgdir"/usr/lib/libquadmath.a \
"$pkgdir"/usr/lib/libquadmath.so \
"$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.a
amove usr/lib/libquadmath.so
fi
mv "$pkgdir"/$_gcclibdir/finclude "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/$_gcclibexec/f951 "$subpkgdir"/$_gcclibexec
mv "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir
amove $_gcclibdir/finclude
amove $_gcclibexec/f951
mv -v "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir/
}
libgnat() {
pkgdesc="GNU Ada runtime shared libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.so
}
libgnatstatic() {
pkgdesc="GNU Ada static libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.a "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.a
}
gnat() {
@@ -807,12 +731,9 @@ gnat() {
provides="$pkgname-gnat-bootstrap=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/*gnat* "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibdir/*ada* "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/
amove $_gcclibexec/*gnat*
amove $_gcclibdir/*ada*
amove usr/bin/*gnat*
}
gdb() {
@@ -864,4 +785,5 @@ c4482ffc36e7894b2140800159f4cbc9a3e9011e43a69b69f4fa92d5a11e2ee645c7e21df4423dd1
06f64544fd8bc4b6c8b06410c5198aa8fb4e82c232afc0cad83b2c69ac5d39399968206defa78297222700cd18e7fd7e8244afa76d343406a01f657c86306453 0036-libphobos-add-riscv64-and-loongarch64-support.patch
00319c9770362520e8e93bd03fda1769dfa3622eba77d620e11d8af45a38e6d804a5e924046ae388e1cfaea605696e89c343fca507aaaa5edd58d80744fff14f fix-arm64.patch
815265826742400f86336f0c2d3e4edc37398dbc6505ee81107c0103c13ac0f406cff851438d2323033c6c6d0c0323765ee15b975eab8d1dd465f9e988168fb9 ppc64le-quadmath.patch
ea55e0fa6813fc95c4ca2e87f059182edc54dc61515ebb92bf6eb31dbbd176d0fe81edcc7ea28d32f84ca37e8d48a544623d3d9bc94aa41ffc0859326a616aa2 riscv64-improve-build-time.patch
"
@@ -0,0 +1,149 @@
Patch-Source: https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2cf89ae83225f932b226cd57ef2d083a59bcf8a3
--
From 2cf89ae83225f932b226cd57ef2d083a59bcf8a3 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Tue, 6 Aug 2024 14:56:26 +0200
Subject: [PATCH] tree-optimization/116166 - forward jump-threading going wild
Currently the forward threader isn't limited as to the search space
it explores and with it now using path-ranger for simplifying
conditions it runs into it became pretty slow for degenerate cases
like compiling insn-emit.cc for RISC-V esp. when compiling for
a host with LOGICAL_OP_NON_SHORT_CIRCUIT disabled.
The following makes the forward threader honor the search space
limit I introduced for the backward threader. This reduces
compile-time from minutes to seconds for the testcase in PR116166.
Note this wasn't necessary before we had ranger but with ranger
the work we do is quadatic in the length of the threading path
we build up (the same is true for the backwards threader).
PR tree-optimization/116166
* tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
Add limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
* tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
Honor and decrement limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
(jump_threader::thread_across_edge): Initialize limit from
param_max_jump_thread_paths and pass it down to workers.
---
gcc/tree-ssa-threadedge.cc | 30 ++++++++++++++++++++++--------
gcc/tree-ssa-threadedge.h | 4 ++--
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/gcc/tree-ssa-threadedge.cc b/gcc/tree-ssa-threadedge.cc
index 7f82639b8ecc..0aa2aa851430 100644
--- a/gcc/tree-ssa-threadedge.cc
+++ b/gcc/tree-ssa-threadedge.cc
@@ -786,13 +786,17 @@ propagate_threaded_block_debug_into (basic_block dest, basic_block src)
bool
jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
edge taken_edge,
- bitmap visited)
+ bitmap visited, unsigned &limit)
{
basic_block bb = taken_edge->dest;
gimple_stmt_iterator gsi;
gimple *stmt;
tree cond;
+ if (limit == 0)
+ return false;
+ --limit;
+
/* The key property of these blocks is that they need not be duplicated
when threading. Thus they cannot have visible side effects such
as PHI nodes. */
@@ -830,7 +834,8 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
bitmap_set_bit (visited, taken_edge->dest->index);
- return thread_around_empty_blocks (path, taken_edge, visited);
+ return thread_around_empty_blocks (path, taken_edge, visited,
+ limit);
}
}
@@ -872,7 +877,7 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return true;
}
@@ -899,8 +904,13 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
int
jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge e, bitmap visited)
+ edge e, bitmap visited,
+ unsigned &limit)
{
+ if (limit == 0)
+ return 0;
+ limit--;
+
m_state->register_equivs_edge (e);
/* PHIs create temporary equivalences.
@@ -989,7 +999,7 @@ jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
visited. This may be overly conservative. */
bitmap_set_bit (visited, dest->index);
bitmap_set_bit (visited, e->dest->index);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return 1;
}
}
@@ -1075,9 +1085,12 @@ jump_threader::thread_across_edge (edge e)
bitmap_set_bit (visited, e->src->index);
bitmap_set_bit (visited, e->dest->index);
+ /* Limit search space. */
+ unsigned limit = param_max_jump_thread_paths;
+
int threaded = 0;
if ((e->flags & EDGE_DFS_BACK) == 0)
- threaded = thread_through_normal_block (path, e, visited);
+ threaded = thread_through_normal_block (path, e, visited, limit);
if (threaded > 0)
{
@@ -1148,11 +1161,12 @@ jump_threader::thread_across_edge (edge e)
m_registry->push_edge (path, e, EDGE_START_JUMP_THREAD);
m_registry->push_edge (path, taken_edge, EDGE_COPY_SRC_JOINER_BLOCK);
- found = thread_around_empty_blocks (path, taken_edge, visited);
+ found = thread_around_empty_blocks (path, taken_edge, visited, limit);
if (!found)
found = thread_through_normal_block (path,
- path->last ()->e, visited) > 0;
+ path->last ()->e, visited,
+ limit) > 0;
/* If we were able to thread through a successor of E->dest, then
record the jump threading opportunity. */
diff --git a/gcc/tree-ssa-threadedge.h b/gcc/tree-ssa-threadedge.h
index 9f6cbfe93307..245b3506a550 100644
--- a/gcc/tree-ssa-threadedge.h
+++ b/gcc/tree-ssa-threadedge.h
@@ -101,9 +101,9 @@ private:
unsigned limit);
bool thread_around_empty_blocks (vec<class jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
int thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
void thread_across_edge (edge);
bool record_temporary_equivalences_from_phis (edge);
gimple *record_temporary_equivalences_from_stmts_at_dest (edge);
--
2.43.5
+84 -162
View File
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armv7
pkgrel=3
pkgrel=4
pkgdesc="Stage2 cross-compiler for armv7"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -44,9 +44,10 @@ depends="binutils-armv7 mpc1"
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$_target"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip"
options="!strip !tracedeps"
depends="$depends 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"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -135,7 +136,6 @@ else
export CXXFLAGS_FOR_TARGET="$CXXFLAGS"
export LDFLAGS_FOR_TARGET="$LDFLAGS"
export BOOT_CFLAGS="$CFLAGS"
export BOOT_CXXFLAGS="$CXXFLAGS"
export BOOT_LDFLAGS="$LDFLAGS"
fi
@@ -170,7 +170,7 @@ esac
# currently on x86, x86_64 and ia64
_libquadmath=$LANG_FORTRAN
case "$CTARGET_ARCH" in
x86 | x86_64 | ppc64le) _libquadmath=$LANG_FORTRAN ;;
x86 | x86_64 | ppc64le) ;;
*) _libquadmath=false ;;
esac
@@ -218,13 +218,12 @@ if $LANG_FORTRAN; then
_languages="$_languages,fortran"
fi
if $LANG_ADA; then
subpackages="$subpackages gcc-gnat$_target:gnat"
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 libgnat::$CTARGET_ARCH"
subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH"
else
subpackages="$subpackages libgnat::$CTARGET_ARCH"
makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross"
fi
fi
@@ -234,7 +233,7 @@ fi
makedepends="$makedepends_build $makedepends_host"
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
# 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
@@ -244,7 +243,7 @@ makedepends="$makedepends_build $makedepends_host"
# 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/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.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
@@ -283,6 +282,7 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
0036-libphobos-add-riscv64-and-loongarch64-support.patch
fix-arm64.patch
ppc64le-quadmath.patch
riscv64-improve-build-time.patch
"
# secfixes:
@@ -290,44 +290,21 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
# - CVE-2023-4039
# we build out-of-tree
#_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver}
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
#builddir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
builddir="$srcdir"/gcc-$_pkgbase
_gcclibdir="/usr/lib/gcc/$CTARGET/$_pkgbase"
_gcclibexec="/usr/libexec/gcc/$CTARGET/$_pkgbase"
prepare() {
cd "$_gccdir"
_err=
for i in $source; do
case "$i" in
*.patch)
msg "Applying $i"
patch -p1 -i "$srcdir"/$i || _err="$_err $i"
;;
esac
done
if [ -n "$_err" ]; then
error "The following patches failed:"
for i in $_err; do
echo " $i"
done
return 1
fi
echo ${_pkgbase:-$pkgver} > gcc/BASE-VER
default_prepare
echo $_pkgbase > gcc/BASE-VER
}
build() {
local _arch_configure=
local _libc_configure=
local _bootstrap_configure=
local _symvers=
local _jit_configure=
cd "$_gccdir"
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";;
@@ -351,15 +328,7 @@ build() {
*) _hash_style_configure="--with-linker-hash-style=gnu" ;;
esac
case "$CTARGET_LIBC" in
musl)
# musl does not support libsanitizer
# alpine musl provides libssp_nonshared.a, so we don't need libssp either
_libc_configure="--disable-libssp --disable-libsanitizer"
_symvers="--disable-symvers"
export libat_cv_have_ifunc=no
;;
esac
export libat_cv_have_ifunc=no
case "$BOOTSTRAP" in
@@ -388,10 +357,8 @@ build() {
echo " CHOST=$CHOST"
echo " CTARGET=$CTARGET"
echo " CTARGET_ARCH=$CTARGET_ARCH"
echo " CTARGET_LIBC=$CTARGET_LIBC"
echo " languages=$_languages"
echo " arch_configure=$_arch_configure"
echo " libc_configure=$_libc_configure"
echo " cross_configure=$_cross_configure"
echo " bootstrap_configure=$_bootstrap_configure"
echo " hash_style_configure=$_hash_style_configure"
@@ -412,7 +379,7 @@ build() {
--disable-multilib
--disable-nls
--disable-werror
$_symvers
--disable-symvers
--enable-__cxa_atexit
--enable-default-pie
--enable-default-ssp
@@ -420,7 +387,8 @@ build() {
--enable-link-serialization=2
--enable-linker-build-id
$_arch_configure
$_libc_configure
--disable-libssp
--disable-libsanitizer
$_cross_configure
$_bootstrap_configure
--with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
@@ -430,7 +398,7 @@ build() {
mkdir -p "$_builddir"
cd "$_builddir"
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--with-pkgversion="$version"
msg "building gcc"
@@ -446,7 +414,7 @@ build() {
if $LANG_JIT; then
mkdir -p "$_builddir"/libgccjit-build
cd "$_builddir"/libgccjit-build
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--disable-bootstrap \
--enable-host-shared \
--enable-languages=jit \
@@ -461,7 +429,7 @@ package() {
cd "$_builddir"
make -j1 DESTDIR="$pkgdir" install
ln -s gcc "$pkgdir"/usr/bin/cc
[ "$CHOST" = "$CTARGET" ] && ln -s gcc "$pkgdir"/usr/bin/cc
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
if $LANG_JIT; then
@@ -505,25 +473,23 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.so"); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
if [ "$CHOST" = "$CTARGET" ]; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
fi
fi
if [ "$CHOST" != "$CTARGET" ]; then
# cross-gcc: remove any files that would conflict with the
# native gcc package
rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "${pkgdir:?}"/usr/share
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*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# 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
@@ -572,8 +538,7 @@ libatomic() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libatomic.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libatomic.so.*
}
libcxx() {
@@ -586,8 +551,7 @@ libcxx() {
nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime
fi
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libstdc++.so.*
}
libcxx_dev() {
@@ -605,15 +569,12 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/usr/bin \
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
"$subpkgdir"/usr/${_target:+$CTARGET/}lib \
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
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"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
jit() {
@@ -632,30 +593,26 @@ libobjc() {
pkgdesc="GNU Objective-C runtime"
replaces="objc"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libobjc.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libobjc.so.*
}
objc() {
pkgdesc="GNU Objective-C"
replaces="gcc"
depends="libc-dev gcc=$_gccrel libobjc=$_gccrel"
depends="musl-dev gcc=$_gccrel libobjc=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include \
"$subpkgdir"/usr/lib
mv "$pkgdir/$_gcclibexec/cc1obj" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/objc "$subpkgdir"/$_gcclibdir/include/
mv "$pkgdir"/usr/lib/libobjc.so "$pkgdir"/usr/lib/libobjc.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgcc_s.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgcc_s.so.*
}
libgomp() {
@@ -663,17 +620,15 @@ libgomp() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgomp.so.*
}
libgphobos() {
pkgdesc="D programming language standard library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgdruntime.so.* "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so.*
amove usr/lib/libgphobos.so.*
}
gdc() {
@@ -682,42 +637,26 @@ gdc() {
[ "$CBUILD" = "$CTARGET" ] && depends="$depends libgphobos=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && provides="gcc-gdc-bootstrap=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include/d/ \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
# 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
mv "$pkgdir/$_gcclibexec/d21" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/d/* "$subpkgdir"/$_gcclibdir/include/d/
amove $_gcclibexec/d21
amove $_gcclibdir/include/d
if [ "$CBUILD" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.so "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so
amove usr/lib/libgphobos.so
fi
if [ "$CHOST" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.spec "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/
else
mkdir -p "$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgdruntime.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.spec \
"$subpkgdir"/usr/$CTARGET/lib/
fi
mv "$pkgdir"/usr/bin/$CTARGET-gdc "$subpkgdir"/usr/bin/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgo.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgo.so.*
}
go() {
@@ -725,31 +664,25 @@ go() {
depends="gcc=$_gccrel libgo=$_gccrel !go"
install="$pkgname-go.post-install"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/lib/go "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/*gccgo "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/bin/*go "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gofmt "$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/go1 "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/cgo "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/buildid "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/test2json "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/vet "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/usr/lib/libgo.a \
"$pkgdir"/usr/lib/libgo.so \
"$pkgdir"/usr/lib/libgobegin.a \
"$pkgdir"/usr/lib/libgolibbegin.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgfortran.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgfortran.so.*
}
libquadmath() {
@@ -757,8 +690,7 @@ libquadmath() {
pkgdesc="128-bit math library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libquadmath.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.so.*
}
gfortran() {
@@ -767,38 +699,30 @@ gfortran() {
$_libquadmath && depends="$depends libquadmath=$_gccrel"
replaces="gcc"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gfortran "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/lib/libgfortran.a \
"$pkgdir"/usr/lib/libgfortran.so \
"$subpkgdir"/usr/lib/
amove usr/bin/*gfortran
amove usr/lib/libgfortran.a
amove usr/lib/libgfortran.so
if $_libquadmath; then
mv "$pkgdir"/usr/lib/libquadmath.a \
"$pkgdir"/usr/lib/libquadmath.so \
"$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.a
amove usr/lib/libquadmath.so
fi
mv "$pkgdir"/$_gcclibdir/finclude "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/$_gcclibexec/f951 "$subpkgdir"/$_gcclibexec
mv "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir
amove $_gcclibdir/finclude
amove $_gcclibexec/f951
mv -v "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir/
}
libgnat() {
pkgdesc="GNU Ada runtime shared libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.so
}
libgnatstatic() {
pkgdesc="GNU Ada static libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.a "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.a
}
gnat() {
@@ -807,12 +731,9 @@ gnat() {
provides="$pkgname-gnat-bootstrap=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/*gnat* "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibdir/*ada* "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/
amove $_gcclibexec/*gnat*
amove $_gcclibdir/*ada*
amove usr/bin/*gnat*
}
gdb() {
@@ -864,4 +785,5 @@ c4482ffc36e7894b2140800159f4cbc9a3e9011e43a69b69f4fa92d5a11e2ee645c7e21df4423dd1
06f64544fd8bc4b6c8b06410c5198aa8fb4e82c232afc0cad83b2c69ac5d39399968206defa78297222700cd18e7fd7e8244afa76d343406a01f657c86306453 0036-libphobos-add-riscv64-and-loongarch64-support.patch
00319c9770362520e8e93bd03fda1769dfa3622eba77d620e11d8af45a38e6d804a5e924046ae388e1cfaea605696e89c343fca507aaaa5edd58d80744fff14f fix-arm64.patch
815265826742400f86336f0c2d3e4edc37398dbc6505ee81107c0103c13ac0f406cff851438d2323033c6c6d0c0323765ee15b975eab8d1dd465f9e988168fb9 ppc64le-quadmath.patch
ea55e0fa6813fc95c4ca2e87f059182edc54dc61515ebb92bf6eb31dbbd176d0fe81edcc7ea28d32f84ca37e8d48a544623d3d9bc94aa41ffc0859326a616aa2 riscv64-improve-build-time.patch
"
@@ -0,0 +1,149 @@
Patch-Source: https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2cf89ae83225f932b226cd57ef2d083a59bcf8a3
--
From 2cf89ae83225f932b226cd57ef2d083a59bcf8a3 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Tue, 6 Aug 2024 14:56:26 +0200
Subject: [PATCH] tree-optimization/116166 - forward jump-threading going wild
Currently the forward threader isn't limited as to the search space
it explores and with it now using path-ranger for simplifying
conditions it runs into it became pretty slow for degenerate cases
like compiling insn-emit.cc for RISC-V esp. when compiling for
a host with LOGICAL_OP_NON_SHORT_CIRCUIT disabled.
The following makes the forward threader honor the search space
limit I introduced for the backward threader. This reduces
compile-time from minutes to seconds for the testcase in PR116166.
Note this wasn't necessary before we had ranger but with ranger
the work we do is quadatic in the length of the threading path
we build up (the same is true for the backwards threader).
PR tree-optimization/116166
* tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
Add limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
* tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
Honor and decrement limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
(jump_threader::thread_across_edge): Initialize limit from
param_max_jump_thread_paths and pass it down to workers.
---
gcc/tree-ssa-threadedge.cc | 30 ++++++++++++++++++++++--------
gcc/tree-ssa-threadedge.h | 4 ++--
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/gcc/tree-ssa-threadedge.cc b/gcc/tree-ssa-threadedge.cc
index 7f82639b8ecc..0aa2aa851430 100644
--- a/gcc/tree-ssa-threadedge.cc
+++ b/gcc/tree-ssa-threadedge.cc
@@ -786,13 +786,17 @@ propagate_threaded_block_debug_into (basic_block dest, basic_block src)
bool
jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
edge taken_edge,
- bitmap visited)
+ bitmap visited, unsigned &limit)
{
basic_block bb = taken_edge->dest;
gimple_stmt_iterator gsi;
gimple *stmt;
tree cond;
+ if (limit == 0)
+ return false;
+ --limit;
+
/* The key property of these blocks is that they need not be duplicated
when threading. Thus they cannot have visible side effects such
as PHI nodes. */
@@ -830,7 +834,8 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
bitmap_set_bit (visited, taken_edge->dest->index);
- return thread_around_empty_blocks (path, taken_edge, visited);
+ return thread_around_empty_blocks (path, taken_edge, visited,
+ limit);
}
}
@@ -872,7 +877,7 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return true;
}
@@ -899,8 +904,13 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
int
jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge e, bitmap visited)
+ edge e, bitmap visited,
+ unsigned &limit)
{
+ if (limit == 0)
+ return 0;
+ limit--;
+
m_state->register_equivs_edge (e);
/* PHIs create temporary equivalences.
@@ -989,7 +999,7 @@ jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
visited. This may be overly conservative. */
bitmap_set_bit (visited, dest->index);
bitmap_set_bit (visited, e->dest->index);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return 1;
}
}
@@ -1075,9 +1085,12 @@ jump_threader::thread_across_edge (edge e)
bitmap_set_bit (visited, e->src->index);
bitmap_set_bit (visited, e->dest->index);
+ /* Limit search space. */
+ unsigned limit = param_max_jump_thread_paths;
+
int threaded = 0;
if ((e->flags & EDGE_DFS_BACK) == 0)
- threaded = thread_through_normal_block (path, e, visited);
+ threaded = thread_through_normal_block (path, e, visited, limit);
if (threaded > 0)
{
@@ -1148,11 +1161,12 @@ jump_threader::thread_across_edge (edge e)
m_registry->push_edge (path, e, EDGE_START_JUMP_THREAD);
m_registry->push_edge (path, taken_edge, EDGE_COPY_SRC_JOINER_BLOCK);
- found = thread_around_empty_blocks (path, taken_edge, visited);
+ found = thread_around_empty_blocks (path, taken_edge, visited, limit);
if (!found)
found = thread_through_normal_block (path,
- path->last ()->e, visited) > 0;
+ path->last ()->e, visited,
+ limit) > 0;
/* If we were able to thread through a successor of E->dest, then
record the jump threading opportunity. */
diff --git a/gcc/tree-ssa-threadedge.h b/gcc/tree-ssa-threadedge.h
index 9f6cbfe93307..245b3506a550 100644
--- a/gcc/tree-ssa-threadedge.h
+++ b/gcc/tree-ssa-threadedge.h
@@ -101,9 +101,9 @@ private:
unsigned limit);
bool thread_around_empty_blocks (vec<class jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
int thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
void thread_across_edge (edge);
bool record_temporary_equivalences_from_phis (edge);
gimple *record_temporary_equivalences_from_stmts_at_dest (edge);
--
2.43.5
+84 -162
View File
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-riscv64
pkgrel=3
pkgrel=4
pkgdesc="Stage2 cross-compiler for riscv64"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -44,9 +44,10 @@ depends="binutils-riscv64 mpc1"
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-riscv64 binutils-riscv64"
subpackages="g++-riscv64:gpp libstdc++-dev-riscv64:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc$_target"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip"
options="!strip !tracedeps"
depends="$depends 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"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -135,7 +136,6 @@ else
export CXXFLAGS_FOR_TARGET="$CXXFLAGS"
export LDFLAGS_FOR_TARGET="$LDFLAGS"
export BOOT_CFLAGS="$CFLAGS"
export BOOT_CXXFLAGS="$CXXFLAGS"
export BOOT_LDFLAGS="$LDFLAGS"
fi
@@ -170,7 +170,7 @@ esac
# currently on x86, x86_64 and ia64
_libquadmath=$LANG_FORTRAN
case "$CTARGET_ARCH" in
x86 | x86_64 | ppc64le) _libquadmath=$LANG_FORTRAN ;;
x86 | x86_64 | ppc64le) ;;
*) _libquadmath=false ;;
esac
@@ -218,13 +218,12 @@ if $LANG_FORTRAN; then
_languages="$_languages,fortran"
fi
if $LANG_ADA; then
subpackages="$subpackages gcc-gnat$_target:gnat"
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 libgnat::$CTARGET_ARCH"
subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH"
else
subpackages="$subpackages libgnat::$CTARGET_ARCH"
makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross"
fi
fi
@@ -234,7 +233,7 @@ fi
makedepends="$makedepends_build $makedepends_host"
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
# 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
@@ -244,7 +243,7 @@ makedepends="$makedepends_build $makedepends_host"
# 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/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.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
@@ -283,6 +282,7 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
0036-libphobos-add-riscv64-and-loongarch64-support.patch
fix-arm64.patch
ppc64le-quadmath.patch
riscv64-improve-build-time.patch
"
# secfixes:
@@ -290,44 +290,21 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
# - CVE-2023-4039
# we build out-of-tree
#_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver}
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
#builddir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
builddir="$srcdir"/gcc-$_pkgbase
_gcclibdir="/usr/lib/gcc/$CTARGET/$_pkgbase"
_gcclibexec="/usr/libexec/gcc/$CTARGET/$_pkgbase"
prepare() {
cd "$_gccdir"
_err=
for i in $source; do
case "$i" in
*.patch)
msg "Applying $i"
patch -p1 -i "$srcdir"/$i || _err="$_err $i"
;;
esac
done
if [ -n "$_err" ]; then
error "The following patches failed:"
for i in $_err; do
echo " $i"
done
return 1
fi
echo ${_pkgbase:-$pkgver} > gcc/BASE-VER
default_prepare
echo $_pkgbase > gcc/BASE-VER
}
build() {
local _arch_configure=
local _libc_configure=
local _bootstrap_configure=
local _symvers=
local _jit_configure=
cd "$_gccdir"
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";;
@@ -351,15 +328,7 @@ build() {
*) _hash_style_configure="--with-linker-hash-style=gnu" ;;
esac
case "$CTARGET_LIBC" in
musl)
# musl does not support libsanitizer
# alpine musl provides libssp_nonshared.a, so we don't need libssp either
_libc_configure="--disable-libssp --disable-libsanitizer"
_symvers="--disable-symvers"
export libat_cv_have_ifunc=no
;;
esac
export libat_cv_have_ifunc=no
case "$BOOTSTRAP" in
@@ -388,10 +357,8 @@ build() {
echo " CHOST=$CHOST"
echo " CTARGET=$CTARGET"
echo " CTARGET_ARCH=$CTARGET_ARCH"
echo " CTARGET_LIBC=$CTARGET_LIBC"
echo " languages=$_languages"
echo " arch_configure=$_arch_configure"
echo " libc_configure=$_libc_configure"
echo " cross_configure=$_cross_configure"
echo " bootstrap_configure=$_bootstrap_configure"
echo " hash_style_configure=$_hash_style_configure"
@@ -412,7 +379,7 @@ build() {
--disable-multilib
--disable-nls
--disable-werror
$_symvers
--disable-symvers
--enable-__cxa_atexit
--enable-default-pie
--enable-default-ssp
@@ -420,7 +387,8 @@ build() {
--enable-link-serialization=2
--enable-linker-build-id
$_arch_configure
$_libc_configure
--disable-libssp
--disable-libsanitizer
$_cross_configure
$_bootstrap_configure
--with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
@@ -430,7 +398,7 @@ build() {
mkdir -p "$_builddir"
cd "$_builddir"
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--with-pkgversion="$version"
msg "building gcc"
@@ -446,7 +414,7 @@ build() {
if $LANG_JIT; then
mkdir -p "$_builddir"/libgccjit-build
cd "$_builddir"/libgccjit-build
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--disable-bootstrap \
--enable-host-shared \
--enable-languages=jit \
@@ -461,7 +429,7 @@ package() {
cd "$_builddir"
make -j1 DESTDIR="$pkgdir" install
ln -s gcc "$pkgdir"/usr/bin/cc
[ "$CHOST" = "$CTARGET" ] && ln -s gcc "$pkgdir"/usr/bin/cc
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
if $LANG_JIT; then
@@ -505,25 +473,23 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.so"); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
if [ "$CHOST" = "$CTARGET" ]; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
fi
fi
if [ "$CHOST" != "$CTARGET" ]; then
# cross-gcc: remove any files that would conflict with the
# native gcc package
rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "${pkgdir:?}"/usr/share
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*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# 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
@@ -572,8 +538,7 @@ libatomic() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libatomic.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libatomic.so.*
}
libcxx() {
@@ -586,8 +551,7 @@ libcxx() {
nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime
fi
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libstdc++.so.*
}
libcxx_dev() {
@@ -605,15 +569,12 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/usr/bin \
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
"$subpkgdir"/usr/${_target:+$CTARGET/}lib \
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
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"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
jit() {
@@ -632,30 +593,26 @@ libobjc() {
pkgdesc="GNU Objective-C runtime"
replaces="objc"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libobjc.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libobjc.so.*
}
objc() {
pkgdesc="GNU Objective-C"
replaces="gcc"
depends="libc-dev gcc=$_gccrel libobjc=$_gccrel"
depends="musl-dev gcc=$_gccrel libobjc=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include \
"$subpkgdir"/usr/lib
mv "$pkgdir/$_gcclibexec/cc1obj" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/objc "$subpkgdir"/$_gcclibdir/include/
mv "$pkgdir"/usr/lib/libobjc.so "$pkgdir"/usr/lib/libobjc.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgcc_s.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgcc_s.so.*
}
libgomp() {
@@ -663,17 +620,15 @@ libgomp() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgomp.so.*
}
libgphobos() {
pkgdesc="D programming language standard library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgdruntime.so.* "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so.*
amove usr/lib/libgphobos.so.*
}
gdc() {
@@ -682,42 +637,26 @@ gdc() {
[ "$CBUILD" = "$CTARGET" ] && depends="$depends libgphobos=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && provides="gcc-gdc-bootstrap=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include/d/ \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
# 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
mv "$pkgdir/$_gcclibexec/d21" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/d/* "$subpkgdir"/$_gcclibdir/include/d/
amove $_gcclibexec/d21
amove $_gcclibdir/include/d
if [ "$CBUILD" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.so "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so
amove usr/lib/libgphobos.so
fi
if [ "$CHOST" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.spec "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/
else
mkdir -p "$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgdruntime.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.spec \
"$subpkgdir"/usr/$CTARGET/lib/
fi
mv "$pkgdir"/usr/bin/$CTARGET-gdc "$subpkgdir"/usr/bin/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgo.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgo.so.*
}
go() {
@@ -725,31 +664,25 @@ go() {
depends="gcc=$_gccrel libgo=$_gccrel !go"
install="$pkgname-go.post-install"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/lib/go "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/*gccgo "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/bin/*go "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gofmt "$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/go1 "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/cgo "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/buildid "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/test2json "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/vet "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/usr/lib/libgo.a \
"$pkgdir"/usr/lib/libgo.so \
"$pkgdir"/usr/lib/libgobegin.a \
"$pkgdir"/usr/lib/libgolibbegin.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgfortran.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgfortran.so.*
}
libquadmath() {
@@ -757,8 +690,7 @@ libquadmath() {
pkgdesc="128-bit math library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libquadmath.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.so.*
}
gfortran() {
@@ -767,38 +699,30 @@ gfortran() {
$_libquadmath && depends="$depends libquadmath=$_gccrel"
replaces="gcc"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gfortran "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/lib/libgfortran.a \
"$pkgdir"/usr/lib/libgfortran.so \
"$subpkgdir"/usr/lib/
amove usr/bin/*gfortran
amove usr/lib/libgfortran.a
amove usr/lib/libgfortran.so
if $_libquadmath; then
mv "$pkgdir"/usr/lib/libquadmath.a \
"$pkgdir"/usr/lib/libquadmath.so \
"$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.a
amove usr/lib/libquadmath.so
fi
mv "$pkgdir"/$_gcclibdir/finclude "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/$_gcclibexec/f951 "$subpkgdir"/$_gcclibexec
mv "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir
amove $_gcclibdir/finclude
amove $_gcclibexec/f951
mv -v "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir/
}
libgnat() {
pkgdesc="GNU Ada runtime shared libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.so
}
libgnatstatic() {
pkgdesc="GNU Ada static libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.a "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.a
}
gnat() {
@@ -807,12 +731,9 @@ gnat() {
provides="$pkgname-gnat-bootstrap=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/*gnat* "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibdir/*ada* "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/
amove $_gcclibexec/*gnat*
amove $_gcclibdir/*ada*
amove usr/bin/*gnat*
}
gdb() {
@@ -864,4 +785,5 @@ c4482ffc36e7894b2140800159f4cbc9a3e9011e43a69b69f4fa92d5a11e2ee645c7e21df4423dd1
06f64544fd8bc4b6c8b06410c5198aa8fb4e82c232afc0cad83b2c69ac5d39399968206defa78297222700cd18e7fd7e8244afa76d343406a01f657c86306453 0036-libphobos-add-riscv64-and-loongarch64-support.patch
00319c9770362520e8e93bd03fda1769dfa3622eba77d620e11d8af45a38e6d804a5e924046ae388e1cfaea605696e89c343fca507aaaa5edd58d80744fff14f fix-arm64.patch
815265826742400f86336f0c2d3e4edc37398dbc6505ee81107c0103c13ac0f406cff851438d2323033c6c6d0c0323765ee15b975eab8d1dd465f9e988168fb9 ppc64le-quadmath.patch
ea55e0fa6813fc95c4ca2e87f059182edc54dc61515ebb92bf6eb31dbbd176d0fe81edcc7ea28d32f84ca37e8d48a544623d3d9bc94aa41ffc0859326a616aa2 riscv64-improve-build-time.patch
"
@@ -0,0 +1,149 @@
Patch-Source: https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2cf89ae83225f932b226cd57ef2d083a59bcf8a3
--
From 2cf89ae83225f932b226cd57ef2d083a59bcf8a3 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Tue, 6 Aug 2024 14:56:26 +0200
Subject: [PATCH] tree-optimization/116166 - forward jump-threading going wild
Currently the forward threader isn't limited as to the search space
it explores and with it now using path-ranger for simplifying
conditions it runs into it became pretty slow for degenerate cases
like compiling insn-emit.cc for RISC-V esp. when compiling for
a host with LOGICAL_OP_NON_SHORT_CIRCUIT disabled.
The following makes the forward threader honor the search space
limit I introduced for the backward threader. This reduces
compile-time from minutes to seconds for the testcase in PR116166.
Note this wasn't necessary before we had ranger but with ranger
the work we do is quadatic in the length of the threading path
we build up (the same is true for the backwards threader).
PR tree-optimization/116166
* tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
Add limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
* tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
Honor and decrement limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
(jump_threader::thread_across_edge): Initialize limit from
param_max_jump_thread_paths and pass it down to workers.
---
gcc/tree-ssa-threadedge.cc | 30 ++++++++++++++++++++++--------
gcc/tree-ssa-threadedge.h | 4 ++--
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/gcc/tree-ssa-threadedge.cc b/gcc/tree-ssa-threadedge.cc
index 7f82639b8ecc..0aa2aa851430 100644
--- a/gcc/tree-ssa-threadedge.cc
+++ b/gcc/tree-ssa-threadedge.cc
@@ -786,13 +786,17 @@ propagate_threaded_block_debug_into (basic_block dest, basic_block src)
bool
jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
edge taken_edge,
- bitmap visited)
+ bitmap visited, unsigned &limit)
{
basic_block bb = taken_edge->dest;
gimple_stmt_iterator gsi;
gimple *stmt;
tree cond;
+ if (limit == 0)
+ return false;
+ --limit;
+
/* The key property of these blocks is that they need not be duplicated
when threading. Thus they cannot have visible side effects such
as PHI nodes. */
@@ -830,7 +834,8 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
bitmap_set_bit (visited, taken_edge->dest->index);
- return thread_around_empty_blocks (path, taken_edge, visited);
+ return thread_around_empty_blocks (path, taken_edge, visited,
+ limit);
}
}
@@ -872,7 +877,7 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return true;
}
@@ -899,8 +904,13 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
int
jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge e, bitmap visited)
+ edge e, bitmap visited,
+ unsigned &limit)
{
+ if (limit == 0)
+ return 0;
+ limit--;
+
m_state->register_equivs_edge (e);
/* PHIs create temporary equivalences.
@@ -989,7 +999,7 @@ jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
visited. This may be overly conservative. */
bitmap_set_bit (visited, dest->index);
bitmap_set_bit (visited, e->dest->index);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return 1;
}
}
@@ -1075,9 +1085,12 @@ jump_threader::thread_across_edge (edge e)
bitmap_set_bit (visited, e->src->index);
bitmap_set_bit (visited, e->dest->index);
+ /* Limit search space. */
+ unsigned limit = param_max_jump_thread_paths;
+
int threaded = 0;
if ((e->flags & EDGE_DFS_BACK) == 0)
- threaded = thread_through_normal_block (path, e, visited);
+ threaded = thread_through_normal_block (path, e, visited, limit);
if (threaded > 0)
{
@@ -1148,11 +1161,12 @@ jump_threader::thread_across_edge (edge e)
m_registry->push_edge (path, e, EDGE_START_JUMP_THREAD);
m_registry->push_edge (path, taken_edge, EDGE_COPY_SRC_JOINER_BLOCK);
- found = thread_around_empty_blocks (path, taken_edge, visited);
+ found = thread_around_empty_blocks (path, taken_edge, visited, limit);
if (!found)
found = thread_through_normal_block (path,
- path->last ()->e, visited) > 0;
+ path->last ()->e, visited,
+ limit) > 0;
/* If we were able to thread through a successor of E->dest, then
record the jump threading opportunity. */
diff --git a/gcc/tree-ssa-threadedge.h b/gcc/tree-ssa-threadedge.h
index 9f6cbfe93307..245b3506a550 100644
--- a/gcc/tree-ssa-threadedge.h
+++ b/gcc/tree-ssa-threadedge.h
@@ -101,9 +101,9 @@ private:
unsigned limit);
bool thread_around_empty_blocks (vec<class jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
int thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
void thread_across_edge (edge);
bool record_temporary_equivalences_from_phis (edge);
gimple *record_temporary_equivalences_from_stmts_at_dest (edge);
--
2.43.5
+84 -162
View File
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-x86
pkgrel=3
pkgrel=4
pkgdesc="Stage2 cross-compiler for x86"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -44,9 +44,10 @@ depends="binutils-x86 mpc1"
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-x86 binutils-x86"
subpackages="g++-x86:gpp libstdc++-dev-x86:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc$_target"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip"
options="!strip !tracedeps"
depends="$depends 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"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -135,7 +136,6 @@ else
export CXXFLAGS_FOR_TARGET="$CXXFLAGS"
export LDFLAGS_FOR_TARGET="$LDFLAGS"
export BOOT_CFLAGS="$CFLAGS"
export BOOT_CXXFLAGS="$CXXFLAGS"
export BOOT_LDFLAGS="$LDFLAGS"
fi
@@ -170,7 +170,7 @@ esac
# currently on x86, x86_64 and ia64
_libquadmath=$LANG_FORTRAN
case "$CTARGET_ARCH" in
x86 | x86_64 | ppc64le) _libquadmath=$LANG_FORTRAN ;;
x86 | x86_64 | ppc64le) ;;
*) _libquadmath=false ;;
esac
@@ -218,13 +218,12 @@ if $LANG_FORTRAN; then
_languages="$_languages,fortran"
fi
if $LANG_ADA; then
subpackages="$subpackages gcc-gnat$_target:gnat"
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 libgnat::$CTARGET_ARCH"
subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH"
else
subpackages="$subpackages libgnat::$CTARGET_ARCH"
makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross"
fi
fi
@@ -234,7 +233,7 @@ fi
makedepends="$makedepends_build $makedepends_host"
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
# 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
@@ -244,7 +243,7 @@ makedepends="$makedepends_build $makedepends_host"
# 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/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.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
@@ -283,6 +282,7 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
0036-libphobos-add-riscv64-and-loongarch64-support.patch
fix-arm64.patch
ppc64le-quadmath.patch
riscv64-improve-build-time.patch
"
# secfixes:
@@ -290,44 +290,21 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
# - CVE-2023-4039
# we build out-of-tree
#_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver}
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
#builddir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
builddir="$srcdir"/gcc-$_pkgbase
_gcclibdir="/usr/lib/gcc/$CTARGET/$_pkgbase"
_gcclibexec="/usr/libexec/gcc/$CTARGET/$_pkgbase"
prepare() {
cd "$_gccdir"
_err=
for i in $source; do
case "$i" in
*.patch)
msg "Applying $i"
patch -p1 -i "$srcdir"/$i || _err="$_err $i"
;;
esac
done
if [ -n "$_err" ]; then
error "The following patches failed:"
for i in $_err; do
echo " $i"
done
return 1
fi
echo ${_pkgbase:-$pkgver} > gcc/BASE-VER
default_prepare
echo $_pkgbase > gcc/BASE-VER
}
build() {
local _arch_configure=
local _libc_configure=
local _bootstrap_configure=
local _symvers=
local _jit_configure=
cd "$_gccdir"
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";;
@@ -351,15 +328,7 @@ build() {
*) _hash_style_configure="--with-linker-hash-style=gnu" ;;
esac
case "$CTARGET_LIBC" in
musl)
# musl does not support libsanitizer
# alpine musl provides libssp_nonshared.a, so we don't need libssp either
_libc_configure="--disable-libssp --disable-libsanitizer"
_symvers="--disable-symvers"
export libat_cv_have_ifunc=no
;;
esac
export libat_cv_have_ifunc=no
case "$BOOTSTRAP" in
@@ -388,10 +357,8 @@ build() {
echo " CHOST=$CHOST"
echo " CTARGET=$CTARGET"
echo " CTARGET_ARCH=$CTARGET_ARCH"
echo " CTARGET_LIBC=$CTARGET_LIBC"
echo " languages=$_languages"
echo " arch_configure=$_arch_configure"
echo " libc_configure=$_libc_configure"
echo " cross_configure=$_cross_configure"
echo " bootstrap_configure=$_bootstrap_configure"
echo " hash_style_configure=$_hash_style_configure"
@@ -412,7 +379,7 @@ build() {
--disable-multilib
--disable-nls
--disable-werror
$_symvers
--disable-symvers
--enable-__cxa_atexit
--enable-default-pie
--enable-default-ssp
@@ -420,7 +387,8 @@ build() {
--enable-link-serialization=2
--enable-linker-build-id
$_arch_configure
$_libc_configure
--disable-libssp
--disable-libsanitizer
$_cross_configure
$_bootstrap_configure
--with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
@@ -430,7 +398,7 @@ build() {
mkdir -p "$_builddir"
cd "$_builddir"
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--with-pkgversion="$version"
msg "building gcc"
@@ -446,7 +414,7 @@ build() {
if $LANG_JIT; then
mkdir -p "$_builddir"/libgccjit-build
cd "$_builddir"/libgccjit-build
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--disable-bootstrap \
--enable-host-shared \
--enable-languages=jit \
@@ -461,7 +429,7 @@ package() {
cd "$_builddir"
make -j1 DESTDIR="$pkgdir" install
ln -s gcc "$pkgdir"/usr/bin/cc
[ "$CHOST" = "$CTARGET" ] && ln -s gcc "$pkgdir"/usr/bin/cc
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
if $LANG_JIT; then
@@ -505,25 +473,23 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.so"); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
if [ "$CHOST" = "$CTARGET" ]; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
fi
fi
if [ "$CHOST" != "$CTARGET" ]; then
# cross-gcc: remove any files that would conflict with the
# native gcc package
rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "${pkgdir:?}"/usr/share
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*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# 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
@@ -572,8 +538,7 @@ libatomic() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libatomic.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libatomic.so.*
}
libcxx() {
@@ -586,8 +551,7 @@ libcxx() {
nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime
fi
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libstdc++.so.*
}
libcxx_dev() {
@@ -605,15 +569,12 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/usr/bin \
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
"$subpkgdir"/usr/${_target:+$CTARGET/}lib \
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
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"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
jit() {
@@ -632,30 +593,26 @@ libobjc() {
pkgdesc="GNU Objective-C runtime"
replaces="objc"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libobjc.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libobjc.so.*
}
objc() {
pkgdesc="GNU Objective-C"
replaces="gcc"
depends="libc-dev gcc=$_gccrel libobjc=$_gccrel"
depends="musl-dev gcc=$_gccrel libobjc=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include \
"$subpkgdir"/usr/lib
mv "$pkgdir/$_gcclibexec/cc1obj" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/objc "$subpkgdir"/$_gcclibdir/include/
mv "$pkgdir"/usr/lib/libobjc.so "$pkgdir"/usr/lib/libobjc.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgcc_s.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgcc_s.so.*
}
libgomp() {
@@ -663,17 +620,15 @@ libgomp() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgomp.so.*
}
libgphobos() {
pkgdesc="D programming language standard library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgdruntime.so.* "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so.*
amove usr/lib/libgphobos.so.*
}
gdc() {
@@ -682,42 +637,26 @@ gdc() {
[ "$CBUILD" = "$CTARGET" ] && depends="$depends libgphobos=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && provides="gcc-gdc-bootstrap=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include/d/ \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
# 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
mv "$pkgdir/$_gcclibexec/d21" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/d/* "$subpkgdir"/$_gcclibdir/include/d/
amove $_gcclibexec/d21
amove $_gcclibdir/include/d
if [ "$CBUILD" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.so "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so
amove usr/lib/libgphobos.so
fi
if [ "$CHOST" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.spec "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/
else
mkdir -p "$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgdruntime.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.spec \
"$subpkgdir"/usr/$CTARGET/lib/
fi
mv "$pkgdir"/usr/bin/$CTARGET-gdc "$subpkgdir"/usr/bin/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgo.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgo.so.*
}
go() {
@@ -725,31 +664,25 @@ go() {
depends="gcc=$_gccrel libgo=$_gccrel !go"
install="$pkgname-go.post-install"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/lib/go "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/*gccgo "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/bin/*go "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gofmt "$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/go1 "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/cgo "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/buildid "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/test2json "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/vet "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/usr/lib/libgo.a \
"$pkgdir"/usr/lib/libgo.so \
"$pkgdir"/usr/lib/libgobegin.a \
"$pkgdir"/usr/lib/libgolibbegin.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgfortran.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgfortran.so.*
}
libquadmath() {
@@ -757,8 +690,7 @@ libquadmath() {
pkgdesc="128-bit math library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libquadmath.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.so.*
}
gfortran() {
@@ -767,38 +699,30 @@ gfortran() {
$_libquadmath && depends="$depends libquadmath=$_gccrel"
replaces="gcc"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gfortran "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/lib/libgfortran.a \
"$pkgdir"/usr/lib/libgfortran.so \
"$subpkgdir"/usr/lib/
amove usr/bin/*gfortran
amove usr/lib/libgfortran.a
amove usr/lib/libgfortran.so
if $_libquadmath; then
mv "$pkgdir"/usr/lib/libquadmath.a \
"$pkgdir"/usr/lib/libquadmath.so \
"$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.a
amove usr/lib/libquadmath.so
fi
mv "$pkgdir"/$_gcclibdir/finclude "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/$_gcclibexec/f951 "$subpkgdir"/$_gcclibexec
mv "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir
amove $_gcclibdir/finclude
amove $_gcclibexec/f951
mv -v "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir/
}
libgnat() {
pkgdesc="GNU Ada runtime shared libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.so
}
libgnatstatic() {
pkgdesc="GNU Ada static libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.a "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.a
}
gnat() {
@@ -807,12 +731,9 @@ gnat() {
provides="$pkgname-gnat-bootstrap=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/*gnat* "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibdir/*ada* "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/
amove $_gcclibexec/*gnat*
amove $_gcclibdir/*ada*
amove usr/bin/*gnat*
}
gdb() {
@@ -864,4 +785,5 @@ c4482ffc36e7894b2140800159f4cbc9a3e9011e43a69b69f4fa92d5a11e2ee645c7e21df4423dd1
06f64544fd8bc4b6c8b06410c5198aa8fb4e82c232afc0cad83b2c69ac5d39399968206defa78297222700cd18e7fd7e8244afa76d343406a01f657c86306453 0036-libphobos-add-riscv64-and-loongarch64-support.patch
00319c9770362520e8e93bd03fda1769dfa3622eba77d620e11d8af45a38e6d804a5e924046ae388e1cfaea605696e89c343fca507aaaa5edd58d80744fff14f fix-arm64.patch
815265826742400f86336f0c2d3e4edc37398dbc6505ee81107c0103c13ac0f406cff851438d2323033c6c6d0c0323765ee15b975eab8d1dd465f9e988168fb9 ppc64le-quadmath.patch
ea55e0fa6813fc95c4ca2e87f059182edc54dc61515ebb92bf6eb31dbbd176d0fe81edcc7ea28d32f84ca37e8d48a544623d3d9bc94aa41ffc0859326a616aa2 riscv64-improve-build-time.patch
"
@@ -0,0 +1,149 @@
Patch-Source: https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2cf89ae83225f932b226cd57ef2d083a59bcf8a3
--
From 2cf89ae83225f932b226cd57ef2d083a59bcf8a3 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Tue, 6 Aug 2024 14:56:26 +0200
Subject: [PATCH] tree-optimization/116166 - forward jump-threading going wild
Currently the forward threader isn't limited as to the search space
it explores and with it now using path-ranger for simplifying
conditions it runs into it became pretty slow for degenerate cases
like compiling insn-emit.cc for RISC-V esp. when compiling for
a host with LOGICAL_OP_NON_SHORT_CIRCUIT disabled.
The following makes the forward threader honor the search space
limit I introduced for the backward threader. This reduces
compile-time from minutes to seconds for the testcase in PR116166.
Note this wasn't necessary before we had ranger but with ranger
the work we do is quadatic in the length of the threading path
we build up (the same is true for the backwards threader).
PR tree-optimization/116166
* tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
Add limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
* tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
Honor and decrement limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
(jump_threader::thread_across_edge): Initialize limit from
param_max_jump_thread_paths and pass it down to workers.
---
gcc/tree-ssa-threadedge.cc | 30 ++++++++++++++++++++++--------
gcc/tree-ssa-threadedge.h | 4 ++--
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/gcc/tree-ssa-threadedge.cc b/gcc/tree-ssa-threadedge.cc
index 7f82639b8ecc..0aa2aa851430 100644
--- a/gcc/tree-ssa-threadedge.cc
+++ b/gcc/tree-ssa-threadedge.cc
@@ -786,13 +786,17 @@ propagate_threaded_block_debug_into (basic_block dest, basic_block src)
bool
jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
edge taken_edge,
- bitmap visited)
+ bitmap visited, unsigned &limit)
{
basic_block bb = taken_edge->dest;
gimple_stmt_iterator gsi;
gimple *stmt;
tree cond;
+ if (limit == 0)
+ return false;
+ --limit;
+
/* The key property of these blocks is that they need not be duplicated
when threading. Thus they cannot have visible side effects such
as PHI nodes. */
@@ -830,7 +834,8 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
bitmap_set_bit (visited, taken_edge->dest->index);
- return thread_around_empty_blocks (path, taken_edge, visited);
+ return thread_around_empty_blocks (path, taken_edge, visited,
+ limit);
}
}
@@ -872,7 +877,7 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return true;
}
@@ -899,8 +904,13 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
int
jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge e, bitmap visited)
+ edge e, bitmap visited,
+ unsigned &limit)
{
+ if (limit == 0)
+ return 0;
+ limit--;
+
m_state->register_equivs_edge (e);
/* PHIs create temporary equivalences.
@@ -989,7 +999,7 @@ jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
visited. This may be overly conservative. */
bitmap_set_bit (visited, dest->index);
bitmap_set_bit (visited, e->dest->index);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return 1;
}
}
@@ -1075,9 +1085,12 @@ jump_threader::thread_across_edge (edge e)
bitmap_set_bit (visited, e->src->index);
bitmap_set_bit (visited, e->dest->index);
+ /* Limit search space. */
+ unsigned limit = param_max_jump_thread_paths;
+
int threaded = 0;
if ((e->flags & EDGE_DFS_BACK) == 0)
- threaded = thread_through_normal_block (path, e, visited);
+ threaded = thread_through_normal_block (path, e, visited, limit);
if (threaded > 0)
{
@@ -1148,11 +1161,12 @@ jump_threader::thread_across_edge (edge e)
m_registry->push_edge (path, e, EDGE_START_JUMP_THREAD);
m_registry->push_edge (path, taken_edge, EDGE_COPY_SRC_JOINER_BLOCK);
- found = thread_around_empty_blocks (path, taken_edge, visited);
+ found = thread_around_empty_blocks (path, taken_edge, visited, limit);
if (!found)
found = thread_through_normal_block (path,
- path->last ()->e, visited) > 0;
+ path->last ()->e, visited,
+ limit) > 0;
/* If we were able to thread through a successor of E->dest, then
record the jump threading opportunity. */
diff --git a/gcc/tree-ssa-threadedge.h b/gcc/tree-ssa-threadedge.h
index 9f6cbfe93307..245b3506a550 100644
--- a/gcc/tree-ssa-threadedge.h
+++ b/gcc/tree-ssa-threadedge.h
@@ -101,9 +101,9 @@ private:
unsigned limit);
bool thread_around_empty_blocks (vec<class jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
int thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
void thread_across_edge (edge);
bool record_temporary_equivalences_from_phis (edge);
gimple *record_temporary_equivalences_from_stmts_at_dest (edge);
--
2.43.5
+85 -161
View File
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-x86_64
pkgrel=3
pkgrel=4
pkgdesc="Stage2 cross-compiler for x86_64"
url="https://gcc.gnu.org"
arch="aarch64"
@@ -44,9 +44,11 @@ depends="binutils-x86_64 mpc1"
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-x86_64 binutils-x86_64"
subpackages="g++-x86_64:gpp libstdc++-dev-x86_64:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc$_target"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip"
options="!strip !tracedeps"
depends="$depends so:libc.musl-aarch64.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"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -135,7 +137,6 @@ else
export CXXFLAGS_FOR_TARGET="$CXXFLAGS"
export LDFLAGS_FOR_TARGET="$LDFLAGS"
export BOOT_CFLAGS="$CFLAGS"
export BOOT_CXXFLAGS="$CXXFLAGS"
export BOOT_LDFLAGS="$LDFLAGS"
fi
@@ -170,7 +171,7 @@ esac
# currently on x86, x86_64 and ia64
_libquadmath=$LANG_FORTRAN
case "$CTARGET_ARCH" in
x86 | x86_64 | ppc64le) _libquadmath=$LANG_FORTRAN ;;
x86 | x86_64 | ppc64le) ;;
*) _libquadmath=false ;;
esac
@@ -218,13 +219,12 @@ if $LANG_FORTRAN; then
_languages="$_languages,fortran"
fi
if $LANG_ADA; then
subpackages="$subpackages gcc-gnat$_target:gnat"
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 libgnat::$CTARGET_ARCH"
subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH"
else
subpackages="$subpackages libgnat::$CTARGET_ARCH"
makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross"
fi
fi
@@ -234,7 +234,7 @@ fi
makedepends="$makedepends_build $makedepends_host"
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
# 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
@@ -244,7 +244,7 @@ makedepends="$makedepends_build $makedepends_host"
# 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/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.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
@@ -283,6 +283,7 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
0036-libphobos-add-riscv64-and-loongarch64-support.patch
fix-arm64.patch
ppc64le-quadmath.patch
riscv64-improve-build-time.patch
"
# secfixes:
@@ -290,44 +291,21 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg
# - CVE-2023-4039
# we build out-of-tree
#_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver}
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
#builddir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
builddir="$srcdir"/gcc-$_pkgbase
_gcclibdir="/usr/lib/gcc/$CTARGET/$_pkgbase"
_gcclibexec="/usr/libexec/gcc/$CTARGET/$_pkgbase"
prepare() {
cd "$_gccdir"
_err=
for i in $source; do
case "$i" in
*.patch)
msg "Applying $i"
patch -p1 -i "$srcdir"/$i || _err="$_err $i"
;;
esac
done
if [ -n "$_err" ]; then
error "The following patches failed:"
for i in $_err; do
echo " $i"
done
return 1
fi
echo ${_pkgbase:-$pkgver} > gcc/BASE-VER
default_prepare
echo $_pkgbase > gcc/BASE-VER
}
build() {
local _arch_configure=
local _libc_configure=
local _bootstrap_configure=
local _symvers=
local _jit_configure=
cd "$_gccdir"
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";;
@@ -351,15 +329,7 @@ build() {
*) _hash_style_configure="--with-linker-hash-style=gnu" ;;
esac
case "$CTARGET_LIBC" in
musl)
# musl does not support libsanitizer
# alpine musl provides libssp_nonshared.a, so we don't need libssp either
_libc_configure="--disable-libssp --disable-libsanitizer"
_symvers="--disable-symvers"
export libat_cv_have_ifunc=no
;;
esac
export libat_cv_have_ifunc=no
case "$BOOTSTRAP" in
@@ -388,10 +358,8 @@ build() {
echo " CHOST=$CHOST"
echo " CTARGET=$CTARGET"
echo " CTARGET_ARCH=$CTARGET_ARCH"
echo " CTARGET_LIBC=$CTARGET_LIBC"
echo " languages=$_languages"
echo " arch_configure=$_arch_configure"
echo " libc_configure=$_libc_configure"
echo " cross_configure=$_cross_configure"
echo " bootstrap_configure=$_bootstrap_configure"
echo " hash_style_configure=$_hash_style_configure"
@@ -412,7 +380,7 @@ build() {
--disable-multilib
--disable-nls
--disable-werror
$_symvers
--disable-symvers
--enable-__cxa_atexit
--enable-default-pie
--enable-default-ssp
@@ -420,7 +388,8 @@ build() {
--enable-link-serialization=2
--enable-linker-build-id
$_arch_configure
$_libc_configure
--disable-libssp
--disable-libsanitizer
$_cross_configure
$_bootstrap_configure
--with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
@@ -430,7 +399,7 @@ build() {
mkdir -p "$_builddir"
cd "$_builddir"
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--with-pkgversion="$version"
msg "building gcc"
@@ -446,7 +415,7 @@ build() {
if $LANG_JIT; then
mkdir -p "$_builddir"/libgccjit-build
cd "$_builddir"/libgccjit-build
"$_gccdir"/configure $gccconfiguration \
"$builddir"/configure $gccconfiguration \
--disable-bootstrap \
--enable-host-shared \
--enable-languages=jit \
@@ -461,7 +430,7 @@ package() {
cd "$_builddir"
make -j1 DESTDIR="$pkgdir" install
ln -s gcc "$pkgdir"/usr/bin/cc
[ "$CHOST" = "$CTARGET" ] && ln -s gcc "$pkgdir"/usr/bin/cc
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
if $LANG_JIT; then
@@ -505,25 +474,23 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.so"); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
if [ "$CHOST" = "$CTARGET" ]; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
fi
fi
if [ "$CHOST" != "$CTARGET" ]; then
# cross-gcc: remove any files that would conflict with the
# native gcc package
rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "${pkgdir:?}"/usr/share
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*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# 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
@@ -572,8 +539,7 @@ libatomic() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libatomic.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libatomic.so.*
}
libcxx() {
@@ -586,8 +552,7 @@ libcxx() {
nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime
fi
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libstdc++.so.*
}
libcxx_dev() {
@@ -605,15 +570,13 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/usr/bin \
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
"$subpkgdir"/usr/${_target:+$CTARGET/}lib \
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
depends="$depends so:libc.musl-aarch64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
jit() {
@@ -632,30 +595,26 @@ libobjc() {
pkgdesc="GNU Objective-C runtime"
replaces="objc"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libobjc.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libobjc.so.*
}
objc() {
pkgdesc="GNU Objective-C"
replaces="gcc"
depends="libc-dev gcc=$_gccrel libobjc=$_gccrel"
depends="musl-dev gcc=$_gccrel libobjc=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include \
"$subpkgdir"/usr/lib
mv "$pkgdir/$_gcclibexec/cc1obj" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/objc "$subpkgdir"/$_gcclibdir/include/
mv "$pkgdir"/usr/lib/libobjc.so "$pkgdir"/usr/lib/libobjc.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgcc_s.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgcc_s.so.*
}
libgomp() {
@@ -663,17 +622,15 @@ libgomp() {
depends=
replaces="gcc"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgomp.so.*
}
libgphobos() {
pkgdesc="D programming language standard library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgdruntime.so.* "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so.*
amove usr/lib/libgphobos.so.*
}
gdc() {
@@ -682,42 +639,26 @@ gdc() {
[ "$CBUILD" = "$CTARGET" ] && depends="$depends libgphobos=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && provides="gcc-gdc-bootstrap=$_gccrel"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/$_gcclibdir/include/d/ \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
# 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
mv "$pkgdir/$_gcclibexec/d21" "$subpkgdir/$_gcclibexec/"
mv "$pkgdir"/$_gcclibdir/include/d/* "$subpkgdir"/$_gcclibdir/include/d/
amove $_gcclibexec/d21
amove $_gcclibdir/include/d
if [ "$CBUILD" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.so "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.so "$subpkgdir"/usr/lib/
amove usr/lib/libgdruntime.so
amove usr/lib/libgphobos.so
fi
if [ "$CHOST" = "$CTARGET" ]; then
mv "$pkgdir"/usr/lib/libgdruntime.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.a "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgphobos.spec "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/
else
mkdir -p "$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgdruntime.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.a \
"$subpkgdir"/usr/$CTARGET/lib/
mv "$pkgdir"/usr/$CTARGET/lib/libgphobos.spec \
"$subpkgdir"/usr/$CTARGET/lib/
fi
mv "$pkgdir"/usr/bin/$CTARGET-gdc "$subpkgdir"/usr/bin/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgo.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgo.so.*
}
go() {
@@ -725,31 +666,25 @@ go() {
depends="gcc=$_gccrel libgo=$_gccrel !go"
install="$pkgname-go.post-install"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/lib/go "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/bin/*gccgo "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/bin/*go "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gofmt "$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/go1 "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/cgo "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/buildid "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/test2json "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibexec/vet "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/usr/lib/libgo.a \
"$pkgdir"/usr/lib/libgo.so \
"$pkgdir"/usr/lib/libgobegin.a \
"$pkgdir"/usr/lib/libgolibbegin.a \
"$subpkgdir"/usr/lib/
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=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgfortran.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libgfortran.so.*
}
libquadmath() {
@@ -757,8 +692,7 @@ libquadmath() {
pkgdesc="128-bit math library for GCC"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libquadmath.so.* "$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.so.*
}
gfortran() {
@@ -767,38 +701,30 @@ gfortran() {
$_libquadmath && depends="$depends libquadmath=$_gccrel"
replaces="gcc"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/lib \
"$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*gfortran "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/lib/libgfortran.a \
"$pkgdir"/usr/lib/libgfortran.so \
"$subpkgdir"/usr/lib/
amove usr/bin/*gfortran
amove usr/lib/libgfortran.a
amove usr/lib/libgfortran.so
if $_libquadmath; then
mv "$pkgdir"/usr/lib/libquadmath.a \
"$pkgdir"/usr/lib/libquadmath.so \
"$subpkgdir"/usr/lib/
amove usr/lib/libquadmath.a
amove usr/lib/libquadmath.so
fi
mv "$pkgdir"/$_gcclibdir/finclude "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/$_gcclibexec/f951 "$subpkgdir"/$_gcclibexec
mv "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir
amove $_gcclibdir/finclude
amove $_gcclibexec/f951
mv -v "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir/
}
libgnat() {
pkgdesc="GNU Ada runtime shared libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.so
}
libgnatstatic() {
pkgdesc="GNU Ada static libraries"
depends=
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgna*.a "$subpkgdir"/usr/lib/
amove usr/lib/libgna*.a
}
gnat() {
@@ -807,12 +733,9 @@ gnat() {
provides="$pkgname-gnat-bootstrap=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/$_gcclibdir \
"$subpkgdir"/usr/bin
mv "$pkgdir"/$_gcclibexec/*gnat* "$subpkgdir"/$_gcclibexec/
mv "$pkgdir"/$_gcclibdir/*ada* "$subpkgdir"/$_gcclibdir/
mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/
amove $_gcclibexec/*gnat*
amove $_gcclibdir/*ada*
amove usr/bin/*gnat*
}
gdb() {
@@ -864,4 +787,5 @@ c4482ffc36e7894b2140800159f4cbc9a3e9011e43a69b69f4fa92d5a11e2ee645c7e21df4423dd1
06f64544fd8bc4b6c8b06410c5198aa8fb4e82c232afc0cad83b2c69ac5d39399968206defa78297222700cd18e7fd7e8244afa76d343406a01f657c86306453 0036-libphobos-add-riscv64-and-loongarch64-support.patch
00319c9770362520e8e93bd03fda1769dfa3622eba77d620e11d8af45a38e6d804a5e924046ae388e1cfaea605696e89c343fca507aaaa5edd58d80744fff14f fix-arm64.patch
815265826742400f86336f0c2d3e4edc37398dbc6505ee81107c0103c13ac0f406cff851438d2323033c6c6d0c0323765ee15b975eab8d1dd465f9e988168fb9 ppc64le-quadmath.patch
ea55e0fa6813fc95c4ca2e87f059182edc54dc61515ebb92bf6eb31dbbd176d0fe81edcc7ea28d32f84ca37e8d48a544623d3d9bc94aa41ffc0859326a616aa2 riscv64-improve-build-time.patch
"
@@ -0,0 +1,149 @@
Patch-Source: https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2cf89ae83225f932b226cd57ef2d083a59bcf8a3
--
From 2cf89ae83225f932b226cd57ef2d083a59bcf8a3 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Tue, 6 Aug 2024 14:56:26 +0200
Subject: [PATCH] tree-optimization/116166 - forward jump-threading going wild
Currently the forward threader isn't limited as to the search space
it explores and with it now using path-ranger for simplifying
conditions it runs into it became pretty slow for degenerate cases
like compiling insn-emit.cc for RISC-V esp. when compiling for
a host with LOGICAL_OP_NON_SHORT_CIRCUIT disabled.
The following makes the forward threader honor the search space
limit I introduced for the backward threader. This reduces
compile-time from minutes to seconds for the testcase in PR116166.
Note this wasn't necessary before we had ranger but with ranger
the work we do is quadatic in the length of the threading path
we build up (the same is true for the backwards threader).
PR tree-optimization/116166
* tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
Add limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
* tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
Honor and decrement limit parameter.
(jump_threader::thread_through_normal_block): Likewise.
(jump_threader::thread_across_edge): Initialize limit from
param_max_jump_thread_paths and pass it down to workers.
---
gcc/tree-ssa-threadedge.cc | 30 ++++++++++++++++++++++--------
gcc/tree-ssa-threadedge.h | 4 ++--
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/gcc/tree-ssa-threadedge.cc b/gcc/tree-ssa-threadedge.cc
index 7f82639b8ecc..0aa2aa851430 100644
--- a/gcc/tree-ssa-threadedge.cc
+++ b/gcc/tree-ssa-threadedge.cc
@@ -786,13 +786,17 @@ propagate_threaded_block_debug_into (basic_block dest, basic_block src)
bool
jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
edge taken_edge,
- bitmap visited)
+ bitmap visited, unsigned &limit)
{
basic_block bb = taken_edge->dest;
gimple_stmt_iterator gsi;
gimple *stmt;
tree cond;
+ if (limit == 0)
+ return false;
+ --limit;
+
/* The key property of these blocks is that they need not be duplicated
when threading. Thus they cannot have visible side effects such
as PHI nodes. */
@@ -830,7 +834,8 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
bitmap_set_bit (visited, taken_edge->dest->index);
- return thread_around_empty_blocks (path, taken_edge, visited);
+ return thread_around_empty_blocks (path, taken_edge, visited,
+ limit);
}
}
@@ -872,7 +877,7 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
m_state->append_path (taken_edge->dest);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return true;
}
@@ -899,8 +904,13 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
int
jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge e, bitmap visited)
+ edge e, bitmap visited,
+ unsigned &limit)
{
+ if (limit == 0)
+ return 0;
+ limit--;
+
m_state->register_equivs_edge (e);
/* PHIs create temporary equivalences.
@@ -989,7 +999,7 @@ jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
visited. This may be overly conservative. */
bitmap_set_bit (visited, dest->index);
bitmap_set_bit (visited, e->dest->index);
- thread_around_empty_blocks (path, taken_edge, visited);
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
return 1;
}
}
@@ -1075,9 +1085,12 @@ jump_threader::thread_across_edge (edge e)
bitmap_set_bit (visited, e->src->index);
bitmap_set_bit (visited, e->dest->index);
+ /* Limit search space. */
+ unsigned limit = param_max_jump_thread_paths;
+
int threaded = 0;
if ((e->flags & EDGE_DFS_BACK) == 0)
- threaded = thread_through_normal_block (path, e, visited);
+ threaded = thread_through_normal_block (path, e, visited, limit);
if (threaded > 0)
{
@@ -1148,11 +1161,12 @@ jump_threader::thread_across_edge (edge e)
m_registry->push_edge (path, e, EDGE_START_JUMP_THREAD);
m_registry->push_edge (path, taken_edge, EDGE_COPY_SRC_JOINER_BLOCK);
- found = thread_around_empty_blocks (path, taken_edge, visited);
+ found = thread_around_empty_blocks (path, taken_edge, visited, limit);
if (!found)
found = thread_through_normal_block (path,
- path->last ()->e, visited) > 0;
+ path->last ()->e, visited,
+ limit) > 0;
/* If we were able to thread through a successor of E->dest, then
record the jump threading opportunity. */
diff --git a/gcc/tree-ssa-threadedge.h b/gcc/tree-ssa-threadedge.h
index 9f6cbfe93307..245b3506a550 100644
--- a/gcc/tree-ssa-threadedge.h
+++ b/gcc/tree-ssa-threadedge.h
@@ -101,9 +101,9 @@ private:
unsigned limit);
bool thread_around_empty_blocks (vec<class jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
int thread_through_normal_block (vec<jump_thread_edge *> *path,
- edge, bitmap visited);
+ edge, bitmap visited, unsigned &limit);
void thread_across_edge (edge);
bool record_temporary_equivalences_from_phis (edge);
gimple *record_temporary_equivalences_from_stmts_at_dest (edge);
--
2.43.5
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-aarch64
pkgver=1.2.5
pkgrel=3
pkgrel=5
arch="x86_64"
subpackages="musl-dev-aarch64:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
30c20d050028bbe9a2203a0db0bb1453d921ac381fc3a7dc2c79c535a7ac25ecf65d7ee367b17178a37aa0e26d028a860d03567e9662c6251171c53bf2562893 musl-1.2.5-r3-aarch64-edge.apk
43ef19c8698e98eb473116e7c21dbb9e66d994bd1cd63837d0f0c43ceaf1ce4f1db582e48b22478574ef7fe4bc309aa7bb387af2f99d8d88bcecfaf7763ec82c musl-dev-1.2.5-r3-aarch64-edge.apk
5b3c6f1f1d87164a8a72c9d90b6e35ccc256bb2f6e1a12e4a3ff04b6309fff6c438eef60b824e4993958c4348c122fb96ef8f59dc468e10ee5be69aa81e6f4bc musl-1.2.5-r5-aarch64-edge.apk
ebbd7300b2102f322633dbc01449b5d4f25374609193359bf5da97e3a6cf34f1288a69ed0638bd5505b4548fdeb1efa481c9cd3a031ae3a98759b36cbf2db46e musl-dev-1.2.5-r5-aarch64-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-armhf
pkgver=1.2.5
pkgrel=3
pkgrel=5
arch="x86_64"
subpackages="musl-dev-armhf:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
b98e17b30e5968ca8f6c963e8752544112337b641186c269dbc4dd4b0a9496de9f4a549deb1bbf03e419b145b86b0c48fd22db1b8dff188bd3b451632b8c2b3f musl-1.2.5-r3-armhf-edge.apk
0e9fa461b75f3a9832e26f8086c9397b9d5dbea9c5821cf7898c0ccf64281f603137265606ee97810cba988fdff967ea7ec240e4e59c1d87da7e001cd4bf719a musl-dev-1.2.5-r3-armhf-edge.apk
302f14e5dc60b4c55f5f299be6cd158fe0955549e8b559afb5985c29a5c98432f82586732954c0dc3776104efc072b11ad9e4818842e6592df2e1931ba3590de musl-1.2.5-r5-armhf-edge.apk
71fc34ce05c5ed73136e77baa478986ec205f882f02602f54f772498451c70a254c89301e932c1e9d3b48a4b4513ca99f64b54de38bdd95966421c297e81ac5b musl-dev-1.2.5-r5-armhf-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-armv7
pkgver=1.2.5
pkgrel=3
pkgrel=5
arch="x86_64"
subpackages="musl-dev-armv7:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
05d888f66cb8bb75fcf767327068aff0152c32c97d6de680f7df0b9b11bbf99fefd8f2b7c1b92de8489e0f051d536e0d708faa3c5aaff783565e6c0e05d34c3b musl-1.2.5-r3-armv7-edge.apk
2c8775a37f2f7d5730857dcf7a7f038a1b0838a775a03e05ce299807f3608a112e95c61b776b32152434c27ee23b999915357b4e89e6559eb89e820666e36d97 musl-dev-1.2.5-r3-armv7-edge.apk
9e2af487860c1a232941a8c5e9833457af1f8c1bd45ce2105dcffcd39879363d4a14928c8670b6e5b8295c97a9fd121d880f8eee2f301df243e1e12dcae1cb69 musl-1.2.5-r5-armv7-edge.apk
8de555df4077de3f12bb5a113d2baaa93f403bd829058dd94093e58a0a7cd7b868d76bdc3f5bc0e5953f2bffdac4360cdbbada3be72578a17c7b1118cb2330a0 musl-dev-1.2.5-r5-armv7-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-riscv64
pkgver=1.2.5
pkgrel=3
pkgrel=5
arch="x86_64"
subpackages="musl-dev-riscv64:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
d9adef7c000203504c357db8b84008f95f97fa68e3944103c345e0bc511f84bff7175ea1afd029de81dd2acce64795c55f100b7abfed3a5bad464c654e620ac3 musl-1.2.5-r3-riscv64-edge.apk
51a20229c477c691429d2fb800ff441f0181e98879996c0fede94a39e37d66fd2bddd50f663c85090837b8cfaf41ed65c2d2142eaa0ce503b2c5bf6fd2d0194e musl-dev-1.2.5-r3-riscv64-edge.apk
4234a6980ea7bae2d275537f2c55e6ff1c480fc1ff838341d252ca71f6d098e1e91b60a8341744c91721d0850886f9155de330de7a71b037b9b87ac514582587 musl-1.2.5-r5-riscv64-edge.apk
6d10394c2e778699645ed3a65a52bd1fead39aeea13371a83cacae4b301fd577b2cb8cd9779c285d1dafeebef99cbd09807b86013468fe74f45cac1498c400ff musl-dev-1.2.5-r5-riscv64-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-x86
pkgver=1.2.5
pkgrel=3
pkgrel=5
arch="x86_64"
subpackages="musl-dev-x86:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
68f290b5c1a8e8c1b5b70e34c4be391fa49fc8f91902a6dd432a3c34317788c69d5a31f9fedeec51a4d12509aee735d8875f0c4349d3d9cab1d9789a50a78bf8 musl-1.2.5-r3-x86-edge.apk
2115a6da3ac624872a8e4d764aed69c0e729853d3b74643da83bef1083d20147de2f2f181df82d0bb273fad0597d37b719048bd66e23ed072982018ecf07b8fc musl-dev-1.2.5-r3-x86-edge.apk
5a556b306c4fe7969318c3af456dfa3b91f4a8563cf21d95154b27864d74baa68e99fc78302ac1b19f7aa3f72febb647959ef6c1c664798bbc8d411f8fe950f3 musl-1.2.5-r5-x86-edge.apk
52b49e9789176f47d6c00e0cf5e4ec66a70f1977ae86d4f8cbc33631e0f5586c8d745536aa04fcd612ec4aee9bfca2cc2e5beea0e5108d81a6a8e015a58d1666 musl-dev-1.2.5-r5-x86-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-x86_64
pkgver=1.2.5
pkgrel=3
pkgrel=5
arch="aarch64"
subpackages="musl-dev-x86_64:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
c4667bf824340766c2b6c41e88e4dc76a7e51b7247ece8f85e8e9347769fce6bd4459d94fcdc82ea12e0a67f7160d68cf2a1ed322eee7d6ca9d075036c17e193 musl-1.2.5-r3-x86_64-edge.apk
a64220117e1614e585be89fcb00e387b4ea2f4251ce2b6af38c576787093b4ce6a0bed3e4d7bc86517369ee5c4f11db63c6f572e16f336a1178fa99dfa394aff musl-dev-1.2.5-r3-x86_64-edge.apk
73c14308a84b80ffefa83e48322869a99c9adede367155493bee7f19e2be0846908cf52f0068748d641df9e19566c2fd49feda56e7848432054674a81c10f85e musl-1.2.5-r5-x86_64-edge.apk
8521be7365f75c68752c1527d32bc7c83a9f6670f5aff97752d9708607aaca04bf6afbed437192736f9e1baa85c1ff8f40dc75ce010554ac5ffbc777b9f0a6ac musl-dev-1.2.5-r5-x86_64-edge.apk
"
@@ -2,8 +2,8 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-a5lte-downstream
pkgdesc="Samsung Galaxy A5 (SM-A500F)"
pkgver=1
pkgrel=2
pkgver=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="armv7"
@@ -21,5 +21,5 @@ package() {
}
sha512sums="
09f28323fac82a8f8495af89de94449100e0f9233e22e33af807e559803bf3d9114aedc6d21626c7d5d736e93025de812292a0ee47c3639ac704696995c3d675 deviceinfo
410b5caac31e2af65ebfe1f3312fc2106c681430b75dfa8f4412f5727cd7db669dc3f46b1b2c20ece1b438052c36cbd3ff7b212ea03d9fea5af0b3c5bb14ff9b deviceinfo
"
@@ -17,7 +17,7 @@ deviceinfo_screen_height="1280"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=null androidboot.hardware=qcom user_debug=23 msm_rtb.filter=0x3F ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci"
deviceinfo_kernel_cmdline="quiet loglevel=2 androidboot.hardware=qcom user_debug=23 msm_rtb.filter=0x3F ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="true"
deviceinfo_bootimg_dtb_second="false"
@@ -2,8 +2,8 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-a5ulte-downstream
pkgdesc="Samsung Galaxy A5 (SM-A500FU)"
pkgver=1
pkgrel=2
pkgver=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="armv7"
@@ -21,5 +21,5 @@ package() {
}
sha512sums="
1e7fe5a6788c1b635ab5c63083da5c1f353440567b8f86948092202ce026cbbae000ea047e65fae543f13092f97626ce227bc3f329477fbd7521df1b31f30bc8 deviceinfo
8c08854b664866087f3df1dccbe39ee0aba4563e9fc2cb38567bbbb9f54a74e3a9ed7a574bc18930ecf595d8beda32dd301cd757b6788d24cdd819c8c9cc5c52 deviceinfo
"
@@ -17,7 +17,7 @@ deviceinfo_screen_height="1280"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=null androidboot.hardware=qcom user_debug=23 msm_rtb.filter=0x3F ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci"
deviceinfo_kernel_cmdline="quiet loglevel=2 androidboot.hardware=qcom user_debug=23 msm_rtb.filter=0x3F ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="true"
deviceinfo_bootimg_dtb_second="false"
@@ -3,13 +3,13 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-coreprimevelte-downstream
pkgdesc="Samsung Galaxy Core Prime VE LTE downstream"
pkgver=1
pkgrel=3
pkgver=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="mkbootimg linux-samsung-coreprimevelte-downstream postmarketos-base postmarketos-initramfs-minimal pxa-mkbootimg u-boot-tools"
depends="mkbootimg linux-samsung-coreprimevelte-downstream postmarketos-base pxa-mkbootimg u-boot-tools"
makedepends="devicepkg-dev"
_pmb_recommends="firmware-samsung-pxa1908-downstream"
source="deviceinfo 90-coreprimevelte.conf"
@@ -24,6 +24,6 @@ package() {
}
sha512sums="
741f46736c2742d4a6f118a924eee89954fb14e5b1dc00f372bda41b63ec975cf960909f915fcb31ad965f136a712905bc8626cd7e530f40e110885f7c861790 deviceinfo
ec654952ea328489ced4268a78272977cca1a9356d86ea9794f5a0aa9387d7daeb1125419388a4ade0ea86cc6893178601eb7aa18a5886970a775e5ad78a59ba deviceinfo
4854cc57b86e1199dbc165110514e672dabf45044fe9f7ebbde5b2b24768fb5497273b5f38612cf2dfeffc9bf0648c725114b4fa01165bf7fb02f7d741ee5806 90-coreprimevelte.conf
"
@@ -14,6 +14,7 @@ deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="480"
deviceinfo_screen_height="800"
deviceinfo_create_initfs_extra="true"
# Bootloader relate
deviceinfo_flash_method="heimdall-bootimg"
@@ -2,15 +2,14 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-lt01wifi-downstream
pkgdesc="Samsung Galaxy Tab 3 8.0"
pkgver=1
pkgrel=1
pkgver=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="armv7"
options="!check !archcheck"
depends="
postmarketos-base
postmarketos-initramfs-minimal
linux-samsung-lt01wifi-downstream
mkbootimg
"
@@ -35,7 +34,7 @@ nonfree_firmware() {
}
sha512sums="
b6d8953f5717b81fd1cb6d34e0f5539480b348a52194bbd3e6d83c3ae9e77bc2d948b05303c93ecbd7121f7affd476a9522c32c1a55fd7cee4ae0ca1bc0b88a0 deviceinfo
ea36813341c6843fa3b9c8a4ca330b92beb61e7c62de6a1d095c66f044237be2557bacdcc82912c48290d958128bef1771cd0d8c747758a5a98de759ecbb5778 deviceinfo
af036fe35011db078379dbb2e8c16c86546f0a4fcb3d1bcee3502bb1ea5b38f3ec5a9fa8cd1ca8ed8b89592a7f572d6072781289845303e0bf85fc2de4ead9fb modules-load.conf
594d6059ba1b06bce65538d26ce80cf2ce840786605b86e993ffaef858837507c033c0f95b7bcd9914ae7ea3cd2a9e43e32ec879db7c908219ad62d38b4e426a modprobe.conf
"
@@ -14,6 +14,7 @@ deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="800"
deviceinfo_screen_height="1280"
deviceinfo_create_initfs_extra="true"
# Bootloader related
deviceinfo_flash_method="heimdall-bootimg"
@@ -2,8 +2,8 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-m0-downstream
pkgdesc="Samsung Galaxy S III"
pkgver=3
pkgrel=4
pkgver=4
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="armv7"
@@ -12,7 +12,6 @@ depends="
linux-samsung-m0-downstream
mkbootimg
postmarketos-base
postmarketos-initramfs-minimal
"
makedepends="devicepkg-dev"
install="$pkgname.post-install"
@@ -40,6 +39,6 @@ nonfree_firmware() {
}
sha512sums="
e89b2287780aa94e93ee8cba472ec78b14a0de0089c3ee8c278175ace459d84a58a9278f473d917dd569b114874fb76931b404f810220d328c7e3f6148dac485 deviceinfo
8e72ed82c9cfa5e1a95aa480392264a69a9fe5a6e0b3e40dde4fdd7ca157b20ea673d2183fc02d0e98d4971a94fc625c0df6a8065527173d1653b1c90d1ed232 deviceinfo
1376f0eb7c6ba459ca5c44b3eb7e9919d9c5f48d71ec30c006d1b4843e31cdade9f980415a166e977b2567b26f4e87d4554ee1143fdc62453d60a93bed129d06 90-android-touch-dev.rules
"
@@ -14,6 +14,7 @@ deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="720"
deviceinfo_screen_height="1280"
deviceinfo_create_initfs_extra="true"
# Bootloader related
deviceinfo_flash_method="heimdall-bootimg"
@@ -3,13 +3,13 @@
pkgname=device-samsung-on7xelte-downstream
pkgdesc="Samsung Galaxy J7 Prime"
pkgver=1
pkgrel=0
pkgrel=1
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
linux-samsung-on7xelte
linux-samsung-on7xelte-downstream
mkbootimg
msm-fb-refresher
postmarketos-base
@@ -1,6 +1,6 @@
# Maintainer: Richard Acayan <mailingradian@gmail.com>
pkgname=alsa-ucm-conf-qcom-sdm670
pkgver=1.2.9_git20240801
pkgver=1.2.9_git20241012
pkgrel=0
pkgdesc="ALSA UCM configuration for SDM670 devices"
url="https://gitlab.com/sdm670-mainline/alsa-ucm-conf"
@@ -8,7 +8,7 @@ arch="aarch64"
license="BSD-3-Clause"
provides="alsa-ucm-conf"
provider_priority=1
_commit="4712327133bcf730a35ce2c80ffb2dfc06b43df1"
_commit="437f49545593a3e285feff1820bc1a282213af45"
source="https://gitlab.com/sdm670-mainline/alsa-ucm-conf/-/archive/$_commit/alsa-ucm-conf-$_commit.tar.gz"
options="!check"
@@ -19,5 +19,5 @@ package() {
}
sha512sums="
2401dce746edfef9c025b6e291de42262376839ea0556649b43cce995dbedb71f58574c1654bc05e3b80f19aca4789661f67a5503eb3308fddb6e057fa7c2d2d alsa-ucm-conf-4712327133bcf730a35ce2c80ffb2dfc06b43df1.tar.gz
4e0edfaf6451bc0177e2115f21ef00504abf2b974e7f8eb8e5f4089f11ff6d2692ff07965946eb9086b1dce7016ab14bdc998bbf6f72ae9da00d83678ed5c956 alsa-ucm-conf-437f49545593a3e285feff1820bc1a282213af45.tar.gz
"
@@ -3,7 +3,7 @@
pkgname=device-fairphone-fp4
pkgdesc="Fairphone 4"
pkgver=3
pkgrel=0
pkgrel=1
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -39,7 +39,7 @@ depends="
"
makedepends="devicepkg-dev"
replaces="hexagonrpcd-openrc"
install="$pkgname.post-install $pkgname.post-upgrade"
subpackages="$pkgname-openrc"
source="
81-libssc-fairphone-fp4.rules
90-feedbackd-aw8695.rules
@@ -63,6 +63,13 @@ package() {
"$pkgdir"/etc/conf.d/hexagonrpcd-adsp-sensorspd
}
openrc() {
install_if="$pkgname=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
mkdir -p "$subpkgdir"
}
sha512sums="
2c16ba75e0077b2b1eaefa4c73b287475505a1aeb291ec29316d41cc094277320f9d2aaabfd91eb1dc0f488ab2d61a94faef16e7afe0f1e226779113761b9a37 81-libssc-fairphone-fp4.rules
2974ccc172bf1299daeb0bc746879b3a1db1fbc3a2b163a02a6554fed6ed9f733144bcf976cd2441c5664d496dcce3ae943f4314c653470dc07dda0de5ad632b 90-feedbackd-aw8695.rules
@@ -0,0 +1 @@
device-fairphone-fp4-openrc.post-install
@@ -1 +0,0 @@
device-fairphone-fp4.post-install
+2 -2
View File
@@ -2,7 +2,7 @@
# Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-gru
pkgdesc="Google Gru Chromebooks"
pkgver=7
pkgver=8
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -53,6 +53,6 @@ nonfree_firmware() {
sha512sums="
7815e3a164720b5ad0df7ce8d12b12fe85cc4bb7bf4a09ccc0eb831a58a920026fd92d545f4d6fb459a688e15b9d542e360fd597cd5d3b01a3ea338c3928d2a3 deviceinfo
d0d5e47e7bc6f63f92669a315611c36972e2f06a32c1339ac551f23db023331fb6e1cdbbe4dc2022596aaf8083967951c43585a3aa32c4fddc8d8987bc20c092 deviceinfo
a750a0c41068082e0b82351d5aec91715e1a5215b09b26fec644dfe259cea2d662e878433a732a8c06dab2a9b420baec2bcc6161d8357cf3ed770239c5165090 modules-initfs
"
@@ -20,7 +20,7 @@ deviceinfo_disable_dhcpd="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_kernel_cmdline="console=null"
deviceinfo_kernel_cmdline="quiet loglevel=2"
deviceinfo_cgpt_kpart="/boot/vmlinuz.kpart"
deviceinfo_cgpt_kpart_start="8192"
deviceinfo_cgpt_kpart_size="65536"
@@ -2,7 +2,7 @@
# Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-kukui
pkgdesc="Google Kukui Chromebooks"
pkgver=8
pkgver=9
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -73,6 +73,6 @@ nonfree_firmware() {
}
sha512sums="
ecd503069ecf272ddc238bd49dc257a1f3e0f4c20b322238e2da83104b94b331c22886d1591b6fe0b78c986e15ac6251e364ec1b750f9125ea722a6b1a79e2b8 deviceinfo
563b0c9ee35c90f2be74e30fa6d490a351e5e114f946c21556f00b621bfd5c756599eef5228dad8cf74c258eb8eb9e12f8012058da285ddff7834820cad5fc7e deviceinfo
8e95624610dae7d18684056396c9e82635ddce7303d6770e965f9372ffa101fdfd5f8337bc7368004890e9836798663a98c142c52ed63795877ea37ac8da56af modules-initfs
"
@@ -19,7 +19,7 @@ deviceinfo_gpu_accelerated="true"
deviceinfo_disable_dhcpd="true"
# Bootloader related
deviceinfo_kernel_cmdline="console=null"
deviceinfo_kernel_cmdline="quiet loglevel=2"
deviceinfo_flash_method="none"
deviceinfo_cgpt_kpart="/boot/vmlinuz.kpart"
deviceinfo_cgpt_kpart_start="8192"
+2 -3
View File
@@ -3,7 +3,7 @@
# Co-Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-oak
pkgdesc="Google Oak Chromebooks"
pkgver=6
pkgver=8
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -15,7 +15,6 @@ depends="
linux-postmarketos-mediatek-mt8173
postmarketos-base
postmarketos-cros-common
postmarketos-initramfs-minimal
"
makedepends="devicepkg-dev"
source="deviceinfo modules-initfs"
@@ -40,6 +39,6 @@ nonfree_firmware() {
}
sha512sums="
d082e6c155347f662403f611f44c3eddb2a0548397bec4f29b882f371a18efa9c2628a88599b19c0c58c1886d0c25035367f02651a60fb6c3293faa1449b83d5 deviceinfo
6e4c6704aaca2b157ca437d0c9575a7efb369934facc59d0e43cbfff103f2e98dca42a46ba332069f00cc8f1289355a2177cb2ca4627445d50be7daaad60d817 deviceinfo
4b0197eacfeeb4b13f5abc26950f570ee762742547674ce10110ccea63eb46630a2e3b5f87e9c9a1f9deda21baf05bec248ab7a65656687ec94d296b5657dafa modules-initfs
"
@@ -18,10 +18,11 @@ deviceinfo_external_storage="true"
deviceinfo_screen_width="1366"
deviceinfo_screen_height="768"
deviceinfo_disable_dhcpd="true"
deviceinfo_create_initfs_extra="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_kernel_cmdline="console=null"
deviceinfo_kernel_cmdline="quiet loglevel=2"
deviceinfo_cgpt_kpart="/boot/vmlinuz.kpart"
deviceinfo_cgpt_kpart_start="8192"
deviceinfo_cgpt_kpart_size="65536"
@@ -2,7 +2,7 @@
# Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-peach-pit
pkgdesc="Samsung Chromebook 2 (11.6 inch)"
pkgver=7
pkgver=8
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -14,7 +14,6 @@ depends="
linux-postmarketos-exynos5
postmarketos-base
postmarketos-cros-common
postmarketos-initramfs-minimal
"
makedepends="devicepkg-dev"
source="
@@ -58,7 +57,7 @@ nonfree_firmware() {
}
sha512sums="
18e829f0eddcc8a0e64eb5081afa324da060de98478ac17d6199c1cecb4d2e984212c8681e8c75b4552d4dd5bbffff2f60dc8be1884b6ef23daa58319d4274fc deviceinfo
896b5fa32413195fe929e3a2e6be2c969b9af597da55bbdc318264c087c86b9754a265461be90e14747e5302a8873861fd3ad3b236b64a942a30edd3169405b2 deviceinfo
e12a68f919182cb4e6812a5dd13fce8dc15266d2ac16aa5f0a31034f111cb403c020ebaaa4d94309f4baf2f71379327c57c08029e27c506d152695e9a2b04b2b modules-initfs
e53ca475830930ecfc1fd537702e850e2abcb66fbed521cb6c3a2918d762649254bd0244ec93a47b20dfc593ec3afc9bdebdec1759a7bc96dcbe4800f40893da 90-tap-to-click.conf
6fe67c8f2e09e3e37297eebaf2a86a32671923a5fd4d18e5aeb10e580fb998e4ddb4a691531a0c8f4b4e70c6f0f7e91008dd836ffca8026d59862c6e829fd996 Peach-Pit-I2S-MAX98090.conf
@@ -18,6 +18,7 @@ deviceinfo_screen_width="1366"
deviceinfo_screen_height="768"
deviceinfo_gpu_accelerated="true"
deviceinfo_disable_dhcpd="true"
deviceinfo_create_initfs_extra="true"
# Bootloader related
deviceinfo_flash_method="none"
+19 -17
View File
@@ -3,7 +3,7 @@
pkgname=device-google-sargo
pkgdesc="Google Pixel 3a"
pkgver=6
pkgrel=2
pkgrel=5
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -28,7 +28,10 @@ source="
no-hexagonrpcd-on-suspend.sh
q6voiced.conf
"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
subpackages="
$pkgname-nonfree-firmware:nonfree_firmware
$pkgname-nonfree-firmware-openrc:nonfree_firmware_openrc
"
build() {
devicepkg_build $startdir $pkgname
@@ -45,7 +48,6 @@ package() {
nonfree_firmware() {
pkgdesc="Proprietary firmware blobs for the Google Pixel 3a"
replaces="hexagonrpcd-openrc"
depends="
firmware-google-sargo
hexagonrpcd
@@ -55,27 +57,27 @@ nonfree_firmware() {
soc-qcom-sdm845-modem
soc-qcom-sdm845-nonfree-firmware
"
# Enable HexagonRPCD by default, but not if the user installed this
# package then disabled it.
install="
device-google-sargo-nonfree-firmware.post-install
"
# The q6voiced configuration can only be used if the ADSP is brought up
# via non-free firmware.
install -Dm644 "$srcdir"/q6voiced.conf "$subpkgdir"/etc/conf.d/q6voiced
# Sensors depend on ADSP firmware and the sensors registry served over FastRPC.
install -Dm644 "$srcdir"/hexagonrpcd-adsp-sensorspd.confd \
"$subpkgdir"/etc/conf.d/hexagonrpcd-adsp-sensorspd
# Sensors depend on ADSP firmware and the sensors registry served over FastRPC.
install -Dm644 "$srcdir"/81-libssc-google-sargo.rules \
"$subpkgdir"/usr/lib/udev/rules.d/81-libssc-google-sargo.rules
}
nonfree_firmware_openrc() {
replaces="hexagonrpcd-openrc"
install_if="$pkgname-nonfree-firmware=$pkgver-r$pkgrel openrc"
# Enable HexagonRPCD by default, but not if the user installed this
# package then disabled it.
install="$subpkgname.post-install"
replaces="hexagonrpcd-openrc"
# The FastRPC service is only enabled when non-free firmware is installed.
install -Dm755 "$srcdir"/no-hexagonrpcd-on-suspend.sh \
"$subpkgdir"/etc/elogind/system-sleep/no-hexagonrpcd-on-suspend.sh
# The q6voiced configuration can only be used if the ADSP is brought up
# via non-free firmware.
install -Dm644 "$srcdir"/q6voiced.conf "$subpkgdir"/etc/conf.d/q6voiced
# Sensors depend on ADSP firmware and the sensors registry served over FastRPC.
install -Dm644 "$srcdir"/hexagonrpcd-adsp-sensorspd.confd \
"$subpkgdir"/etc/conf.d/hexagonrpcd-adsp-sensorspd
}
sha512sums="
+2 -3
View File
@@ -2,7 +2,7 @@
# Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-snow
pkgdesc="Samsung Chromebook"
pkgver=7
pkgver=9
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -14,7 +14,6 @@ depends="
linux-postmarketos-exynos5
postmarketos-base
postmarketos-cros-common
postmarketos-initramfs-minimal
"
makedepends="devicepkg-dev"
source="
@@ -56,7 +55,7 @@ sway() {
}
sha512sums="
475bc214db10d233137e8d9a43bfc4ea0c58e8938e9536fddab6c1d57ed133f37aa3a8ffce196df876af17e7817ccf6894947deaaa624bf3c161298196d866f6 deviceinfo
1ead9cae78b4e269d0bd54fc8da938171cb294125509049997a844b4769cd2419421f64bbcfa5fc4da991a77ed124155ec6613abe7a2ba8ba9e7e19440a801e5 deviceinfo
e12a68f919182cb4e6812a5dd13fce8dc15266d2ac16aa5f0a31034f111cb403c020ebaaa4d94309f4baf2f71379327c57c08029e27c506d152695e9a2b04b2b modules-initfs
8a8f593694528a9323ef4a0aff7e9c6ad45608957eb042d425663f682885c2f95eb01db4fe87b7c43a90de48f3e5f8b10cab4b13c547b5b0d31b924fcb083cad HiFi.conf
b163535da7626e3866faa45768c3888f69f90c98d694650e16a7594a03eb91391e166931eb487901217d983bb2dc4e49b99a2a5531740a7d87f8f4f5c3d0cf59 Snow-I2S-MAX98090.conf
@@ -18,13 +18,14 @@ deviceinfo_screen_width="1366"
deviceinfo_screen_height="768"
deviceinfo_gpu_accelerated="true"
deviceinfo_disable_dhcpd="true"
deviceinfo_create_initfs_extra="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_cgpt_kpart="/boot/vmlinuz.kpart"
deviceinfo_cgpt_kpart_start="8192"
deviceinfo_cgpt_kpart_size="16384"
deviceinfo_kernel_cmdline="console=null"
deviceinfo_kernel_cmdline="quiet loglevel=2"
deviceinfo_depthcharge_board="snow"
deviceinfo_generate_depthcharge_image="true"
deviceinfo_generate_extlinux_config="true"
@@ -2,7 +2,7 @@
# Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-trogdor
pkgdesc="Google Trogdor Chromebooks"
pkgver=3
pkgver=4
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -44,6 +44,6 @@ nonfree_firmware() {
sha512sums="
0a40c43eda1dbb159da59c00b3a1e51fff299a29add210de4d9a16c060da523c358b6d821aa1dd16523bb912d00e1a1837193cce52415f329ac2e171d220f6d3 deviceinfo
f94dcb175e49cbaadce524586ed1c3e3b0182e414c84c495a5585b49ed40ca6f7fa9c73544d19cbad236333f9fd997f150f836452b47a271f99b7b059972c4bc deviceinfo
ef0257928f28aff25e6c625fabfd0942b01d4d86f1b523212ca825cf80f8b7a6c20ff17bfb02cb19f2a5d8787326ba22ad560a957c8d3c38b9ec70f1e16f9117 modules-initfs
"
@@ -20,7 +20,7 @@ deviceinfo_disable_dhcpd="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_kernel_cmdline="console=null deferred_probe_timeout=30"
deviceinfo_kernel_cmdline="quiet loglevel=2 deferred_probe_timeout=30"
deviceinfo_cgpt_kpart="/boot/vmlinuz.kpart"
deviceinfo_cgpt_kpart_start="8192"
# 128M kernel partition
@@ -2,7 +2,7 @@
# Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-veyron
pkgdesc="Google Veyron Chromebooks"
pkgver=6
pkgver=7
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -53,6 +53,6 @@ nonfree_firmware() {
sha512sums="
851e0eb0b32d81a4aa2a63f7722f92bf221e49c1822a4fd179e997cd0e0231bb6f79c0b67ed12387890193617fd514862ac3aa6efacfc267e142acdd1f96fc1d deviceinfo
abeebda841ae33d50008b891b4a29ccf4a7cf7be240b5913b701409e8621aa7210f685543b8ab7a9778b311359a197b4429af2b559716fa130d3af8447bef61d deviceinfo
be3e804fa538d9d377c637094dcf95e503e8a156fa71676a9e78abc0e290595dfdaa70b5642df721ebcdd3daa04d14e0c61d9bab6f78cb1dbd669404abc3a56d modules-initfs
"
@@ -20,7 +20,7 @@ deviceinfo_disable_dhcpd="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_kernel_cmdline="console=null"
deviceinfo_kernel_cmdline="quiet loglevel=2"
deviceinfo_cgpt_kpart="/boot/vmlinuz.kpart"
deviceinfo_cgpt_kpart_start="24576"
deviceinfo_cgpt_kpart_size="32768"
@@ -0,0 +1 @@
/lib/firmware/amdgpu
@@ -0,0 +1,2 @@
# DMC fw is required on newer GPUs to enable lower power states
/lib/firmware/i915/*_dmc*
@@ -4,8 +4,8 @@
# Co-Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-x64cros
pkgdesc="Google Chromebooks with x64 CPU"
pkgver=8
pkgrel=1
pkgver=11
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="x86_64"
@@ -15,7 +15,6 @@ depends="
depthcharge-tools
postmarketos-base
postmarketos-cros-common
postmarketos-initramfs-minimal
systemd-boot
"
makedepends="devicepkg-dev"
@@ -23,17 +22,27 @@ install="$pkgname.post-install $pkgname.post-upgrade"
subpackages="
$pkgname-kernel-lts:kernel_lts
$pkgname-kernel-edge:kernel_edge
$pkgname-firmware-intel:firmware_intel
$pkgname-firmware-amd:firmware_amd
"
source="
00-amdgpu-firmware.files
00-i915-firmware.files
deviceinfo
modules-initfs
"
source="deviceinfo modules-initfs"
# TODO: package iwlwifi-7265D-29.ucode separetely, so we don't depend
# on linux-firmware-other
_pmb_recommends="
amd-ucode
intel-ucode
linux-firmware-amdgpu
linux-firmware-i915
linux-firmware-intel
linux-firmware-other
linux-firmware-rtl_nic
linux-firmware-rtw88
oem-intel
oem-amd
"
"
build() {
devicepkg_build $startdir $pkgname
@@ -55,7 +64,22 @@ kernel_lts() {
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}
firmware_amd() {
install_if="$pkgname=$pkgver-r$pkgrel linux-firmware-amdgpu"
install -Dm644 00-amdgpu-firmware.files \
-t "$subpkgdir"/usr/share/mkinitfs/files-extra
}
firmware_intel() {
install_if="$pkgname=$pkgver-r$pkgrel linux-firmware-i915"
install -Dm644 00-i915-firmware.files \
-t "$subpkgdir"/usr/share/mkinitfs/files-extra
}
sha512sums="
6ab370ce8de6ce77d255ad347563afa8314bdde1d54ba51970de3b3739bb52098284beead99485e416c9af5c8b53811f5286c1cd561896480526a892f982bdad deviceinfo
38c53d91a60d0402d4cc5428d65e1e8c26360c481c70b34593b1812c87241c32e91904a3bd31fbfe507f7fdb8b50c909eaad8c4c3a37ca962760567329f7f6ee 00-amdgpu-firmware.files
c17f5c505e0e280a9e51ac1b4264e7703b744fd3831d75ce95f41be4755ae4ccd24b7ca09ba1e236df499a5e748c64a0d2054c9d55d8c8c713fa8c5646ed9a3c 00-i915-firmware.files
514ff5c946633dccaa569fed51743c669ea9942af4dd891ad001ba08bba07fca92503e29304f3eb71c16bc2f2436e1879ff0bf56d99666e4dcf9635c8605da2e deviceinfo
1b3bbfcdc6642488304653aef996dddf7a354e7279f2c735ac7aec404e598948423630fcaa2cac87e2c0aef033ecfc57a7a91154f9dac9a85411db7bad62e677 modules-initfs
"
@@ -14,13 +14,14 @@ deviceinfo_chassis="laptop"
deviceinfo_keyboard="true"
deviceinfo_external_storage="true"
deviceinfo_disable_dhcpd="true"
deviceinfo_create_initfs_extra="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_boot_filesystem="fat32"
deviceinfo_cgpt_kpart="/boot/vmlinuz.kpart"
deviceinfo_cgpt_kpart_start="8192"
deviceinfo_cgpt_kpart_size="32768"
deviceinfo_cgpt_kpart_size="65536"
deviceinfo_depthcharge_board="amd64-generic"
deviceinfo_generate_depthcharge_image="true"
deviceinfo_generate_systemd_boot="true"
+4 -3
View File
@@ -4,13 +4,14 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-lenovo-21bx
pkgdesc="Lenovo ThinkPad X13s"
pkgver=10
pkgrel=1
pkgver=11
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck !strip"
depends="
alsa-ucm-conf
bootmac
firmware-lenovo-21bx
libmbim-tools
@@ -62,7 +63,7 @@ usbguard() {
}
sha512sums="
c3570f44cd0134fd7400a5467cfddb3c1877a771fda8006228d1b0fd81536171ece53bf7562fc0e11dcc1fd3c6830e324e0d5ad9fdc4e16b53107fa3a04004fb deviceinfo
9cb08de5748b0339005a910cc0475ad344dc6e912e477c5bd6b370784af6309719524f8fa7a39e7565586e47968a35c344ea853cddd716cc3e1e483efaae7ff0 deviceinfo
82f7719285434d8c7a5268ddc21d513bb3f3788eb3dd2df099e1c245add9d19719047b003a47edb077e095ebe09d9601b1312c001578e7dfa4ed61d72098ef74 firmware.files
27705e998db262602b50004083fe160dbcde88e9fdcaeb43e3d1d79be0b7af371f84855bb93ba16ada3cf5fa8ff8da6ca159cda4b1de08fb54ac451c57169c57 modules-initfs
52bbb9564ec713db5d46937701b121afe0c6c644fffe189a05766f491b4997b1bbc4c1f90229efb5764d795df8d40a57d4c840ee4b32d426e7a84520364b8bf5 pipewire.conf
@@ -15,7 +15,7 @@ deviceinfo_gpu_accelerated="true"
deviceinfo_chassis="laptop"
deviceinfo_keyboard="true"
deviceinfo_external_storage="true"
deviceinfo_kernel_cmdline="console=null quiet clk_ignore_unused pd_ignore_unused arm64.nopauth"
deviceinfo_kernel_cmdline="quiet loglevel=2 quiet clk_ignore_unused pd_ignore_unused arm64.nopauth"
# Bootloader related
deviceinfo_flash_method="none"
@@ -33,7 +33,7 @@ nonfree_firmware() {
pkgdesc="GPU/WiFi/BT/Modem/Video firmware"
# harpia's WCNSS firmware has problems with WiFi channels on some device
# variants, using osprey's firmware seems to help as a workaround
# (see https://gitlab.com/postmarketOS/pmaports/-/issues/1085)
# (see https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/1085)
depends="firmware-qcom-adreno-a300 msm-firmware-loader
firmware-motorola-harpia-wcnss-nv firmware-motorola-harpia-venus
firmware-motorola-osprey-wcnss"
+12 -4
View File
@@ -2,8 +2,8 @@
# Maintainer: Sicelo <absicsz@gmail.com>
# Co-Maintainer: Danct12 <danct12@disroot.org>
pkgname=device-nokia-n900
pkgver=29
pkgrel=0
pkgver=30
pkgrel=1
pkgdesc="Nokia N900"
url="https://postmarketos.org"
arch="armv7"
@@ -22,13 +22,14 @@ depends="
wl1251-cal-openrc
"
makedepends="devicepkg-dev u-boot-tools kbd kbd-bkeymaps"
install="$pkgname.pre-upgrade $pkgname.post-install"
install="$pkgname.post-install $pkgname.pre-upgrade"
subpackages="
$pkgname-x11
$pkgname-xkeyboard-config:xkeyboard_config
$pkgname-i3wm
$pkgname-upower
$pkgname-sxmo
$pkgname-openrc
"
source="
10-initfs-keymap.files
@@ -206,6 +207,13 @@ upower() {
"$subpkgdir"/etc/UPower/UPower.conf
}
openrc() {
install_if="$pkgname=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install"
mkdir -p "$subpkgdir"
}
sha512sums="
6b475c12eca8563be48c562a1cb4ad8ca6a05d70fc54b21288b2dd7435a80a6f53351aa870db96d5bbecf1b1c5cb00dfe35f5066e6d3fd0ad0369e66aeef5a21 10-initfs-keymap.files
4656d3b3ced0a86e2d6315c89322899f646a689e9cb64609aa8ad5a676b23d93706d8a37f3be6f6b12c6b1e8501b7d26ecafecf27322333850513a6805c61910 10-initfs-keymap.sh
@@ -215,7 +223,7 @@ ff51909873160c2d4c6f0c0119b6d4a02751df29f571b8596b4bc8b04ce2541913c11a583b0e5dab
67acc17a33bc75113300393b4a5bba15319014032407e774d079abf310368e75f4f697dbb4856ba2d2d8ea184b056bb33561f42918de3ee91ab6a77df89a133c asound.state.speakers
3d55e34b95791636e44a5f41754f3d0de039dbba41f7a556d43a95c9e64afcfa930046b4b96b40020b6f196096ffba93514682927e32fa4488686fdd19c6da5a backlight-enable.sh
e6bbac8de1a198ba716f44ade76606e1e0adcc574156b855ac41be5eb5308389d3277fd89cc34b119fbc33d9801ab9f79a6ff213392596bff40bc17e931c05ef device-nokia-n900.start
2463008d270ed09342f15b51f24ea455bd884021f95397991b85616b6840a6608d91cd1fc43186094f5c3d1bd25e88c16aa9ead07b018aea3d93cd2359bba0b1 deviceinfo
40aaeb44941a988ab8ec58d331bc6cd42c4a23c6b6e8fc302f9216a38b46baab38d0a0137606a5b7959a51326983c03d684615c5ba9c58b0e36314ec8c49cfbb deviceinfo
f48b8dd7297d03008f73e1ecd55b77ace535ecb03f9bdf021123b96fb5f4fb491ff4c532e226b835c8118fa8d505cc4c635a2b604a3e42a162746021552a551c modules-initfs
826a3790b49324c1e61c75b6c0ffc043a2a1d7c13a8c554fb5eae4977af47a1ca93d70ef8c783d712b953b70e18ae58fa4c6a49bf97263398a01a0c4f91ebc8f i3blocks.conf
506accabcf9fb3e2a270228ea53fdcb57f51092d6e7126a631af8eed697cd882cc805b19cf255422284bec12c928b58219d173a4a790d784db5335a059b6bb4f i3wm.conf
@@ -0,0 +1,12 @@
#!/bin/sh
# Enable acpid
rc-update add acpid default
# hwdrivers is required for acpid to 'see' all devices
rc-update add hwdrivers boot
# Enable ofono
rc-update add ofono default
# Disable swclock because rtc is working
rc-update -q del swclock boot
exit 0
@@ -5,13 +5,4 @@ for i in $(awk '{if($NF && ($1 !~ /^#/)) print $NF}' /etc/acpi.map); do
ln -s /etc/acpi/handler.sh /etc/acpi/$i
done
# Enable acpid
rc-update add acpid default
# hwdrivers is required for acpid to 'see' all devices
rc-update add hwdrivers boot
# Enable ofono
rc-update add ofono default
# Disable swclock because rtc is working
rc-update -q del swclock boot
exit 0
@@ -22,3 +22,4 @@ deviceinfo_swap_size_recommended="1024"
# Bootloader related
deviceinfo_flash_method="0xffff"
deviceinfo_generate_legacy_uboot_initfs="true"
deviceinfo_partition_type="msdos"
@@ -4,7 +4,7 @@
pkgname=device-oneplus-enchilada
pkgdesc="OnePlus 6"
pkgver=14
pkgrel=2
pkgrel=3
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -27,8 +27,8 @@ source="
81-libssc-oneplus-enchilada.rules
"
subpackages="
$pkgname-nonfree-firmware-openrc:nonfree_firmware_openrc
$pkgname-nonfree-firmware:nonfree_firmware
$pkgname-nonfree-firmware-openrc:nonfree_firmware_openrc
$pkgname-pmtest
"
@@ -4,7 +4,7 @@
pkgname=device-oneplus-fajita
pkgdesc="OnePlus 6T"
pkgver=14
pkgrel=0
pkgrel=2
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -26,7 +26,11 @@ source="
q6voiced.conf
81-libssc-oneplus-fajita.rules
"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware $pkgname-pmtest"
subpackages="
$pkgname-nonfree-firmware:nonfree_firmware
$pkgname-nonfree-firmware-openrc:nonfree_firmware_openrc
$pkgname-pmtest
"
build() {
devicepkg_build $startdir $pkgname
@@ -47,12 +51,16 @@ nonfree_firmware() {
soc-qcom-sdm845-nonfree-firmware
soc-qcom-sdm845-modem
"
replaces="hexagonrpcd-openrc"
install -Dm644 "$srcdir"/81-libssc-oneplus-fajita.rules -t "$subpkgdir"/usr/lib/udev/rules.d/
}
nonfree_firmware_openrc() {
install_if="$pkgname-nonfree-firmware=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
mkdir "$subpkgdir"
replaces="hexagonrpcd-openrc"
install -Dm644 q6voiced.conf "$subpkgdir"/etc/conf.d/q6voiced
install -Dm644 "$srcdir"/81-libssc-oneplus-fajita.rules -t "$subpkgdir"/usr/lib/udev/rules.d/
install -Dm644 "$srcdir"/hexagonrpcd.confd "$subpkgdir"/etc/conf.d/hexagonrpcd-sdsp
}
@@ -0,0 +1 @@
./device-oneplus-fajita-nonfree-firmware-openrc.post-install
@@ -1 +0,0 @@
device-oneplus-fajita-nonfree-firmware.post-install
@@ -3,7 +3,7 @@
pkgname=device-pine64-pinebookpro
pkgdesc="PINE64 Pinebook Pro"
pkgver=16
pkgrel=6
pkgrel=7
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -19,13 +19,7 @@ depends="
iw
"
makedepends="devicepkg-dev"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware $pkgname-elogind"
install="
$pkgname.post-install
$pkgname.post-upgrade
$pkgname-elogind.post-install
$pkgname-elogind.post-upgrade
"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware $pkgname-elogind $pkgname-openrc"
source="
deviceinfo
modules-initfs
@@ -50,6 +44,7 @@ package() {
elogind() {
install_if="$pkgname=$pkgver-r$pkgrel elogind"
install="$subpkgname.post-install $subpkgname.post-upgrade"
install -D -m644 "$srcdir"/enable-s2idle.conf \
"$subpkgdir"/usr/lib/elogind/sleep.conf.d/enable-s2idle.conf
}
@@ -59,6 +54,14 @@ nonfree_firmware() {
depends="linux-firmware-brcm linux-firmware-rockchip"
mkdir "$subpkgdir"
}
openrc() {
install_if="$pkgname=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
mkdir -p "$subpkgdir"
}
sha512sums="
7b3cd3ff2af954d07e88cca043a9975e74236bb49454bbcff8eaed23d822560ba2200adc88373dc2a0e5f130b8f90fd1c522f7b25171325d8e41e75c4b7bfba5 deviceinfo
6e3d97855a1f898db46b87ae1eb190d23d841fcb72332fcac4d11cd27c8f7d50eb8fd73007ed0447f106d19ff2e0fc1f34da1baf890e1465135dd692d65df2ba modules-initfs
@@ -0,0 +1 @@
device-pine64-pinebookpro-openrc.post-install
@@ -1 +0,0 @@
device-pine64-pinebookpro.post-install
@@ -3,7 +3,7 @@
pkgname=device-pine64-pinephonepro
pkgdesc="PINE64 PinePhone Pro"
pkgver=4
pkgrel=1
pkgrel=2
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -25,13 +25,10 @@ makedepends="
subpackages="
$pkgname-nonfree-firmware:nonfree_firmware
$pkgname-gnome
$pkgname-openrc
$pkgname-sway
$pkgname-x11
"
install="
$pkgname.post-install
$pkgname.post-upgrade
"
source="
51_keyboard.gschema.override
90-modem-eg25.rules
@@ -123,6 +120,13 @@ gnome() {
"$subpkgdir"/usr/share/glib-2.0/schemas
}
openrc() {
install_if="$pkgname=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
mkdir -p "$subpkgdir"
}
sway() {
install_if="$pkgname=$pkgver-r$pkgrel sway-virtual"
install -Dm644 "$srcdir"/sway-pinephone-keyboard.conf \
@@ -0,0 +1 @@
./device-pine64-pinephonepro-openrc.post-install
@@ -1 +0,0 @@
device-pine64-pinephonepro.post-install
+3 -4
View File
@@ -2,8 +2,8 @@
# Maintainer: Newbyte <newbyte@disroot.org>
pkgname=device-samsung-m0
pkgdesc="Samsung Galaxy S III"
pkgver=7
pkgrel=2
pkgver=8
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="armv7"
@@ -13,7 +13,6 @@ depends="
linux-postmarketos-exynos4
mkbootimg
postmarketos-base
postmarketos-initramfs-minimal
soc-samsung-exynos4412-haptics
"
makedepends="devicepkg-dev"
@@ -53,7 +52,7 @@ nonfree_firmware() {
}
sha512sums="
d745aabeda081c66056a35605cb352994050a1f53ba4570f16690a1670d20c2a39da5abbdc115acb925a933c8c16118b8ed7757da48cfe87779261d8d06b1d24 deviceinfo
768ec2afc4a8b782fdfece54f4ddc9898f3b24a30b45ff0d3f7ef5f5a26fdcca2028d3fd4449029ea09f195cbcd7291318b835b0236e0ae70396c9d5741c326f deviceinfo
caa81e8ab6753c0ca24c22fb6742288765dfbf2469b8b8c35c5789edfcee546ef1c3b14ad6e540c417f434258399300f17d312b58157635eafab134587ef94cc Midas.conf
21f64c9104ec5780fffde8ba7ce57583592469694d07dd5e2de4173d7c9f99ba57fb28bb5bcfbbce921be9c4ead9d31980e948533162fe12424c2037145debb1 HiFi.conf
56a2bdffc273cb0a581192e65378ff50e71c7bc8a696af7d5e7c165a53c005aae104c4514c68afb668454c5a94ce78bd509f8a40e3401d67e16636b1ed81d051 modules-load.conf
@@ -19,6 +19,7 @@ deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="720"
deviceinfo_screen_height="1280"
deviceinfo_create_initfs_extra="true"
# Bootloader related
deviceinfo_flash_method="heimdall-bootimg"
@@ -1,10 +1,9 @@
# Maintainer: Joel Selvaraj <joelselvaraj.oss@gmail.com>
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-xiaomi-beryllium
pkgdesc="Xiaomi Poco F1"
pkgver=11
pkgrel=1
pkgrel=3
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -18,6 +17,7 @@ depends="
makedepends="devicepkg-dev"
subpackages="
$pkgname-nonfree-firmware:nonfree_firmware
$pkgname-nonfree-firmware-openrc:nonfree_firmware_openrc
$pkgname-kernel-tianma:kernel_tianma
$pkgname-kernel-ebbg:kernel_ebbg
"
@@ -41,20 +41,25 @@ package() {
nonfree_firmware() {
pkgdesc="GPU, venus, modem and sensor firmware"
install="$subpkgname.post-install $subpkgname.post-upgrade"
depends="
firmware-xiaomi-beryllium
soc-qcom-sdm845-nonfree-firmware
soc-qcom-sdm845-modem
hexagonrpcd
"
mkdir "$subpkgdir"
install -Dm644 81-libssc-xiaomi-beryllium.rules \
"$subpkgdir"/etc/udev/rules.d/81-libssc-xiaomi-beryllium.rules
}
nonfree_firmware_openrc() {
install_if="$pkgname-nonfree-firmware=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
replaces="hexagonrpcd-openrc"
mkdir "$subpkgdir"
install -Dm644 q6voiced.conf "$subpkgdir"/etc/conf.d/q6voiced
install -Dm644 81-libssc-xiaomi-beryllium.rules \
"$subpkgdir"/etc/udev/rules.d/81-libssc-xiaomi-beryllium.rules
install -Dm644 "$srcdir"/hexagonrpcd.confd "$subpkgdir"/etc/conf.d/hexagonrpcd-sdsp
}
@@ -0,0 +1 @@
device-xiaomi-beryllium-nonfree-firmware-openrc.post-install
@@ -1 +0,0 @@
device-xiaomi-beryllium-nonfree-firmware.post-install
Loaded 100 of 781 files, more files were not shown because too many files have changed in this diff. Show more