Compare commits

..
Author SHA1 Message Date
Aster Boese a482f41540 systemd/systemd: lower systemd-resolved provider_priority
Currently we do not package the configurations needed to use systemd-resolved
as a replacement for openresolv. Without this patch current systems that have
wireguard-tools installed will automatically pull systemd-resolved.

See https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/80058/diffs
2025-02-28 01:23:22 -05:00
adamthiede 4af4a32b2f linux-postmarketos-mediatek-mt8173: upgrade to 6.13.5 (MR 6262) 2025-02-27 23:39:19 +01:00
Sicelo A. Mhlongo 6589a57e26 device-nokia-n900: force SD card partition resizing (MR 6257)
Reverts 82a8d55197 (device-nokia-n900: drop partition resize cmdline option
(MR 6164)) since it seems resizing does not actually take place automatically,
at least as far as the N900 is concerned

[ci:skip-build]: already built successfully in CI
2025-02-27 12:06:55 -08:00
jane400 6da432b150 systemd/systemd: upgrade to 256.11 (MR 6145)
There are some notable changes:
- systemd-journal-upload is now available, but not tested
- pam files now live under `/usr/lib/pam.d`. users can easily override
  configuration by putting files under /etc/pam.d with the same name.
- journalctl should now work for `wheel` groups without privilege
  esclation to root. ACLs' for /var/log/journal should hopefully be
  set correctly now.
- /bin/udevadm /sbin/{init,udevd} are now provided by the APKBUILD itself
- The split-usr backport lives now in the downstream release.
2025-02-27 09:57:13 -08:00
jane400 ec84571f9b systemd/phosh: use abuild's systemd splitfunc and launch dbus via socket-activation (MR 6243)
The current -systemd subpackage isn't getting installed due to the
invalid install_if statement. As abuild's fork in pmOS for systemd
specifies a default_systemd() and systemd() function, overriding it
here isn't needed.

The -systemd subpackage contains configuration for gnome-session in
systemd mode.
- By placing a file into systemd/user/gnome-session@phosh.target.d,
  we generate a valid gnome-session@phosh.target.
- The first invokation of gnome-session by phosh-session includes
  the arg `--session phosh`. When gnome-session sees a running
  systemd user manager via dbus, it will signal to systemd to start
  `gnome-session@phosh.target`.

As we switched to tinydm/autologin for phosh on systemd-edge, this
will only work when autologin also tries to load pam_systemd.so.
[ci:skip-build]: already built successfully in CI
2025-02-27 09:48:03 -08:00
postmarketOS CI 99b062b484 linux-next: upgrade to next-20250227 2025-02-27 17:00:24 +00:00
postmarketOS CI 082b6f1908 linux-next: upgrade to next-20250226 2025-02-26 06:00:26 +00:00
postmarketOS CI d4fffe484e linux-next: upgrade to next-20250225 2025-02-25 16:57:43 +00:00
postmarketOS CI de8e3f1455 linux-next: upgrade to next-20250224 2025-02-24 17:17:48 +00:00
David Wronek 1493549cb6 firmware-xiaomi-{davinci,surya}: move to community (MR 6253)
It seems like these packages have been missed during the community move.

Fixes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6210
Signed-off-by: David Wronek <david@mainlining.org>

[ci:skip-vercheck]: no changes to packages
2025-02-23 19:13:51 +01:00
Danct12 f4dcc93f90 linux-pine64-pinetab2: upgrade to kernel 6.13.4 (MR 6251) 2025-02-23 10:34:17 +01:00
Luca Weiss 25db9f4c54 firmware-fairphone-fp3: squash .mdt firmware, drop unused adreno firmware (MR 6249)
Keep symlinks for mdt around until the kernel is using the new paths.
2025-02-23 10:28:12 +01:00
Luca Weiss 1b0c2a4006 device-fairphone-fp3: add Adreno firmware dependency (MR 6249)
As required by new kernel version due to different paths.
2025-02-23 10:28:11 +01:00
User0 d289089272 linux-postmarketos-qcom-msm8930: update to 6.13.0 (MR 6238)
Update the close-to-mainline linux kernel fork for the MSM8930 processor to 6.13.0.
According to wctrl, this also makes WiFi work, if you place the drivers in the initramfs. Haven't tried that.

[ci:skip-build]: already built successfully in CI
2025-02-22 23:41:12 -08:00
Devin Lin 7d017f5f08 extra-repos/systemd/systemd-services: rename kded to plasma-kded6 (MR 6247)
kded currently doesn't start with the session, but when I rename the systemd unit file to plasma-kded6.service, it starts automatically.

[ci:skip-build]: already built successfully in CI
2025-02-22 23:38:16 -08:00
Robert Eckelmann 30d0bbaa55 device-solidrun-cubox: deviceinfo updates (MR 6222)
1. disable USB-gadget as this device has a UART available in HW
2. disable the fb detection (used for pbsplash), as I am not progressing
   with getting HDMI working.

Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
[ci:skip-build]: already built successfully in CI
2025-02-22 23:33:57 -08:00
Luca Weiss b3da4de87b linux-postmarketos-qcom-sm6350: upgrade to 6.13.1 (MR 6165)
[ci:skip-build]: already built successfully in CI
2025-02-22 23:28:10 -08:00
Ferass El Hafidi 65f06007b3 device-raspberry-pi{,0}: explicitely use MBR (MR 6171)
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>

[ci:skip-build]: already built successfully in CI
2025-02-22 23:23:27 -08:00
Luca Weiss c998666991 device/*: add Maintainer line for devices that I practically maintain (MR 6170)
Since we have aports-qa-bot now set up to ping maintainers, let's make
it explicit that I maintain these packages.

Clean up CODEOWNERS as well for my entries which anyways contain my
username which is not used on gitlab.p.o.

[ci:skip-vercheck] # even though Maintainer line is embedded in .apk, it
doesn't make sense to mass rebuild these packages just for that.
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2025-02-22 23:18:07 -08:00
Luca Weiss 3edb2de81c linux-fairphone-fp2: fix compile (MR 6170)
And add Maintainer line for myself.
2025-02-22 23:18:07 -08:00
Luca Weiss a768607db5 linux-fairphone-fp1: fix compile (MR 6170)
And add Maintainer line for myself.
2025-02-22 23:18:07 -08:00
Jens Reidel 72312c90a1 linux-postmarketos-qcom-sm7150: Upgrade to 6.13.4 (MR 6235)
Signed-off-by: Jens Reidel <adrian@travitia.xyz>

[ci:skip-build]: already built successfully in CI
2025-02-23 07:38:20 +01:00
Luca Weiss f26fce2a43 linux-fairphone-fp3: drop (MR 6245)
The kernel doesn't compile anymore due to updated toolchain:

  scripts/Makefile.lib:414: *** prerequisites cannot be defined in recipes.  Stop.
  make[3]: *** [../scripts/Makefile.modbuiltin:54: techpack/audio/dsp] Error 2

Remove it since mainline kernel is working better anyways.
2025-02-22 22:09:53 +01:00
Luca Weiss 7b2e353252 device-fairphone-fp3: drop downstream kernel variant & clean up (MR 6245)
Also fold the nonfree-firmware subpackage into the main package as per
updated packaging guidelines since this APKBUILD was created.
2025-02-22 22:09:53 +01:00
Kidd Lee e59720ad8c linux-xiaomi-ido: fix kernel compile error cuased by Sun Solaris style flag on section (MR 6242) 2025-02-22 21:10:24 +09:00
Clayton Craft 0860262282 systemd/postmarketos-base-systemd: add zram-init/zram_swap preset (MR 6208)
I evaluated using systemd/zram-generator but decided against it for the following reasons:

1) it was more difficult to configure using the existing deviceinfo var
we have for zram_pct, this meant that we would ultimately couldn't have
a consistent way to configure zram stuff for all supported init systems

2) it's a Rust app, and was failing to build in CI for armv7, riscv64,
and armhf with some weird qemu crashes, failed tests, etc

3) zram-init Just Works, upstream ships a unit file for it so they
support running under systemd already
[ci:skip-build]: already built successfully in CI
2025-02-21 10:28:22 -08:00
Clayton Craft 73dd694b16 systemd/systemd-services: add zram-init unit file (MR 6208) 2025-02-21 10:28:22 -08:00
Clayton Craft e78a913153 main/postmarketos-base: move zram size calc logic to standalone script (MR 6208)
This allows re-using it elsewhere, like in pmos-base-systemd
2025-02-21 10:28:22 -08:00
postmarketOS CI 1ea30defd5 linux-next: upgrade to next-20250221 2025-02-21 17:00:40 +00:00
Luca Weiss dfe67680a0 linux-postmarketos-qcom-msm8974: upgrade to 6.13.2 (MR 6179)
Manual kconfig changes:
* QCOM_RPMPD=y

[ci:skip-build]: already built successfully in CI
2025-02-21 11:31:02 +03:00
postmarketOS CI e754327457 linux-next: upgrade to next-20250220 2025-02-20 16:58:00 +00:00
Jens Reidel 3fdc261482 CODEOWNERS: Add entries for xiaomi-davinci, xiaomi-surya and qcom-sm7150 (MR 6210)
Signed-off-by: Jens Reidel <adrian@travitia.xyz>

[ci:skip-vercheck]: no changes to packages
[ci:skip-build]: already built successfully in CI
2025-02-20 08:57:13 +01:00
Jens Reidel 4f19839510 device-xiaomi-{davinci,surya}: Move from testing to community (MR 6210)
The SM7150 devices have seen a lot of work put into them and are
generally very usable except for microphone/earpiece audio and cameras.
Both of these features are still work in progress and should be
available sometime in the future. They fulfil the requirements for
community in the Wiki, so let's promote them.

Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2025-02-20 08:57:13 +01:00
Oliver Smith 1bce4af9d8 main/qmi-ping: remove
This package has been upstreamed to Alpine.
2025-02-19 23:16:45 +01:00
Oliver Smith f630ab79b5 main/extract-dtb: remove
This package has been upstreamed to Alpine.
2025-02-19 23:16:24 +01:00
Caleb Connolly 53da3e2a0e linux-next: enable PMEM (MR 6228)
PMEM aka persistent memory enables a region of memory to be treated as a
block device. This is particularly useful as a way for EFI bootloaders
to retrieve a full OS image (via HTTP) and make it accessible to the OS.

Support for this is making its way to U-Boot: https://lore.kernel.org/u-boot/20250203105912.196654-1-sughosh.ganu@linaro.org/

Let's enable this in postmarketOS so we can enable HTTP booting images
directly from postmarketOS.org.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:skip-build]: already built successfully in CI
2025-02-19 21:30:36 +01:00
Clayton Craft 65b913b5b1 ci: drop CODEOWNERS check (MR 6189)
This is really annoying to fight with, especially since it's going to be
going away soon in https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3530

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2025-02-19 08:13:25 -08:00
Clayton Craft 0d7a9af890 soc-qcom-sdm845: drop package (MR 6189)
No longer needed since soc-qcom provides all of the config/dependency
requirements that this pkg used to. It can be re-added later if some new
sdm845-specific stuff is needed
2025-02-19 08:13:25 -08:00
Clayton Craft e7a2d73803 device-lg-judyp: depend on soc-qcom (MR 6189) 2025-02-19 08:13:25 -08:00
Clayton Craft 8eb5904936 device-lg-judyln: depend on soc-qcom (MR 6189) 2025-02-19 08:13:25 -08:00
Clayton Craft d103fe9eef device-postmarketos-trailblazer: depend on soc-qcom-qbootctl (MR 6189) 2025-02-19 08:13:25 -08:00
Clayton Craft 435c770893 device-ayn-odin: depend on soc-qcom (MR 6189) 2025-02-19 08:13:24 -08:00
Clayton Craft 3c6007d1e6 device-google-blueline: depend on soc-qcom (MR 6189) 2025-02-19 08:13:24 -08:00
Clayton Craft e2c58b62d4 device-qualcomm-sdm845: depend on soc-qcom (MR 6189) 2025-02-19 08:13:24 -08:00
Clayton Craft 94a7f962ab device-google-bonito: depend on soc-qcom (MR 6189) 2025-02-19 08:13:24 -08:00
Clayton Craft f45e69b753 device-xiaomi-sagit: depend on soc-qcom (MR 6189) 2025-02-19 08:13:24 -08:00
Clayton Craft fa689f2b58 device-xiaomi-polaris: depend on soc-qcom (MR 6189) 2025-02-19 08:13:24 -08:00
Clayton Craft 262d6fd569 device-xiaomi-equuleus: depend on soc-qcom (MR 6189) 2025-02-19 08:13:23 -08:00
Clayton Craft 7b76811ba1 device-xiaomi-beryllium: depend on soc-qcom (MR 6189) 2025-02-19 08:13:23 -08:00
Clayton Craft be22d32df2 device-oneplus-fajita: depend on soc-qcom (MR 6189) 2025-02-19 08:13:23 -08:00
Clayton Craft 9fd9e45cfd device-google-sargo: depend on soc-qcom (MR 6189) 2025-02-19 08:13:23 -08:00
Clayton Craft 049514c7dc device-lenovo-yoga-c630: depend on soc-qcom (MR 6189) 2025-02-19 08:13:23 -08:00
Clayton Craft df6f66bc48 device-shift-axolotl: depend on soc-qcom (MR 6189) 2025-02-19 08:13:23 -08:00
Clayton Craft fedf4608f3 device-thundercomm-db845c: depend on soc-qcom (MR 6189) 2025-02-19 08:13:22 -08:00
Clayton Craft dd21e5df0f device-samsung-starqltechn: depend on soc-qcom (MR 6189) 2025-02-19 08:13:22 -08:00
Clayton Craft d9ad333b82 device-oneplus-enchilada: depend on soc-qcom (MR 6189) 2025-02-19 08:13:22 -08:00
Clayton Craft f242b07fa0 soc-qcom-msm8998: depend on soc-qcom (MR 6189) 2025-02-19 08:13:22 -08:00
Clayton Craft fcb6becab0 alsa-ucm-conf-sdm845: new aport (MR 6189) 2025-02-19 08:13:22 -08:00
Clayton Craft bd4c139c4d soc-qcom: new aport (MR 6189)
This is basically a copy of soc-qcom-sdm845, which many things (even
non-sdm845 stuff) were depending on.
2025-02-19 08:13:22 -08:00
Jens Reidel d41a2282b0 device-xiaomi-davinci: Stop depending on now nonexistent unl0kr quirk (MR 6234)
Commit cb7074d8a8 removed this subpackage
and unconditionally enabled the unl0kr quirk in soc-qcom-sm7150, but the
xiaomi-davinci device package was never updated to account for this.

Signed-off-by: Jens Reidel <adrian@travitia.xyz>
[ci:skip-build]: already built successfully in CI
2025-02-19 16:09:29 +01:00
Yahia Shamaa 63598e5147 linux-samsung-lt023g: upgrade to 3.4.113 (MR 6231)
And backport memfd-related patches

[ci:skip-build]: already built successfully in CI
2025-02-19 12:36:30 +03:00
postmarketOS CI 4a6bda4f68 linux-next: upgrade to next-20250219 2025-02-19 05:57:37 +00:00
Piotr Halama 70e8d1af82 nokia-ant: new device (MR 6134) 2025-02-18 21:53:22 +09:00
postmarketOS CI d45164ac5f linux-next: upgrade to next-20250218 2025-02-18 06:04:40 +00:00
Jianhua Lu 4baacf948d device-lenovo-q706f: add alsa-ucm-conf to depends (MR 6175)
[ci:skip-build]: already built successfully in CI
2025-02-17 11:18:24 -08:00
Jianhua Lu 1df4d9cbbd device-fairphone-fp5: add alsa-ucm-conf to depends (MR 6175) 2025-02-17 11:18:24 -08:00
Jianhua Lu 7ab487c314 device-acer-aspire1: add alsa-ucm-conf to depends (MR 6175) 2025-02-17 11:18:24 -08:00
Jianhua Lu 076080039b device-xiaomi-elish: add alsa-ucm-conf to depends (MR 6175) 2025-02-17 11:18:24 -08:00
postmarketOS CI 440419d97e linux-next: upgrade to next-20250217 2025-02-17 17:00:14 +00:00
Pablo Correa Gómez e9acb14510 device-generic-x86_64: depend on unl0kr-fbforcerefresh (MR 6185)
This has caused some issues for me, specifically in my framework,
where unl0kr was otherwise not showing in the main screen (but would
if connected an HDMI over the USB-C port)

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez cb7074d8a8 soc-qcom-sm7150: depend on unl0kr-fbforcerefresh (MR 6185)
Instead of packaging config file manually. In the process, update the
maintainer lines to not have Co-Maintainer (relates #3530)
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez e211e97777 device-xiaomi-olive: depend on unl0kr-fbforcerefresh (MR 6185)
Instead of packaging config file manually
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez d5b6316edc device-qualcomm-sdm845: depend on unl0kr-fbforcerefresh (MR 6185)
Instead of packaging config file manually
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez ef55870612 device-lg-hammerhead: depend on unl0kr-fbforcerefresh (MR 6185)
Instead of packaging config file manually
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez 50b5acb237 device-google-blueline: depend on unl0kr-fbforcerefresh (MR 6185)
Instead of packaging config file manually
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez 8482e8abaf device-fairphone-fp5: depend on unl0kr-fbforcerefresh (MR 6185)
Instead of packaging config file manually
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez 76f5633d2c device-oneplus-fajita: depend on unl0kr-fbforcerefresh (MR 6185)
Instead of packaging config file manually
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez 7857c8af18 device-oneplus-enchilada: depend on unl0kr-fbforcerefresh (MR 6185)
Instead of packaging config file manually
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez 701ca385d3 device-google-sargo: depend on unl0kr-fbforcerefresh (MR 6185)
Instead of packaging config file manually
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez caa3ef1a50 main/unl0kr: introduce subpackage for the fb_force_refresh quirk (MR 6185)
A surprinsingly amount of devices use this quirk. So instead of having
each of those packages package the file individually, let's create a
single unl0kr subpackage that they can depend on
2025-02-17 08:48:41 +01:00
Pablo Correa Gómez 4c62b255a6 main/unl0kr: slightly packaging improvement (MR 6185) 2025-02-17 08:48:40 +01:00
Pablo Correa Gómez 00a26bad78 main/postmarketos-initramfs: move unlock_root_partition to 2nd funcs (MR 6177)
It is used in the "2nd" part of the initramfs, not in the first one

[ci:skip-build]: already built successfully in CI
2025-02-17 08:41:01 +01:00
Oliver Smith 67ed1ad917 device-google-veyron: use initfs_extra (MR 6226)
Fix that building phosh, gnome, plasma-mobile images fails with:

==> Generating vmlinuz.kpart
Building depthcharge image for board 'Unnamed veyron board' ('veyron').
Couldn't build a small enough image for this board.

Related: https://builds.sr.ht/~postmarketos/job/1422513#task-img-1544
Related: bpo issue 153
[ci:skip-build]: already built successfully in CI
2025-02-16 16:07:53 +01:00
Luca Weiss b48a3cf194 systemd/phosh: disable crossdirect (MR 6223)
Workaround since building for armv7 on x86_64 fails, see
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/2820

[ci:skip-vercheck] # no rebuild necessary
[ci:skip-build]: already built successfully in CI
2025-02-16 14:30:29 +01:00
Mattijs Korpershoek be3686c69e device-khadas-vim3: new device (MR 6220)
The Khadas VIM3 [1] is a popular devboard (SBC).
It has an Amlogic A311D SoC and is well supported in mainline linux.

Add board support in testing.

Note that we use the soc-amlogic-s905 package which also provides
support for A311d.

[1] https://www.khadas.com/vim3
Signed-off-by: Mattijs Korpershoek <mattijs.korpershoek@gmail.com>
2025-02-16 11:19:56 +00:00
fossdd 1d732b5a8a main/postmarketos-base-ui: recommend lang (MR 6146)
Installation of lang gets moved from pmbootstrap to pmaports, since
pmbootstrap previously had installed lang only on non-default locale
systems. With this change also systems on the default locale can switch
between languages.

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

[ci:skip-vercheck]: only _pmb_recommends was changed
[ci:skip-build]: already built successfully in CI
2025-02-14 16:40:51 -08:00
Jakob Hauser b670515aab main/postmarketos-ui-lxqt: increase window buttons size (MR 6068)
At first fix issue #3315 caused by config file snippet openbox/rc.xml. The
snippet results in unresponsive window headers after changing the Openbox
theme. The Openbox settings GUI ObConf-Qt is not set up to handle config
snippets. Therefore replace the snippet by the full file of openbox/rc.xml.
The issue was investigated at:
https://github.com/Mikachu/openbox/issues/23

Secondly custom Openbox themes of dark style Onyx and bright style Clearlooks
with larger window buttons are added.

Thirdly the default Openbox theme is set to custom Clearlooks with larger
window buttons and additionally the Openbox font size is increased.

Detailed changelog of GitLab repository antoni.aloytorrens/lxqt-tablet:
- Increase Openbox font sizes
- Set default Openbox theme to "Clearlooks-L" with larger buttons
- Add custom Openbox themes Clearlooks with larger window buttons
- Add custom Openbox themes Onyx with larger window buttons
- Set the number of desktops to two again
- Restore full openbox/rc.xml config file
[ci:skip-build]: already built successfully in CI
2025-02-14 16:10:26 -08:00
postmarketOS CI 7ca97d24fc linux-next: upgrade to next-20250214 2025-02-14 20:00:24 +00:00
Clayton Craft e799a582f2 systemd/systemd-services: fix wg-quick@ unit (MR 6218)
I accidentally commented out an important section header and didn't
notice until now...

[ci:skip-build]: already built successfully in CI
2025-02-14 10:54:59 -08:00
VaporGame d9bfb7f301 i9105p: add wifi support and correct vc-firmware path (MR 6110)
[ci:skip-build]: already built successfully in CI
2025-02-14 10:43:38 -08:00
Robert Mader 105d4b3911 device-google-sargo: install hexagonrpcd conf to new location (MR 6217)
This was missed in
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6188

[ci:skip-build]: already built successfully in CI
2025-02-14 12:26:29 +01:00
Clayton Craft b395936171 ci/build_changed_aports: fix systemd build testing (MR 6214)
copypasta failure on my part :(

fixes 2238b8e734

[ci:skip-build]: already built successfully in CI
2025-02-13 14:17:44 -08:00
Clayton Craft 302b38eb24 systemd/wireplumber: fix checksum 2025-02-13 14:03:07 -08:00
Oliver Smith a9209f909f cross/musl-*: upgrade to 1.2.5-r10 2025-02-13 21:57:28 +01:00
fossdd 4a1ee90648 systemd/wireplumber: upgrade to 0.5.8 (MR 6213)
Upstream: https://gitlab.alpinelinux.org/alpine/aports/-/commit/b9c39e72a1a11b44dbb37c006f3e697c9e522d62
2025-02-13 21:09:13 +01:00
Robert Mader 5cffcf7ea2 main/postmarketos-base-ui-gnome: add fprintd to depends (MR 6206)
So fingerprint support is shipped by default if supported by the
hardware.

[ci:skip-build]: already built successfully in CI
2025-02-13 11:50:17 -08:00
Clayton Craft 2238b8e734 ci/build_changed_aports: skip building systemd pkgs when there are none for the arch (MR 6197)
[ci:skip-build]: already built successfully in CI
2025-02-13 11:42:01 -08:00
Bart Ribbers 699303cc2e systemd/plasma*: upgrade to 6.3.0 (MR 6197) 2025-02-13 11:42:01 -08:00
David Wronek 0678d9392d device-xiaomi-surya: fix touchscreen module in initfs (MR 6212)
This fixes the touchscreen in unl0kr.

Signed-off-by: David Wronek <david@mainlining.org>
[ci:skip-build]: already built successfully in CI
2025-02-13 11:33:36 -08:00
Sicelo A. Mhlongo b99b919290 wl1251-cal: modernize and improve reliability (MR 6202)
Alpine now ships compressed firmware, so the old firmware file name is no
longer available, causing wl1251-cal to fail. Fix by manually creating the
expected uncompressed file.

Additionally, wl1251-cal has not been running early enough in most cases,
causing the kernel to use default nvs. Fix by blacklisting the driver and
probing it after the correct nvs has been extracted and saved.
[ci:skip-build]: already built successfully in CI
2025-02-13 11:29:32 -08:00
Clayton Craft 359b2d8451 systemd/systemd-services: hexagonrpcd: use new path for env in unit files (MR 6188)
Changed in: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/79927

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2025-02-13 08:58:50 -08:00
Clayton Craft 7ae8f9d25a device-xiaomi-davinci: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:58:49 -08:00
Clayton Craft 29353f3d6a device-xiaomi-surya: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:57:10 -08:00
Clayton Craft ce731e2c19 soc-qcom-sm7150: depend on the latest hexagonrpcd (MR 6188) 2025-02-13 08:55:42 -08:00
Clayton Craft 318ab06a29 device-xiaomi-miatoll: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:52:57 -08:00
Clayton Craft a817674771 device-fairphone-fp4: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:52:57 -08:00
Clayton Craft 623053fa97 device-fairphone-fp5: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:52:57 -08:00
Clayton Craft 3d9d00d103 device-ayn-odin: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:52:57 -08:00
Clayton Craft d2cf5de15d device-oneplus-enchilada: install hexagonrpcd conf to new location (MR 6188)
fixes #3537
2025-02-13 08:52:56 -08:00
Clayton Craft b3c4334b78 device-xiaomi-nabu: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:52:56 -08:00
Clayton Craft 749ffd227b device-lenovo-q706f: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:52:56 -08:00
Clayton Craft ac9466b52f device-oneplus-fajita: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:52:56 -08:00
Clayton Craft 47f9209987 device-xiaomi-beryllium: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:52:56 -08:00
Clayton Craft a3c158a081 device-shift-axolotl: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:52:56 -08:00
Clayton Craft 1b58ec9b60 device-xiaomi-elish: install hexagonrpcd conf to new location (MR 6188) 2025-02-13 08:52:56 -08:00
Robert Mader 6ed4f78241 systemd/systemd-services: add unit file for fprintd (MR 6205)
[ci:skip-build]: already built successfully in CI
2025-02-13 08:47:35 -08:00
Eisenbahnfan e6a1193f3d linux-samsung-v1awifi: fix for not compiling kernel (MR 6211)
The kernel couldn't be compiled. Additional patches were necessary to compile the linux kernel again.

[ci:skip-build]: already built successfully in CI
2025-02-13 14:39:08 +01:00
Arnav Singh 8bf5b2e6b2 linux-postmarketos-allwinner: upgrade to 6.13.2_git20250209 (MR 6199)
This does not yet switch to mainline wifi driver [^1]. I will do that later
so that if that needs to be reverted the kernel upgrade itself can stay.

[^1]: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3420
[ci:skip-build]: already built successfully in CI
2025-02-13 10:10:37 +01:00
Danila TikhonovandJens Reidel 0652ab1a0f device-xiaomi-surya: support more panels, fix deps and modules-initfs (MR 6195)
modules-initfs: Add touchscreen and panels, drop gpi and spi

1. Add the touchscreen (nt36xxx-spi), panels (panel-huaxing-nt36672c,
panel_tianma_nt36672c) and wled to modules-initfs, as these drivers
have been switched to modules.

2. Drop GPI and SPI from the module list as they have been configured
as built-in within the kernel.

Refine nonfree firmware dependencies:

1. Removed the common GPU firmware package from soc-qcom-sm7150 and
subsequently re-added it to firmware-xiaomi-surya in earlier commits.
We now ensure the GPU ZAP firmware is installed by adding
firmware-xiaomi-surya-gpu as a dependency to nonfree_firmware.

2. Incorporated firmware-xiaomi-surya-sensors into nonfree_firmware,
following its prior inclusion in firmware-xiaomi-surya.

3. Extended the integration of the soc-qcom-sm7150-libssc-180-degrees
udev rule into nonfree_firmware, building on its earlier addition to
soc-qcom-sm7150.

4. Install firmware unconditionally and provide a path for hexagonfs.

The Xiaomi POCO X3 NFC (xiaomi-surya) has two possible panel variants:
Huaxing and Tianma. The kernel dts file has been split to accommodate
these variants. Update the device package to enable panel selection
during the pmbootstrap init.

Co-authored-by: Jens Reidel <adrian@travitia.xyz>
Signed-off-by: Danila Tikhonov <danila@jiaxyga.com>
2025-02-13 11:52:12 +03:00
Danila TikhonovandJens Reidel 5523be6326 firmware-xiaomi-surya: Update and add sensors firmware (MR 6195)
1. Added maintainers information.
2. Use a new method for firmware installation.
3. Add firmware for sensors.

Co-authored-by: Jens Reidel <adrian@travitia.xyz>
Signed-off-by: Danila Tikhonov <danila@jiaxyga.com>
2025-02-13 11:52:12 +03:00
Arian 591e3a4e84 {device,firmware}-xiaomi-davinci: Add myself as Co-Maintainer (MR 6195) 2025-02-13 11:52:11 +03:00
Jens Reidel 9d4eb8e8a6 device-xiaomi-davinci: Update firmware deps and initfs modules (MR 6195)
The panel driver was renamed and i2c and spi are now built-in.

Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2025-02-13 11:51:22 +03:00
Jens Reidel 8781683807 firmware-xiaomi-davinci: Update and add sensors and decommonized GPU firmware (MR 6195)
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2025-02-13 11:51:22 +03:00
Danila Tikhonov 210cb4e60a soc-qcom-sm7150: multiple improvements (MR 6195)
Drop the signed A615 GPU ZAP firmware from soc-qcom-sm7150 due to
compatibility issues causing crashes on Xiaomi (sweet/courbet) devices.

This firmware will be re-added in device-specific firmware packages
without being added to initramfs modules. Removing this firmware from
initramfs modules will not impact FDE functionality, as it is not
necessary for basic image display on panels.

Removal from initramfs modules is due to a change in the path to the
A615 GPU ZAP firmware, now device-specific.

Depend on new alsa ucm config package.

Add hexagonrpcd as a dependency and enable the
hexagonrpcd-adsp-sensorspd service for SSC.

Implement accel libssc_180_degrees mount matrix:
Introduce new udev rules tailored for Xiaomi devices (surya/davinci)
and potentially applicable to a broader range of sm7150 devices.
These rules are added to the SoC package and will be set as dependencies
in device packages for nonfree_firmware in subsequent commits.

Drop userspace pd-mapper, we have switched to the in-kernel
pd-mapper.

Add bootmac to set bt mac address.

Install nonfree firmware unconditionally.

Co-developed-by: Danila Tikhonov <danila@jiaxyga.com>
Signed-off-by: Danila Tikhonov <danila@jiaxyga.com>
Co-developed-by: Jens Reidel <adrian@travitia.xyz>
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2025-02-13 11:44:12 +03:00
Jens Reidel e6e35145fe testing/alsa-ucm-conf-qcom-sm7150: New package (MR 6195)
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2025-02-13 11:44:05 +03:00
Barnabás Czémán c110eaf7f0 linux-postmarketos-msm89x7: Upgrade to v6.13-r1 (MR 6207)
[ci:skip-build]: already built successfully in CI
2025-02-13 09:11:16 +01:00
postmarketOS CI d1639b4a71 linux-next: upgrade to next-20250213 2025-02-13 06:00:17 +00:00
Clayton Craft f3fb6c17a9 systemd/postmarketos-base-systemd: add system preset for cups (MR 6196)
[ci:skip-build]: already built successfully in CI
2025-02-12 15:41:14 -08:00
Clayton Craft 0721feeec0 systemd/systemd-services: add msm-modem (MR 6173)
Also add config to rmtfs so systemd starts stuff in the correct order.

I added the msm-modem unit here instead of in pmaports/modem/msm-modem
because systemd-services handles creating boilerplate install scripts
automatically.

fixes #3451
[ci:skip-build]: already built successfully in CI
2025-02-12 14:56:52 -08:00
Clayton Craft b23fff2aa5 systemd/postmarketos-base-systemd: add msm-modem-uim-selection to system preset (MR 6173)
Also sorted the list of qcom-related units
2025-02-12 14:56:35 -08:00
Clayton Craft 49b25396b0 modem/msm-modem: move service logic to standalone script (MR 6173)
This allows other things to run the logic, like a systemd unit
2025-02-12 14:56:35 -08:00
Clayton Craft e2557598d7 main/postmarketos-ui-console: do not install any audio backend by default (MR 6192)
Users who want pulseaudio or pipewire (for audio) can still install
them, but by removing any audio backend by default we can avoid creating
images that include pulseaudio/gstreamer/mesa.

Before:
$ ls -hal /home/clayton/.local/var/pmbootstrap/chroot_native/home/pmos/rootfs/qemu-aarch64.img
-rw-r--r-- 1 root 12345 1.1G Feb 10 14:49 /home/clayton/.local/var/pmbootstrap/chroot_native/home/pmos/rootfs/qemu-aarch64.img

After:
$ ls -hal /home/clayton/.local/var/pmbootstrap/chroot_native/home/pmos/rootfs/qemu-aarch64.img
-rw-r--r-- 1 root 12345 806M Feb 10 14:49 /home/clayton/.local/var/pmbootstrap/chroot_native/home/pmos/rootfs/qemu-aarch64.img

fixes #3541
[ci:skip-build]: already built successfully in CI
2025-02-12 14:38:20 -08:00
Oliver Smith 8a14416374 temp/libcamera: rebuild against libgtest (MR 6204)
Our libcamera fork needs a rebuild, as pointed out by the
upstream-compat monitoring job:

Increase 'libcamera' pkgrel (9 -> 10), missing depend(s): so:libgtest.so.1.15.2
[ci:skip-build]: already built successfully in CI
2025-02-12 22:55:36 +01:00
Oliver Smith c5a9a7f67f cross/busybox-static-*: upgrade to 1.37.0-r14 2025-02-12 22:52:03 +01:00
Bart Ribbers efdaf964c2 systemd/systemd-services: add unit file for kwallet-pam (MR 6203)
[ci:skip-build]: already built successfully in CI
2025-02-12 22:02:04 +01:00
Clayton Craft c2ca0f73ce systemd/{postmarketos-base-systemd,systemd-services}: fix maintainer line
abuild doesn't allow multiple "maintainer" lines, I should have used
Co-maintainer instead...

[ci:skip-vercheck]
2025-02-11 22:10:57 -08:00
postmarketOS CI 354229f9e5 linux-next: upgrade to next-20250212 2025-02-12 06:00:15 +00:00
adamthiede 6ca3a66c10 linux-postmarketos-mediatek-mt8173: upgrade to 6.13.2 (MR 6176)
[ci:skip-build]: already built successfully in CI
2025-02-11 18:03:31 -08:00
Robert Eckelmann 4bf0235bed linux-postmarketos-marvell: switch to 6.13.2 (MR 6174)
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>

[ci:skip-build]: already built successfully in CI
2025-02-11 17:55:32 -08:00
Clayton Craft df218ae134 systemd/postmarketos-base-systemd: add Clayton as maintainer (MR 6183)
[ci:skip-build]: already built successfully in CI
2025-02-11 16:22:52 -08:00
Clayton Craft a0673b8378 systemd/systemd-service: add Clayton as maintainer (MR 6183) 2025-02-11 16:22:48 -08:00
Clayton Craft 0354bfdc6f systemd/postmarketos-base-systemd: add user preset for vvmd (MR 6183) 2025-02-11 13:06:36 -08:00
Clayton Craft 656fc0206d systemd/systemd-services: add vvmd (MR 6183)
Also sent this upstream here: https://gitlab.com/kop316/vvmd/-/merge_requests/86
2025-02-11 13:06:36 -08:00
Jianhua Lu 70b2068fe2 main/postmarketos-base-ui-gnome: drop polkit-elogind from depends (MR 6184)
[ci:skip-build]: already built successfully in CI
2025-02-11 18:10:38 +01:00
jane400 cfbcc5710c main/postmarketos-initramfs: remove stale /dev/log from syslog (MR 6156)
[ci:skip-build]: built successfully in CI for x86_64,x86,aarch64

riscv64,armv7,armhf failes at binfmt_misc, which isn't related to
this MR.
2025-02-11 07:11:27 +01:00
Jens Reidel 3b26a054a5 linux-postmarketos-qcom-sm7150: spgrade to 6.13.2 (MR 6193)
Signed-off-by: Jens Reidel <adrian@travitia.xyz>

[ci:skip-build]: already built successfully in CI
2025-02-11 07:24:43 +03:00
Devin Lin 5afe39283c systemd/systemd-services: add hfd-service (MR 6191)
Unit file is from https://gitlab.com/ubports/development/core/hfd-service/-/blob/main/init/hfd-service.service.in?ref_type=heads

This fixes system vibrations not working in Plasma.
[ci:skip-build]: already built successfully in CI
2025-02-10 17:44:11 -08:00
AbortRetryFail 31accb15ae ouya-ouya: Use deviceinfo_create_initfs_extra to keep boot.img <=8MB.
Fixes #3522

[ci:skip-build]: already built successfully in CI
2025-02-10 14:31:24 -08:00
Sam Day 4a7588d0e2 {device,soc}-*: use cairo software GTK renderer on quirky devices (MR 6178)
GTK shipped the ngl (new GL) renderer last year and deprecated the
legacy gl renderer. In GTK 4.17 this renderer has been removed entirely,
which means the devices that were forcing the use of this legacy
renderer need to now fallback to software rendering instead.

Fixes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3533
Signed-off-by: Sam Day <me@samcday.com>
[ci:skip-build]: already built successfully in CI
2025-02-10 22:48:36 +01:00
Barnabás Czémán 5258a6b5bf soc-qcom-msm89x7: Add gpu and ucm subpackages as dependencies (MR 6180)
Add gpu and ucm supackages as dependecies.

[ci:skip-build]: already built successfully in CI
2025-02-10 13:16:12 -08:00
Pablo Correa Gómez c3273472e0 device-generic-x86_64: add psmouse to initfs modules (MR 6187)
This could serve a wide variety of old touchpads and mouses, to be
functional in unl0kr

Fixes https://gitlab.postmarketos.org/postmarketOS/buffybox/-/issues/42
[ci:skip-build]: already built successfully in CI
2025-02-10 08:51:39 -08:00
Alexey Minnekhanov 04c1456e7b CI: check for enabled arch for extra-repos/systemd too (MR 6162)
This check is present for "normal" packages, duplicate it for
ones that are thrown into "retry build with systemd later" list.

We need to explicitly pass with_extra_repos="enabled" arg to
find() to avoid getting cached "package not found in repos" result.

Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
[ci:skip-build]: already built successfully in CI
2025-02-10 07:54:55 -08:00
fossdd 5d94bb2b2a systemd/multipath-tools: upgrade to 0.11.0 (MR 6162)
Upstream:
- https://gitlab.alpinelinux.org/alpine/aports/-/commit/e6573fe9e819dbb07d98d3641444e218b020bb8c
- https://gitlab.alpinelinux.org/alpine/aports/-/commit/95713c7eccefe1fa074d91a2051a68649eb12dc2
2025-02-10 07:54:55 -08:00
fossdd 0d306f3c17 systemd/upower: upgrade to 1.90.7 (MR 6162)
Upstream: https://gitlab.alpinelinux.org/alpine/aports/-/commit/3bd4895a7eec0efde8273309230a7f7778fbf0c3
2025-02-10 07:54:55 -08:00
fossdd ffe1943fa9 systemd/networkmanager: upgrade to 1.50.2 (MR 6162)
Upstream: https://gitlab.alpinelinux.org/alpine/aports/-/commit/df56b1fdb00bea54b6e38ecfd469fbc0f1998398
2025-02-10 07:54:54 -08:00
fossdd bac08a8cfd systemd/mutter: upgrade to 47.5 (MR 6162)
Upstream: https://gitlab.alpinelinux.org/alpine/aports/-/commit/89b800d36cc9bb63e107850a814415aa9ea38a52
2025-02-10 07:54:54 -08:00
fossdd 2315996964 systemd/gnome-shell: upgrade to 47.4 (MR 6162)
Upstream: https://gitlab.alpinelinux.org/alpine/aports/-/commit/de42c12822875ce3a03a65dfee648dab26de8d3b
2025-02-10 07:54:54 -08:00
fossdd 1d57524a38 systemd/polkit: upgrade to 126 (MR 6162)
Upstream: https://gitlab.alpinelinux.org/alpine/aports/-/commit/9af7d6ac2e7e603aeef524dc250eb5c92e4c6aa5
2025-02-10 07:54:54 -08:00
postmarketOS CI a127d53407 linux-next: upgrade to next-20250210 2025-02-10 05:59:58 +00:00
fossdd f51775ed7e systemd/systemd-services: remove phosh.service (MR 6150)
phosh.services is superseeded by forking phosh from Alpine to include
systemd-related files

[ci:skip-build]: already built successfully in CI
2025-02-09 13:55:50 +01:00
fossdd f13a93516b systemd/phosh: fork from Alpine to include systemd files (MR 6150) 2025-02-09 13:55:50 +01:00
fossdd e8d9a0273e systemd/postmarketos-base-systemd: remove phosh preset (MR 6150)
phosh.service was removed, because phosh uses tinydm to start for the
moment
2025-02-09 13:55:50 +01:00
fossdd 83a49d84c7 main/postmarketos-ui-phosh: use tinydm for systemd (MR 6150)
Ref: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3464#note_467493

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

Edit by Oliver: added tinydm-openrc back to the openrc() subpackage, as
otherwise we may try to enable the service before it is installed in the
post-install script.
2025-02-09 13:55:45 +01:00
User0 50106d8503 samsung-loganrelte: boot mainline (MR 6142)
This replaces the downstream kernel with a near-to-mainline kernel, and also adds a msm8930-specific mainline package. While this removes some functionality (screen, touchscreen), this makes the boot more stable (boots no matter if charging or not). To flash this, you first need to flash lk2nd, and then flash to the userdata partition with pmbootstrap flasher flash_rootfs --partition userdata. You might need to wipe the system partition. The boot finishes, but to get USB networking, you might need to dis- and re-connect the device ca. 10 seconds after (re-)booting. SSH and internet-over-USB works fully.
2025-02-08 11:18:08 -08:00
exkc 8a42f604a9 lenovo-lxf-p5100: new device (MR 6128) 2025-02-08 11:12:18 -08:00
Sicelo A. Mhlongo ffa0f1245b nokia-n900: remove deprecated deviceinfo options (MR 6168)
screen_height and screen_width are now deprecated options according to the
wiki. remove them

[ci:skip-build]: already built successfully in CI
2025-02-08 20:02:41 +01:00
fossddandLuca Weiss f3f0f96513 CI: autoupdate: get latest next tag from git.kernel.org (MR 6012)
Co-Authored-By: Luca Weiss <luca@lucaweiss.eu>

[ci:skip-build]: already built successfully in CI
2025-02-08 09:38:48 -08:00
fossdd 8a3498457f linux-next: use git.kernel.org as source (MR 6012)
Canonical location of the linux-next tree is at git.kernel.org and to
avoid potential malicious attacks use their tarballs instead
2025-02-08 09:38:48 -08:00
Clayton Craft 4e908a7615 soc-qcom-sdm845: remove dependency on alsa-utils (MR 6169)
Suddenly apk wants to install other ucm pkgs that conflict with
soc-qcom-sdm845-ucm, like the soc-qcom-msm8996-ucm pkg. Later when the
sdm845-ucm is installed it conflicts with the previously installed (and
incorrect) ucm pkg.

This SOC pkg depends on alsa-utils from e95d28a6, but the
call_audio_idle_suspend_workaround.sh that was added in that commit
doesn't actually seem to be using apps from alsa-utils, so maybe it's
safe to remove that dependency and fix an issue where apk will sometimes
install the wrong alsa-ucm-conf pkg for a device...

[ci:skip-build]: already built successfully in CI
2025-02-08 09:35:22 -08:00
Caleb Connolly 168663519b postmarketos-initramfs: check FS before resize (MR 6159)
Run e2fsck before resizing the root partition so that resize2fs will
actually succeed

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Tweaked-by: Oliver Smith <ollieparanoid@postmarketos.org>
[ci:skip-build]: already built successfully in CI
2025-02-08 08:55:33 -08:00
Barnabás Czémán 1d63a75d4d linux-postmarketos-qcom-msm8953: upgrade to v6.13.0-r0 (MR 6116)
Tested Community Devices:

    - xiaomi-mido
    - xiaomi-vince
    - xiaomi-tissot
    - xiaomi-ysl

Tested Community Devices:

    - xiaomi-onclite
    - motorola-potter

Changes

    e33e7f9 arm64: dts: qcom: msm8953: motorola-potter: add touchscreen reset GPIO
    dd26b8f Input: rmi_i2c: introduce reset GPIO handling
    39aa0e7 dt-bindings: input: add max output voltage & auto resonance mode to the Qualcomm SPMI haptics
    8ec6321 input: misc: qcom-spmi-haptics: make vmax configureable via DT prop
    2ed3f64 input: misc: qcom-spmi-haptics: make auto res mode configureable via DT prop

Maybe Fixes: #3078 (idk aftermarket display could be a different issue.)

Thank You! @Felix @smankusors
2025-02-08 00:18:55 -08:00
Luca Weiss 09c45cb26b linux-postmarketos-qcom-sc7280: upgrade to 6.13.0 (MR 6072)
Manual kconfig changes:
* TOUCHSCREEN_GOODIX_BERLIN_SPI
* DRM_PANEL_VISIONOX_RM692E5
* SND_SOC_TFA9872
* TOUCHSCREEN_FTS
* VIDEO_IMX471
2025-02-08 00:06:29 -08:00
Robert Mader 37dbf850ae temp/libcamera: Remove libcamera udev rule package (MR 6163)
This is now handled in postmarketos-base-ui.

[ci:skip-build]: already built successfully in CI
2025-02-07 11:56:00 -08:00
Robert Mader 0d6c6e80ad main/postmarketos-base-ui: add universal udev rule for udmabuf (MR 6163)
The udmabuf allocator enjoys increasing popularity, not only being
used by libcameras swISP and some virtualisation apps, but since Mesa
commit d74ea2c1 even in llvmpipe - and more projects plan adoption,
such as Gstreamer.

Thus let's ensure it's universally available for UI users if the
kernel supports it.

As there are DEs that don't support the "uaccess" tag, such as SXMO,
and "legacy" groups are still used in pmOS anyway, use the later.
2025-02-07 11:56:00 -08:00
Clayton Craft 5f792c1936 systemd/systemd-services: hexagonrpc-*: run services conditionally (MR 6147)
- hexagonrpcd-adsp-rootpd should only be started if valid config exists
for it, e.g. provided by device pkgs

- For devices with a CDSP: only the -adsp-rootpd and -sdsp services should
be started.

- For devices with only an ADSP: only -adsp-rootpd and -adsp-sensorspd
should be started.

This also stops the hexagonrpcd-adsp-sensorspd on suspend, attempting
to work around some issue wrt sargo that is implemented in openrc (see
fe00027849)

[ci:skip-build]: build tested locally since alsa-ucm conflicts prevent
build testing in CI
2025-02-07 11:34:59 -08:00
Clayton Craft 89bb82e942 systemd/systemd-services: fix iio-sensor-proxy override conf (MR 6147)
The dir was incorrect, so systemd was not merging the override
2025-02-07 11:34:59 -08:00
Robert MaderandClayton Craft 62611a7b06 device-oneplus-enchilada: Reuse hexagonrpcd config on systemd (MR 6147)
By sharing the config file and making the systemd unit files match the
openRC ones as close as possible.

Also fix the q6voiced.conf path while on it.

Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-02-07 11:34:59 -08:00
Clayton Craft ed01099318 device-oneplus-enchilada: remove nonfree_firmware subpkg (MR 6147)
We decided last year to always install the pkgs this subpkg pulled in,
and removing it simplifies the apkbuild.
2025-02-07 11:34:59 -08:00
Robert MaderandClayton Craft 338d7d66f8 device-google-sargo: Fix hexagonrpcd on systemd (MR 6147)
By sharing the config file and making the systemd unit files match the
openRC ones as close as possible.

Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-02-07 11:34:59 -08:00
Robert MaderandClayton Craft 17d52ba258 systemd/postmarketos-base-systemd: add hexagonrpcd-adsp services to system preset (MR 6147)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-02-07 10:09:39 -08:00
Robert Mader 774e018a7a systemd/systemd-services: Add additional hexagonrpcd unit files (MR 6147)
Matching the openRC ones. Also make use of the hexagonrpcd_fw_dir env var
and reuse the correcponding conf files, making it easier to support
both init systems.
2025-02-07 10:09:39 -08:00
Sicelo A. Mhlongo 82a8d55197 device-nokia-n900: drop partition resize cmdline option (MR 6164)
Partition resizing is now done in initramfs at every boot.
2025-02-07 16:48:37 +03:00
postmarketOS CI 8e65e1edac linux-next: upgrade to next-20250207 2025-02-07 06:00:02 +00:00
Barnabás Czémán c3a3c4d98a device-qcom-msm89x7: add support for more Motorola (MR 6101)
Add support for more motorola nora, montana and panels
for cedric and jeter.
2025-02-06 21:25:57 +09:00
Barnabás Czémán 16f52f3f28 firmware-qcom-msm89x7: new package (MR 6101)
Add new fw package for device what cannot load necessary fws
with msm-firmware-loader.
2025-02-06 21:25:57 +09:00
Barnabás Czémán 1fb20d1aad soc-qcom-msm89x7: add subpackage for ucm configs (MR 6101)
Add supbackage for ucm2 configurations of the devices.
2025-02-06 21:25:48 +09:00
Barnabás Czémán f26b4ff13b linux-postmarketos-qcom-msm89x7: update to v6.13-r0 (MR 6101) 2025-02-06 21:24:14 +09:00
Caleb Connolly 448d56e4cb CI: use QEMU-friendly runner where necessary (MR 6143)
The OSUOSL provided runners have issues with QEMU, switch to our own.

[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2025-02-05 23:18:54 +01:00
Bart Ribbers 4d35434e14 systemd/systemd-services: add a unit file for ksystemstats (MR 6157) 2025-02-05 18:07:15 +01:00
Luca Weiss 20b4be45d4 systemd/postmarketos-base-systemd: fix ollie's maintainer email (MR 6151) 2025-02-05 16:22:33 +01:00
Bart Ribbers 97e342a89c systemd/systemd-services: add a unit file for baloo (MR 6149) 2025-02-05 15:40:57 +03:00
MasterPlexus cde87065d2 device-oneplus-bacon: enable creation of initfs-extra (MR 6122)
Update deviceinfo with deviceinfo_create_initfs_extra="true" to make
the boot.img small enough for Boot partition for newer Kernels.
2025-02-05 09:10:24 +03:00
postmarketOS CI 16a4013502 linux-next: upgrade to next-20250205 2025-02-05 05:59:24 +00:00
Richard Acayan 33ff836196 google-sargo: install q6voiced for any init system (MR 6107)
The q6voiced environment file was moved back into the nonfree-firmware
subpackages in !6015, but google-sargo was forgotten. Add it for the
Pixel 3a.
2025-02-04 07:23:53 -08:00
Clayton Craft c7ddc65a67 device-google-sargo: remove nonfree_firmware subpkg (MR 6107)
We decided last year to always install the pkgs this subpkg pulled in,
and removing it simplifies the apkbuild.
2025-02-04 07:23:53 -08:00
Sicelo A. Mhlongo 6ac4e5f49c device-nokia-n900: stop using /etc/skel (MR 6123)
Drop all uses of the /etc/skel feature for adding configuration files and
scripts to the user's $HOME. Files installed via /etc/skel are outside the
control of the package manager and may result in broken installations. At the
least, they are not updateable from the packaging.

To implement this:
 * drop $HOME/.protip_shell.sh, whose usefulness is questionable
 * relocate i3blocks blocklets to /usr/share, and the config file to /etc/xdg,
   which is an i3blocks' standard search path (`man i3blocks`)
 * move the i3 configuration file to /etc/xdg, from where it can be picked up
   and included by the config file provided via postmarketos-ui-i3wm. Configs
   from $HOME are still parsed, and will be honored by i3wm, subject to i3's
   limitations in connection with including extra config files
 * at i3 startup, with the help of an external script, ensure there is an i3
   config file in $HOME, even if empty. This prevents i3-config-wizard from
   running and mangling the config files
 * convert xdefaults to Xresources and store in /usr/share/X11. Load it to on
   the environment by calling `xrdb` during i3 startup
2025-02-04 23:26:32 +09:00
Sicelo A. Mhlongo 8edffde81b main/postmarketos-ui-i3wm: include config from /etc/xdg (MR 6123)
Device packages should use /etc/xdg/i3/config to provide customized
configurations for i3wm
2025-02-04 23:26:32 +09:00
Dylan Van Assche 8a72315e9f temp/iio-sensor-proxy: sleep workaround is not needed anymore (MR 6040)
libssc waits now itself for the DSP to be ready.
2025-02-04 23:07:36 +09:00
Dylan Van Assche af17d8f3a7 temp/iio-sensor-proxy: upgrade libssc patches (MR 6040)
Libssc integration in iio-sensor-proxy has been heavily improved, sync the patches in pmaports.
2025-02-04 23:07:36 +09:00
Clayton Craft 5f4f465db0 Revert "CI: use resource groups for qemu build test jobs (MR 6132)"
This reverts commit 0eaba406fe.
Resource groups dramatically reduced CI throughput for these jobs,
blocking pipelines for a really really long time.
2025-02-04 01:17:53 -08:00
Bart Ribbers 67e15e5b4a CODEOWNERS: fix indentation (MR 6136) 2025-02-04 09:49:32 +01:00
Bart Ribbers dafc0b6554 CODEOWNERS: update PureTryOut's package's (MR 6136) 2025-02-04 09:49:32 +01:00
Luca Weiss 795c5422f2 linux-postmarketos-intel-medfield: fix build (MR 6139)
[ci:skip-vercheck]
[ci:skip-build]: build tested locally
2025-02-04 09:44:50 +01:00
Luca Weiss 6bc9631f63 linux-sony-nicki-mainline: fix build (MR 6139) 2025-02-04 09:44:31 +01:00
Luca Weiss 944391e071 linux-samsung-i927: fix build (MR 6139) 2025-02-04 09:44:26 +01:00
Oliver Smith 03c4ff5cad cross/busybox-static-*: upgrade to 1.37.0-r13 2025-02-04 07:10:45 +01:00
postmarketOS CI 2a315405d3 linux-next: upgrade to next-20250204 2025-02-04 05:57:59 +00:00
exkc 0337bb4b35 main/postmarketos-ui-buffyboard: new aport (MR 6127)
[ci:skip-build] Already built fine in the CI once
2025-02-04 06:33:43 +03:00
Clayton Craft 84b19f67f3 CI: use aarch64 gitlab runners for aarch64 build testing (MR 6140)
We have it so let's use it.
2025-02-03 15:03:21 -08:00
User0 a71bc7238c bananapi-bpi-m2-zero: auto-load brcmfmac (MR 6097) 2025-02-04 06:30:10 +09:00
Jan Jasper de Kroon 70ca0ebe8e linux-pine64-pinephonepro: upgrade to 6.13 (MR 6093) 2025-02-03 10:23:14 -08:00
Robert Mader 6bc98ff414 soc-qcom-sdm845: discourage hw video (de)encoders in gstreamer (MR 6098)
Gstreamer enables hw de- and encoding by default for the most common APIs,
including V4L2-stateful. Unfortunately the venus driver is still quite
unstable, reliably crashing in very common scenarios, triggering apps
like Snapshot, Showtime or Tuba to show error messages or not working
properly - partly because of non-optimal error-handling.

Until the kernel driver situation improves, set environment variables
that demote the decoders to fallbacks in case nothing else is available,
and disable the hw-encoders completely as they tend to destabalise the
whole system if something goes wrong.

Useful command for env variables:
systemctl --user show-environment
2025-02-03 12:00:55 +01:00
Clayton Craft 0eaba406fe CI: use resource groups for qemu build test jobs (MR 6132)
This uses resource groups in gitlab CI to limit the cross arch build
test jobs to only allow one at a time.

This is a workaround for
https://gitlab.postmarketos.org/postmarketOS/postmarketos/-/issues/83

[ci:skip-build]: already built successfully in CI
2025-02-03 00:44:06 -08:00
postmarketOS CI 66bcf2c390 linux-next: upgrade to next-20250203 2025-02-03 06:00:11 +00:00
hexaheximal 1b695a27dc main/postmarketos-ui-mediaberry: new aport (MR 6066)
This MR adds the boilerplate packaging needed for Mediaberry.

mbrt and sysapps are not included in this MR because Alpine Linux does not (yet?) package CEF.

For transparency: The packages here are based on the code from https://codeberg.org/lasagna/lasagna-pmaports.

[ci:skip-build]: CI fails cause of fakeroot on armv7 - known issue with CI.
2025-02-02 13:56:29 -08:00
hexaheximal 0b79a4bed3 temp/mbwl: new aport (MR 6066) 2025-02-02 06:34:51 -08:00
fossdd dbdbc6fc4f systemd/systemd-services: fix libexecdir of user-xdg-desktop-portal-phosh.service (MR 6108) 2025-02-01 16:06:28 +01:00
exkc 6c52aa6a3c device-xunlong-orangepi3: remove deviceinfo_disable_dhcpd="true" (MR 6064)
It can do usb networking via the micro usb.
2025-02-01 20:04:10 +09:00
Alexey Minnekhanov eacfb4dacd main/postmarketos-initramfs: fix filesystem detection regex again (MR 6117)
Pretty sure when you already have a-z specified as range, second one
should be A-Z and not A-z.

Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
2025-01-31 18:12:28 +03:00
Pablo Correa Gómez b0daad0953 main/postmarketos-base-ui: move flatpak repo config to /usr (MR 6119)
Since 1.15.11 this is supported (see
https://github.com/flatpak/flatpak/pull/5688/files). According
to the docs:

System-wide remotes can be statically preconfigured by dropping
flatpakrepo files into /usr/share/flatpak/remotes.d/ and
/etc/flatpak/remotes.d/. If a file with
the same name exists in both, the file under
/etc will take precedence.

This allows us to move the file without fear that if users disabled
or modified the repo, apk will keep the file in /etc and we won't
override it.

This is part of a wider effort to move things out of /etc and
into /usr

Fixes #2596
[ci:skip-build]: already built successfully in CI
2025-01-31 15:57:20 +01:00
Henrik Grimler cca51af9ba systemd/postmarketos-base-systemd: put libkmod in initfs-extra (MR 6118)
It is needed by udev, which is in initfs-extra. If libkmod and its
dependencies are put in the first initfs then the boot.img size
increases by roughly 2 MB, which is a problem for devices with small
boot partitions.

Fixes: postmarketOS/pmaports#3510

[ci:skip-build]: already built successfully in CI (riscv64 failed
because of know qemu CI issue)
2025-01-31 05:41:47 -08:00
Clayton Craft 998cfab209 systemd-services: add wg-quick (MR 6094) 2025-01-30 22:58:55 -08:00
vipoll ba1ff47857 archived/<msm8953 ports>: add archiving note, remove maintainers (MR 6085)
Add a note with the reason for archiving and a suggestion to use the generic port (qcom-msm8953), remove maintainers. These individual ports was replaced (MR 5800) by the generic one (qcom-msm8953)

[ci:ignore-count] [ci:skip-vercheck]
2025-01-30 22:43:23 -08:00
postmarketOS CI 53d07b31ee linux-next: upgrade to next-20250131 2025-01-31 05:56:16 +00:00
Sicelo A. Mhlongo 7721e2d8b5 linux-postmarketos-omap: upgrade to 6.13 (MR 6071)
- Add upstream patch enabling bq2415x_charger to report events to userspace
 - Add upstream patch to fix SPI bus regression [1]. For N900, it breaks the
   screen and WLAN

 [1] https://lore.kernel.org/linux-spi/Z5HXoq8XlduURWmw@tp440p.steeds.sam/T/#mbd2ca8fb3b214819623197325b37fce182dddce7
2025-01-30 15:35:18 -08:00
Robert Mader 7b233c0c3a main/postmarketos-base-ui-gnome: add some gst packages to pmb_recommends
The current OOTB Gstreamer experience on Gnome DEs can be disappointing as
a lot of default codecs and elements are missing. This is often not obvious
for users as Gst in various cases has less optimal fallbacks, easily leaving
the impression that either an app, drivers or hardware are at fault.

Add the most important packages to pmb_recommends so users have a better time.

Notes:
 - Many images already ship ffmpeg-libavcodec, so this shouldn't worsen the
   legal situation.
 - '-bad' is usually already pulled in indirectly while '-good' at least for
   GS variants is already required. Both are strongly recommended for apps
   like Showtime, Snapshot and many more mobile-friendly apps from the
   ecosystem.
 - '-bad' really isn't bad any more these days and various elements in it
   are used by default if available. That is, many elements there should have
   long moved to '-good'.
2025-01-30 20:09:22 +03:00
postmarketOS CI b84b49c91f linux-next: upgrade to next-20250130 2025-01-30 05:56:40 +00:00
Sicelo A. Mhlongo cc92408b60 device-nokia-n900: depend on evtest (MR 6113)
730c56ed35 ("community/device-nokia-n900: x11: integrate screenshot utility")
added a script that uses evtest. Add the required package dependency.
2025-01-30 01:54:04 +03:00
Luca Weiss 972d39afe9 device/*: comply to updated kconfig checks (MR 6087)
This was done in 7 steps:
* prepare by running pmbootstrap kconfig migrate
* fix up kconfig category:uefi
* fix up kconfig category:zram
* fix up kconfig category:default
* fix up kconfig category:default (NULL_TTY)
* fix up kconfig category:input
* bump pkgrels

[ci:skip-build]
[ci:ignore-count]
2025-01-29 17:38:06 +01:00
Luca Weiss dbf2816604 linux-xiaomi-raphael: remove !pmb:kconfigcheck and fix kconfig (MR 6087)
There's no justification given to why kconfigcheck should be disabled
for this kernel, so remove it and fix up the defconfig.
2025-01-29 17:36:01 +01:00
Luca Weiss 342faa4245 kconfigcheck: Reshuffle some input options (MR 6087)
Limit some options based on when they are introduced, to avoid e.g. 6.1
kernels failing kconfig check where the option is just not available
yet.
2025-01-29 17:36:00 +01:00
Caleb Connolly e9252bb7db kconfigcheck: require NULL_TTY support (MR 6087)
The null TTY driver provides a proper (dummy) TTY interface when
console=null is set on the kernel cmdline. This fixes certain
applications which don't correctly handle read() immediately returning
with 0 bytes (e.g. busybox syslogd).

Most normal EFI devices don't boot with console=null and as such there
are various foot-guns littered all over Linux userspace and even in our
own initramfs. However some android devices even enforce console=null,
so it's something we have to deal with.

NULL_TTY should reduce the chance of folks running into strange problems
because of this.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-29 17:36:00 +01:00
Andreas Kemnade 9948d6e3af linux-postmarketos-imx-ereader: Update to 6.13.0 (MR 6102)
Also add fix for https://github.com/swaywm/sway/issues/7035

[ci:skip-build]: already built successfully in CI
2025-01-29 12:43:13 +01:00
Jakob Hauser 79b19295b4 main/postmarketos-ui-xfce4: xfce 4.20 adaptions and additional small changes (MR 5942)
Changelog of xfce4-phone 0.6.0:
- Update screenshot
- Remove separator on the left-hand side of the clock
- Increase font size of the clock
- Change order of panel plugins "pulseaudio" and "power-manager"
- Increase icon size of status tray in panel
- After Xfce 4.20 release remove outdated "backdrop" settings
- After Xfce 4.20 release set theme "Greybird" explicitely

[ci:skip-build]: already built successfully in CI
2025-01-29 12:36:01 +01:00
Jakob Hauser 22517e033f main/postmarketos-ui-xfce4: save and restore brightness on boots (MR 5942)
The Xfce4 power manager can control the display brightness. It doesn't
save and restore it over boots, however. In distributions with systemd
this is handled by "systemd-backlight@.service". For OpenRC the package
brightnessctl offers a service saving the state of the brightness at
shutdown and reboot.

As brightnessctl is a rather simple tool and not specifically adapted to
Xfce4, it can get confused when the power manager e.g. lowers the display
brightness when on idle. To avoid such a hassle, the display power settings
were simplifyed in repository "xfce4-phone" version 0.5.3 (and needed a
correction in version 0.5.4). Users nonetheless can change them if desired.
2025-01-29 12:36:01 +01:00
postmarketOS CI 1171248090 linux-next: upgrade to next-20250129 2025-01-29 05:58:00 +00:00
postmarketOS CI 70bb5116b9 linux-next: upgrade to next-20250128 2025-01-28 05:56:43 +00:00
Alexey Minnekhanov 745fd9d3ec main/postmarketos-install-recommends: new aport (MR 5697)
Simple python script to automate installing of _pmb_recommends
for a specified package.

Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
2025-01-27 13:35:07 +03:00
jane400 6005bc9e1e systemd/systemd-services: don't override tinydm completly (MR 6091)
The package was named tinydm instead of tinydm-systemd accidentally.
This will cause tinydm-start-session to vanish after upgrading,
completely breaking booting into any GUI that depends on tinydm.

(only systemd installations are affected)
2025-01-27 13:11:12 +03:00
Stefan Hansson 667d8dd2c8 channels.cfg: mark v24.06 as unsupported
See https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3391
2025-01-25 13:47:12 +01:00
Kaloyan501 391ee56f6e huawei-alice: enable deviceinfo_create_initfs_extra and depend on postmarketos-base-downstream (MR 5989)
[ci:skip-build]: already built successfully in CI
2025-01-25 10:34:08 +01:00
Aster Boese f1787a0c94 main/postmarketos-artwork: fix deprecated imagemagick call (MR 6084)
[ci:skip-build]: already built successfully in CI
2025-01-25 10:01:57 +01:00
Aster Boese ee78363a98 main/postmarketos-artwork: add monochrome logo (MR 6084) 2025-01-25 10:01:36 +01:00
Luca Weiss 79d66bd528 main/postmarketos-ui-lomiri: new aport (MR 4496)
Co-developed-by: Aster Boese <asterboese@mailbox.org>

[ci:skip-build]: already built successfully in CI
2025-01-25 09:30:40 +01:00
Aster Boese da678d4c12 main/deviceinfo-converter: new aport (MR 4496) 2025-01-25 09:30:39 +01:00
Caleb Connolly 4b367a4357 postmarketos-initramfs: prevent busyloop in syslogd (MR 6013)
when stdin is /dev/null (e.g. when console=null is on the kernel
cmdline) syslogd will call read() over and over and never handle the
SIGTERM we send it, pinning a CPU core on every boot.

Hooking up syslogd std I/O to /dev/zero prevents this.

Co-authored-by: Richard Acayan <mailingradian@gmail.com>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
[ci:skip-build]: already built successfully in CI
2025-01-24 10:21:52 -08:00
Clayton Craft dc3499fa98 linux-valve-jupiter: upgrade to 6.13 (MR 6082)
- depend on diffutils, or else make complains about options not
  supported by busybox diff
- rebased patches

[ci:skip-build]: already built successfully in CI
2025-01-24 08:14:09 -08:00
Clayton Craft d067e117d8 main/bootmac: upgrade to 0.6, support systemd (MR 6050)
This new version includes initial support for systemd (for bluetooth
only atm). udev rules are only installed for openrc systems, bt config
on systemd was replaced by a unit file and using bootmac for wifi has
issues (https://gitlab.postmarketos.org/postmarketOS/bootmac/-/issues/7)

[ci:skip-build]: already built successfully in CI
2025-01-24 08:11:34 -08:00
Clayton Craft 908f7c0fe2 systemd/postmarketos-base-systemd: enable bootmac-bluetooth service by default (MR 6050) 2025-01-24 08:11:31 -08:00
postmarketOS CI 23bb4cf163 linux-next: upgrade to next-20250124 2025-01-24 05:57:04 +00:00
adamthiede 3a8697c128 community/linux-postmarketos-mediatek-mt8173: upgrade to 6.13 (MR 6073) 2025-01-23 20:56:37 -08:00
postmarketOS CI a1eb390c98 linux-next: upgrade to next-20250123 2025-01-23 19:59:45 +00:00
jane400 295521cac4 systemd/systemd-services: update flatpak user units (MR 6078)
Add flatpak-oci-authenticator.service and fixup paths to /usr/libexec

[ci:skip-build]: already built successfully in CI
2025-01-23 10:19:53 -08:00
jane400 393a0479a3 systemd/postmarketos-base-systemd: remove sshd usepam config (MR 6057)
This was already part of postmarketos-base-ui

[ci:skip-build]: already built successfully in CI
2025-01-23 09:24:17 -08:00
VaporGame 4c73196844 samsung-i9105p: new device (MR 5861)
[ci:skip-build]: already built successfully in CI
2025-01-23 09:08:01 -08:00
knuxify 6907cf2359 device-samsung-nevisp: use extra initfs (MR 6080)
[ci:skip-build]: already built successfully in CI
2025-01-23 16:38:15 +01:00
knuxify 9667f1c0fc device-samsung-zanin: use extra initfs (MR 6080) 2025-01-23 16:38:09 +01:00
knuxify 8911d58d25 device-samsung-baffinlite: use extra initfs (MR 6080) 2025-01-23 16:38:08 +01:00
knuxify 7ac1c73490 device-samsung-kylevess: use extra initfs (MR 6080) 2025-01-23 16:38:08 +01:00
knuxify f1e5981e0f device-samsung-kylepro: use extra initfs (MR 6080) 2025-01-23 16:38:08 +01:00
Jianhua Lu eb8694fd6b linux-postmarketos-qcom-sm8250: upgrade to 6.13.0 (MR 6079)
[ci:skip-build]: already built successfully in CI
2025-01-23 14:59:54 +01:00
hrdl e8bedd2b15 linux-postmarketos-imx-ereader: fix install of 8189fs.ko (MR 6075)
The -t option is needed because the destination is a directory

Fix use of REPLACE_GCCH=0

[ci:skip-build]: already built successfully in CI
2025-01-22 17:38:50 -08:00
Robert Eckelmann c0a69c0767 kconfigcheck.toml: add conditions for certain HID options (MR 6077)
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>

[ci:skip-build]: already built successfully in CI
2025-01-22 16:44:20 -08:00
Alexey Minnekhanov 099ecb99eb main/postmarketos-ui-fbkeyboard: support systemd (MR 6065)
Add service file and systemd subpackage.

Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
2025-01-22 23:44:37 +03:00
Alexey Minnekhanov 69bdedc45a systemd/postmarketos-base-systemd: add fbkeyboard to preset (MR 6065)
Add fbkeyboard UI service to preset.

Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
2025-01-22 23:44:37 +03:00
postmarketOS CI 4abb2334d2 linux-next: upgrade to next-20250122 2025-01-22 20:00:07 +00:00
Frank Oltmanns cfdfd97134 linux-postmarketos-qcom-sdm845: Add HID config options (MR 6032)
Enable the config options that are required since commit 2306f863
"kconfigcheck: Add all HID config options from Fedora aarch64 kernel (MR
5836)".
2025-01-22 15:22:51 +01:00
Frank Oltmanns 31b3ba7a50 linux-postmarketos-qcom-sdm845: Improve work-around for call audio regressions (MR 6032)
Somehow enabling in-kernel PD mapper (introduced in 5b9f51b200dcb
"remoteproc: qcom: enable in-kernel PD mapper"), breaks the bottom mic
on xiaomi-beryllium (Poco F1) and distorts audio on OP6 (and possibly
OP6T). Temporarily disable it until the issue is resolved upstream.

Previously, the module's was modified to disable the in-kernel PD
mapper. This modification was a hack. Instead, modify the config so that
the in-kernel PD mapper is not built in the first place, which achieves
the same result.

Link: https://lore.kernel.org/linux-arm-msm/20241010074246.15725-1-johan+linaro@kernel.org/T
Link: pmaports#3353
Link: pmaports#3320
Link: pmaports#3245
Link: pmaports#3253

Signed-off-by: Frank Oltmanns <frank@oltmanns.dev>
2025-01-22 15:22:51 +01:00
Caleb Connolly dbe231aa15 device/testing/linux-next: enable NTFS (MR 5801)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-21 23:49:30 -08:00
Caleb Connolly 818f90c338 kconfigcheck: enable NTFS for UEFI capable arm64/x86 devices (MR 5801)
devices that previously ran windows may still have a windows partition
and want to dual boot.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-21 23:37:33 -08:00
Caleb Connolly 8ffef0c414 device/testing/device-postmarketos-trailblazer: depend on woa-firmware-yoinker (MR 5801)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-21 23:34:35 -08:00
Caleb Connolly 18cd22b7eb main/woa-firmware-yoinker: new aport (MR 5801)
This tool is similar to msm-firmware-loader or droid-juicer, except it
copies firmware from Windows instead.

Currently when the ADSP loads the new firmware it causes a usb reset
which breaks booting from USB. For now ask people to run this manually
and ensure the adsp firmware isn't available on the USB.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-21 23:34:35 -08:00
Caleb Connolly 3fbaa2acff testing/device-postmarketos-trailblazer: X1E Slim 7x support (MR 5801)
Extend existing X1 Elite support with the modules needed to bring up the
Lenovo Yoga Slim 7x.

We could use the EFI framebuffer in the initramfs, however the
regulators are turned off before we get there so it goes blank. Pull in
all the bits for proper display/panel support.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-21 23:34:35 -08:00
Pablo Correa Gómez 63a84dbb84 mrhlpr.json: drop the unknown regex (MR 5840)
This regex seems to have served to be a bit more flexible than the
actual pass one, for any kind of exceptions needed. However, it
resulted in basically every MR since the introduction of the
COMMITSTYLE, and most likely before, to be caught by that regex
instead of the pass one. As we have made the pass regex more flexible
now, we can now remove this. This should help keep commit messages
more standardized. If there's a reason for a commit to be different,
then the merger can just ignore it.
2025-01-21 23:29:06 -08:00
Pablo Correa Gómez b5669073ae mrhlpr.json: force lower-case at the beginning of commit description (MR 5840)
This is how it's enforced in the COMMITSTYLE
2025-01-21 23:29:06 -08:00
Pablo Correa Gómez 245d7757ef mrhlpr.json: stop making the directory prefix compulsory (MR 5840)
This has not been a requirement since the introduction of COMMITSTYLE
guidelines in f2993c3ad8, so let's make
these kind of commits pass!
2025-01-21 23:29:06 -08:00
Pablo Correa Gómez 9365b8c0b5 mrhlpr.json: don't allow parenthesis in commit description (MR 5840)
Outside of the (MR \d+) match, there should be no reason to have
parenthesis in the commit description
2025-01-21 23:29:06 -08:00
Bart Ribbers 7118b440cd main/postmarketos-base-ui-plasma: depend on kunifiedpush (MR 6020)
The daemon has been split out from the library and is thus not
automatically installed anymore when applications using the library are
installed. However the daemon (the UnifiedPush distributor) is also
useful to have installed when Flatpak apps are in use or other UnifiedPush
supporting apps that don't use kunifiedpush as their library.

Fixes #3333
2025-01-21 23:19:38 -08:00
Clayton Craft 6d4b78405a community/linux-postmarketos-qcom-laptop: upgrade to 6.13 (MR 5895)
- Add new kconfigcheck 'input' category options
- Add 'virt' kconfigcheck category
- Removed 'containers' kconfigcheck (this is included with the 'community' category)
- Enabled Magic Sysrq
- Add patch to disable GIC interrupt handling for pcie4, to work around
  a wifi instability regression on sc8280xp
2025-01-21 22:30:08 -08:00
postmarketOS CI 47e159ded3 linux-next: upgrade to next-20250121 2025-01-21 19:59:38 +00:00
Arnav Singh e22d28f497 linux-postmarketos-allwinner: upgrade to 6.12.8_git20250104 (MR 6067)
[skip ci]: failed on kconfig check, Arnavion wrote: "I'll enable the
CONFIG_HID_* that kconfigcheck wants in a separate MR so that any regressions
from that don't mix up wit the kernel upgrade."
2025-01-20 22:29:18 +01:00
postmarketOS CI beb210ff84 linux-next: upgrade to next-20250120 2025-01-20 19:59:40 +00:00
Oliver Smith 9bd46a23fc well-known/funding-manifest-urls: new file (MR 6074)
Add a funding-manifest-urls file, as required by the floss.fund funding
manifest:

> If the manifest references URLs, such as a project's webpage, that are not
> on the same domain as the funding.json manifest itself, then the wellKnown
> URL must point to a /.well-known/funding-manifest-urls file. This file should
> contain URL (one or more) of the funding.json manifest URLs that reference
> it. This establishes provenance and verifies that that the publisher of the
> manifest is authorised to solicit funding on behalf of the URLs (entity,
> projects) described in the manifest. This follows the .well-known convention.

Related: https://floss.fund/funding-manifest/
Related: postmarketos.org MR 345
2025-01-20 18:59:41 +01:00
User0 08c9c31eed bananapi-m2-zero: initial port (MR 6063) 2025-01-18 12:57:49 +00:00
Felix Kaechele c90592c981 firmware-qcom-msm8953: add Lenovo ThinkSmart View (CD-18781Y) firmware (MR 6061)
[ci:skip-build]: already built successfully in CI
2025-01-17 17:01:18 -08:00
Richard Acayan 9136c2dea8 firmware-google-sargo: compress firmware loaded by kernel (MR 6052)
[ci:skip-build]: already built successfully in CI
2025-01-17 16:55:54 -08:00
WeirdTreeThing eecf4d3599 device-google-x64cros: add nvme modules to initramfs (MR 6059)
Required to boot from nvme drives

[ci:skip-build]: already built successfully in CI
2025-01-17 14:31:35 -08:00
Ferass El Hafidi 02e435c298 amlogic: switch to unified u-boot-amlogic package (MR 4995)
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>

[ci:skip-build]: already built successfully in CI
2025-01-17 14:19:59 -08:00
Ferass El Hafidi 6c6a0bd9da u-boot-amlogic: new aport (MR 4995)
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
2025-01-17 14:19:59 -08:00
Oliver Smith 56ed24c1ee systemd/postmarketos-base-systemd: tinydm preset (MR 6060)
[ci:skip-build]: already built successfully in CI (except for known qemu issue)
2025-01-17 14:16:33 -08:00
Oliver Smith 90ba2529dd extra-repos/systemd: add tinydm (MR 6060)
Based on, and adjusted for pmOS:
https://github.com/dreemurrs-embedded/Pine64-Arch/blob/master/PKGBUILDS/sxmo/tinydm/tinydm.service

This should be moved to tinydm upstream later on.

Related: tinydm issue 11
2025-01-17 14:16:26 -08:00
Oliver Smith a7a455c124 systemd/systemd-services: wpa_supplicant: add -q (MR 6060)
Make wpa_supplicant less verbose, so it doesn't print log messages to
journalctl every 3 seconds:

Jan 16 18:47:05 l14 wpa_supplicant[4888]: wlan0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-47 noise=9999 txrate=286700
Jan 16 18:47:08 l14 wpa_supplicant[4888]: wlan0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-48 noise=9999 txrate=286700
Jan 16 18:47:11 l14 wpa_supplicant[4888]: wlan0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-47 noise=9999 txrate=286700
Jan 16 18:47:14 l14 wpa_supplicant[4888]: wlan0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-47 noise=9999 txrate=286700
Jan 16 18:47:17 l14 wpa_supplicant[4888]: wlan0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-47 noise=9999 txrate=286700
Jan 16 18:47:20 l14 wpa_supplicant[4888]: wlan0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-47 noise=9999 txrate=286700
Jan 16 18:47:23 l14 wpa_supplicant[4888]: wlan0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-48 noise=9999 txrate=286700
Jan 16 18:47:26 l14 wpa_supplicant[4888]: wlan0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-48 noise=9999 txrate=286700
2025-01-17 14:16:26 -08:00
jane400 029526a557 systemd/cups: new aport (MR 5803)
forked from alpine to add ondemand and journald support. as journald
requires systemd-libs, i don't think that we will upstream this package

[ci:skip-build]: already built successfully in CI (except for known qemu issues)
2025-01-17 14:05:45 -08:00
postmarketOS CI 3985abe895 linux-next: upgrade to next-20250117 2025-01-17 19:56:26 +00:00
Antoine Martin 53053d2159 device-pine64-pinenote: add modprobe rules from debian image (MR 6021)
Modprobe rules sets sane defaults for `rockchip_ebc` module and fixes
panfrost driver loading.

Other changes;
* take maintainership of port
* udev rule for `rockchip_ebc` now makes `dclk_select` parameter
  accessible to group video
* add `pinenote-dbus-service` dependency
[ci:skip-build]: already built successfully in CI
2025-01-17 19:03:29 +01:00
SzczurekYT c4693ffaee main/postmarketos-base-ui: Fix sleep-inhibitor installation on openrc (MR 6062)
[ci:skip-build]: already built successfully in CI (except armhf, due to known qemu issue)
2025-01-17 09:09:32 -08:00
Barnabás Czémán 89003fbc1b soc-qcom-msm8953: add moto-modem-rfs-setup service (MR 6041)
Add an openrc service for motorola modems.

[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2025-01-17 17:33:12 +03:00
Barnabás Czémán 037f96ff8e soc-qcom-msm8953: add tqftpserv to modem subpackage (MR 6041)
Add tqftpserv to modem subpackage to support modem on
motorolas.
2025-01-17 17:33:12 +03:00
Barnabás Czémán ae3cfeead7 linux-postmarketos-qcom-msm8953: upgrade to v6.12-r2 (MR 6041) 2025-01-17 17:33:12 +03:00
Barnabás Czémán e48b7f076e motorola-{ali,ocean,potter}: remove individual device pacakges (MR 6041)
Remove individual device packages, these devices are supported by
the generic device package.
2025-01-17 17:33:12 +03:00
Barnabás Czémán 255cd5b647 firmware-qcom-msm8953: Add WCNSS nv binary for motorolas (MR 6041)
Motorolas contains nv binary on system partition.
Add them to the fw package to be able to use generic port on them.
2025-01-17 17:33:04 +03:00
postmarketOS CI d45ee55f8b linux-next: upgrade to next-20250116 2025-01-16 19:57:02 +00:00
fossdd 371671f676 .ci/autoupdate.sh: reset pkgrel on update (MR 6014)
pkgrel's are resetted to zero once the pkgver is bumped
2025-01-16 21:24:24 +09:00
Luca Weiss 07be96e8d0 linux-postmarketos-qcom-msm8226: upgrade to 6.11.11 (MR 5733) 2025-01-16 21:05:05 +09:00
Sergey Lisov 5947e04428 firmware-samsung-a6lte: change backing repo (MR 6048)
It seems that the old backup repo has disappeared from GitHub. Changed
the URL to an up-to-date repository.

The contents of the firmware blobs have not changed, thus no pkgver
increment.
2025-01-15 18:49:13 -08:00
jane400 22ec267f92 systemd/systemd: remove unused makedepends (MR 6036)
gnu-efi-dev was required for systemd-boot < 256. As systemd-boot
is built specially as an extra component in main/systemd-boot, there
is no reason why we would want to build it here.
2025-01-15 21:56:53 +01:00
postmarketOS CI ee720a51ca linux-next: upgrade to next-20250115 2025-01-15 20:07:32 +00:00
Alexey Min 0410fd4107 systemd/systemd-services: add diag-router unit file (MR 6053)
qcom-diag package is not providing systemd service file.

Signed-off-by: Alexey Min <alexey.min@gmail.com>
[ci:skip-build]: already built successfully in CI
2025-01-15 20:02:36 +01:00
Clayton Craft bf162e8603 cross/ccache-cross-symlinks: support riscv64 (MR 6054)
[ci:skip-build]: already built successfully in CI
2025-01-15 10:39:57 -08:00
Clayton Craft 6de44c7911 cross/crossdirect: support riscv64 (MR 6054) 2025-01-15 10:39:48 -08:00
Alexey Min 102863b3c7 ci: always zap chroots before doing pkg build testing in systemd context (MR 6051)
Signed-off-by: Alexey Min <alexey.min@gmail.com>

[ci:skip-build]: already built successfully in CI
2025-01-15 08:00:33 -08:00
Clayton Craft 79d223e80f main/postmarketos-base-ui: install sleep-inhibitor for all init systems (MR 6051)
fixes #3462
2025-01-15 16:23:26 +03:00
Clayton Craft 53bbdfc14a systemd/postmarketos-base-systemd: enable sleep-inhibitor by default (MR 6051) 2025-01-15 16:23:23 +03:00
Bart Ribbers 6d33d2a3cd systemd/plasma*: upgrade to 6.2.5 (MR 6046)
[ci:skip-build] Already built successfully in CI
2025-01-15 11:18:00 +01:00
Bart Ribbers 0160e3676b systemd/systemd-services: update path to flatpak-system-helper (MR 6049)
The path has been changed since the upgrade to 1.16.0
2025-01-15 11:14:24 +01:00
winbo-yml-exe 776e3a0fff raspberry-pi5: Initial port (MR 6006) 2025-01-14 18:01:39 -08:00
Oliver Smith c52924104e kconfigcheck: add PPP specific section (MR 5992)
CONFIG_LEDS_GROUP_MULTICOLOR just had to be re-enabled to fix a
regression. Add this to kconfigcheck to prevent disabling it by
accident in the future. Adjust the description of the Librem 5
specific section while at it.

[ci:skip-build] [ci:skip-vercheck]: no need to rebuild
2025-01-14 17:38:37 -08:00
postmarketOS CI 51f8840cad linux-next: upgrade to next-20250114 2025-01-14 19:57:26 +00:00
Clayton Craft 1b5e079199 main/systemd-boot: upgrade to 257.1 (MR 6008)
[ci:skip-build]: already built successfully in CI
2025-01-14 10:30:44 -08:00
Robert Mader 0a8291db87 main/postmarketos-base-ui-gnome: add showtime to pmb_recommends (MR 6038)
So Gnome-based DEs have a video-player by default. The main arguments
in favor showtime I see are:
1. It's the main candidate to become the new Gnome default video player.
2. It's has a mobile-friendly UI.
3. It uses HW-decoding and even zero-copy playback by default on many pmOS
   devices (by using Gstreamer and unlike e.g. ffmpeg-based players like mpv).
4. Its main dependencies are shared with other apps like snapshot.

The other candidate that would tick the same boxes but 1. is livi.
[ci:skip-build]: already built successfully in CI
2025-01-14 10:25:56 -08:00
fossdd b645acd06f systemd/mutter: upgrade to 47.4 (MR 6026)
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/78390

[ci:skip-build]: arm builds fail due to known qemu issues in CI
2025-01-14 09:47:42 -08:00
fossdd cf0259bab3 systemd/gnome-shell: upgrade to 47.3 (MR 6026)
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/78390
2025-01-14 09:47:37 -08:00
fossdd 17c396a6db systemd/networkmanager: upgrade to 1.50.1 (MR 6026)
https://gitlab.alpinelinux.org/alpine/aports/-/commit/3c88e14bf6eea43f65e46d5e7bc765f862c6c99f
2025-01-14 09:47:36 -08:00
fossdd def24413eb systemd/xorg-server: upgrade to 21.1.15, drop DRI1 support (MR 6026)
https://gitlab.alpinelinux.org/alpine/aports/-/commit/a54d1c070c87699fc0c79987ac7035e5aac66174

https://gitlab.alpinelinux.org/alpine/aports/-/commit/7a031648bc577ead4710d9880779c61c1df9d93d

https://gitlab.alpinelinux.org/alpine/aports/-/commit/255f451f7f26a3a7f2dc44d2313a0b8490daa7d5
2025-01-14 09:47:36 -08:00
Oliver Smith b090beb066 device-google-trogdor: move eudev-hwids dep to openrc (MR 6042)
[ci:skip-build]: already built successfully in CI
2025-01-14 09:42:30 -08:00
Oliver Smith 1edcc6a174 device-google-gru: move eudev-hwids dep to openrc (MR 6042) 2025-01-14 09:42:30 -08:00
Oliver Smith 895b259ca2 device-pine64-pinebookpro: move eudev-hwids dep to openrc (MR 6042)
Fix systemd installs:
  (147/798) Installing eudev-hwids (3.2.14-r5)
  ERROR: eudev-hwids-3.2.14-r5: trying to overwrite usr/lib/udev/hwdb.d/20-OUI.hwdb owned by systemd-udevd-256.5-r5.
  ERROR: eudev-hwids-3.2.14-r5: trying to overwrite usr/lib/udev/hwdb.d/20-acpi-vendor.hwdb owned by systemd-udevd-256.5-r5.
  ERROR: eudev-hwids-3.2.14-r5: trying to overwrite usr/lib/udev/hwdb.d/20-bluetooth-vendor-product.hwdb owned by systemd-udevd-256.5-r5.
  ERROR: eudev-hwids-3.2.14-r5: trying to overwrite usr/lib/udev/hwdb.d/20-dmi-id.hwdb owned by systemd-udevd-256.5-r5.
  ...
2025-01-14 09:42:30 -08:00
Oliver Smith f48c8c34f0 device-pine64-pinephone: drop dep on openrc subpkg (MR 6042) 2025-01-14 09:42:29 -08:00
Oliver Smith 155657b865 extra-repos/systemd/wireplumber: disable tests for armhf (MR 6047)
[ci:skip-vercheck]: Changes don't affect resulting package.

[ci:skip-build]: arm failing in CI due to known issues w/ running qemu
2025-01-14 09:37:07 -08:00
Clayton Craft 5ef884e903 systemd/postmarketos-base-systemd: depend on kbd (MR 6029)
These were dropped from the systemd package when they should have been
moved here to pmos-base-systemd. Without this, systemd-vconsole-setup
crashes because it cannot find the kbd utility, and kmod is needed for
proper auto-module loading.

[ci:skip-build]: already built successfully in CI
2025-01-14 09:30:52 -08:00
Clayton Craft 168821c772 systemd/systemd-services: add fnott unit file (MR 6043)
[ci:skip-build]: already built successfully in CI
2025-01-14 09:27:55 -08:00
Clayton Craft 8e10f36a1a systemd/systemd-services: add syncthing unit file (MR 6043) 2025-01-14 09:27:55 -08:00
Clayton Craft 8085ef2fd8 systemd/systemd-services: add goimapnotify unit file (MR 6043) 2025-01-14 09:27:54 -08:00
Clayton Craft d5e218eaad systemd/systemd-services: add kanshi unit file (MR 6043) 2025-01-14 09:27:54 -08:00
Clayton Craft 96a82d8ded systemd/systemd-services: add udiskie unit file (MR 6043) 2025-01-14 09:27:54 -08:00
Clayton Craft 52c619d599 main/postmarketos-base: install logbookd only in -openrc subpkg (MR 6045)
logbookd isn't needed on systemd, so only depend on it when using openrc

[ci:skip-build]: already built successfully in CI
2025-01-14 09:16:32 -08:00
postmarketOS CI ca2d4eb0cc linux-next: upgrade to next-20250113 2025-01-13 19:57:38 +00:00
Oliver Smith 6c18dcae18 cross/busybox-static-*: upgrade to 1.37.0-r11 2025-01-13 20:15:23 +01:00
Clayton Craft ab7156d367 soc-qcom-msm8953: Install q6voiced.conf for any init system (MR 6015) 2025-01-12 16:56:50 -08:00
Clayton Craft f851c8a374 soc-qcom-msm8916: Install q6voiced.conf for any init system (MR 6015) 2025-01-12 16:56:50 -08:00
Clayton Craft 38962fd023 device-xiaomi-beryllium: Install q6voiced.conf for any init system (MR 6015) 2025-01-12 16:56:50 -08:00
Clayton Craft b67be8b278 device-shift-axolotl: Install q6voiced.conf for any init system (MR 6015) 2025-01-12 16:56:50 -08:00
Clayton Craft 91104b55c4 device-oneplus-fajita: Install q6voiced.conf for any init system (MR 6015) 2025-01-12 16:56:50 -08:00
Clayton Craft 81f954402a device-oneplus-enchilada: Install q6voiced.conf for any init system (MR 6015) 2025-01-12 16:56:50 -08:00
Dzmitry Sankouski a3ff803df5 device-samsung-starqltechn: add non free firmware package (MR 6009)
- split depends list on multiple lines
- add non free firmware subpackage to starqltechn device
2025-01-12 20:45:11 +01:00
adamthiede 19b51bbf8f linux-postmarketos-mediatek-mt8173: upgrade to 6.12.9 (MR 6024)
[ci:skip-build]: already built successfully in CI
2025-01-12 19:29:30 +01:00
Antoine Martin 7092829258 pinenote-dbus-service: upgrade to 0.2.2_pre5, take maintainership (MR 6017)
[ci:skip-vercheck]: Skips check, as `0.2.2_pre5` is higher than `20221207`

[ci:skip-build]: already built successfully in CI
2025-01-12 19:25:21 +01:00
AutumnSpark1226 73484dca8b device-samsung-kyleprods: opt-in to initramfs-extra (MR 6034)
the target partition is only ~8MB
2025-01-12 19:20:25 +01:00
Robert Eckelmann 6506f73a17 Revert "device-xiaomi-surya: add kernel subpackage (MR 5983)" (MR 6033)
This reverts commit 609f3a5544.

The changes proposed in MR 5983 depend on changes in the upstream sc7150
kernel, howerver a new kernel release is currently not feasible as
instabilities still need to be worked out.

Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
[ci:skip-build]: already built successfully in CI
2025-01-12 19:16:53 +01:00
Andras Sebok 26e38e99bc device-samsung-a3y17lte: depend on postmarketos-base-downstream (MR 6027) 2025-01-12 13:12:17 +03:00
Barnabás Czémán cebee6fde3 device-qcom-msm89x7: add support for more devices (MR 6005)
Add support for Redmi 4 (prada), Redmi 4A (rolex),
Motorola Moto G5S (montana) and Huawei Mediapad T3 10 (agassi).
Remove downstream motorola montana and xiaomi rolex packages.

[ci:skip-build]: already built successfully in CI
2025-01-12 13:00:41 +03:00
Barnabás Czémán f597a11449 linux-postmarketos-qcom-msm89x7: update to v6.12.5-r2 (MR 6005) 2025-01-12 13:00:40 +03:00
Barnabás Czémán 1c45f0dcbe main/lk2nd: Remove lk2nd-msm8952-xiaomi-land (MR 6005)
No more workarounds is needed for xiaomi-land.
2025-01-12 13:00:36 +03:00
Antoine Martin 69a2a9eb55 linux-pine64-pinenote: upgrade to 6.12.0 (MR 6016)
[ci:skip-build]: already built successfully in CI
2025-01-11 14:05:43 +01:00
Robert Eckelmann 73b1292000 extra-repos/systemd: enable systemd for armhf (MR 6031)
Cannot be build locally due to missing armhf folder on the mirror

Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Tweaked-by: Oliver Smith <ollieparanoid@postmarketos.org>
[ci:skip-build]
2025-01-11 13:28:57 +01:00
Robert Eckelmann 27cb596def extra-repos/systemd: wireplumber, disable tests for armv7 as well (MR 6030)
After the initial merge wireplumber failed on bpo for armv7,
It was recommended to disable tests for armv7 for now.

fixes #3454

Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Tweaked-by: Oliver Smith <ollieparanoid@postmarketos.org>
[ci:skip-vercheck]: no bump because we don't need a rebuild where it
		    succeeded
2025-01-11 13:22:43 +01:00
Clayton Craft 431d0aaa4f systemd/gnome-settings-daemon{,-mobile}: comment out checkdepends (MR 6028)
tests are disabled anyways (!check), and having gnome-session in
checkdepends creates a circular dependency in some situations since
gnome-session has gnome-setttings-daemon-dev in makedepends

[ci:skip-build]: CI can't build test because bpo is currently stuck, I build tested it locally
2025-01-10 16:23:20 -08:00
postmarketOS CI 596dd416ed linux-next: upgrade to next-20250110 2025-01-10 20:00:03 +00:00
Oliver Smith 110ba69520 extra-repos/systemd/abuild: new aport
Copy abuild to extra-repos/systemd as workaround for now.

Related: issue 3452
2025-01-10 18:58:46 +01:00
jane400 b4f5a4d89e pmaports.cfg: use linux-pam-pmos explictly (MR 6025) (MR 5563)
This still worked previously as linux-pam-pmos provides
linux-pam and pmbootstrap resolves that.

[ci:skip-build]
[ci:skip-vercheck]
2025-01-10 13:02:37 +01:00
jane400 538f5b3bde systemd/dbus: dont use systemd during bootstrap (MR 6025) (MR 5563) 2025-01-10 13:02:37 +01:00
jane400 aaffde4ca7 systemd/systemd: use aports linux-pam during bootstrap (MR 6025) (MR 5563) 2025-01-10 13:02:37 +01:00
jane400 026664491c systemd/linux-pam-pmos: version hacking (MR 6025) (MR 5563) 2025-01-10 13:02:37 +01:00
Clayton Craft 372c85f4ae systemd/postmarketos-base-systemd: improve the motd to reflect current status (MR 6023) (MR 5563)
[ci:skip-build]
2025-01-10 13:02:37 +01:00
Clayton Craft b9ed5f4721 systemd/systemd-services: add xdg-desktop-portal-kde (MR 5563)
Fixes #3411
[ci:skip-build]: CI fails arm builds due to qemu issue, Clayton build tested locally
2025-01-10 13:02:37 +01:00
bjorn3 55a89d949c main/msm-firmware-loader: add systemd unit files (MR 5964) (MR 5563)
[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:37 +01:00
bjorn3 80cef6602e systemd/abuild: Move patched abuild from extra-repos/systemd to temp (MR 5987) (MR 5563)
This is required to use systemd_service outside of the
extra-repos/systemd repo.

[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:37 +01:00
Clayton Craft 6a318b7b1e systemd/systemd-services: add colord unit file (MR 6010) (MR 5563)
[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:37 +01:00
Clayton Craft f51ac64ff4 systemd/postmarketos-base-systemd: depend on rtkit, enable by default (MR 6010) (MR 5563)
Quite a few things (pipewire, pulse, systemd) complain when rtkit is missing

[ci:skip-vercheck]
2025-01-10 13:02:37 +01:00
Clayton Craft 012b718e82 systemd/sytemd-services: drop wireplumber (MR 5999) (MR 5563)
[ci:skip-build]: CI failed on arm from qemu issues, build tested locally by Clayton
2025-01-10 13:02:37 +01:00
Clayton Craft cef931df10 systemd/wireplumber: fork from aports to enable systemd support (MR 5999) (MR 5563)
Turns out that there's some integration w/ logind and stuff that would
be useful to have...
2025-01-10 13:02:37 +01:00
fossdd 4e0c698208 systemd/systemd-services: remove fbd-alert-slider.service (MR 6011) (MR 5563)
fbd-alert-slider.service is actually already provided by feedbackd from
aports.

This reverts commit c3c625a49aaa46353c7e80de153edc9fd3ef27a5.
[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:37 +01:00
jane400 eed72a258b systemd/pipewire: rebuild against libcamera-0.4.0 (MR 6003) (MR 5563)
Follow aports commit 1afd6ec59ea2d575702be1a9a3a3c5117482f2fb

[ci:skip-build]: aarch64 fails due to CI bugs, Clayton manually build tested it
2025-01-10 13:02:37 +01:00
jane400 688c6d4241 systemd/{linux-pam-pmos,networkmanager,polkit}: takeover maintainership (MR 5976) (MR 5563)
also add _pkgname for the upstream name in aports for linux-pam-pmos

[ci:skip-build]: CI bugs out building armv7 and aarch64, but skipping
since changes shouldn't affect building
2025-01-10 13:02:37 +01:00
jane400 5529523d0c systemd/systemd: remove runtime dependencies from package (MR 5971) (MR 5563)
These are now defined in pmos-base-systemd, those deps aren't needed
for building stuff upon systemd-dev.

[ci:skip-build]: CI bugs out, Clayton successfully build tested armv7
and aarch64 manually
2025-01-10 13:02:37 +01:00
jane400 cb3a98e52f systemd/postmarketos-base-systemd: move runtime dependencies from systemd (MR 5971) (MR 5563)
Those dependencies are either run or dlopen-ed during runtime of
systemd, systemctl etc.

As we not even require util-linux's version of runuser, we just use
the login-utils virtual in pmos-base-systemd. And while we're at it,
move the runtime dependencies to pmos-base. This is also more fitting
for libkmod, which is needed in the initramfs, as it is one of the
runtime deps of systemd-udev.
2025-01-10 13:02:37 +01:00
fossdd 0aadc949f2 systemd/postmarketos-base-systemd: add fbd-alert-slider to presets (MR 5969) (MR 5563)
[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:37 +01:00
fossdd 052b0dc801 systemd/systemd-services: add fbd-alert-slider.service (MR 5969) (MR 5563)
and pass it to systemctl preset, to allow the alert slider (as it can be
fount on the Oneplus 6(t)) out-of-the-box.
2025-01-10 13:02:37 +01:00
Clayton Craft 77807e384e systemd/systemd-services: add plasma-powerdevil (MR 5961) (MR 5563)
Fixes #3408

[ci:skip-build]: already built successfully in CI (except armv7, which
times out the runner, but Clayton thinks that's just our CI being dumpy)
2025-01-10 13:02:37 +01:00
Bart Ribbers 3a28a6beb7 systemd/plasma*: upgrade to 6.2.4 (MR 5892) (MR 5563)
[ci:skip-build]: aarch64 was build tested locally (by Clayton), x86_64
build job failed in CI because the artifacts were too big but the actual
package building worked
2025-01-10 13:02:36 +01:00
fossdd 98f622784a extra-repos/systemd: add gnome-terminal-server service (MR 5896) (MR 5563)
Closes https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3266

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:36 +01:00
jane400 ea76cbcc35 systemd/systemd-services: add flatpak env-gen and tmpfiles (MR 5954) (MR 5563)
This uses the previously commited new syntax.

Fixes: #3400
[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:36 +01:00
jane400 8b043c21cb systemd/systemd-services: add more systemd directories to installdir table (MR 5954) (MR 5563) 2025-01-10 13:02:36 +01:00
Caleb Connolly 66d8fa2e48 systemd/systemd-services: add tailscale service (MR 5806) (MR 5563)
Add the service file for tailscale and its default environment file.

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:36 +01:00
Caleb Connolly 10bd9b248b systemd/systemd-services: allow absolute paths (MR 5806) (MR 5563)
Assume that file paths not starting with "user/" or "system/" are
absolute paths.
2025-01-10 13:02:36 +01:00
jane400 be12b506b9 systemd/postmarketos-base-systemd: pin polkit to our downstream (MR 5940) (MR 5563)
This is done in the usual way with a version requirement.

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:36 +01:00
jane400 a5e5e3d958 systemd/*: bump packages making BPO stuck (MR 5563) 2025-01-10 13:02:36 +01:00
jane400 8c5c31732c systemd/pipewire: stop providing jack-dev (MR 5946) (MR 5563)
I don't understand why the upstream APKBUILD provides jack-dev with
pipewire's pkg{ver,rel}. This blocks users potentially running
abuild deps on aports packages, so not a huge loss.

Unblocking BPO with this 🙃

[ci:skip-build]: built locally, merging as critical.
2025-01-10 13:02:36 +01:00
fossdd 8afb6cf81f systemd/polkit: upgrade to 125 (MR 5917) (MR 5563)
https://gitlab.alpinelinux.org/alpine/aports/-/commit/338430105cd08f428976ecf163ec202f6c612d49
https://gitlab.alpinelinux.org/alpine/aports/-/commit/807bf19811a8d8d375ce40faca22ed5c75c42131

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:36 +01:00
fossdd 5e8380e394 systemd/dbus: upgrade to 1.16.0 (MR 5917) (MR 5563)
https://gitlab.alpinelinux.org/alpine/aports/-/commit/a194e2ccab4264c3c834ab753e65afb0317ed9d0
2025-01-10 13:02:36 +01:00
fossdd 52ab70f110 systemd/pipewire: upgrade to 1.2.7 (MR 5917) (MR 5563)
https://gitlab.alpinelinux.org/alpine/aports/-/commit/c56f4f00e4c89adbc15e7f539a595bb541f22908

https://gitlab.alpinelinux.org/alpine/aports/-/commit/f1c084b2630dac32afe3f970cc1ab3bc93be8e8c
2025-01-10 13:02:36 +01:00
fossdd cd221c7092 systemd/upower: upgrade to 1.90.6 (MR 5917) (MR 5563)
https://gitlab.alpinelinux.org/alpine/aports/-/commit/308623fbd6b0c09e52fb7d8fe9213492e4877c9c

https://gitlab.alpinelinux.org/alpine/aports/-/commit/28a8750c5e1f532ce8325d290d379898baaa7269

https://gitlab.alpinelinux.org/alpine/aports/-/commit/40b203a22dc8ebfd4a890f159a5ba418c81b4705

https://gitlab.alpinelinux.org/alpine/aports/-/commit/c9c25690f49527959138cfe0041d912dc36ac625
2025-01-10 13:02:36 +01:00
fossdd ed17e7224f systemd/gnome-settings-daemon: upgrade to 47.2 (MR 5916) (MR 5563)
[ci:skip-build]: CI builds sucessfully on x86_64 and armv7,
there's an failure in aarch64/gnome-shell, but compiling
on a native aarch64 system and testing also works. (-jane400)
2025-01-10 13:02:36 +01:00
fossdd 4709a04217 systemd/gnome-shell: upgrade to 47.2 (MR 5916) (MR 5563) 2025-01-10 13:02:36 +01:00
fossdd 32eccf0878 systemd/mutter: upgrade to 47.3 (MR 5916) (MR 5563) 2025-01-10 13:02:36 +01:00
fossdd b242c181e5 systemd/systemd-services: include xdg-desktop-portal-phosh user service (MR 5808) (MR 5563)
Upstream: https://gitlab.gnome.org/guidog/xdg-desktop-portal-phosh/-/blob/main/data/xdg-desktop-portal-phosh.service.in

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:36 +01:00
jane400 e2e646cac5 systemd/systemd-services: fix typo at rtkit preset (MR 5825) (MR 5563)
[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:36 +01:00
fossdd c8790b64e4 systemd/gnome-logs: new aport (MR 5790) (MR 5563)
https://apps.gnome.org/Logs
Log viewer for the systemd journal

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:36 +01:00
Clayton Craft 15b7743279 systemd/networkmanager: don't build docs (MR 5563)
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
2025-01-10 13:02:36 +01:00
jane400 d3545fc941 systemd/linux-pam-pmos: rename from linux-pam (MR 5769) (MR 5563)
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
2025-01-10 13:02:36 +01:00
Clayton Craft b6429284d9 systemd/networkmanager: upgrade to 1.50 and rebase APKBUILD (MR 5761) (MR 5563)
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
2025-01-10 13:02:36 +01:00
jane400 bbd4d52780 systemd/{gdm, gnome-*, mutter}: rebase apkbuild on upstream/aports (MR 5770) (MR 5563)
[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:36 +01:00
jane400 766c4b0b2d systemd/xorg-server: pull upgrade from upstream/aports (MR 5777) (MR 5563)
lto is disabled because of CI

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:36 +01:00
jane400 d65fab1d87 systemd/pipewire: pull upgrade from upstream/aports (MR 5776) (MR 5563)
lto makes cross-compiling CI unhappy, disabling it makes CI happy again.

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:35 +01:00
Clayton Craft 5fa6664045 extra-repos/systemd: fix deinstall macro (MR 5746) (MR 5563)
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.
2025-01-10 13:02:35 +01:00
Clayton Craft aa7f9531f6 systemd/plasma-workspace: rebase apkbuild on upstream/aports (MR 5762) (MR 5563)
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
2025-01-10 13:02:35 +01:00
fossdd ebfa97f3ac systemd/systemd-services: manually issue chvt on start of phosh (MR 5757) (MR 5563)
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
2025-01-10 13:02:35 +01:00
Clayton Craft 2807210d02 systemd/postmarketos-base-systemd: disable journald audit feature (MR 5754) (MR 5563)
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
2025-01-10 13:02:35 +01:00
Clayton Craft 6c2c528e7b systemd/postmarketos-base-systemd: add presets for swclock-offset (MR 5685) (MR 5563) 2025-01-10 13:02:35 +01:00
Clayton Craft c6a65bc393 systemd/pmos-base-systemd: disable sd-resolved by default (MR 5630) (MR 5563)
Fixes #3190
2025-01-10 13:02:35 +01:00
Bart Ribbers a9498ee193 extra-repos/systemd/plasma*: upgrade to 6.2.2 (MR 5734) (MR 5563)
[skip ci]: downloading from KDE servers seems to be broken / not
working, so checksum verify never passes. checksums were verified
locally
2025-01-10 13:02:35 +01:00
Clayton Craft 6a57b83489 systemd/gnome-shell*: remove dependency on networkmanager-common (MR 5563)
This package no longer exists on Alpine edge
2025-01-10 13:02:35 +01:00
Caleb Connolly b84e52aabd systemd: fix udevd path (MR 5563)
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>
2025-01-10 13:02:35 +01:00
jane400 6a927cb3f2 extra-repos/systemd/systemd: support split-usr again (MR 5661) (MR 5563)
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
2025-01-10 13:02:35 +01:00
jane400 1ef9e30d7e extra-repos/systemd/apk-tools: drop (MR 5661) (MR 5563) 2025-01-10 13:02:35 +01:00
jane400 08cfb992d3 extra-repos/systemd: adjust bootstrap logic to remove usr-merge (MR 5661) (MR 5563) 2025-01-10 13:02:35 +01:00
jane400 ae8a27d8cd systemd/systemd: upgrade to 256.5 (MR 5560) (MR 5563) 2025-01-10 13:02:35 +01:00
Andrei Zisu 10c68a927b main/postmarketos-ui-gnome-*: enable systemd by default (MR 5563)
[ci:skip-vercheck]
2025-01-10 13:02:35 +01:00
Bart Ribbers 35ddc20d25 extra-repos/systemd/systemd-services: fix subpackage names for Plasma and Waydroid services (MR 5651) (MR 5563)
The package names should be the original package names + the -systemd
suffix. I did this wrongly breaking both KDE Plasma and Waydroid
2025-01-10 13:02:35 +01:00
Aster Boese 75dac319ea extra-repos/systemd/systemd: enable sysext and sysusers (MR 5597) (MR 5563) 2025-01-10 13:02:35 +01:00
Clayton Craft 39a9c0098d extra-repos/systemd/postmarketos-base-systemd: add waydroid presets (MR 5592) (MR 5563) 2025-01-10 13:02:35 +01:00
Bart Ribbers 845da18e19 extra-repos/systemd/systemd-services: add waydroid and related services (MR 5592) (MR 5563) 2025-01-10 13:02:35 +01:00
Caleb Connolly 6aaad5770f systemd: gnome-shell-mobile: upgrade to 46.1 (MR 5629) (MR 5563)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>

[ci:skip-build] already built in CI
2025-01-10 13:02:35 +01:00
Bart Ribbers ff2781e489 extra-repos/systemd/systemd-services: take over service files from origin packages (MR 5631) (MR 5563)
We were only forking kactivitymanagerd and kglobalacceld for their
service files
2025-01-10 13:02:35 +01:00
Bart Ribbers 3ed7c30cc7 extra-repos/systemd/kde*: upgrade to latest versions (MR 5590) (MR 5563)
[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:35 +01:00
Clayton Craft 60f31ad190 systemd/pmos-base-systemd: add preset for udisks2 (MR 5589) (MR 5563)
Provides disk mounting services for many UIs

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:35 +01:00
Clayton Craft bc35d9ddaf systemd/systemd-services: fix nftables unit (MR 5589) (MR 5563)
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
2025-01-10 13:02:35 +01:00
Clayton Craft 3c41129561 systemd/systemd-services: add udisks2 unit file (MR 5589) (MR 5563) 2025-01-10 13:02:35 +01:00
Clayton Craft ea62919155 systemd/systemd-services: add evolution-data-server user services (MR 5589) (MR 5563)
No presets because these are dbus activated.

fixes #2910
2025-01-10 13:02:34 +01:00
Bart Ribbers 4203f655ac extra-repos/systemd/systemd-services: add kded (MR 5593) (MR 5563) 2025-01-10 13:02:34 +01:00
Caleb Connolly bd478d9307 systemd-services: add lxc (MR 5598) (MR 5563)
add the lxc template service

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:34 +01:00
Clayton Craft 0850de5098 systemd/pmos-base-systemd: presets: fix some preset unit names, add sshd (MR 5588) (MR 5563)
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
2025-01-10 13:02:34 +01:00
Clayton Craft dfc186bc9d systemd/systemd: fix default disable preset (MR 5588) (MR 5563)
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
2025-01-10 13:02:34 +01:00
Clayton Craft c144c1663f systemd/postmarketos-base-systemd: depend on newer linux-pam (MR 5579) (MR 5563)
[ci:skip-build] already built successfully in CI
2025-01-10 13:02:34 +01:00
Clayton Craft a597ad4c8d systemd/linux-pam: upgrade to 1.6.1-r1 (MR 5579) (MR 5563)
pkgver and pkgrel match aports version

APKBUILD was rebased onto alpine aports version
2025-01-10 13:02:34 +01:00
Clayton Craft 8c67d01795 systemd/kmod: remove fork (MR 5572) (MR 5563)
Patches were merged upstream:
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71426

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:34 +01:00
Clayton Craft 96efb21568 systemd/pmos-base-systemd: disable multipathd by default (MR 5556) (MR 5563)
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
2025-01-10 13:02:34 +01:00
Clayton Craft 7ef5260766 systemd/pipewire: add install scripts for systemd presets (MR 5551) (MR 5563)
fixes #3153
2025-01-10 13:02:34 +01:00
Clayton Craft 5ddca30396 systemd/kmod: add fixes for usr merge (MR 5554) (MR 5563)
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
2025-01-10 13:02:34 +01:00
Clayton Craft a25dbb6f71 systemd/kmod: fork from Alpine to support usr merge (MR 5554) (MR 5563)
actual patch to support usr merge will come later
2025-01-10 13:02:34 +01:00
Clayton Craft 56dde363be systemd/multipath-tools: upgrade to 0.10.0 (MR 5563)
rebased on aports
2025-01-10 13:02:34 +01:00
Caleb Connolly 3caf2b8cd0 systemd: upgrade gnome shell and mutter mobile to 46 (MR 5363) (MR 5563)
Upgrade to 46-mobile-0

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:34 +01:00
Clayton Craft 4cb3bc64e8 systemd: gnome-settings-daemon-mobile: new aport (MR 5363) (MR 5563)
mobile shell has a fork of GSD which hard depends on systemd.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:34 +01:00
jane400 3b2bcb676b systemd/gnome-settings-daemon: add systemd subpkg (MR 5377) (MR 5563)
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
2025-01-10 13:02:34 +01:00
jane400andClayton Craft 86d38add61 systemd/gnome-session: add systemd subpkg (MR 5377) (MR 5563)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-01-10 13:02:34 +01:00
jane400 495e231c7a systemd/gdm: add systemd subpkg (MR 5377) (MR 5563) 2025-01-10 13:02:34 +01:00
jane400andClayton Craft 641cdf3c17 systemd/gnome-keyring: add systemd subpkg (MR 5377) (MR 5563)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-01-10 13:02:34 +01:00
jane400andClayton Craft 90a828bb24 systemd/networkmanager: add systemd subpkg (MR 5377) (MR 5563)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-01-10 13:02:34 +01:00
jane400 95d40be3b8 systemd/postmarketos-base-systemd: add base presets (MR 5377) (MR 5563)
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
2025-01-10 13:02:34 +01:00
Clayton Craftandjane400 b44c0b4874 systemd/systemd-services: use systemd preset macro to configure services (MR 5377) (MR 5563)
also remove the rc_update workaround

Co-authored-by: jane400 <pmos@j4ne.de>
2025-01-10 13:02:34 +01:00
jane400 b579d07193 systemd/polkit: add comment about why systemd preset isn't used (MR 5377) (MR 5563)
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.
2025-01-10 13:02:34 +01:00
jane400andClayton Craft 19eedbea6b systemd/systemd: configure presets for systemd services (MR 5377) (MR 5563)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-01-10 13:02:34 +01:00
Clayton Craftandjane400 ca7c0be4ad systemd/systemd: add macros for package install scripts (MR 5377) (MR 5563)
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>
2025-01-10 13:02:33 +01:00
jane400 f1d059531a systemd/alpine-base: remove stub rc-update (MR 5377) (MR 5563) 2025-01-10 13:02:33 +01:00
jane400 6616f0b77b systemd/dbus: don't generate a /etc/machine-id with the post-install trigger (MR 5377) (MR 5563)
Generating the machine-id is handled by systemd's first boot mechanism,
so that was removed from the dbus post-install script
2025-01-10 13:02:33 +01:00
Bart Ribbers 05c506b631 extra-repos/systemd/drkonqi: fork from Alpine (MR 5470) (MR 5563) 2025-01-10 13:02:33 +01:00
Bart Ribbers 8b0f14d50d extra-repos/systemd/kglobalacceld: fork from Alpine (MR 5470) (MR 5563)
It installs /usr/lib/systemd/user/plasma-kglobalaccel.service
2025-01-10 13:02:33 +01:00
Bart Ribbers eca588403e extra-repos/systemd/plasma*: upgrade to 6.1.4 (MR 5470) (MR 5563) 2025-01-10 13:02:33 +01:00
Clayton Craft 35e56724c0 systemd/systemd-services: add plasma-mobile (MR 5502) (MR 5563)
[ci:skip-build] already built successfully in CI
2025-01-10 13:02:33 +01:00
jane400 5b05ae4b64 systemd/systemd-services: add eg25-manager.service (MR 5346) (MR 5563) 2025-01-10 13:02:33 +01:00
Clayton Craft bb5dca5a42 systemd/systemd: fix typo in pre-install (MR 5468) (MR 5563)
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
2025-01-10 13:02:33 +01:00
Caleb Connolly 58bdb46ef2 systemd: apk-tools: update /usr merge patches (MR 5353) (MR 5563)
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
2025-01-10 13:02:33 +01:00
Clayton Craft aa765f7fd9 systemd/plasma*: disable armv7 (MR 5366) (MR 5563)
Fails in CI, and (according to Bart) might be disabled on this arch in
upstream aports later.
2025-01-10 13:02:33 +01:00
Bart Ribbers e1e7792684 extra-repos/systemd/plasma*: upgrade to 6.1.3 (MR 5366) (MR 5563) 2025-01-10 13:02:33 +01:00
jane400andClayton Craft 684b6d8348 systemd/networkmanager: remove some alpine-isms (MR 5375) (MR 5563)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>

[ci:skip-build] already built successfully in CI
2025-01-10 13:02:33 +01:00
jane400 7488c4a895 systemd/systemd: move user/group creation to pre-install (MR 5375) (MR 5563) 2025-01-10 13:02:33 +01:00
Caleb Connolly c0e462df37 systemd/postmarketos-base-systemd: depend on systemd-timsyncd (MR 5339) (MR 5563)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:33 +01:00
Clayton Craft 6bb688aaf2 systemd/pipewire: upgrade to 1.2.0 (MR 5361) (MR 5563)
[ci:skip-vercheck]
[ci:skip-build] already built successfully in CI
2025-01-10 13:02:33 +01:00
Clayton Craft e4cbe6ec9e systemd/networkmanager: upgrade to 1.48.2 (MR 5361) (MR 5563) 2025-01-10 13:02:33 +01:00
Clayton Craft 4e6abfcefb systemd/mutter: upgrade to 46.2 (MR 5361) (MR 5563)
updated pkgver to follow format used elsewhere... "999$_pkgver"
2025-01-10 13:02:33 +01:00
Clayton Craft c61e2f48fe systemd/gnome-settings-daemon: upgrade to 46.0 (MR 5361) (MR 5563) 2025-01-10 13:02:33 +01:00
Clayton Craft f86b3c9a15 systemd/gdm: upgrade to 46.2 (MR 5361) (MR 5563) 2025-01-10 13:02:33 +01:00
Clayton Craft f62410ba1d systemd/gnome-shell: upgrade to 46.2 (MR 5361) (MR 5563) 2025-01-10 13:02:33 +01:00
Clayton Craft 06413d342f systemd/gnome-keyring: upgrade to 46.1 (MR 5361) (MR 5563)
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
2025-01-10 13:02:33 +01:00
Clayton Craft 76c9415158 systemd/systemd-services: fix pkgname for gnome-clocks service (MR 5563) 2025-01-10 13:02:33 +01:00
Clayton Craft 8da20639b6 systemd/networkmanager: add -systemd subpkg for service (MR 5563)
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
2025-01-10 13:02:33 +01:00
David Heidelberg 0e0c81abda systemd/systemd-services: add missing bluez services (MR 5200) (MR 5563)
Signed-off-by: David Heidelberg <david@ixit.cz>

[ci:skip-build] already built successfully in CI
2025-01-10 13:02:32 +01:00
Clayton Craft e67e974c94 systemd/systemd-services: adjust subpackages to use -systemd name (MR 5315) (MR 5563) 2025-01-10 13:02:32 +01:00
Clayton Craft 974c7ee60d systemd/upower: rename service subpkg to systemd (MR 5315) (MR 5563) 2025-01-10 13:02:32 +01:00
Clayton Craft 3cfaacd005 systemd/polkit: rename service subpkg to systemd (MR 5315) (MR 5563) 2025-01-10 13:02:32 +01:00
Clayton Craft d5a13d0149 systemd/pmos-base-systemd: depend on newer linux-pam pkg (MR 5315) (MR 5563) 2025-01-10 13:02:32 +01:00
Clayton Craft ea65c03d4f systemd/linux-pam: rename service subpkg to systemd (MR 5315) (MR 5563) 2025-01-10 13:02:32 +01:00
Clayton Craft 2f61aacaf7 systemd/gdm: rename service subpkg to systemd (MR 5315) (MR 5563) 2025-01-10 13:02:32 +01:00
Clayton Craft d380065a2b systemd/dbus: rename service subpkg to systemd (MR 5315) (MR 5563) 2025-01-10 13:02:32 +01:00
Clayton Craft 2360092bcb systemd/abuild: add patch to warn on install to /bin or /lib (MR 5563) 2025-01-10 13:02:32 +01:00
Clayton Craft 5f38b943b2 systemd/abuild: update -systemd split func patch (MR 5563)
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
2025-01-10 13:02:32 +01:00
jane400 e8a7ffb0dc systemd: postmarketos-base-systemd: manually include kmod-libs in initramfs for systemd-udevd (MR 5340) (MR 5563)
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
2025-01-10 13:02:32 +01:00
jane400 2654fa1881 systemd/postmarketos-base-systemd: fix replaces failure (MR 5335) (MR 5563)
the systemd v256 upgrade also moved some files to their
respecitive subpackages.

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:32 +01:00
Oliver Smith 22d9a187cb systemd/plasma-workspace: workaround for build race condition (MR 5327) (MR 5563)
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
2025-01-10 13:02:32 +01:00
Bart Ribbers d3267304a3 community/plasma: upgrade to 6.1.2 (MR 5327) (MR 5563)
[ci:skip-vercheck]
Rebased-By: Oliver Smith <ollieparanoid@postmarketos.org>
2025-01-10 13:02:32 +01:00
Clayton Craft 2444bb08bc systemd/kwin: include patch in repo (MR 5563)
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
2025-01-10 13:02:32 +01:00
jane400 c27697890a systemd: upgrade to 256 and add me as co-maintainer (MR 5093) (MR 5563)
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
2025-01-10 13:02:32 +01:00
Clayton Craft f365fca1b6 systemd/systemd-services: drop pulseaudio (MR 5142) (MR 5563)
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]
2025-01-10 13:02:32 +01:00
Clayton Craft b7b67ab4f5 systemd/systemd-services: add wireplumber (MR 5142) (MR 5563) 2025-01-10 13:02:32 +01:00
Clayton Craft 9ce37b783e systemd: fork pipewire to build w/ systemd support (MR 5142) (MR 5563)
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.
2025-01-10 13:02:32 +01:00
Caleb Connolly d0e4e168a6 systemd: add udevd symlink (MR 5218) (MR 5563)
symlink systemd-udevd to /usr/bin/udevd for compatibility with eudev
(initramfs).

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:32 +01:00
jane400 8c07ab2f00 systemd/systemd: don't force disable everything with presets (MR 5207) (MR 5563)
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
2025-01-10 13:02:32 +01:00
Clayton Craft 69d00bc636 systemd/systemd-services: Add geoclue, gnome-clocks, iwd, mpris-proxy, mmsd (MR 5204) (MR 5563)
[ci:skip-build] already built successfully in CI
2025-01-10 13:02:32 +01:00
Clayton Craft afee55196c systemd/gnome-session: upgrade to 46 (MR 5148) (MR 5563)
fixes #2855
2025-01-10 13:02:32 +01:00
Dylan Van Assche c5cf9351da systemd/iio-sensor-proxy: allow AF_QIPCRTR (MR 5190) (MR 5563)
libssc requires QRTR protocol, allow it in systemd lockdown.

[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:32 +01:00
Clayton Craft 1395649bb2 systemd/gnome-shell-mobile: rebase on latest master changes (MR 5563)
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)
2025-01-10 13:02:32 +01:00
Clayton Craft e8ba615854 systemd/systemd-services: fix rtkit subpackage name (MR 5150) (MR 5563)
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
2025-01-10 13:02:31 +01:00
Clayton Craft e8dd451530 systemd/gnome-shell: actually build with systemd support (MR 5147) (MR 5563)
This was a total blunder by earlier me...

fixes !5115
2025-01-10 13:02:31 +01:00
Clayton Craft d9d7b8ba96 systemd/mutter,gnome-shell: disable crossdirect (MR 5115) (MR 5563)
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
2025-01-10 13:02:31 +01:00
Clayton Craft 8499909241 systemd/gnome-shell: fork to enable systemd support (MR 5115) (MR 5563)
fixes #2767

[ci:skip-vercheck]
2025-01-10 13:02:31 +01:00
Clayton Craft ac2bf3ad51 systemd/mutter: fork to enable systemd support (MR 5115) (MR 5563) 2025-01-10 13:02:31 +01:00
Clayton Craft bc953498e2 systemd/gnome-desktop: fork to enable systemd support (MR 5115) (MR 5563) 2025-01-10 13:02:31 +01:00
Clayton Craft 9c39fea9b0 systemd: use a more general install_if for x11 subpkg (MR 5118) (MR 5563)
[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.
2025-01-10 13:02:31 +01:00
Caleb Connolly 317692350b systemd/systemd-services: dconf: fix path (MR 5094) (MR 5563)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:31 +01:00
Caleb Connolly e3f8aa2665 systemd: linux-pam: upgrade to 1.6.0 (MR 5563)
following Alpine

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:31 +01:00
Bart Ribbers 5e14944ee5 extra-repos/systemd/kde*: upgrade to latest versions (MR 5068) (MR 5563)
[ci:skip-build]: already built successfully in CI
2025-01-10 13:02:31 +01:00
Clayton Craft 34abd3fcc6 extra-repos/systemd: add kbd dependency (MR 5074) (MR 5563)
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
2025-01-10 13:02:31 +01:00
Oliver Smith 28c069faa3 systemd: fix "INSERT-REASON-HERE" comments (MR 5070) (MR 5563) 2025-01-10 13:02:31 +01:00
Oliver Smith e67ae3ef4f systemd/systemd-services: make shellcheck happy (MR 5070) (MR 5563)
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.
2025-01-10 13:02:31 +01:00
Oliver Smith 3a305c47c5 systemd: remove various unreferenced files (MR 5070) (MR 5563)
Remove OpenRC specific files that were removed for the systemd-specific
forks.
2025-01-10 13:02:31 +01:00
Oliver Smith 771a926587 systemd/mutter-mobile: fix provides= (MR 5070) (MR 5563) 2025-01-10 13:02:31 +01:00
Oliver Smith 9174703761 systemd/gnome-shell-mobile: fix provides= (MR 5070) (MR 5563)
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.
2025-01-10 13:02:31 +01:00
Oliver Smith af660ec0dd CI: test_kernel: skip linux-pam (MR 5070) (MR 5563)
The linux-pam package is not a linux kernel :)
2025-01-10 13:02:31 +01:00
Oliver Smith 97917f060f CI: directory-structure: add extra-repos/systemd (MR 5070) (MR 5563) 2025-01-10 13:02:31 +01:00
Oliver Smith 25b25d6504 editorconfig: add networkmanager.rules style (MR 5070) (MR 5563)
This is forked from Alpine. Keep the style to not increase the diff.
2025-01-10 13:02:31 +01:00
Bart Ribbers 77d9deb9fb extra-repos/systemd/kjournald: new aport (MR 5563) 2025-01-10 13:02:31 +01:00
Bart Ribbers cfe18cf422 extra-repos/systemd/plasma*: add initial systemd Plasma packages (MR 5563) 2025-01-10 13:02:31 +01:00
Oliver Smith 06d1177575 extra-repos/systemd/: move from systemd/ (MR 5563)
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.
2025-01-10 13:02:31 +01:00
Oliver Smith 5a94643c99 systemd/xorg-server: set !check (MR 5563) 2025-01-10 13:02:31 +01:00
Oliver Smith 7bf8e741ac systemd/gnome-shell-mobile: drop caribou dep (MR 5563)
Remove it, like we did with temp/gnome-shell-mobile in pmaports master.
2025-01-10 13:02:30 +01:00
Sam Day b6990aa0d7 systemd-services: add phosh.service (MR 4904) (MR 5563) 2025-01-10 13:02:30 +01:00
Oliver Smith 29db09e313 systemd/postmarketos-base-systemd: depend on systemd-services (MR 5563)
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.
2025-01-10 13:02:30 +01:00
Alexander Martinz 4c473428b1 systemd/systemd-services: add rtkit-daemon.service (MR 5563)
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>
2025-01-10 13:02:30 +01:00
Caleb Connolly 56a3ce0d96 systemd/gnome-shell-mobile: add uclamp hack (MR 5563)
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>
2025-01-10 13:02:30 +01:00
Caleb Connolly 92004cc6ed systemd/xorg-server: new aport (MR 5563)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly e3d6bb26eb systemd/upower: new aport (MR 5563)
Integrates with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly 436bbea46d systemd/systemd-services: new aport (MR 5563)
A collection of systemd services.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
110a6d97b3 systemd/systemd: new aport (MR 5563)
Co-Authored-by: jane400 <pmos@j4ne.de>
Co-Authored-by: Caleb Connolly <caleb@postmarketos.org>
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly ba85c19be8 systemd/postmarketos-base-systemd: new aport (MR 5563)
postmarketOS base package with systemd stuff.
2025-01-10 13:02:30 +01:00
Caleb Connolly 29262fd5f1 systemd/polkit: new aport (MR 5563)
Integrates tightly with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly 6c0121469b systemd/networkmanager: new aport (MR 5563)
Clayton says: integrates with systemd (logind)

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly 9ae322da87 systemd/mutter-mobile: new aport (MR 5563)
Integrates tightly with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly d7d6d635dc systemd/multipath-tools: new aport (MR 5563)
Builds against systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly 88cb968dca systemd/linux-pam-systemd: new aport (MR 5563)
integrates with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly 845c078254 systemd/gnome-shell-mobile: new aport (MR 5563)
Integrates tightly with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly a68625db68 systemd/gnome-settings-daemon: new aport (MR 5563)
Integrates tightly with systemd

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly f89f215516 systemd/gnome-session: new aport (MR 5563)
Integrates tightly with systemd

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly d433dc486d systemd/gnome-keyring: new aport (MR 5563)
Integrates tightly with systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly 78fa9ec4a0 systemd/gdm: new aport (MR 5563)
gdm integrates tightly with systemd, fork from aports to rebuild against
systemd.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly faa4d96bf7 systemd/dbus: new aport (MR 5563)
Fork dbus and rebuild it with systemd support.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly 9ec9df60a1 systemd/apk-tools: new aport (MR 5563)
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>
2025-01-10 13:02:30 +01:00
Caleb Connolly c1160e2271 systemd/alpine-base: new aport (MR 5563)
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>
2025-01-10 13:02:30 +01:00
Caleb Connolly 886cca10fd systemd/accountsservice: new aport (MR 5563)
Forked from alpine to rebuild with systemd support.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:30 +01:00
Caleb Connolly 4abb213344 systemd/abuild: new aport (MR 5563)
Fork of abuild with a default_service implementation for generating
-service subpackages.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-10 13:02:29 +01:00
Oliver Smith ab113c2013 pmaports.cfg: add repo:systemd section (MR 5563) 2025-01-10 13:02:29 +01:00
Clayton Craft ad04271709 gitlab/issue_template: add init system options (MR 6022) 2025-01-09 11:52:26 -08:00
Alexey Min 5d56a5da1f soc-qcom-sc8180x: remove nonexistent package from depends (MR 6019)
The qrtr-openrc package was removed in 94a777390c
but somehow still left in depends of this package.

Fix the errors like:

  ERROR: unable to select packages:
    qrtr-openrc (no such package):
      required by: soc-qcom-sc8180x-nonfree-firmware-openrc-1-r1[qrtr-openrc]

This is the one and only mention of qrtr-openrc package in pmaports.

P.S. It's very telling how many users sc8180x has, if this was unnoticed
for 8 months.

Signed-off-by: Alexey Min <alexey.min@gmail.com>
2025-01-09 22:42:24 +09:00
Aster Boese 2b4bfb1b1f linux-postmarketos-apple: upgrade to 6.13.0-rc6 (MR 6007) 2025-01-09 22:22:10 +09:00
postmarketOS CI c5cbc06608 linux-next: upgrade to next-20250109 2025-01-09 05:59:48 +00:00
postmarketOS CI c549e46126 linux-next: upgrade to next-20250108 2025-01-08 19:57:37 +00:00
Stanislav Jakubek 366f71d365 device-motorola-falcon: add support for newer lk2nd (MR 5994)
Generate extlinux config for newer lk2nd and switch to msdos partition type,
since lk2nd doesn't support GPT yet.

Signed-off-by: Stanislav Jakubek <stano.jakubek@gmail.com>
[ci:skip-build]: already built successfully in CI
2025-01-08 23:09:11 +09:00
Matti Tyrväinen 27ba82d874 samsung-lt023g: add required deviceinfo lines from wiki page (MR 5993) 2025-01-08 22:17:17 +09:00
Dzmitry Sankouski 423a48e276 firmware-samsung-sdm845: add package (MR 6002)
firmware-samsung-sdm845 package provides firmware for Samsung Galaxy S9
SDM845 SoC based phone series.
2025-01-08 21:59:16 +09:00
Clayton Craft c0e8d4c816 main/postmarketos-ui-plasma-mobile: depend on udisks2 (MR 5998)
Fixes #3410

[ci:skip-build]: already built successfully in CI
2025-01-07 23:42:44 -08:00
Clayton Craft f23fa7efb0 kconfigcheck: input: only check HID_GOODIX_SPI on >=6.12 (MR 5997) 2025-01-08 00:27:49 +03:00
Clayton Craft e2743c573a kconfigcheck: input: drop some kconfig (MR 5997)
This drops some kconfig that was added in !5836, which shouldn't be
required for device kernels to comply with the "input" kconfig check.

HID_HYPERV_MOUSE: requires enabling HyperV guest support in the kernel,
we shouldn't impose this on all device kernels.

HID_KUNIT_TEST: No reason to enable kunit support, we aren't testing the
kernel with device kernels

SURFACE_HID: Requires enabling a bunch of Microsoft Surface platform
drivers/support, doesn't make sense to require for all device kernels.
Kernels that support Surface devices can enable these as needed, since I
don't think any non-surface devices would even have surface HID input hw
in them.
2025-01-08 00:27:44 +03:00
postmarketOS CI 22456748d4 linux-next: upgrade to next-20250107 2025-01-07 20:00:15 +00:00
Luca Weiss 17f0976e29 device/*: replace deprecated mtk_mkimage="true" values (MR 5995)
Replace this deprecated variable with the new equivalent.

[ci:ignore-count]
[ci:skip-build]: armv7 fails in CI (qemu instabilities w/ our runner),
Clayton verified checksums for armv7 stuff manually
2025-01-07 10:47:47 -08:00
Luca Weiss 4fff56942d device/*: remove unnecessary mtk_mkimage="false" values (MR 5995)
Like quite a few other values being set to false, this one has a default
of false so can be safely removed.
2025-01-07 10:58:40 +01:00
Clayton Craft e362b66af2 purism-librem5dev: archive (MR 6000)
This is the port for the Librem 5 devkit, I still have one but haven't
booted it in years and it's unlikely anyone else is using this (since
this port is super outdated and almost certainly not functional as-is).
Let's archive it so that it doesn't cause any confusion.

[ci:skip-vercheck]
[ci:skip-build]: we don't actually want to build test this thing
2025-01-07 09:09:15 +01:00
Clayton Craft 71d0b5d31e main/boot-deploy: upgrade to 0.18.1 (MR 5996) 2025-01-06 21:25:33 -08:00
Caleb Connolly 6ca9e65fb3 CI: kconfig: allow failure when updating kconfigcheck.toml (MR 5836)
When enabling new options in kconfigcheck, it's likely that some kernels
in pmaports will fail, but often undesirable to rebuild all the kernels
particularly when the options being enabled are for quality of life.

Adjust the rules for the kconfig check job in CI so that it will fail
with a warning in this case, but still fail with an error when an
updated kernel package doesn't pass.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:skip-build]: already built successfully in CI
2025-01-06 16:39:46 -08:00
Caleb Connolly 85503434af CI: use yaml anchors for common job rule (MR 5836)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2025-01-06 16:39:46 -08:00
Jonas Dreßler 2306f86373 kconfigcheck: Add all HID config options from Fedora aarch64 kernel (MR 5836)
Looks like a lot of HID drivers are missing from pmOS device-specific
kernels. Let's try to deal with it by enabling all the HID related
drivers that the Fedora aarch64 and x86 kernels enable.

[ci:skip-kconfig-check]: too many kernels fail from the new required
config here, it's unfeasible to update them all right now
2025-01-06 16:39:46 -08:00
postmarketOS CI c4733a80f3 linux-next: upgrade to next-20250106 2025-01-06 19:57:23 +00:00
Dzmitry Sankouski 52ee0146a8 device-samsung-starqltechn: FIT: remove initrd load address (MR 5990)
U-boot doesn't use initrd load address - it loads ramdisk image
at the end of bootm space. Remove inird load property.
2025-01-06 17:25:07 +00:00
Dzmitry Sankouski 54538d207a device-samsung-starqltechn: FIT: increase memory for Linux (MR 5990)
Recent kernel occupies 47120384 bytes in uncompressed state,
which is more than reserved memory for kernel
0x80000000 - 0x82800000 (40M).
Shift FDT image to give more memory space (56M) to load Linux.
2025-01-06 17:25:07 +00:00
Andreas Kemnade 79e0ea8f41 device-epson-embt2ws: Disable GPT (MR 5982)
Disable GPT to be able to chainload stuff on uSD from vendor u-boot on
internal eMMC. The vendor u-boot does not support GPT.
If booting is done by reprogramming the boot order or zeroing internal
bootloader, GPT is no problem.

[ci:skip-build]: already built successfully in CI
2025-01-06 14:59:22 +01:00
Jan Jasper de Kroon fb0be371ef linux-pine64-pinephonepro: fix notification LED behavior (MR 5991)
Enable CONFIG_LEDS_GROUP_MULTICOLOR as a module to fix issue #3424.
Previously, notifications triggered the torch flash instead of the
status indicator LED. This change allows proper use of the multicolor
LED driver, ensuring notifications utilize the status indicator LED.

[ci:skip-build]: already built successfully in CI
2025-01-06 14:15:32 +01:00
Oliver Smith 5c1d76962b cross/grub-efi-x86: upgrade to 2.12-r7 (MR 5986)
[ci:ignore-count]
[ci:skip-build]: does not pass in CI, known in pmb issue 2467. I'll
build all of them locally before merging.
2025-01-06 15:35:01 +03:00
Oliver Smith ada84d65b8 cross/musl-*: upgrade to 1.2.5-r9 (MR 5986) 2025-01-06 15:35:01 +03:00
Oliver Smith e59a0ad98f cross/gcc-*: upgrade to 14.2.0-r5 (MR 5986)
Done with pmbootstrap MR 2521.
2025-01-06 15:34:57 +03:00
Raihan Ahamed 09b2fb029f device-lenovo-kuntao: move to archived (MR 5984)
there is available qcom-msm8953 which is working with latest lk2nd fine on kuntao, but after flashing by building with device-lenovo-kuntao, it is resulting rebooting the system continuously with latest lk2nd, so imo it should be archived
2025-01-06 21:18:26 +09:00
Dylan Van Assche c3fc4ef89a main/mobile-config-thunderbird: new aport (MR 5968) 2025-01-05 22:35:11 -08:00
Johannes Krampf 8e0a56fd1d pine64-pinephone: fix u-boot user script load address (MR 5980)
Fixes #3414.

The package `device-pine64-pinephone-vccq-mod` installs a u-boot user script.
The user script was loaded at address 0x50700000 partially overwriting
the initramfs (0x4FF00000-0x50883fd1), and causing a boot loop.

The user script load address was increased to 0x50f00000, leaving 16MB
of free space for the initramfs, the current initramfs size is 9.52MB.

Tested: Build and install package on Pinephone 1.2a running PMOS 24.12.
[ci:skip-build]: already built successfully in CI
2025-01-05 13:46:07 +01:00
Andreas Kemnade 725cd09e9d device-kobo/tolino: workaround GPT handling bug in pmbootstrap (MR 5977)
Bootloader needs to be at 0x400 for IMX6 devices. That is ignored by
pmbootstrap which places the GPT header there. Revert to msdos partition
table style to workaround that bug.
2025-01-05 17:02:20 +09:00
Raihan Ahamed 609f3a5544 device-xiaomi-surya: add kernel subpackage (MR 5983)
for different panel variants, huaxing and tianma

fixes https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3421
2025-01-04 21:35:59 +05:30
User0 a582db9591 linux-samsung-loganrelte: fix ssh over usb (MR 5975) 2025-01-04 15:44:17 +00:00
User0 06bbebcfe6 device-samsung-loganrelte: add display support (MR 5975)
[ci:skip-wiki]
2025-01-04 15:44:17 +00:00
Aster Boese 58d05acb35 linux-postmarketos-apple: make myself maintainer (MR 5978) 2025-01-05 00:11:34 +09:00
Aster Boese 035cdeddc8 apple-n61: rename from apple-iphone6 and make myself maintainer (MR 5978) 2025-01-05 00:11:34 +09:00
Nikita Travkin 0682021692 main/dtbloader: upgrade to 1.3.0 (MR 5981) 2025-01-04 17:29:33 +05:00
User0 7f6f72f7e9 samsung-loganrelte: new device (MR 5973)
What works:
* Flashing with heimdall and a SD card
* Networking over USB
* SSH over USB
* Splash screen (when booting from charging screen)

What doesn't work:
* Any other UI than "none" (they boot, but no graphics and no SSH)

Steps to flash:
* pmbootstrap init # Select samsung-loganrelte, select "none" as UI
* pmbootstrap build linux-samsung-loganrelte
* pmbootstrap build device-samsung-loganrelte
* pmbootstrap install --sdcard=/dev/sdX # doesn't boot from internal storage
* pmbootstrap flasher flash_kernel
2025-01-03 14:44:06 +00:00
Raymond Hackley 691a9b3dc6 samsung-fortuna: fix WCNSS NV config filename (MR 5957) 2025-01-03 23:29:28 +09:00
Frank Oltmanns 399121b800 linux-postmarketos-qcom-sdm845: Work-around call audio regressions (MR 5966)
Somehow enabling in-kernel PD mapper (introduced in 5b9f51b200dcb
"remoteproc: qcom: enable in-kernel PD mapper"), breaks the bottom mic
on xiaomi-beryllium (Poco F1) and distorts audio on OP6 (and possibly
OP6T). Temporarily disable it and log the rprocs in use until we better
understand what causes the issue.

Link: pmaports#3353
Link: pmaports#3320
Link: pmaports#3245
Link: pmaports#3253

Signed-off-by: Frank Oltmanns <frank@oltmanns.dev>
[ci:skip-build]: already built successfully in CI
2025-01-03 12:58:48 +01:00
Robert Mader 749904dd49 temp/libcamera: upgrade to 0.4.0 (MR 5948)
- drop some upstreamed patches
- add some tuning files with black levels

Release notes:
https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.4.0
2025-01-03 16:56:07 +09:00
Willow Barraco 33a86abe90 temp/conky: remove (MR 5967)
[ci:skip-build]: already built successfully in CI
2025-01-02 13:40:01 +01:00
Willow Barraco 6815bc8e3b main/postmarketos-ui-sxmo-de-sway: remove conky version constraint (MR 5967) 2025-01-02 13:39:58 +01:00
Willow Barraco 0f71ce1308 main/postmarketos-ui-sxmo-de-dwm: remove conky version constraint (MR 5967) 2025-01-02 13:39:54 +01:00
fossdd b2a684a49a main/postmarketos-base: set ANSI_COLOR in os-release (MR 5970)
For example systemd makes use of the color for the presentation color
when showing the OS name on the console
2025-01-02 05:32:02 +03:00
Clayton Craft c916869512 firmware-lenovo-21bx: drop bluetooth fw (MR 5963)
This is now in linux-firmware-qca
2025-01-01 12:05:42 +03:00
Barnabás Czémán a09ed3862b device-qcom-msm89x7: new device (MR 5693)
Replace xiaomi-riva and xiaomi-santoni device package with
this generic package.

[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2024-12-31 16:43:16 -08:00
Barnabás Czémán 5c91232144 soc-qcom-msm89x7: add initial soc package for msm89x7 devices (MR 5693) 2024-12-31 16:43:16 -08:00
Barnabás Czémán b61da3a499 linux-postmarketos-qcom-msm89x7: new package (MR 5693) 2024-12-31 16:43:16 -08:00
Ferass El Hafidi 45fcfc14ce bananapi-bpi-cm4-cm4io: new device (MR 5962)
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>

[ci:skip-build]: already built successfully in CI
2024-12-31 16:36:53 -08:00
Clayton Craft dcc527966d main/boot-deploy: use busybox sh (MR 5960)
boot-deploy uses 'local', which technically isn't POSIX-compliant
and if someone has 'sh' from something else that strictly adheres to
POSIX then boot-deploy will fail.
This is a workaround for https://gitlab.postmarketos.org/postmarketOS/boot-deploy/-/issues/38

[ci:skip-build]: already built successfully in CI
2024-12-31 10:58:25 -08:00
Stephan Gerhold 755132f651 main/postmarketos-initramfs: skip mounting /boot if rootfs is in fstab (MR 5920)
There is a special check in init_2nd.sh for older postmarketOS
installations that do not have a valid /etc/fstab file. When /boot does not
appear in fstab, it searches for the boot partition and mounts it manually.

However, /boot might be intentionally omitted in fstab, e.g. because we
just have a single rootfs partition that also contains /boot. In that case
it will wait forever, trying to find the missing boot partition.

The old installations do not have any entries in fstab, so fix this by
checking if the file is empty instead (with all comments and whitespace
removed).
[ci:skip-build]: already built successfully in CI
2024-12-30 15:46:02 -08:00
Stephan Gerhold 2965a659c8 Revert "main/postmarketos-initramfs: mount subpartitions if root or boot is missing (MR 5625)" (MR 5920)
This reverts commit 1259d74b09.

The main reason why that change was necessary is because we skipped
mounting subpartitions entirely if we found a potential root partition
(which could be simply a crypto_LUKS partition from a different distro).
Now that we look only for the actual root partition (based on the UUID),
this should not happen anymore.

Checking both conditions causes delays if there is no boot partition,
e.g. if pmOS was installed with --single-partition. Usually we don't need
to mount the boot partition anymore, because all needed files are part of
the initramfs. So let's drop the check for the boot partition again and
rely on the UUIDs to ensure we set up the correct partitions.
2024-12-30 15:46:01 -08:00
Stephan Gerhold 033d5f7985 main/postmarketos-initramfs: mount root partition we unlocked (MR 5920)
When using an encrypted installation of postmarketOS, the pmos_root_uuid=
on the cmdline only tells us the UUID of the crypto_LUKS partition. Once
the partition is unlocked, we perform the the old unreliable auto detection
again. This might mount the wrong partition if multiple installations of
pmOS are attached to the system.

After we unlock the root partition, we know exactly where the root
partition is supposed to be (= at /dev/mapper/root). Let's use that
directly instead of going through the whole detection sequence again.
2024-12-30 15:46:01 -08:00
Stephan Gerhold e5a1370ddd main/postmarketos-initramfs: don't fallback looking for root when given UUID or path (MR 5920)
Right now we fallback to the old behavior of searching for the "pmOS_root"
label when the root partition specified by pmos_root_uuid= on the cmdline
is not found. This works fine most of the time, but there are edge cases in
which this does not behave correctly. Problems occur especially if there
are multiple installations of pmOS (e.g. one on internal storage, and one
on USB drive/SD card). Depending on timing or enumeration order, the system
might boot into the wrong rootfs if the intended root partition shows up
too late.

For the boot partition we already enforce the UUID provided on the cmdline.
Let's apply the same for the root partition to ensure we always boot into
the correct root partition.
2024-12-30 15:46:01 -08:00
Jan Jasper de Kroon 0af3cf8732 device-pine64-pinephonepro: update keyboard config paths (MR 5956)
Update paths to keyboard configuration files to reflect PinePhone's
move from main to community device category.

[ci:skip-build]: already built successfully in CI
2024-12-29 19:39:54 +01:00
Anjandev Momi d48e3c3f8c kconfigcheck.toml: add comment explaining CONFIG_CRYPTO_MD4 (MR 5951)
[ci:skip-build]: already built successfully in CI
2024-12-29 12:16:21 +01:00
Alexandre Messier 848ea1fc81 device-htc-m8: enable initfs_extra for downstream kernel (MR 5919)
The full initramfs is now too big for the boot partition.

When building with the downstream kernel, use initfs-extra
to split the initramfs so it can fit again.

This is not an issue with mainline kernel since booting it
uses extlinux with lk2nd.

[ci:skip-vercheck]

Signed-off-by: Alexandre Messier <alex@me.ssier.org>
[ci:skip-build]: already built successfully in CI
2024-12-28 09:40:50 +01:00
Alexandre Messier 710b9f8499 device-htc-m8: add lk2nd dependency (MR 5919)
Like most msm8974 devices, lk2nd is used to boot mainline linux on the
HTC One (M8).

Add it as a dependency of the mainline kernel build, so that it is built
when required. It can be flashed with 'pmbootstrap flasher flash_lk2nd'
while in the vendor bootloader fastboot mode.

Only extlinux mode is supported for mainline kernel, as otherwise the
initramfs is too big for the boot partition.

Signed-off-by: Alexandre Messier <alex@me.ssier.org>
2024-12-28 09:40:50 +01:00
Alexandre Messier 85c25d0c1c main/lk2nd: add support for HTC One (M8) (MR 5919)
To support the HTC One (M8), a new specific target is required
since it needs non-default values for mkbootimg.

Signed-off-by: Alexandre Messier <alex@me.ssier.org>
2024-12-28 09:40:47 +01:00
Duje Mihanović b18635e940 device-samsung-coreprimevelte: add touchscreen driver to initfs (MR 5952)
Add the imagis and 88pm886_regulator drivers to the initfs allowing the
software keyboard in the debug shell to work.

[ci:skip-build]: already built successfully in CI
2024-12-28 09:30:13 +01:00
Duje Mihanović d8eb869d12 firmware-samsung-pxa1908: depend OpenRC service on downstream subpackage (MR 5952)
Otherwise the service will be installed even if the mainline kernel is
selected.

Fixes: f59eac28b ("firmware-samsung-pxa1908: move openrc scripts to subpackage (MR 5688)")
2024-12-28 09:30:12 +01:00
Duje Mihanović 00ca589beb linux-samsung-coreprimevelte: upgrade to 6.13_rc4 (MR 5952) 2024-12-28 09:30:12 +01:00
Duje Mihanović dfdc8d2f9e device-samsung-coreprimevelte: use U-Boot (MR 5952)
Convert the device package to use U-Boot.

The U-Boot binary is gzipped and put into a U-Boot legacy uImage to
match what the factory bootloader's demands. The postmarketOS kernel,
initramfs and device tree are packed into a FIT and passed to U-Boot as
an initramfs.
2024-12-28 09:30:12 +01:00
Duje Mihanović bb7a87b47b u-boot-coreprimevelte: new aport (MR 5952)
Package U-Boot fork for samsung-coreprimevelte.
2024-12-28 09:30:12 +01:00
exkc 39830ce2f3 linux-postmarketos-marvell-dove: drop aport in favour of linux-postmarketos-marvell (MR 5938) 2024-12-28 14:02:14 +09:00
exkc 58ffcc6bd1 device-linksys-shelby: new device (MR 5938) 2024-12-28 14:02:14 +09:00
exkc a4b2fa217a device-solidrun-cubox: use linux-postmarketos-marvell kernel (MR 5938) 2024-12-28 14:02:04 +09:00
exkc bb5eb76814 linux-postmarketos-marvell: new aport (MR 5938)
Basically linux-postmarketos-marvell-dove but with fellow changes :

1. Added support for other marvell SoC

2. The local version has been changed to -postmarketos-marvell

3. Several redundant USB controller driver has been removed

4. CONFIG_SATA_MV is seted to y

5. fbdev is disabled

6. CONFIG_ZRAM_BACKEND_ZSTD it enabled
(due to kconfig config but i also enabled CONFIG_ZRAM_BACKEND_LZ4 and
others)

7. neon is enabled
2024-12-28 14:02:04 +09:00
hexaheximal 501db74b86 odroid-c4: new device (MR 5949) 2024-12-27 21:58:02 +09:00
Benjamin Valentin 1eab02a18d lk2nd-msm*: set partition type to msdos (MR 5945)
[ci:skip-build]
2024-12-26 20:29:23 -08:00
hexaheximal f7416c06d5 odroid-n2plus: new device (MR 5950) 2024-12-26 16:20:53 -05:00
Vitalii Skorkin 6587348337 temp/iio-sensor-proxy: increase delay (MR 5941)
On miatoll hexagonrpcd takes longer time to start
2024-12-26 17:39:11 +03:00
Vitalii Skorkin 6b1f3b752c device-xiaomi-miatoll: add dependencies for modem, sensors, wifi and gpu (MR 5941)
Add soc-qcom-sm7125, firmware-xiaomi-miatoll, hexagonrpcd as dependency.
This necessary to make Wi-Fi, Sensors, GPU and modem work.
Split device package to support panel variants and take
maintainership.
2024-12-26 17:39:07 +03:00
Vitalii Skorkin 259e574f49 soc-qcom-sm7125: add alsa ucm subpackage and drop pd-mapepr (MR 5941)
pd-mapper is now built into the kernel, so we don't need userspace pd-mapper
2024-12-26 17:39:02 +03:00
Vitalii Skorkin cedffcc304 firmware-xiaomi-miatoll: new aport (MR 5941) 2024-12-26 17:38:59 +03:00
Vitalii Skorkin 9cd58cd988 linux-postmarketos-qcom-sm7125: upgrade to 6.12.1 (MR 5941)
Upgrade linux-postmarketos-qcom-sm7125 to 6.12.1 and take
maintainership
2024-12-26 17:38:55 +03:00
Clayton Craft c8b58685f6 linux-valve-jupiter: fix checksum for config file
fixes !5943

[ci:skip-build]: already built successfully in CI
2024-12-24 11:59:49 -08:00
Arnav Singh 0bcce70122 device-pine64-pinephone: drop modem autorecovery udev rule (MR 5935)
eg25-manager 0.5.2 seems to be able to bring back the modem on its own again,
so this hack is no longer necessary.

[ci:skip-build]: already built successfully in CI
2024-12-24 14:35:37 +01:00
Hendra Manudinata a667218fa6 device-samsung-j4lte: remove unneeded kernel cmdline (MR 5936)
postmarketOS does not utilize SELinux. Besides, Samsung bootloader will
ignore cmdline from the boot image, anyway.
2024-12-24 21:15:53 +09:00
Hendra Manudinata bfdbb4a3a3 testing/device-samsung-j4lte: New device (MR 5936)
Successfully built and booted postmarketOS on Samsung Galaxy J4.
It's based on Exynos 7570, same SoC used by samsung-xcover4lte [1].

Currently, these are tested working:

  - Boots from internal storage
  - Display (console framebuffer is NOT working, kernel panics)
  - Framebuffer (additionally with msm-fb-refresher to refresh the screen)
  - Touchscreen
  - USB Networking (RNDIS)
  - Wi-Fi

Tested UI environments:

  - XFCE 4
  - Console (Kernel log doesn't show up because
    `CONFIG_FRAMEBUFFER_CONSOLE` is not enabled, but enabling it panics
    the kernel. This is a known issue for some Samsung devices, notably
samsung-crownlte [2].)

[1] https://wiki.postmarketos.org/wiki/Samsung_Galaxy_Xcover_4_(samsung-xcover4lte)

[2] https://wiki.postmarketos.org/wiki/Samsung_Galaxy_Note_9_(Exynos)_(samsung-crownlte)#Current_status
2024-12-24 21:14:59 +09:00
Anjandev Momi d506dbcb30 kconfigcheck: enable CRYPTO_MD4 for iwd (MR 5943)
see: #3386

[ci:skip-build]
2024-12-24 13:06:32 +01:00
Oliver Smith 7c7af9e1cd gitlab/issue_templates: add EOL for v24.06 2024-12-23 18:28:35 +01:00
Oliver Smith 671d61e642 channels.cfg: mark v24.12 as released \o/ 2024-12-23 18:17:21 +01:00
iAboothahir da2153b244 device-asus-x00td: generate extlinux config (MR 5937)
set deviceinfo_flash_kernel_on_update=true &&
set deviceinfo_generate_extlinux_config=true

Signed-off-by: iAboothahir <aboothahirpkd@gmail.com>
2024-12-23 16:21:30 +03:00
Jakob Hauser 7bf4268dfa main/postmarketos-ui-lxqt: save and restore brightness on boots (MR 5933)
LXQt can control the display brightness. It doesn't save and restore it
over boots, however. In distributions with systemd this is handled by
"systemd-backlight@.service". For OpenRC the package brightnessctl offers
a service saving the state of the brightness at shutdown and reboot.
2024-12-23 15:37:35 +03:00
Jakob Hauser dbf55cdb9d main/postmarketos-ui-lxqt: separate openrc and main post-install scripts (MR 5933) 2024-12-23 15:37:31 +03:00
Anjandev Momi c31bc1a1be community/linux-postmarketos-qcom-laptop: enable CRYPTO_MD4 (MR 5923)
closes #3386

Needed to fix eduroam iwd on qcom laptots. This config option used to be enabled on v24.06.
[ci:skip-build]: already built successfully in CI
2024-12-22 13:18:17 +01:00
Clayton Craft 3d1f84a2c8 device-pine64-pinephone: fix hw keys in the initramfs (MR 5931)
fixes #3384

[ci:skip-build]: already built successfully in CI
2024-12-20 16:26:10 -08:00
Adam Thiede 202d2d2154 linux-postmarketos-mediatek-mt8173: upgrade to 6.12.6 (MR 5929)
[ci:skip-build]: already built successfully in CI
2024-12-20 23:31:17 +01:00
postmarketOS CI dc2390e848 linux-next: upgrade to next-20241220 2024-12-20 19:56:22 +00:00
Ferass El Hafidi 38f522f798 device-postmarketos-trailblazer: drop deviceinfo_getty (MR 5926)
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
2024-12-20 17:48:56 +00:00
Ferass El Hafidi 5ee51e105b device-postmarketos-trailblazer: add some modules for amlogic (MR 5926)
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
2024-12-20 17:48:56 +00:00
Ferass El Hafidi 98605bb2d5 device-postmarketos-trailblazer: add myself as co-maintainer (MR 5926)
I want to help maintaining this generic device port.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
2024-12-20 17:48:56 +00:00
Ferass El Hafidi 42560daf68 device-postmarketos-trailblazer: add a few more kernels (MR 5926)
Kernels added:
* linux-edge
* linux-lts
* linux-postmarketos-amlogic
* linux-postmarketos-qcom-laptop

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
2024-12-20 17:48:56 +00:00
Richard Acayan dda11062b5 alsa-ucm-conf-qcom-sdm670: upgrade to 1.2.9_git20241211 (MR 5918)
[ci:skip-build]: already built successfully in CI
2024-12-20 18:15:31 +01:00
Sicelo A. Mhlongo f5b4473346 device-nokia-n900: move xdefaults to x11 subpackage (MR 5930)
The xdefaults file is not i3wm-specific, but can be used with any X11 UI the
user may want to try

[ci:skip-build]: already built successfully in CI
2024-12-20 15:31:26 +00:00
Sicelo A. Mhlongo 86fb190a34 device-nokia-n900: lock.sh: query touchscreen instead of display (MR 5930)
lock.sh is only reliable when used with i3wm, where we disable gpio_keys from
being handled by X/i3wm. When this is not done (e.g. when testing a different
X11 UI), the script becomes unreliable since the display turns on due to the
SCREENLOCK key being toggled, and therefore only the display=on case is ever
run.

Improve reliability of the script by basing the decision making on the
enabled/disabled state of the touchscreen instead.
2024-12-20 15:31:26 +00:00
Luca Weiss ccb0e43a6f linux-postmarketos-qcom-sm6350: upgrade to 6.12.4 (MR 5904)
[ci:skip-build]: already built successfully in CI
2024-12-20 16:15:58 +01:00
Oliver Smith ad0d82fbec device-pine64-pinephone: set partition_type=msdos (MR 5928)
Current pinephone images built pmbootstrap >= 3.0.0 don't boot on the
pinephone anymore. At least part of this must be the switch from GPT to
MBR that has been done by default in pmbootstrap. Set msdos explicitly
to revert this for the pinephone.

With Tow-Boot we could probably use GPT instead, but this should be a
well-tested, concious decision. Let's fix this regression first.

[ci:skip-build]: already built successfully in CI
2024-12-20 10:47:05 +01:00
postmarketOS CI 700dd6d775 linux-next: upgrade to next-20241219 2024-12-19 20:06:10 +00:00
Sicelo A. Mhlongo a092ed546a linux-postmarketos-omap: make AES builtin (MR 5925)
With AES built as a module, it is not possible to unlock the rootfs, at least
on the Nokia N900.

[ci:skip-build]: already built successfully in CI
2024-12-19 11:58:58 +02:00
panpantepan 8b455932f8 xiaomi-nabu: new device (MR 5804)
This adds Xiaomi Pad 5, it uses a close to mainline kernel on 6.12.0
the firmware is packaged and supported, although hexagonrpcd is not working yet.
this is a continuation from
https://github.com/map220v/postmarket_xiaomi_nabu/tree/test
updating its config and updating its components.
i based the hexagonrpcd bringup from xiaomi-elish and google-sargo

[ci:skip-build]: already built successfully in CI
2024-12-19 06:20:49 +03:00
Clayton Craft ec7a77f764 community/linux-postmarketos-allwinner: enable USB ACM module (MR 5922)
Allows using allwinner devices with usb devices that implement ACM (3d
printers, serial things, etc)
2024-12-18 17:47:39 -08:00
Android Piepaint 579b65d848 apple-tonga: new device (MR 5913) 2024-12-18 21:23:32 +09:00
postmarketOS CI 8f41b81707 linux-next: upgrade to next-20241218 2024-12-18 05:58:06 +00:00
Stephan Gerhold 35c98d44a8 main/postmarketos-initramfs: add cmdline to expose specific USB storage (MR 5912)
In addition to the pmos.debug-shell cmdline argument, add
pmos.usb-storage=<block-device> to set up the USB mass storage gadget by
default when going into debug shell. This allows building a special boot
image/option that directly exposes the storage for flashing, without having
to type in extra debug-shell commands.
2024-12-17 23:24:15 +03:00
Stephan Gerhold ce05d2d8ff main/postmarketos-initramfs: unify setup_usb_storage (MR 5912)
Right now we have two similar implementations of setting up a USB mass
storage gadget, in init_functions.sh and as separate script for the
debug-shell. Given that init_functions.sh is available in debug-shell
anyway, unify both in a common setup_usb_storage_configfs() function.

Having this included in the initramfs debug-shell by default (without
installing postmarketos-mkinitfs-hook-debug-shell) also simplifies
recovery, since you can set up the USB storage for repairing the flashed
postmarketOS installation in case of boot failures. The size overhead is
minimal, since this has no extra dependencies.
2024-12-17 23:24:15 +03:00
Alexey Min 854b37b98a device-xiaomi-clover: generate extlinux config (MR 5914)
So it can be booted using U-Boot bootstd method.

Signed-off-by: Alexey Min <alexey.min@gmail.com>
2024-12-17 22:52:46 +03:00
Alexey Min 6ea3a6db14 device-xiaomi-lavender: generate extlinux config (MR 5914)
So it can be booted using U-Boot bootstd method.

Signed-off-by: Alexey Min <alexey.min@gmail.com>
2024-12-17 22:52:32 +03:00
postmarketOS CI cad5fcbbe3 linux-next: upgrade to next-20241217 2024-12-17 05:59:47 +00:00
Oliver Smith 0260dfaa85 purism-librem5: move from main to community (MR 5911)
[ci:skip-vercheck], [ci:skip-build]: moving devices
2024-12-16 23:44:40 +01:00
Oliver Smith 230d684eee pine64-pinephone: move from main to community (MR 5911) 2024-12-16 23:23:44 +01:00
cosmo aa7eb4ed77 device-fairphone-fp5: add unl0kr quirk (MR 5910)
Added a config file to /etc/unl0kr.conf.d/ to fix issue with unl0kr
being invisible during boot.

Commit-Msg-Tweaked-By: Oliver Smith <ollieparanoid@postmarketos.org>
2024-12-16 23:12:28 +01:00
Caleb Connolly f261f55ea7 linux-postmarketos-qcom-sdm845: upgrade to 6.13-rc2 (MR 5902)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>

[ci:skip-build]: already built successfully in CI
2024-12-16 23:06:29 +01:00
Stephan Gerhold f9174c6d05 main/postmarketos-initramfs: resize btrfs after mount (MR 5844)
BTRFS only supports online resizing. Right now we implement that by
temporarily mounting the file system, resizing it, and then unmounting it
again. But most of this is redundant since we mount the rootfs at /sysroot
immediately after.

Avoid this by splitting the file system resizing in offline resize (before
mount) and online resize (after mount) and resize BTRFS after mounting
/sysroot. For EXT4 we can either do offline resizing or online resizing.
Keep offline resizing for now for better compatibility with older kernels.
F2FS does not seem to support online resizing, so we need to keep the
functionality for offline resizing anyway.

Drop the splash for now, since it would introduce flickering on each boot.
We can restore it later if needed (ideally by adding a way to update the
splash message without restarting pbsplash).
2024-12-16 22:55:44 +01:00
Stephan Gerhold 8e2ce06af5 main/postmarketos-initramfs: don't resize ext4 with fsck errors (MR 5844)
Right now we use the resize2fs -f (force) option, which "Forces resize2fs
to proceed with the filesystem resize operation, overriding some safety
checks which resize2fs normally enforces." For example, this flag instructs
resize2fs to attempt resizing file systems with errors in some situations.

We primarily care about resizing the file system on initial boot, where we
shouldn't have any errors in the file system. For all other subsequent
boots, we shouldn't risk the filesystem data just to resize it again.
So let's drop the -f flag and only resize clean file systems.
2024-12-16 22:55:44 +01:00
Stephan Gerhold 892d5bb14f main/postmarketos-initramfs: always resize rootfs during boot (MR 5844)
At the moment, the root file system is only resized to span the entire
partition if we previously also resized the partition itself. However, if
a rootfs image without subpartitions is flashed to a pre-existing partition
this means that the installation only has very limited space available
without manual resizing.

Such a setup is used for devices using the "fastboot-bootpart" flasher
(e.g. asus-me176c), where boot and root images are flashed to two separate
partitions and the device boots directly from the boot partition.

Avoid this problem on these devices by always resizing the root file system
on each boot. All the resize tools exit early if the file system is already
expanded to the maximum size. It's faster to call resize2fs unconditionally
instead of manually checking if the file system needs resizing before.
Similar tooling like systemd-growfs also resizes unconditionally.
2024-12-16 22:55:39 +01:00
postmarketOS CI 839037e0d6 linux-next: upgrade to next-20241216 2024-12-16 19:59:39 +00:00
Oliver Smith da9d2f95e5 cross/busybox-static-*: upgrade to 1.37.0-r10 2024-12-15 12:36:04 +01:00
Raymond Hackley 3d7ac0d51a samsung-rossa: rename device from cprime and maintain (MR 5865)
[ci:skip-build]: already built successfully in CI
2024-12-15 08:32:17 +01:00
Raymond Hackley b4f94a4621 samsung-fortuna: simplify backwards compatibility (MR 5908)
[ci:skip-build]: already built successfully in CI
2024-12-15 08:18:17 +01:00
Fiona Klute 1b83a7647e main/postmarketos-base-ui: Fix growing number of tethering unudhcpd instances (MR 5905)
/usr/lib/NetworkManager/dispatcher.d/50-tethering.sh had a typo in the
"killall" command in the "disable_tethering" function, leading to it
never stopping any unudhcpd process. As a new instance is started each
time a USB cable is connected, so the number of instances kept growing
until reboot. Fix the typo so any old unudhcpd instance is actually
stopped before starting a new one.

To illustrate the bug, a sample with an uptime of 4 days:

$ ps w | grep unudhcpd
 2467 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
 5009 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
 5525 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
 6360 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
 7271 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
 9356 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
11045 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
14779 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
15696 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
17454 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
19119 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
24729 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
25565 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
25691 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
27417 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
30649 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
31690 root      0:00 unudhcpd -i usb0 -s 172.16.42.1 -c 172.16.42.2
[ci:skip-build]: already built successfully in CI
2024-12-13 16:46:10 -08:00
Caleb Connolly 3becd343af soc-qcom-sdm845: update alsa UCM configs (MR 5901)
* reduce op6 default earpiece volume
* add symlinks to enable audio when booting with u-boot

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-12-13 09:37:44 +01:00
postmarketOS CI a236a9cce4 linux-next: upgrade to next-20241213 2024-12-13 05:59:45 +00:00
Oliver Smith e195bc11d9 main/postmarketos-artwork: set wallpaper: Dawning (MR 5900)
Related: https://fosstodon.org/@postmarketOS/113624366198561582

[ci:skip-build]: already built successfully in CI
2024-12-12 23:14:02 +01:00
Oliver Smith 22087e93c6 main/postmarketos-ui-gnome-mobile: fix gnome-mobile-extensions-app dep (MR 5899)
Fix the bug that prevented "pmbootstrap install" from working with
postmarketos-ui-gnome (not -mobile).

This bug has been here in pmaports for a long time, but until recent
changes in apk's resolver code, this did not fail (apk installed
gnome-extensions-app instead of gnome-mobile-extensions-app in that
scenario).

How it happened:
* postmarketos-ui-gnome has _pmb_recommends="gnome-extensions-app".
* pmbootstrap: pmb.install._install.get_recommends() works like this:
  1. Look at the packages i in _pmb_recommends of the packages that
     will be installed in "pmbootstrap install".
  2. For each package j in _pmb_recommends of i:
    2.1 Add all packages in j's _pmb_recommends to the list of
        packages to be installed.
    (2.2 Recurse by doing 1. with each package in j's _pmb_recommends.)
* In step 2:
  * pmaports doesn't have a gnome-extensions-app (it's in Alpine, a
    subpackage of gnome-shell).
  * Therefore our gnome-shell-mobile fork gets looked at, which has a
    gnome-mobile-extensions-app subpackage that provides
    gnome-extensions-app.
  * pmbootstrap looks at the _pmb_recommends of the gnome-shell-mobile
    package, which has "gnome-mobile-extensions-app" (this is wrong,
    it should be in postmarektos-ui-gnome-mobile instead and this patch
    fixes this!).
  * pmbootstrap adds the "gnome-mobile-extensions-app" to the list of
    packages to be installed.
* The result is an "apk add" line that has "postmarketos-ui-gnome" and
  "gnome-mobile-extensions-app" (and more packages), which results in a
  conflict betwen gnome and gnome-mobile packages.

Fixes: issue 3360
[ci:skip-vercheck]: _pmb_recommends changes don't need package rebuilds
[ci:skip-build]: already built successfully in CI
2024-12-12 22:01:59 +01:00
Raymond Hackley ccdf640439 main/postmarketos-base: add udev rules for imagis touchkey (MR 5358)
[ci:skip-build]: already built successfully in CI
2024-12-12 20:41:40 +01:00
Raymond Hackley 38691ceffa main/postmarketos-base: update comments in zinitix udev rules (MR 5358) 2024-12-12 20:41:40 +01:00
adamthiede 7f02b78afd postmarketos-base-ui-gnome: replace power-profiles-daemon dependency (MR 5820)
replace power-profiles-daemon with virtual package

[ci:skip-build]: already built successfully in CI
2024-12-12 20:37:49 +01:00
Stefan Hansson 52f58a9c09 linux-purism-librem5: upgrade to 6.6.63 (MR 5898)
[ci:skip-build]: already built successfully in CI
2024-12-12 20:22:50 +01:00
postmarketOS CI c74fd5fd85 linux-next: upgrade to next-20241212 2024-12-12 05:57:51 +00:00
Ferass El Hafidi cd1599baf8 testing/u-boot-librecomputer-lafrite: remove (MR 5897)
lafrite has u-boot in SPI already

it also prevents lafrite from booting because pmbootstrap uses GPT partitioning now.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
2024-12-11 17:51:17 -08:00
Jan Jasper de Kroon 948ed6c7b9 linux-postmarketos-pinephonepro: upgrade to 6.11.11 (MR 5855)
[ci:skip-build]: already built successfully in CI
2024-12-11 20:48:28 +01:00
Jack Knightly 4059957c69 device-samsung-{m0,m3,t03g,t0lte}: add camera flash udev rule subpackage (MR 5888)
[ci:skip-build]: already built successfully in CI
2024-12-11 16:21:42 +01:00
Jack Knightly 02f54fca6f exynos4412: add udev rule for camera flash (MR 5888) 2024-12-11 16:21:42 +01:00
Jack Knightly 52d5adb068 linux-postmarketos-exynos4: add camera configs (MR 5888) 2024-12-11 13:41:15 +01:00
Cedric Busacker c38afdc20a samsung-kminilte: fix flashing via heimdall (MR 5890)
Fixes the problem that BOOT partition is only 10 MB big while boot.img is 13 MB now.
Also heimdall was stuck at 7% with the sparse flag this gets fixed.

[ci:skip-build]: already built successfully in CI
2024-12-11 12:46:14 +01:00
Oliver Smith c513182c82 gitlab/issue_template: add v24.12 2024-12-11 09:16:18 +01:00
Oliver Smith 0431845a82 main/postmarketos-release-upgrade: upgrade to 1.8.0 (MR 5894)
[ci:skip-build]: already built successfully in CI
2024-12-11 08:35:48 +01:00
postmarketOS CI aec1f74992 linux-next: upgrade to next-20241211 2024-12-11 05:59:41 +00:00
postmarketOS CI cd2778a888 linux-next: upgrade to next-20241210 2024-12-10 20:15:40 +00:00
Hendra Manudinata f0c4755878 testing/firmware-samsung-a51: Move a51 specific blobs to its own directory (MR 5887)
As @grimler stated in MR !5887 (comment) [1], samsung-jackpotlte,
samsung-xcover4lte, and samsung-a30 share the same name for Wi-Fi
proprietary blobs, and packaged in their own specific firmware package.

The problem is these firmware packages put files in the same directory
as `firmware-samsung-a51`: /lib/firmware/postmarketos/mx140/. This opens
up the probability of conflicting blobs when multiple firmware packages
are installed on the system, resulting in wrong blobs used.

To ensure that this firmware is located in its own directory, move
`samsung-a51` blobs into its own subdirectory. This way, `a51` blobs
will stay intact whether multiple firmware packages are installed.

[1] https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/5887#note_459185
2024-12-10 11:57:13 +01:00
Hendra Manudinata 6a01b409c3 testing/device-samsung-a51: New device (MR 5887)
Successfully built and booted postmarketOS on Samsung Galaxy A51. It's based on Exynos 9611 SoC.

Currently, these are tested working:

- Boots from internal storage
- Display (DECON driver needs to be patched. Included in the kernel package)
- Framebuffer (additionally with msm-fb-refresher to refresh the screen)
- Touchscreen
- USB Networking (RNDIS)
- Wi-Fi

Tested UI environments: XFCE 4 & Console.

Wiki: https://wiki.postmarketos.org/wiki/Samsung_Galaxy_A51_(samsung-a51)
2024-12-10 16:49:12 +07:00
Oliver Smith e9643f19db u-boot-pinephone: fix build with modern SWIG (MR 5893)
[ci:skip-build]: already built successfully in CI
2024-12-10 08:48:04 +01:00
Oliver Smith 4de559cf50 u-boot-librem5: fix build with modern SWIG (MR 5893) 2024-12-10 08:47:59 +01:00
Barnabás Czémán 99a17c5b0f main/lk2nd: upgrade to 20.0 (MR 5884)
Upgrade lk2nd to 20.0.

Additional changes:
- Add msm8996 subpackage
- Limit msm8953, msm8996, msm8952-xiaomi-land packages to aarch64.
2024-12-09 18:13:07 -08:00
Oliver Smith 6878ac727e main/postmarketos-initramfs: makedepend on postmarketos-base-nofde (MR 5891)
Ensure postmarketos-base-nofde is built before this package, otherwise
bootstrapping this on a new stable branch fails. This does not need to
be backported, as postmarketos-base-nofde has already been built for
v24.12.

Related: https://builds.sr.ht/~postmarketos/job/1384748
2024-12-09 18:06:48 -08:00
postmarketOS CI d1ec0a3ce6 linux-next: upgrade to next-20241209 2024-12-09 19:57:46 +00:00
Clayton Craft e74432fd0e main/postmarketos-base-ui: add NM connectivity config (MR 5659)
Fixes #1920

[ci:skip-build]: already built successfully in CI
2024-12-09 11:03:15 -08:00
Jakob Hauser dc751d558a main/postmarketos-ui-xfce4: set background for login greeter (MR 5889)
Actually Xfce4 is capable to use the "draw-user-backgrounds" option of
"slick-greeter", applying the users wallpaper on the greeter.

However, as it turns out, the users background in pmOS Xfce4 is set at first
login of the user. Therefore, the greeters background is black at the first
boot.

Therefore set the greeters background to the default postmarketOS wallpaper.
2024-12-08 21:15:16 +01:00
Oliver Smith e90e45cf71 main/postmarketos-base-ui-gnome: fix polkit conflict, pt. 2 (MR 5886)
Move the polkit-elogind into depends= instead of pmb_recommends=, so
packages depending on postmarketos-base-ui-gnome can build successfully
again. The previous fix only helped for "pmbootstrap install", this fix
will help for both cases.

Without this, e.g. postmarketos-base-ui-gnome-mobile fails to build:
https://builds.sr.ht/~postmarketos/job/1384469
[ci:skip-build]: already built successfully in CI
2024-12-08 15:09:44 +01:00
Oliver Smith 954fee6646 main/postmarketos-base-ui-gnome: fix polkit conflict (MR 5885)
Add polkit-elogind to _pmb_recommends, to help apk resolve the polkit
depends again. Otherwise it fails with a conflict since recent changes
in apk's dependency resolving code.

Fixes: issue 3349
[ci:skip-vercheck]: pmb_recommends change doesn't need rebuild
[ci:skip-build]: already built successfully in CI
2024-12-08 14:58:13 +01:00
Anjandev Momi d51e909387 main/postmarketos-ui-sxmo-de-{dwm/sxmo}: add comment on why pkgver must be bumped (MR 5878) 2024-12-08 12:51:46 +01:00
Oliver Smith d01b3c760a main/postmarketos-ui-sxmo-de-{dwm/sxmo}: fix conky dep (MR 5878)
Change <=…-r0 to <=…-r999 as it was just bumped to fix a build error and
might be bumped again in the future. I've also tried just removing -r0,
but that results in a conflict.
2024-12-08 12:50:30 +01:00
Richard Acayan e6b5b4046f linux-postmarketos-qcom-sdm670: upgrade to v6.12.3 (MR 5881)
The Linux stable team merged v6.12 into linux-rolling-stable as
of Thursday, so here's a new release.

This release cycle was very quiet with small fixes.

The ttynull driver was enabled in the configuration to fix a bug
where userspace would start with no stdio open.

A patch that made the fuel gauge driver compatible with v6.10
was dropped.

Patches from MSM8916 and MSM8953 were re-picked, to include the change
from strlcpy to strscpy and to remove duplicate q6voice entries in a
Makefile.

Some flashlight and charging patches were staged.

The thermal nodes were sorted by the thermal sensor to match
other platforms.

Bluetooth, camera, call audio, display, USB, I2C, eMMC, modem, video
acceleration, WiFi, haptics, NFC, sensors, and touchscreen should
work and be slightly broken like before.
2024-12-07 22:54:10 -08:00
Ferass El Hafidi 05d9b25643 amlogic: switch partition_type to msdos (MR 5883)
After commit 8335d050bf24977afefee6612dd347abd555bc53 in pmbootstrap the
partition table now defaults to GPT instead of MBR.  This breaks booting
on Amlogic devices for the following reasons:

 * On set-top boxes: downstream U-Boot most likely does not have GPT
   support
 * On boards where we install mainline U-Boot as BL33 on eMMC/SD: the
   bootROM checks for an `@AML` image header at offset 512 (second LBA),
   which means we are basically stuck on MBR

Some Amlogic boards have U-Boot + the proprietary Amlogic firmware
stages in SPI flash (mainly the Libre Computer boards do), which means
they can use GPT, because the firmware is simply not stored on eMMC/SD.
For that reason I chose not to change the partition table on those.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
2024-12-08 12:22:30 +09:00
Adam Thiede 05958311ee linux-postmarketos-mediatek-mt8173: upgrade to 6.12.3 (MR 5879)
[ci:skip-build]: already built successfully in CI
2024-12-07 10:38:46 +01:00
Jianhua Lu ec0a8ecf13 firmware-qcom-adreno: upgrade to 20241110, add gen70500 (MR 5882)
[ci:skip-build]: already built successfully in CI
2024-12-07 10:27:20 +01:00
Anri Dellal b22ec1522a .ci/testcases/test_device.py: fix TypeError errors (MR 5863)
Fix TypeError when RuntimeError is thrown

Example:
FAILED testcases/test_device.py::test_aports_device -
	TypeError: can only concatenate str (not "PosixPath") to str
2024-12-06 23:11:16 -08:00
Raymond Hackley 660518e165 samsung-fortuna: merge devices from fortuna3g, gprimeltecan and grandprimelte and maintain
Merge the following Samsung Galaxy Grand Prime devices into
samsung-fortuna:
- samsung-fortuna3g
- samsung-fortunaltezt (firmware only due to armv7 architecture)
- samsung-gprimeltecan
- samsung-grandprimelte (was samsung-gprimeltexx)
2024-12-07 05:21:51 +00:00
postmarketOS CI a96584537e linux-next: upgrade to next-20241206 2024-12-06 19:59:38 +00:00
Jan Jasper de Kroon f4ae4180e2 linux-pine64-pinephonepro: fix disk encryption deadlock on RK3399 (MR 5870)
Resolves deadlock between Rockchip crypto hardware and dm-crypt causing
kernel panic during disk decryption on devices like PinePhone Pro.

- Disables RK3399 hardware crypto engine (CONFIG_CRYPTO_DEV_ROCKCHIP)
- Enables ARM64 CPU crypto extensions for AES/SHA
- Makes core crypto components built-in instead of modules

Fixes: kernel panic in queued_spin_lock_slowpath() when accessing
encrypted devices.
[ci:skip-build]: already built successfully in CI
2024-12-06 14:34:02 +01:00
Jianhua Lu 0104485272 CODEOWNERS: add Jianhua Lu to device-xiaomi-elish maintainership (MR 5832)
[ci:skip-vercheck]
2024-12-05 23:39:47 -08:00
Jianhua Lu 7eaa286e9c device-xiaomi-elish: Move from testing to community (MR 5832) 2024-12-05 23:37:26 -08:00
Oliver Smith 04d707acbf channels: update v24.12 branch_aports 2024-12-06 00:01:57 +01:00
Frank Oltmanns 8d49f8782b soc-qcom-sdm845: update ucm conf to fix poco f1 mic during calls (MR 5860)
Update ucm conf to a version that contains a workaround to get the
bottom mic working again in voice calls.

Fixes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3322
[ci:skip-build]: already built successfully in CI
2024-12-05 23:43:58 +01:00
Stephan Gerhold 85e0c1f0ba main/postmarketos-initramfs: start mdev/udev before setting up USB (MR 5852)
There might be additional kernel modules needed for the USB UDC to show up.
This used to work fine, but broke when the initramfs was unified with the
minimal one. We need to load modules/start udev before setting up USB.

Fix this by duplicating the setup calls in both init.sh and init_2nd.sh.
Both calls already have checks to allow calling them multiple times,
so we don't need to handle the initramfs-extra case in a special way.
[ci:skip-build]: already built successfully in CI
2024-12-05 23:38:52 +01:00
Alistair Francis 49e70bd5f5 temp/iio-sensor-proxy: Support set_polling (MR 5853)
In order to reduce the power usage when using sensors let's implement
set_polling as described [1]. The patch was linked in the MR that adds
libssc support [2] and is from [3].

An alternative implementation is also avaliable [4], but that seems to
have GLib threading issues [5].

1: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/2455#note_453587
2: https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/merge_requests/381#note_2567822
3: https://gitlab.freedesktop.org/verdre/iio-sensor-proxy/-/commit/7a7a5f3ea04ff4c134f3dbbbc005b8c26d0af300
4: https://gitlab.freedesktop.org/verdre/iio-sensor-proxy/-/commit/74a5860474b6e79cd6e3be13d1ff8dd9cd810b8b
5: https://mastodon.social/@verdre/113390737074625004

Signed-off-by: Alistair Francis <alistair@alistair23.me>
[ci:skip-build]: already built successfully in CI
2024-12-05 23:32:45 +01:00
Oliver Smith 1ba238d37e main/postmarketos-base-nofde: split from postmarketos-base (MR 5875)
Split -nofde into a separate package to resolve the cyclic depenency:
postmarketos-base -> postmarketos-initramfs -> postmarketos-base-nofde

Fixes: issue 3236
[ci:skip-build]: already built successfully in CI
2024-12-05 22:40:04 +01:00
Oliver Smith 278bdcc619 main/postmarketos-cros-common: add makedepends (MR 5876)
Fill out makedepends, so pmbootstrap and bpo know that these packages
need to be built before building postmarketos-cros-common, because it
has subpackages depending on these packages. Without this,
bootstrapping v24.12 currently fails:
https://builds.sr.ht/~postmarketos/job/1381582

This is intended behavior, abuild works the same way:
https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10138

[ci:skip-build]: already built successfully in CI
2024-12-05 22:35:17 +01:00
Willow Barraco ec694630cb temp/conky: fix build (MR 5877)
[ci:skip-build]: Oliver verified locally that it builds
2024-12-05 22:08:18 +01:00
Clayton Craft a56982b79f linux-lenovo-21bx: drop (MR 5837)
[ci:skip-build]: already built successfully in CI
2024-12-05 11:59:56 -08:00
Clayton Craft 924a78b271 device-lenovo-21bx: use linux-pmos-qcom-laptop kernel (MR 5837) 2024-12-05 11:59:56 -08:00
Clayton Craft eb2b5cd458 linux-postmarketos-qcom-laptop: new aport (MR 5837)
This is a generic kernel for qcom laptops (sc8280xp & x1e), meant to
replace the lenovo-21bx kernel for the x13s.

- Uses johan_defconfig as base, and includes Minecrell's pmos.config
- Adds some extra kconfig for supporting virtualization
2024-12-05 11:59:56 -08:00
postmarketOS CI 59b4992428 linux-next: upgrade to next-20241205 2024-12-05 19:57:19 +00:00
Maarten van Gompel 2d4f8429ea postmarketos-ui-sxmo-*: upgrade to 1.17.1 (MR 5869)
[ci:skip-build]: already built successfully in CI
2024-12-05 11:16:13 -08:00
Oliver Smith 0420dc57f2 cross/musl-*: upgrade to 1.2.5-r8 2024-12-04 22:06:13 +01:00
postmarketOS CI cde8d7149a linux-next: upgrade to next-20241204 2024-12-04 19:57:24 +00:00
Sicelo A. Mhlongo 5f059f959e device-nokia-n900: do not use upower for low-battery shutdown (MR 5868)
As of upower 1.90.5, it is possible to configure upower to not take an action
when the battery capacity is reported as critically low. Since the Nokia N900
now monitors its battery capacity using udev scripts, which is more accurate
than upower's calculation, enable the new ignore feature for the N900.
2024-12-04 17:25:12 +01:00
Sicelo A. Mhlongo ea97c08fa6 device-nokia-n900: implement udev-based battery monitoring (MR 5868)
The bq27200 fuel gauge depends on its battery-backed memory for capacity
reporting. If the supply is off for some time, the fuel gauge's last known
capacity is reset, after which a capacity value can only be read after a
full charge cycle. Thus, most of the time, as used on the Nokia N900, the
reported percentage cannot be relied on for making power-off decisions on
battery low conditions, e.g. through UPower.

However the fuel gauge can very accurately detect and report a low battery
condition internally, even if the reported capacity is incorrect, e.g. when
it has been reset. The low battery condition is reported by the kernel via
capacity_level in sysfs, and also generates uevents.

So we can implement safe battery shutdown by requesting the kernel to more
regularly polling for status changes, then performing an immediate shutdown
when the capacity_level is reported as Low and the device is not charging.
2024-12-04 17:25:12 +01:00
Sicelo A. Mhlongo 06aaf0abe4 device-nokia-n900: update urxvt font (MR 5868)
pmos now defaults to droid sans font
2024-12-04 17:25:12 +01:00
Sicelo A. Mhlongo 64dcfb004a device-nokia-n900: cleanup modem udev rules (MR 5868)
Do not duplicate udev rules that are also shipped by upstream
2024-12-04 17:25:12 +01:00
Sicelo A. Mhlongo fdd064430e device-nokia-n900: drop sxmo-specific sub-package (MR 5868)
The deviceprofile is now in a tagged sxmo release.

The conky issue will be mentioned in wiki for users to manually disable, until
upstream allows toggling it.
2024-12-04 17:25:03 +01:00
Caleb Connolly 1c3296a63a githooks: ignore unstaged hunks of APKBUILD (MR 5807)
It's possible that additional sources have been made to an APKBUILD
which are unstaged, but if the hunks adding those sources haven't been
staged either then it doesn't make sense to fail on this.

Use git show to get only the staged hunks for the APKBUILD.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-12-04 16:17:36 +01:00
postmarketOS CI b76e61f7b4 linux-next: upgrade to next-20241203 2024-12-04 06:10:55 +00:00
4346 changed files with 1337294 additions and 10640 deletions

No files matched your search

+2 -1
View File
@@ -43,7 +43,7 @@ update_linux_next() {
# shellcheck source=/dev/null
pkgver=$(. device/testing/linux-next/APKBUILD; echo "$pkgver")
curl -s "https://gitlab.com/linux-kernel/linux-next/-/tags?format=atom" | grep -oP "(?<=<title>)[^<]+" | tail -n +2 > /tmp/tags
curl -s https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/refs/tags/ | grep -oE "<a href='.*'>(.*)</a>.*\.tar\.gz</a>" | awk -F'[<>]' '{print $3}' > /tmp/tags
latest=$(grep -v "v" < /tmp/tags | head -n1)
if [ -z "$latest" ]; then
@@ -71,6 +71,7 @@ update_linux_next() {
echo "Updating linux-next from $pkgver to $new_pkgver..."
sed -i -e "s/pkgver=$pkgver/pkgver=$new_pkgver/" device/testing/linux-next/APKBUILD
sed -i -e "s/^pkgrel=.*/pkgrel=0/" device/testing/linux-next/APKBUILD
# Update the checksums
pmbootstrap checksum linux-next
+1
View File
@@ -0,0 +1 @@
lib/build_changed_aports.sh
+1
View File
@@ -0,0 +1 @@
lib/build_changed_aports.sh
+1
View File
@@ -0,0 +1 @@
lib/build_changed_aports.sh
+27 -9
View File
@@ -110,14 +110,32 @@ if __name__ == "__main__":
# FIXME: this should probably be more generic, if other repos are added later?
if systemd_pkgs:
common.run_pmbootstrap(["config", "systemd", "always"])
# To fix the ERROR: Chroot 'native' is for the 'edge' channel, but you are on the
# 'systemd-edge' channel. Run 'pmbootstrap zap' to delete your chroots and try again.
# To do this automatically, run 'pmbootstrap config auto_zap_misconfigured_chroots yes'.
common.run_pmbootstrap(["config", "auto_zap_misconfigured_chroots", "yes"])
# filter out packages that can't be built for arch
# (Iterate over copy of `systemd_pkgs`, because we modify it in this loop)
for package in systemd_pkgs.copy():
apkbuild_path = pmb.helpers.pmaports.find(package, True, True, with_extra_repos="enabled")
apkbuild = pmb.parse._apkbuild.apkbuild(pathlib.Path(apkbuild_path, "APKBUILD"))
if not pmb.helpers.pmaports.check_arches(apkbuild["arch"], arch):
print(f"(extra-repos/systemd) {package}: not enabled for {arch}, skipping")
systemd_pkgs.remove(package)
# No packages: skip build
if len(systemd_pkgs) == 0:
print(f"no packages changed, which can be built for {arch}")
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(systemd_pkgs))
verify_checksums(systemd_pkgs, arch)
else:
# Build packages
print(f"building in strict mode for {arch}, from extra-repos/systemd: {', '.join(systemd_pkgs)}")
build_strict(systemd_pkgs, arch)
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(systemd_pkgs))
verify_checksums(systemd_pkgs, arch)
else:
# Build packages
print(f"building in strict mode for {arch}, from extra-repos/systemd: {', '.join(systemd_pkgs)}")
build_strict(systemd_pkgs, arch)
+1 -3
View File
@@ -21,12 +21,10 @@ sh_files="
./main/postmarketos-installkernel/installkernel-pmos
./main/postmarketos-initramfs/init.sh
./main/postmarketos-initramfs/init_functions.sh
./main/postmarketos-mkinitfs-hook-debug-shell/setup_usb_storage.sh
./main/postmarketos-mkinitfs-hook-netboot/netboot.sh
./main/ttyescape/*.post-install
./main/unl0kr/unlock.sh
./main/msm-firmware-loader/*.post-install
./device/community/soc-qcom-sdm845/call_audio_idle_suspend_workaround.sh
./device/community/soc-qcom/call_audio_idle_suspend_workaround.sh
$(find . -path './main/postmarketos-ui-*/*.sh')
$(find . -path './main/postmarketos-ui-*/*.pre-install')
+3 -69
View File
@@ -14,9 +14,6 @@ import pmb.parse._apkbuild
from pmb.core.pkgrepo import pkgrepo_default_path, pkgrepo_iglob, pkgrepo_relative_path
from pmb.core.arch import Arch
# Cache for codeowners_parse
codeowners_parsed = {}
# Don't complain if these nicknames are the only maintainers of an APKBUILD,
# because they are actually a group of people
gitlab_groups = [
@@ -47,8 +44,7 @@ def test_aports_device():
if "postmarketos-base" == dependency or "postmarketos-base>" in dependency:
depend_flag = True
if not depend_flag:
raise RuntimeError("Missing 'postmarketos-base' in depends of " +
path)
raise RuntimeError(f"Missing 'postmarketos-base' in depends of {path}")
# Depends: Must not have specific packages
for depend in apkbuild["depends"]:
@@ -61,7 +57,7 @@ def test_aports_device():
raise RuntimeError("wrong architecture, please change to arch=\""
f"{deviceinfo.arch}\": {path}")
if "!archcheck" not in apkbuild["options"]:
raise RuntimeError("!archcheck missing in options= line: " + path)
raise RuntimeError(f"!archcheck missing in options= line: {path}")
def test_aports_device_kernel():
@@ -103,72 +99,12 @@ def test_aports_device_kernel():
f" <https://postmarketos.org/devicepkg>): {path}")
def codeowners_parse():
global codeowners_parsed
pattern_prev = None
aports = pkgrepo_default_path()
with open(aports / "CODEOWNERS") as h:
for line in h:
line = line.rstrip()
if not line or line.startswith("#"):
continue
pattern_nicks = line.split()
assert len(pattern_nicks) > 1, f"CODEOWNERS line without nicks: {line}"
pattern = pattern_nicks[0]
if pattern.endswith("/"):
pattern += "*"
nicks = []
for word in pattern_nicks[1:]:
if word.startswith("@"):
nicks += [word]
codeowners_parsed[pattern] = nicks
if pattern_prev:
assert pattern_prev <= pattern, "CODEOWNERS: please order entries alphabetically"
pattern_prev = pattern
def require_enough_codeowners_entries(path, maintainers):
"""
:param path: full path to an APKBUILD (e.g. /home/user/…/APKBUILD)
:param maintainers: list of one or more maintainers
"""
_, path = pkgrepo_relative_path(path)
nicks = set()
for pattern, pattern_nicks in codeowners_parsed.items():
if fnmatch.fnmatch(path, pattern):
for nick in pattern_nicks:
nicks.add(nick)
print(f"{path}:")
print(f" APKBUILD: {maintainers}")
print(f" CODEOWNERS: {nicks}")
if len(nicks) < len(maintainers):
for nick in nicks:
if nick in gitlab_groups:
print(f" -> {nick} is a group")
return
assert len(nicks) >= len(maintainers), \
f"{path}: make sure that each maintainer is listed in CODEOWNERS!"
# @pytest.mark.xfail # Not all aports have been updated yet
def test_aports_maintained():
"""
Ensure that aports in /device/{main,community} have "Maintainer:" and
"Co-Maintainer:" (only required for main) listed in their APKBUILDs. Also
check that at least as many are listed in CODEOWNERS.
"Co-Maintainer:" (only required for main) listed in their APKBUILDs.
"""
codeowners_parse()
for path in pkgrepo_iglob("device/main/*/APKBUILD"):
if 'firmware-' in path.parent.name:
@@ -176,14 +112,12 @@ def test_aports_maintained():
maintainers = pmb.parse._apkbuild.maintainers(path)
assert maintainers and len(maintainers) >= 2, \
f"{path} in main needs at least 1 Maintainer and 1 Co-Maintainer"
require_enough_codeowners_entries(path, maintainers)
for path in pkgrepo_iglob("device/community/*/APKBUILD"):
if 'firmware-' in path.parent.name:
continue
maintainers = pmb.parse._apkbuild.maintainers(path)
assert maintainers, f"{path} in community needs at least 1 Maintainer"
require_enough_codeowners_entries(path, maintainers)
def test_aports_unmaintained():
@@ -10,6 +10,7 @@ expected_directories = [
"device/community",
"device/main",
"device/testing",
"extra-repos/systemd",
"main",
"modem",
"non-free",
+1
View File
@@ -25,6 +25,7 @@ def test_aports_firmware():
"firmware-samsung-maguro", # Depends on firmware-aosp-broadcom-wlan
"firmware-xiaomi-ferrari", # Depends on soc-qcom-msm8916
"firmware-xiaomi-willow", # Doesn't build, source link is dead (pma#1212)
"firmware-samsung-i9105p", # Depends on firmware-aosp-broadcom-wlan
]
for path in pkgrepo_iglob("**/firmware-*/APKBUILD", recursive=True):
+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
+12 -2
View File
@@ -65,7 +65,7 @@ is_symlink() {
# available in git tree and checksums are correct.
check_local_sources() {
local apkbuild="$1"
local startdir="${apkbuild%/*}"
local startdir="$2"
local status=0
local checksum_act checksum_exp content filename line sources
@@ -109,11 +109,21 @@ check_file_size() {
fi
}
cleanup() {
[ -f "$_staged" ] && rm "$_staged"
}
trap cleanup EXIT
for apkbuild in $(changed_files '**/APKBUILD'); do
check_local_sources "$apkbuild"
_staged="$(mktemp)"
git show ":$apkbuild" >"$_staged"
check_local_sources "$_staged" "${apkbuild%/*}"
cleanup
done
for path in $(changed_files); do
check_file_size "$path"
done
trap - EXIT
+40 -7
View File
@@ -27,11 +27,24 @@ workflow:
# Run scheduled pipeline for autoupdate or manually triggered pipeline
- if: $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web"
# device documentation
wiki:
stage: lint
rules:
- if: &mr_rule $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
changes:
- .ci/**/*
- .gitlab-ci.yml
- device/*/device-*/*
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/wiki.sh
# testcases linting
ruff:
stage: lint
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
- if: *mr_rule
changes:
- .ci/*
- .ci/*/*
@@ -45,7 +58,7 @@ shellcheck-grep:
stage: lint
image: alpine:edge
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
- if: *mr_rule
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/shellcheck.sh
@@ -56,7 +69,7 @@ editor-config:
stage: lint
image: alpine:edge
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
- if: *mr_rule
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/ec.sh
@@ -65,7 +78,7 @@ editor-config:
pytest-commits:
stage: lint
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
- if: *mr_rule
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/pytest.sh
@@ -82,7 +95,7 @@ pytest-commits:
aport-lint:
stage: lint
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
- if: *mr_rule
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/apkbuild-lint.sh
@@ -92,9 +105,12 @@ aport-lint:
kernel-kconfig:
stage: lint
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
- if: *mr_rule
changes:
- kconfigcheck.toml
allow_failure: true
- if: *mr_rule
changes:
- device/*/linux-*/config-*
script:
- .ci/lib/gitlab_prepare_ci.sh
@@ -117,7 +133,7 @@ mr-settings:
.build:
stage: build
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
- if: *mr_rule
before_script:
- *global_before_scripts
- .ci/lib/gitlab_prepare_ci.sh
@@ -134,6 +150,11 @@ build-x86_64:
script:
- .ci/build-x86_64.sh
build-x86:
extends: .build
script:
- .ci/build-x86.sh
build-aarch64:
extends: .build
tags: [arm64]
@@ -146,6 +167,18 @@ build-armv7:
script:
- .ci/build-armv7.sh
build-armhf:
extends: .build
tags: [qemu]
script:
- .ci/build-armhf.sh
build-riscv64:
extends: .build
tags: [qemu]
script:
- .ci/build-riscv64.sh
auto-update:
stage: autoupdate
rules:
+5 -1
View File
@@ -27,7 +27,8 @@
Replace space inside `[ ]` with `x` to fill the checkbox
-->
* [ ] edge (`master` branch)
* [ ] `v24.06`
* [ ] `v24.12`
* [ ] `v24.06` (supported until 2025-01-23)
* [ ] I confirm that the issue still is present after running `sudo apk upgrade -a`
@@ -38,6 +39,9 @@
* [ ] Plasma Mobile
* [ ] Sxmo (Wayland/Sway) **Please post the output of `sxmo_version.sh`**
* [ ] Other: **Please fill out**
### Which init system are you using?
* [ ] OpenRC
* [ ] systemd
### How did you get postmarketOS image?
* [ ] from https://images.postmarketos.org
* [ ] I built it using pmbootstrap
+4 -8
View File
@@ -1,14 +1,10 @@
{
"subject_format": {
"pass": [
"^(([a-z]+\\/[a-z\\-0-9*{}]+),?)+: [A-Za-z\\/\\-0-9*{}\\(\\)\\.,_&:=' ]+( \\(MR \\d+\\)|)$",
"^CI: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\(\\)\\.,_ ]+( \\(MR \\d+\\)|)$",
"^mrhlpr.json: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\(\\)\\.,_ ]+( \\(MR \\d+\\)|)$",
"^pmaports.cfg: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\(\\)\\.,_ ]+( \\(MR \\d+\\)|)$"
],
"unknown": [
"^[a-z-0-9_.*{}\\/]+: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\(\\)\\.,_ ]+( \\(MR \\d+\\)|)$"
"^(([a-z]+\\/\\)?\\([a-z\\-0-9*{}]+),?)+: [a-z][A-Za-z\\/\\-0-9*{}\\.,_&:=' ]+( \\(MR \\d+\\)|)$",
"^CI: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\.,_ ]+( \\(MR \\d+\\)|)$",
"^mrhlpr.json: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\.,_ ]+( \\(MR \\d+\\)|)$",
"^pmaports.cfg: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\.,_ ]+( \\(MR \\d+\\)|)$"
]
}
}
+1
View File
@@ -0,0 +1 @@
https://postmarketos.org/funding.json
+21 -6
View File
@@ -7,12 +7,14 @@ device/*/*-arrow-db410c/ @Minecrell
device/*/*-asus-me176c/ @Minecrell
device/*/*-ayn-odin/ @jenneron
device/*/*-bq-paella/ @Minecrell
device/*/*-bq-tenshi/ @fossdd
device/*/*-google-gru/ @jenneron
device/*/*-google-kukui/ @jenneron @binarycraft
device/*/*-google-oak/ @jenneron @adamthiede
device/*/*-google-trogdor/ @jenneron
device/*/*-google-veyron/ @jenneron
device/*/*-google-x64cros/ @jenneron @JustSoup321 @alpernebbi
device/*/*-htc-golfu/ @Newbyte
device/*/*-htc-m8qlul/ @Newbyte
device/*/*-kobo-clara/ @akemnade
device/*/*-lenovo-21bx/ @craftyguy @jane400
@@ -32,9 +34,12 @@ device/*/*-qcom-msm8916/ @Minecrell @TravMurav
device/*/*-qcom-msm8953/ @barni2000 @alikates @vipaoL @jiaxyga
device/*/*-qcom-sdm670/ @flamingradian
device/*/*-qcom-sdm845/ @sdm845-mainline
device/*/*-qcom-sm6350/ @z3ntu
device/*/*-qcom-sm7150/ @Adrian @jiaxyga @ungeskriptet
device/*/*-qcom-sm8250/ @jianhua
device/*/*-qcom/ @calebccff
device/*/*-samsung-a3/ @Mis012 @TravMurav @Minecrell
device/*/*-samsung-a5/ @Minecrell @minlexx
device/*/*-samsung-a51/ @manoedinata
device/*/*-samsung-e7/ @wonderfulShrineMaidenOfParadise
device/*/*-samsung-espresso10/ @MightyM17
device/*/*-samsung-espresso7/ @MightyM17 @antoni.aloytorrens
@@ -44,6 +49,7 @@ device/*/*-samsung-grandmax/ @wonderfulShrineMaidenOfParadise
device/*/*-samsung-gt510/ @TravMurav
device/*/*-samsung-gt58/ @TravMurav
device/*/*-samsung-j3ltetw/ @bolilingmeng89006
device/*/*-samsung-j4lte/ @manoedinata
device/*/*-samsung-j5/ @wonderfulShrineMaidenOfParadise
device/*/*-samsung-j5x/ @wonderfulShrineMaidenOfParadise
device/*/*-samsung-rossa/ @wonderfulShrineMaidenOfParadise
@@ -53,16 +59,19 @@ device/*/*-videostrong-kii-pro/ @funderscore
device/*/*-wileyfox-crackling/ @TravMurav @Minecrell
device/*/*-xiaomi-beryllium/ @joelselvaraj
device/*/*-xiaomi-daisy/ @joelselvaraj @alikates
device/*/*-xiaomi-davinci/ @Adrian @ArianK16a
device/*/*-xiaomi-elish/ @jianhua
device/*/*-xiaomi-markw/ @vipaoL
device/*/*-xiaomi-mido/ @barni2000
device/*/*-xiaomi-scorpio/ @Tooniis
device/*/*-xiaomi-surya/ @jiaxyga @ungeskriptet
device/*/*-xiaomi-tissot/ @jiaxyga @barni2000
device/*/*-xiaomi-vince/ @M0Rf30
device/*/*-xiaomi-wt88047/ @Minecrell
device/*/*-xiaomi-ysl/ @barni2000
device/*/alsa-ucm-conf-cros/ @WeirdTreeThing
device/*/alsa-ucm-conf-qcom-sdm670/ @flamingradian
device/*/device-fairphone-*/ @z3ntu
device/*/device-apple-n61/ @JustSoup321
device/*/device-generic-x86_64/ @craftyguy @ollieparanoid
device/*/device-google-nyan-big/ @jenneron
device/*/device-google-nyan-blaze/ @jenneron
@@ -70,6 +79,7 @@ device/*/device-google-peach-pi/ @jenneron
device/*/device-google-peach-pit/ @jenneron
device/*/device-google-sargo/ @flamingradian
device/*/device-google-snow/ @jenneron
device/*/device-huawei-plank/ @gtrxAC
device/*/device-lg-judyln/ @Newbyte
device/*/device-lg-judyp/ @jenneron
device/*/device-microsoft-surface-rt/ @jenneron @jethrob
@@ -81,12 +91,12 @@ device/*/device-postmarketos-trailblazer/ @calebccff
device/*/device-qcom-msm8909/ @wonderfulShrineMaidenOfParadise
device/*/device-qemu-aarch64/ @Minecrell @ollieparanoid
device/*/device-qemu-amd64/ @Minecrell @ollieparanoid
device/*/device-qemu-riscv64/ @Minecrell @z3ntu
device/*/device-qemu-riscv64/ @Minecrell
device/*/device-qualcomm-sdm845/ @calebccff
device/*/device-raspberry-pi3/ @fossdd
device/*/device-samsung-chagallwifi/ @Grimler
device/*/device-samsung-coreprimevelte/ @legolivesmatter @balejk
device/*/device-samsung-j5y17lte/ @andrisas
device/*/device-samsung-j5y17lte/ @andrisas
device/*/device-samsung-klimtlte/ @Grimler
device/*/device-samsung-lt01/ @knuxify
device/*/device-samsung-m0/ @Newbyte
@@ -102,18 +112,21 @@ device/*/firmware-powervr-gx6250/ @jenneron
device/*/kobo-epdc-extractor/ @akemnade
device/*/linux-google-nyan/ @jenneron
device/*/linux-google-veyron/ @jenneron
device/*/linux-huawei-plank/ @gtrxAC
device/*/linux-next/ @calebccff
device/*/linux-postmarketos-allwinner/ @Arnavion @PsychoGame
device/*/linux-postmarketos-amlogic/ @funderscore @exkc
device/*/linux-postmarketos-apple/ @JustSoup321
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-marvell/ @longnoserob @exkc
device/*/linux-postmarketos-mediatek-mt8173/ @jenneron @adamthiede
device/*/linux-postmarketos-mediatek-mt8183/ @jenneron @binarycraft
device/*/linux-postmarketos-omap/ @MightyM17 @Sicelo
device/*/linux-postmarketos-qcom-laptop/ @craftyguy @calebccff
device/*/linux-postmarketos-qcom-msm8939/ @Newbyte
device/*/linux-postmarketos-qcom-msm8953/ @M0Rf30 @Ultra-azu @barni2000
device/*/linux-postmarketos-qcom-msm8996/ @Tooniis
device/*/linux-postmarketos-qcom-sc7180/ @jenneron
@@ -121,7 +134,7 @@ device/*/linux-postmarketos-rockchip/ @QC8086
device/*/linux-postmarketos-stericsson/ @Newbyte
device/*/linux-samsung-chagallwifi/ @Grimler
device/*/linux-samsung-coreprimevelte/ @legolivesmatter @balejk
device/*/linux-samsung-j5y17lte/ @andrisas
device/*/linux-samsung-j5y17lte/ @andrisas
device/*/linux-samsung-klimtlte/ @Grimler
device/*/oem-amd/ @craftyguy
device/*/oem-intel/ @craftyguy
@@ -140,6 +153,8 @@ main/postmarketos*gnome*/ @pabloyoyoista @Newbyte @fossdd
main/postmarketos-initramfs/ @calebccff @craftyguy
main/postmarketos-ui-i3wm/ @fossdd
main/postmarketos-ui-phosh/ @pabloyoyoista @Newbyte @fossdd
main/postmarketos-ui-plasma-bigscreen/ @PureTryOut
main/postmarketos-ui-plasma-desktop/ @PureTryOut
main/postmarketos-ui-plasma-mobile/ @PureTryOut
main/shutdown-clear-rtc-wakealarm/ @Arnavion
main/ttyescape/ @calebccff
+69
View File
@@ -0,0 +1,69 @@
# Reference: https://postmarketos.org/channels.cfg
[channels.cfg]
recommended=edge
[edge]
description=Rolling release / Most devices / Occasional breakage: https://postmarketos.org/edge
branch_pmaports=master
branch_aports=master
mirrordir_alpine=edge
[v24.12]
description=Latest release / Recommended for best stability
branch_pmaports=v24.12
branch_aports=3.21-stable
mirrordir_alpine=v3.21
[v24.06]
description=Old release (unsupported)
branch_pmaports=v24.06
branch_aports=3.20-stable
mirrordir_alpine=v3.20
[v23.12]
description=Old release (unsupported)
branch_pmaports=v23.12
branch_aports=3.19-stable
mirrordir_alpine=v3.19
[v23.06]
description=Old release (unsupported)
branch_pmaports=v23.06
branch_aports=3.18-stable
mirrordir_alpine=v3.18
[v22.12]
description=Old release (unsupported)
branch_pmaports=v22.12
branch_aports=3.17-stable
mirrordir_alpine=v3.17
[v22.06]
description=Old release (unsupported)
branch_pmaports=v22.06
branch_aports=3.16-stable
mirrordir_alpine=v3.16
[v21.12]
description=Old release (unsupported)
branch_pmaports=v21.12
branch_aports=3.15-stable
mirrordir_alpine=v3.15
[v21.06]
description=Old release (unsupported)
branch_pmaports=v21.06
branch_aports=3.14-stable
mirrordir_alpine=v3.14
[v21.03]
description=Old release (unsupported)
branch_pmaports=v21.03
branch_aports=3.13-stable
mirrordir_alpine=v3.13
[v20.05]
description=Old release (unsupported)
branch_pmaports=v20.05
branch_aports=3.12-stable
mirrordir_alpine=v3.12
+4 -4
View File
@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-aarch64
pkgver=1.37.0
pkgrel=12
pkgrel=14
_arch="aarch64"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -21,16 +21,16 @@ pkgdesc="Statically linked Busybox for $_arch"
_target="$(arch_to_hostspec $_arch)"
source="
busybox-static-$pkgver-r$pkgrel-$_arch-v3.21.apk::$_mirror/v3.21/main/$_arch/busybox-static-$pkgver-r$pkgrel.apk
busybox-static-$pkgver-r$pkgrel-$_arch-edge.apk::$_mirror/edge/main/$_arch/busybox-static-$pkgver-r$pkgrel.apk
"
package() {
mkdir -p "$pkgdir/usr/$_target"
cd "$pkgdir/usr/$_target"
tar -xf $srcdir/busybox-static-$pkgver-r$pkgrel-$_arch-v3.21.apk
tar -xf $srcdir/busybox-static-$pkgver-r$pkgrel-$_arch-edge.apk
rm .PKGINFO .SIGN.*
}
sha512sums="
83648d5b4e1c23d5eb6bc17bc44d702fd6f709946d0e010db0b99160c5f0ada049bd5860d9c1ae8d4c978c4c090720b2c4ecbb4504b268b254c23c95cc8e44dc busybox-static-1.37.0-r12-aarch64-v3.21.apk
8f1f521eceb24a5f66e18e022b1151e96b40378051aaed911dc22e68dbffc5998c8f2bac3935423371c7e707f8931e97873c91c39d56dc2e34292567b3caceaf busybox-static-1.37.0-r14-aarch64-edge.apk
"
+36
View File
@@ -0,0 +1,36 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen busybox-static-armhf
# Stub for apkbuild-lint
if [ -z "$(type -t arch_to_hostspec)" ]; then
arch_to_hostspec() { :; }
fi
pkgname=busybox-static-armhf
pkgver=1.37.0
pkgrel=14
_arch="armhf"
_mirror="http://dl-4.alpinelinux.org/alpine/"
url="http://busybox.net"
license="GPL2"
arch="x86_64"
options="!check !strip"
pkgdesc="Statically linked Busybox for $_arch"
_target="$(arch_to_hostspec $_arch)"
source="
busybox-static-$pkgver-r$pkgrel-$_arch-edge.apk::$_mirror/edge/main/$_arch/busybox-static-$pkgver-r$pkgrel.apk
"
package() {
mkdir -p "$pkgdir/usr/$_target"
cd "$pkgdir/usr/$_target"
tar -xf $srcdir/busybox-static-$pkgver-r$pkgrel-$_arch-edge.apk
rm .PKGINFO .SIGN.*
}
sha512sums="
ce7dfd41a149faed98ae5ae08695223b57e8104a47c9c4c0e956a8c7cbd7fbc6b53b247f2c0f0633d72aa0aba8688f6ecfdd9784722b655f3c29dc1a2557f3e1 busybox-static-1.37.0-r14-armhf-edge.apk
"
+4 -4
View File
@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-armv7
pkgver=1.37.0
pkgrel=12
pkgrel=14
_arch="armv7"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -21,16 +21,16 @@ pkgdesc="Statically linked Busybox for $_arch"
_target="$(arch_to_hostspec $_arch)"
source="
busybox-static-$pkgver-r$pkgrel-$_arch-v3.21.apk::$_mirror/v3.21/main/$_arch/busybox-static-$pkgver-r$pkgrel.apk
busybox-static-$pkgver-r$pkgrel-$_arch-edge.apk::$_mirror/edge/main/$_arch/busybox-static-$pkgver-r$pkgrel.apk
"
package() {
mkdir -p "$pkgdir/usr/$_target"
cd "$pkgdir/usr/$_target"
tar -xf $srcdir/busybox-static-$pkgver-r$pkgrel-$_arch-v3.21.apk
tar -xf $srcdir/busybox-static-$pkgver-r$pkgrel-$_arch-edge.apk
rm .PKGINFO .SIGN.*
}
sha512sums="
8437f209f6862756d1c7138cfb3c518abdc801d692df03d40dcf5aafa63477e3b0544b172fd9ef40ae0bef93f94fbfdf502077db933f153eb3c2eece578680f6 busybox-static-1.37.0-r12-armv7-v3.21.apk
2f7003d0de894299a0260efd97bddfabd8d14d0e4b624445a77367036ad33c7ad65a85ee758969e671599ded5ee5674bda755c570ca4d9e95bba9c02b5788b8f busybox-static-1.37.0-r14-armv7-edge.apk
"
+2 -2
View File
@@ -5,7 +5,7 @@
pkgname=ccache-cross-symlinks
pkgver=3
pkgrel=0
pkgrel=1
pkgdesc="Enable ccache for cross-compilers with symlinks"
url="https://ccache.samba.org/"
arch="noarch"
@@ -15,7 +15,7 @@ options="!check"
package() {
# Keep in sync with pmb.config.build_device_architectures
local _archs="armhf armv7 aarch64 x86_64 x86"
local _archs="armhf armv7 aarch64 x86_64 x86 riscv64"
local _bins="c++ cc cpp g++ gcc clang clang++"
mkdir -p "$pkgdir/usr/lib/ccache/bin"
+3 -3
View File
@@ -20,7 +20,7 @@
pkgname=crossdirect
pkgver=5.2.0
pkgrel=0
pkgrel=1
pkgdesc="Wrappers to launch native cross compilers in foreign chroots"
url="https://postmarketOS.org"
arch="all"
@@ -31,7 +31,7 @@ source="cargo.sh crossdirect.c rustc.sh rust-qemu-linker.sh"
build() {
cd "$srcdir"
# Architectures and binaries
_archs="x86_64 armhf armv7 aarch64"
_archs="x86_64 armhf armv7 aarch64 riscv64"
for _arch in $_archs; do
[ "$_arch" == "$CARCH" ] && continue
_hostspec="$(arch_to_hostspec $_arch)"
@@ -48,7 +48,7 @@ build() {
package() {
# Architectures and binaries
_archs="x86_64 armhf armv7 aarch64"
_archs="x86_64 armhf armv7 aarch64 riscv64"
_bins="c++ cc cpp g++ gcc clang clang++"
# Rust wrappers
+8 -9
View File
@@ -34,20 +34,19 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-aarch64
pkgrel=4
pkgrel=5
pkgdesc="Stage2 cross-compiler for aarch64"
url="https://gcc.gnu.org"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-aarch64 mpc1"
depends="binutils-aarch64 mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-aarch64 binutils-aarch64"
subpackages="g++-aarch64:gpp libstdc++-dev-aarch64:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
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}"
@@ -320,7 +319,7 @@ build() {
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
loongarch64-*-*-*) _arch_configure="--with-arch=loongarch64 --with-abi=lp64d";;
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
@@ -473,7 +472,9 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
local libgnat_static=
[ "$CHOST" = "$CTARGET" ] && libgnat_static="libgna*.a"
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "$libgnat_static" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
@@ -486,9 +487,6 @@ package() {
# 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
@@ -570,9 +568,10 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
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"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
+42
View File
@@ -0,0 +1,42 @@
From 47b4bd4deb2c356bb07d2a96f22127aefafec3a4 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Fri, 26 Jan 2018 20:32:50 +0000
Subject: [PATCH 01/35] posix_memalign
---
gcc/config/i386/pmm_malloc.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
index 3527283693b..c4071b64b53 100644
--- a/gcc/config/i386/pmm_malloc.h
+++ b/gcc/config/i386/pmm_malloc.h
@@ -27,12 +27,13 @@
#include <stdlib.h>
/* We can't depend on <stdlib.h> since the prototype of posix_memalign
- may not be visible. */
+ may not be visible and we can't pollute the namespace either. */
#ifndef __cplusplus
-extern int posix_memalign (void **, size_t, size_t);
+extern int _mm_posix_memalign (void **, size_t, size_t)
#else
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
+extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw ()
#endif
+__asm__("posix_memalign");
static __inline void *
_mm_malloc (size_t __size, size_t __alignment)
@@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment)
return malloc (__size);
if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4))
__alignment = sizeof (void *);
- if (posix_memalign (&__ptr, __alignment, __size) == 0)
+ if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0)
return __ptr;
else
return NULL;
--
2.41.0
@@ -0,0 +1,203 @@
From 4fa620d8c3e6730211bfb071eb4c817320491bd0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 08:59:00 +0400
Subject: [PATCH 02/35] gcc: poison-system-directories
Add /sw/include and /opt/include based on the original
zecke-no-host-includes.patch patch. The original patch checked for
/usr/include, /sw/include and /opt/include and then triggered a failure and
aborted.
Instead, we add the two missing items to the current scan. If the user
wants this to be a failure, they can add "-Werror=poison-system-directories".
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
---
gcc/common.opt | 4 ++++
gcc/config.in | 6 ++++++
gcc/configure | 16 ++++++++++++++++
gcc/configure.ac | 10 ++++++++++
gcc/doc/invoke.texi | 9 +++++++++
gcc/gcc.cc | 2 ++
gcc/incpath.cc | 21 +++++++++++++++++++++
7 files changed, 68 insertions(+)
diff --git a/gcc/common.opt b/gcc/common.opt
index 862c474d3c8..64c4277c991 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -711,6 +711,10 @@ Wreturn-local-addr
Common Var(warn_return_local_addr) Init(1) Warning
Warn about returning a pointer/reference to a local or temporary variable.
+Wpoison-system-directories
+Common Var(flag_poison_system_directories) Init(1) Warning
+Warn for -I and -L options using system directories if cross compiling
+
Wshadow
Common Var(warn_shadow) Warning
Warn when one variable shadows another. Same as -Wshadow=global.
diff --git a/gcc/config.in b/gcc/config.in
index 4cad077bfbe..0679fbbf4c6 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -236,6 +236,12 @@
#endif
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+#endif
+
+
/* Define if you want all operations on RTL (the basic data structure of the
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
index c7b26d1927d..8c46369f73f 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -1026,6 +1026,7 @@ enable_maintainer_mode
enable_link_mutex
enable_link_serialization
enable_version_specific_runtime_libs
+enable_poison_system_directories
enable_plugin
enable_host_shared
enable_libquadmath_support
@@ -1788,6 +1789,8 @@ Optional Features:
--enable-version-specific-runtime-libs
specify that runtime libraries should be installed
in a compiler-specific directory
+ --enable-poison-system-directories
+ warn for use of native system header directories
--enable-plugin enable plugin support
--enable-host-shared build host code as shared libraries
--disable-libquadmath-support
@@ -31753,6 +31756,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
fi
+# Check whether --enable-poison-system-directories was given.
+if test "${enable_poison_system_directories+set}" = set; then :
+ enableval=$enable_poison_system_directories;
+else
+ enable_poison_system_directories=no
+fi
+
+if test "x${enable_poison_system_directories}" = "xyes"; then
+
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
+
+fi
+
# Substitute configuration variables
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 09082e8ccae..5504bf6eb01 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -7292,6 +7292,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
+AC_ARG_ENABLE([poison-system-directories],
+ AS_HELP_STRING([--enable-poison-system-directories],
+ [warn for use of native system header directories]),,
+ [enable_poison_system_directories=no])
+if test "x${enable_poison_system_directories}" = "xyes"; then
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
+ [1],
+ [Define to warn for use of native system header directories])
+fi
+
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index af0e5933fdb..b6731a4673c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -384,6 +384,7 @@ Objective-C and Objective-C++ Dialects}.
-Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded
-Wparentheses -Wno-pedantic-ms-format
-Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast
+-Wno-poison-system-directories
-Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls
-Wrestrict -Wno-return-local-addr -Wreturn-type
-Wno-scalar-storage-order -Wsequence-point
@@ -8426,6 +8427,14 @@ made up of data only and thus requires no special treatment. But, for
most targets, it is made up of code and thus requires the stack to be
made executable in order for the program to work properly.
+@opindex Wno-poison-system-directories
+@item -Wno-poison-system-directories
+Do not warn for @option{-I} or @option{-L} options using system
+directories such as @file{/usr/include} when cross compiling. This
+option is intended for use in chroot environments when such
+directories contain the correct headers and libraries for the target
+system rather than the host.
+
@opindex Wfloat-equal
@opindex Wno-float-equal
@item -Wfloat-equal
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 16bb07f2cdc..33b56e721d2 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1177,6 +1187,8 @@ proper position among the other output files. */
"-z now " \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
+ %{Wno-poison-system-directories:--no-poison-system-directories} \
+ %{Werror=poison-system-directories:--error-poison-system-directories} \
%{static|no-pie|static-pie:} %@{L*} %(link_libgcc) " \
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
diff --git a/gcc/incpath.cc b/gcc/incpath.cc
index 4d44321183f..0f3f071b44c 100644
--- a/gcc/incpath.cc
+++ b/gcc/incpath.cc
@@ -26,6 +26,7 @@
#include "intl.h"
#include "incpath.h"
#include "cppdefault.h"
+#include "diagnostic-core.h"
/* Microsoft Windows does not natively support inodes.
VMS has non-numeric inodes. */
@@ -399,6 +400,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
}
fprintf (stderr, _("End of search list.\n"));
}
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ if (flag_poison_system_directories)
+ {
+ struct cpp_dir *p;
+
+ for (p = heads[INC_QUOTE]; p; p = p->next)
+ {
+ if ((!strncmp (p->name, "/usr/include", 12))
+ || (!strncmp (p->name, "/usr/local/include", 18))
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
+ || (!strncmp (p->name, "/sw/include", 11))
+ || (!strncmp (p->name, "/opt/include", 12)))
+ warning (OPT_Wpoison_system_directories,
+ "include location \"%s\" is unsafe for "
+ "cross-compilation",
+ p->name);
+ }
+ }
+#endif
}
/* Use given -I paths for #include "..." but not #include <...>, and
--
2.41.0
@@ -0,0 +1,44 @@
From ff4dd4ce33133e675b7bedc86b73357c04631cb9 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:45:49 +0000
Subject: [PATCH 03/35] specs: turn on -Wl,-z,now by default
Previously, we also used to turn on -z relro here, but we now build
binutils with --enable-relro, which is functionally equivalent.
Binutils does not appear to have a similar option for enabling -z
now by default.
---
gcc/doc/invoke.texi | 3 +++
gcc/gcc.cc | 1 +
2 files changed, 4 insertions(+)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index b6731a4673c..f393c7846c6 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -17961,6 +17961,9 @@ For example, @option{-Wl,-Map,output.map} passes @option{-Map output.map} to the
linker. When using the GNU linker, you can also get the same effect with
@option{-Wl,-Map=output.map}.
+NOTE: In Alpine Linux, for LDFLAGS, the option
+@option{-Wl,-z,now} is used. To disable, use @option{-Wl,-z,nonow}.
+
@opindex u
@item -u @var{symbol}
Pretend the symbol @var{symbol} is undefined, to force linking of
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 33b56e721d2..f82fae23c22 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1144,6 +1144,7 @@ proper position among the other output files. */
"%{flto|flto=*:%<fcompare-debug*} \
%{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC \
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
+ "-z now " \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
%{Wno-poison-system-directories:--no-poison-system-directories} \
--
2.41.0
@@ -0,0 +1,46 @@
From 1b315235433701e4a974da259b8d651169ddc7ac Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:46:22 +0000
Subject: [PATCH 04/35] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
ObjC, ObjC++, if the optimization level is > 0
---
gcc/c-family/c-cppbuiltin.cc | 4 ++++
gcc/doc/invoke.texi | 6 ++++++
2 files changed, 10 insertions(+)
diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
index 5d64625fcd7..868d69506e4 100644
--- a/gcc/c-family/c-cppbuiltin.cc
+++ b/gcc/c-family/c-cppbuiltin.cc
@@ -1546,6 +1546,10 @@ c_cpp_builtins (cpp_reader *pfile)
builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);
+ /* Fortify Source enabled by default for optimization levels > 0 */
+ if (optimize)
+ builtin_define_with_int_value ("_FORTIFY_SOURCE", 2);
+
/* Misc. */
if (flag_gnu89_inline)
cpp_define (pfile, "__GNUC_GNU_INLINE__");
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f393c7846c6..ef3c14a189e 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -11868,6 +11868,12 @@ also turns on the following optimization flags:
Please note the warning under @option{-fgcse} about
invoking @option{-O2} on programs that use computed gotos.
+NOTE: In Alpine Linux, @option{-D_FORTIFY_SOURCE=2} is
+set by default, and is activated when @option{-O} is set to 2 or higher.
+This enables additional compile-time and run-time checks for several libc
+functions. To disable, specify either @option{-U_FORTIFY_SOURCE} or
+@option{-D_FORTIFY_SOURCE=0}.
+
@opindex O3
@item -O3
Optimize yet more. @option{-O3} turns on all optimizations specified
--
2.41.0
@@ -0,0 +1,272 @@
From 67c0f5789630b27149f60ff831999ef7c1dba5d5 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:46:56 +0000
Subject: [PATCH 05/35] On linux targets pass --as-needed by default to the
linker, but always link the sanitizer libraries with --no-as-needed.
---
gcc/config/aarch64/aarch64-linux.h | 1 +
gcc/config/alpha/linux-elf.h | 2 +-
gcc/config/arm/linux-elf.h | 1 +
gcc/config/gnu-user.h | 6 +++---
gcc/config/i386/gnu-user.h | 2 +-
gcc/config/i386/gnu-user64.h | 1 +
gcc/config/ia64/linux.h | 2 +-
gcc/config/mips/gnu-user.h | 1 +
gcc/config/riscv/linux.h | 1 +
gcc/config/rs6000/linux64.h | 4 ++--
gcc/config/rs6000/sysv4.h | 2 +-
gcc/config/s390/linux.h | 2 +-
gcc/config/sparc/linux.h | 2 +-
gcc/gcc.cc | 28 ++++++++++++++++++++--------
14 files changed, 36 insertions(+), 19 deletions(-)
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
index 4277f03da2a..b131983a546 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -35,6 +35,7 @@
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
#define LINUX_TARGET_LINK_SPEC "%{h*} \
+ --as-needed \
%{static:-Bstatic} \
%{shared:-shared} \
%{symbolic:-Bsymbolic} \
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
index 03f783f2ad1..d946e700dda 100644
--- a/gcc/config/alpha/linux-elf.h
+++ b/gcc/config/alpha/linux-elf.h
@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. If not see
#define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER
-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
+#define LINK_SPEC "-m elf64alpha --as-needed %{G*} %{relax:-relax} \
%{O*:-O3} %{!O*:-O1} \
%{shared:-shared} \
%{!shared: \
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
index 7b7b7cbbe14..49c050c6f2c 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -70,6 +70,7 @@
%{rdynamic:-export-dynamic} \
%{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
-X \
+ --as-needed \
%{mbig-endian:-EB} %{mlittle-endian:-EL}" \
SUBTARGET_EXTRA_LINK_SPEC
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index eda8010b133..b26b17f2f2a 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \
"%{static-libasan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBHWASAN_EARLY_SPEC
#define LIBHWASAN_EARLY_SPEC "%{!shared:libhwasan_preinit%O%s} " \
"%{static-libhwasan:%{!shared:" \
@@ -146,12 +146,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \
"%{static-libtsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBLSAN_EARLY_SPEC
#define LIBLSAN_EARLY_SPEC "%{!shared:liblsan_preinit%O%s} " \
"%{static-liblsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#endif
#undef TARGET_F951_OPTIONS
diff --git a/gcc/config/i386/gnu-user.h b/gcc/config/i386/gnu-user.h
index a79b739089d..e0752673dff 100644
--- a/gcc/config/i386/gnu-user.h
+++ b/gcc/config/i386/gnu-user.h
@@ -68,7 +68,7 @@ along with GCC; see the file COPYING3. If not see
{ "link_emulation", GNU_USER_LINK_EMULATION },\
{ "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
+#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --as-needed %{shared:-shared} \
%{!shared: \
%{!static: \
%{!static-pie: \
diff --git a/gcc/config/i386/gnu-user64.h b/gcc/config/i386/gnu-user64.h
index 3b63b99acf6..759bf0db86f 100644
--- a/gcc/config/i386/gnu-user64.h
+++ b/gcc/config/i386/gnu-user64.h
@@ -56,6 +56,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
"%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \
%{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \
%{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \
+ --as-needed \
%{shared:-shared} \
%{!shared: \
%{!static: \
diff --git a/gcc/config/ia64/linux.h b/gcc/config/ia64/linux.h
index 5dfd428aa17..02656dad7fc 100644
--- a/gcc/config/ia64/linux.h
+++ b/gcc/config/ia64/linux.h
@@ -58,7 +58,7 @@ do { \
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
#undef LINK_SPEC
-#define LINK_SPEC "\
+#define LINK_SPEC " --as-needed \
%{shared:-shared} \
%{!shared: \
%{!static: \
diff --git a/gcc/config/mips/gnu-user.h b/gcc/config/mips/gnu-user.h
index a4e5380b589..3cc61bce69f 100644
--- a/gcc/config/mips/gnu-user.h
+++ b/gcc/config/mips/gnu-user.h
@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. If not see
#undef GNU_USER_TARGET_LINK_SPEC
#define GNU_USER_TARGET_LINK_SPEC "\
%{G*} %{EB} %{EL} %{mips*} %{shared} \
+ -as-needed \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
index 3e625e0f867..f8c2c351e5a 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
"%{mabi=ilp32:_ilp32}"
#define LINK_SPEC "\
+-as-needed \
-melf" XLEN_SPEC DEFAULT_ENDIAN_SPEC "riscv" LD_EMUL_SUFFIX " \
%{mno-relax:--no-relax} \
%{mbig-endian:-EB} \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 9e457033d11..08016bf224d 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -377,13 +377,13 @@ extern int dot_symbols;
" -m elf64ppc")
#endif
-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --as-needed %{!shared: %{!static: \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}} \
%(link_os_extra_spec32)"
-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --as-needed %{!shared: %{!static: \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index ae932fc22f0..c8ff0c6dc8e 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -780,7 +780,7 @@ GNU_USER_TARGET_CC1_SPEC
#define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
#endif
-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --as-needed %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
index 02aa1edaff8..64df5801134 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -82,7 +82,7 @@ along with GCC; see the file COPYING3. If not see
#undef LINK_SPEC
#define LINK_SPEC \
- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --as-needed \
%{shared:-shared} \
%{!shared: \
%{static:-static} \
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
index 0e33b3cac2c..c2f44546e62 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -81,7 +81,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
#undef LINK_SPEC
-#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
+#define LINK_SPEC "-m elf32_sparc --as-needed %{shared:-shared} \
%{!mno-relax:%{!r:-relax}} \
%{!shared: \
%{!static: \
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index f82fae23c22..da6417dd0d1 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -754,8 +754,11 @@ proper position among the other output files. */
#ifdef LIBASAN_EARLY_SPEC
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \
- "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
+ " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lasan " \
+ " %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -790,8 +793,11 @@ proper position among the other output files. */
#ifdef LIBTSAN_EARLY_SPEC
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \
- "} -ltsan %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
+ " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -ltsan " \
+ " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -808,8 +814,11 @@ proper position among the other output files. */
#ifdef LIBLSAN_EARLY_SPEC
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION \
- "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
+ " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -llsan " \
+ " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -824,8 +833,11 @@ proper position among the other output files. */
#define STATIC_LIBUBSAN_LIBS \
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
-#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \
- "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
+ " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lubsan " \
+ " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
--
2.41.0
@@ -0,0 +1,34 @@
From bb25e8489384504cd59e4a2538720863da1fb29c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:47:43 +0000
Subject: [PATCH 06/35] Enable -Wformat and -Wformat-security by default.
---
gcc/c-family/c.opt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index a75038930ae..b98726f33ed 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -704,7 +704,7 @@ Warn about function calls with format strings that write past the end
of the destination region. Same as -Wformat-overflow=1.
Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
Warn about possible security problems with format functions.
Wformat-signedness
@@ -725,7 +725,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++
Warn about zero-length formats.
Wformat=
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
Warn about printf/scanf/strftime/strfmon format string anomalies.
Wformat-overflow=
--
2.41.0
@@ -0,0 +1,25 @@
From 4a728ad48a7b437cc6f2697e26603bf648149f86 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:48:24 +0000
Subject: [PATCH 07/35] Enable -Wtrampolines by default.
---
gcc/common.opt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index 64c4277c991..c24839d32bc 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -803,7 +803,7 @@ Common Var(warn_system_headers) Warning
Do not suppress warnings from system headers.
Wtrampolines
-Common Var(warn_trampolines) Warning
+Common Var(warn_trampolines) Init(1) Warning
Warn whenever a trampoline is generated.
Wtrivial-auto-var-init
--
2.41.0
@@ -0,0 +1,53 @@
From 32f24560d0602f7735d5e9efd92fe3151bd72cea Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:49:40 +0000
Subject: [PATCH 08/35] Disable ssp on -nostdlib, -nodefaultlibs and
-ffreestanding Change the buffer size.
---
gcc/gcc.cc | 8 +++++++-
gcc/params.opt | 2 +-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index da6417dd0d1..b5a6f200635 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -983,6 +983,12 @@ proper position among the other output files. */
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
+#ifdef ENABLE_DEFAULT_SSP
+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
+#else
+#define NO_SSP_SPEC ""
+#endif
+
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
@@ -1282,7 +1288,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
%{fprofile-arcs|fprofile-generate*|coverage:\
%{!fprofile-update=single:\
diff --git a/gcc/params.opt b/gcc/params.opt
index 823cdb2ff85..5b096899b40 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -1006,7 +1006,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
The maximum number of SSA_NAME assignments to follow in determining a value.
-param=ssp-buffer-size=
-Common Joined UInteger Var(param_ssp_buffer_size) Init(8) IntegerRange(1, 65536) Param Optimization
+Common Joined UInteger Var(param_ssp_buffer_size) Init(4) IntegerRange(1, 65536) Param Optimization
The lower bound for a buffer to be considered for stack smashing protection.
-param=stack-clash-protection-guard-size=
--
2.41.0
@@ -0,0 +1,54 @@
From c7ec8da7280d7f97f5543eb9ddeca7600aafc43c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:50:33 +0000
Subject: [PATCH 09/35] Ensure that msgfmt doesn't encounter problems during
gcc bootstrapping.
Solves error messages like the following:
msgfmt: /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/./gcc/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libstdc++.so.6)
The libgcc_s.so used during build doesn't satisfy the needs of the
libstdc++.so that msgfmt is linked against. On the other hand, msgfmt
is used as a stand-alone application here, and what library it uses
behind the scenes is of no concern to the gcc build process.
Therefore, simply invoking it "as usual", i.e. without any special
library path, will make it work as expected here.
2011-09-19 Martin von Gagern
References:
https://bugs.gentoo.org/372377
https://bugs.gentoo.org/295480
---
libstdc++-v3/po/Makefile.am | 1 +
libstdc++-v3/po/Makefile.in | 1 +
2 files changed, 2 insertions(+)
diff --git a/libstdc++-v3/po/Makefile.am b/libstdc++-v3/po/Makefile.am
index 12d34910830..61b13762b71 100644
--- a/libstdc++-v3/po/Makefile.am
+++ b/libstdc++-v3/po/Makefile.am
@@ -38,6 +38,7 @@ MSGFMT = msgfmt
EXTRA_DIST = string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN)
.po.mo:
+ env --unset=LD_LIBRARY_PATH \
$(MSGFMT) -o $@ $<
all-local: all-local-$(USE_NLS)
diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
index 8e93445acd2..d6ff06e5ddb 100644
--- a/libstdc++-v3/po/Makefile.in
+++ b/libstdc++-v3/po/Makefile.in
@@ -561,6 +561,7 @@ uninstall-am:
.po.mo:
+ env --unset=LD_LIBRARY_PATH \
$(MSGFMT) -o $@ $<
all-local: all-local-$(USE_NLS)
--
2.41.0
@@ -0,0 +1,28 @@
From aaa029bcee68298695b7c4278c90b6bc320d098c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:52:07 +0000
Subject: [PATCH 10/35] Don't declare asprintf if defined as a macro.
---
include/libiberty.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/libiberty.h b/include/libiberty.h
index 1d5c779fcff..19e3cb1e31c 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -652,8 +652,11 @@ extern void *bsearch_r (const void *, const void *,
/* Like sprintf but provides a pointer to malloc'd storage, which must
be freed by the caller. */
+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */
+#ifndef asprintf
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
#endif
+#endif
/* Like asprintf but allocates memory without fail. This works like
xmalloc. */
--
2.41.0
@@ -0,0 +1,24 @@
From 65e01e749205c9af218b01233cebd0077538d0ee Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:53:00 +0000
Subject: [PATCH 11/35] libiberty: copy PIC objects during build process
---
libiberty/Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index 72608f3e4a7..58356884728 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -265,6 +265,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
$(AR) $(AR_FLAGS) $(TARGETLIB) \
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
$(RANLIB) $(TARGETLIB); \
+ cp $(TARGETLIB) ../ ; \
cd ..; \
else true; fi
--
2.41.0
+57
View File
@@ -0,0 +1,57 @@
From 453a815bf2844971a91eaef800af188d9e86b784 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 24 Oct 2015 20:09:53 +0000
Subject: [PATCH 12/35] libgcc_s
---
gcc/config/i386/i386-expand.cc | 4 ++--
libgcc/config/i386/cpuinfo.c | 6 +++---
libgcc/config/i386/t-linux | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index 0d817fc3f3b..2e99db00db9 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -12691,10 +12691,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
{
case IX86_BUILTIN_CPU_INIT:
{
- /* Make it call __cpu_indicator_init in libgcc. */
+ /* Make it call __cpu_indicator_init in libgcc.a. */
tree call_expr, fndecl, type;
type = build_function_type_list (integer_type_node, NULL_TREE);
- fndecl = build_fn_decl ("__cpu_indicator_init", type);
+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
call_expr = build_call_expr (fndecl, 0);
return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
}
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index 50b6d8248a2..724ced402a1 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -63,7 +63,7 @@ __cpu_indicator_init (void)
__cpu_features2);
}
-#if defined SHARED && defined USE_ELF_SYMVER
-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0");
-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0");
+#ifndef SHARED
+int __cpu_indicator_init_local (void)
+ __attribute__ ((weak, alias ("__cpu_indicator_init")));
#endif
diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
index 8506a635790..564296f788e 100644
--- a/libgcc/config/i386/t-linux
+++ b/libgcc/config/i386/t-linux
@@ -3,5 +3,5 @@
# t-slibgcc-elf-ver and t-linux
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS)
+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
--
2.41.0
+85
View File
@@ -0,0 +1,85 @@
From 7d7d12137c666761a8dd61179c9651b85dae9b41 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 7 Nov 2015 02:08:05 +0000
Subject: [PATCH 13/35] nopie
---
gcc/configure | 27 +++++++++++++++++++++++++++
gcc/configure.ac | 13 +++++++++++++
2 files changed, 40 insertions(+)
diff --git a/gcc/configure b/gcc/configure
index 23da7d55d..f38732bb2 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -34534,6 +34534,29 @@ rm -f core conftest.err conftest.$ac_objext \
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_no_pie" >&5
$as_echo "$gcc_cv_no_pie" >&6; }
+# Check if -nopie works.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -nopie option" >&5
+$as_echo_n "checking for -nopie option... " >&6; }
+if ${gcc_cv_nopie+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -nopie"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int main(void) {return 0;}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ gcc_cv_nopie=yes
+else
+ gcc_cv_nopie=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$saved_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_nopie" >&5
+$as_echo "$gcc_cv_nopie" >&6; }
if test x$enable_host_shared = xyes; then
PICFLAG=-fPIC
@@ -34551,6 +34574,8 @@ if test x$enable_host_pie = xyes; then
LD_PICFLAG=-pie
elif test x$gcc_cv_no_pie = xyes; then
LD_PICFLAG=-no-pie
+elif test x$gcc_cv_nopie = xyes; then
+ LD_PICFLAG=-nopie
else
LD_PICFLAG=
fi
diff --git a/gcc/configure.ac b/gcc/configure.ac
index d7cf0b92c..db2e2c802 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -7781,6 +7781,15 @@ AC_CACHE_CHECK([for -no-pie option],
[gcc_cv_no_pie=yes],
[gcc_cv_no_pie=no])
LDFLAGS="$saved_LDFLAGS"])
+# Check if -nopie works.
+AC_CACHE_CHECK([for -nopie option],
+ [gcc_cv_nopie],
+ [saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -nopie"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([int main(void) {return 0;}])],
+ [gcc_cv_nopie=yes],
+ [gcc_cv_nopie=no])
+ LDFLAGS="$saved_LDFLAGS"])
if test x$enable_host_shared = xyes; then
PICFLAG=-fPIC
@@ -7798,6 +7807,8 @@ if test x$enable_host_pie = xyes; then
LD_PICFLAG=-pie
elif test x$gcc_cv_no_pie = xyes; then
LD_PICFLAG=-no-pie
+elif test x$gcc_cv_nopie = xyes; then
+ LD_PICFLAG=-nopie
else
LD_PICFLAG=
fi
--
2.41.0
@@ -0,0 +1,42 @@
From dd5bb97c31a9f57034c70a7a18ba6e2e133084c7 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:59:16 +0000
Subject: [PATCH 14/35] ada: fix shared linking
---
gcc/ada/link.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/gcc/ada/link.c b/gcc/ada/link.c
index f2126441208..22cfa9c641f 100644
--- a/gcc/ada/link.c
+++ b/gcc/ada/link.c
@@ -107,9 +107,9 @@ const char *__gnat_default_libgcc_subdir = "lib";
|| defined (__NetBSD__) || defined (__OpenBSD__) \
|| defined (__QNX__)
const char *__gnat_object_file_option = "-Wl,@";
-const char *__gnat_run_path_option = "-Wl,-rpath,";
-char __gnat_shared_libgnat_default = STATIC;
-char __gnat_shared_libgcc_default = STATIC;
+const char *__gnat_run_path_option = "";
+char __gnat_shared_libgnat_default = SHARED;
+char __gnat_shared_libgcc_default = SHARED;
int __gnat_link_max = 8192;
unsigned char __gnat_objlist_file_supported = 1;
const char *__gnat_object_library_extension = ".a";
@@ -129,9 +129,9 @@ const char *__gnat_default_libgcc_subdir = "lib";
#elif defined (__linux__) || defined (__GLIBC__)
const char *__gnat_object_file_option = "-Wl,@";
-const char *__gnat_run_path_option = "-Wl,-rpath,";
-char __gnat_shared_libgnat_default = STATIC;
-char __gnat_shared_libgcc_default = STATIC;
+const char *__gnat_run_path_option = "";
+char __gnat_shared_libgnat_default = SHARED;
+char __gnat_shared_libgcc_default = SHARED;
int __gnat_link_max = 8192;
unsigned char __gnat_objlist_file_supported = 1;
const char *__gnat_object_library_extension = ".a";
--
2.41.0
@@ -0,0 +1,24 @@
From 6bb5b7d9161d05f31b001d8211a9c63caf63fd2f Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:59:43 +0000
Subject: [PATCH 15/35] build: fix CXXFLAGS_FOR_BUILD passing
---
Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.in b/Makefile.in
index 06a9398e172..6ff2b3f9925 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -178,6 +178,7 @@ BUILD_EXPORTS = \
# built for the build system to override those in BASE_FLAGS_TO_PASS.
EXTRA_BUILD_FLAGS = \
CFLAGS="$(CFLAGS_FOR_BUILD)" \
+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
LDFLAGS="$(LDFLAGS_FOR_BUILD)"
# This is the list of directories to built for the host system.
--
2.41.0
@@ -0,0 +1,25 @@
From f0d9e00cac06689f64b214de7aee80d7116ef084 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:01:06 +0000
Subject: [PATCH 16/35] add fortify-headers paths
---
gcc/config/linux.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
index e3aca79cccc..b3537b8fbeb 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -159,6 +159,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#ifdef NATIVE_SYSTEM_HEADER_DIR
#define INCLUDE_DEFAULTS_MUSL_NATIVE \
+ { NATIVE_SYSTEM_HEADER_DIR "/fortify", 0, 0, 0, 1, 2 }, \
+ { NATIVE_SYSTEM_HEADER_DIR "/fortify", 0, 0, 0, 1, 0 }, \
{ NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \
{ NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
#else
--
2.41.0
@@ -0,0 +1,31 @@
From 857db04f4f1a06e866551b4172fe8f27363f4a92 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Fri, 21 Aug 2020 07:03:00 +0000
Subject: [PATCH 17/35] Alpine musl package provides libssp_nonshared.a. We
link to it unconditionally, as otherwise we get link failures if some objects
are -fstack-protector built and final link happens with -fno-stack-protector.
This seems to be the common case when bootstrapping gcc, the piepatches do
not seem to fully fix the crosstoolchain and bootstrap sequence wrt.
stack-protector flag usage.
---
gcc/gcc.cc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index b5a6f200635..6cbb726599b 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -991,8 +991,7 @@ proper position among the other output files. */
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
-#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
- "|fstack-protector-strong|fstack-protector-explicit:}"
+#define LINK_SSP_SPEC "-lssp_nonshared"
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
--
2.41.0
@@ -0,0 +1,69 @@
From 5a8347e23ab13912b6edec2c6c6e3a101b017c79 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:03:42 +0000
Subject: [PATCH 18/35] DP: Use --push-state/--pop-state for gold as well when
linking libtsan.
---
gcc/gcc.cc | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 6cbb726599b..59390fd39d6 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -755,10 +755,10 @@ proper position among the other output files. */
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
- " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libasan:--push-state --no-as-needed}" \
" -lasan " \
" %{static-libasan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libasan:--pop-state}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -794,10 +794,10 @@ proper position among the other output files. */
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
- " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libtsan:--push-state --no-as-needed}" \
" -ltsan " \
" %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libtsan:--pop-state}" \
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -815,10 +815,10 @@ proper position among the other output files. */
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
- " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-liblsan:--push-state --no-as-needed}" \
" -llsan " \
" %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-liblsan:--pop-state}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -834,10 +834,10 @@ proper position among the other output files. */
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
- " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libubsan:--push-state --no-as-needed}" \
" -lubsan " \
" %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libubsan:--pop-state}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
--
2.41.0
@@ -0,0 +1,26 @@
From 41d00a2eb0754acf71958808bd17dbebeb517b84 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:12:55 +0000
Subject: [PATCH 19/35] aarch64: disable multilib support
multilib is unsupported on Alpine GCC
---
gcc/config/aarch64/t-aarch64-linux | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
index 57bf4100fcd..172894b57ef 100644
--- a/gcc/config/aarch64/t-aarch64-linux
+++ b/gcc/config/aarch64/t-aarch64-linux
@@ -22,7 +22,7 @@ LIB1ASMSRC = aarch64/lib1funcs.asm
LIB1ASMFUNCS = _aarch64_sync_cache_range
AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
+MULTILIB_OSDIRNAMES = mabi.lp64=../lib
MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
--
2.41.0
@@ -0,0 +1,25 @@
From 85b42bfbba71616831d14360b16998acb28790fd Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:13:59 +0000
Subject: [PATCH 20/35] s390x: disable multilib support
multilib is not supported on Alpine GCC at present
---
gcc/config/s390/t-linux64 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/config/s390/t-linux64 b/gcc/config/s390/t-linux64
index cc6ab367072..7f498ee1cdc 100644
--- a/gcc/config/s390/t-linux64
+++ b/gcc/config/s390/t-linux64
@@ -7,5 +7,5 @@
MULTILIB_OPTIONS = m64/m31
MULTILIB_DIRNAMES = 64 32
-MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu)
-MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu)
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
--
2.41.0
@@ -0,0 +1,81 @@
From 7b53df284242638e940c0155b6c21e88cea1f55b Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:14:33 +0000
Subject: [PATCH 21/35] ppc64[le]: disable multilib support
multilib is not presently supported on Alpine GCC
---
gcc/config/rs6000/t-linux | 6 ++++--
gcc/config/rs6000/t-linux64 | 4 ++--
gcc/config/rs6000/t-linux64bele | 4 ++--
gcc/config/rs6000/t-linux64lebe | 4 ++--
4 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/gcc/config/rs6000/t-linux b/gcc/config/rs6000/t-linux
index 4e371255533..128c75c7d39 100644
--- a/gcc/config/rs6000/t-linux
+++ b/gcc/config/rs6000/t-linux
@@ -2,7 +2,8 @@
# or soft-float.
ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float)))
ifneq (,$(findstring powerpc64,$(target)))
-MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
else
MULTIARCH_DIRNAME := $(call if_multiarch,powerpc-linux-gnu)
endif
@@ -10,7 +11,8 @@ ifneq (,$(findstring powerpcle,$(target)))
MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME))
endif
ifneq (,$(findstring powerpc64le,$(target)))
-MULTILIB_OSDIRNAMES := $(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
endif
endif
diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
index 01a94242308..b3a76379c03 100644
--- a/gcc/config/rs6000/t-linux64
+++ b/gcc/config/rs6000/t-linux64
@@ -28,8 +28,8 @@
MULTILIB_OPTIONS := m64/m32
MULTILIB_DIRNAMES := 64 32
MULTILIB_EXTRA_OPTS :=
-MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.cc
$(COMPILE) $<
diff --git a/gcc/config/rs6000/t-linux64bele b/gcc/config/rs6000/t-linux64bele
index 97c1ee6fb4d..08d72639cb6 100644
--- a/gcc/config/rs6000/t-linux64bele
+++ b/gcc/config/rs6000/t-linux64bele
@@ -2,6 +2,6 @@
MULTILIB_OPTIONS += mlittle
MULTILIB_DIRNAMES += le
-MULTILIB_OSDIRNAMES += $(subst =,.mlittle=,$(subst lible32,lib32le,$(subst lible64,lib64le,$(subst lib,lible,$(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))))))
-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mlittle%,$(MULTILIB_OSDIRNAMES)))
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
diff --git a/gcc/config/rs6000/t-linux64lebe b/gcc/config/rs6000/t-linux64lebe
index 2e63bdb9fc9..c6e1c5db65d 100644
--- a/gcc/config/rs6000/t-linux64lebe
+++ b/gcc/config/rs6000/t-linux64lebe
@@ -2,6 +2,6 @@
MULTILIB_OPTIONS += mbig
MULTILIB_DIRNAMES += be
-MULTILIB_OSDIRNAMES += $(subst =,.mbig=,$(subst libbe32,lib32be,$(subst libbe64,lib64be,$(subst lib,libbe,$(subst le-linux,-linux,$(MULTILIB_OSDIRNAMES))))))
-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mbig%,$(MULTILIB_OSDIRNAMES)))
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
--
2.41.0
@@ -0,0 +1,26 @@
From 96e7e1e9a899d9bb5fcbdf788bd529d0390c626f Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:14:54 +0000
Subject: [PATCH 22/35] x86_64: disable multilib support
multilib is not presently supported on Alpine GCC
---
gcc/config/i386/t-linux64 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
index 138956b0962..bc03dab874f 100644
--- a/gcc/config/i386/t-linux64
+++ b/gcc/config/i386/t-linux64
@@ -33,6 +33,6 @@
comma=,
MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
--
2.41.0
@@ -0,0 +1,76 @@
From b26224acf342eacb33491f6ea0da1faf73d35715 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 3 Jan 2022 07:14:48 +0100
Subject: [PATCH 23/35] riscv: disable multilib support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From the musl wiki [1]:
musl does not support sharing an include directory between archs
[…], and thus is not compatible with GCC-style multilib. It is
recommended that distributions build GCC with multilib disabled,
and use library directories named lib, not lib64 or lib32.
For this reason, we patch existing GCC configuration files (gcc/config)
to pin MULTILIB_OSDIRNAMES to lib, there is also a corresponding GCC
upstream bug about this issue [2]. Avoiding the use of lib64 and lib32
directories is a bit more difficult on the RISC-V architecture. This is
due to the fact that the default RISC-V configuration does not only use
the lib64 and lib32 directories but also subdirectories within these
directories for different RISC-V ABIs (e.g. lp64d, lp64, …) [3].
This patch aligns the RISC-V configuration with other architectures by
pinning MULTILIB_OSDIRNAMES to lib for rv64gc (our default RISC-V
-march). Furthermore, this patch removes the ABI-specific startfile
prefix spec. Since both of these impact the default LIBRARY_PATH [4]
this patch thereby aligns the default RISC-V LIBRARY_PATH with that from
other Alpine architectures and thereby fixes #13369 [5].
Incidentally, this also fixes gccgo on riscv64, as without this patch
gccgo is otherwise not able to find the *.gox files for the Go standard
library.
[1]: https://wiki.musl-libc.org/guidelines-for-distributions.html#Multilib/multi_arch
[2]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90077
[3]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103889#c14
[4]: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/gcc.c;h=d4c8746b0aa322286decf92aa72a12f0a393b655;hb=HEAD#l9122
[5]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13369
---
gcc/config/riscv/linux.h | 8 --------
gcc/config/riscv/t-linux | 7 +++++--
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
index f8c2c351e5a..8d9881eadeb 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -60,11 +60,3 @@ along with GCC; see the file COPYING3. If not see
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
%{static:-static} %{static-pie:-static -pie --no-dynamic-linker -z text}}"
-
-#define STARTFILE_PREFIX_SPEC \
- "/lib" XLEN_SPEC "/" ABI_SPEC "/ " \
- "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ " \
- "/lib/ " \
- "/usr/lib/ "
-
-#define RISCV_USE_CUSTOMISED_MULTI_LIB select_by_abi
diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux
index 216d2776a18..1a8a863853e 100644
--- a/gcc/config/riscv/t-linux
+++ b/gcc/config/riscv/t-linux
@@ -1,3 +1,6 @@
-# Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/
-MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES)))
+MULTILIB_OPTIONS := march=rv64gc
+MULTILIB_DIRNAMES := rv64gc
+
+MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib,$(MULTILIB_DIRNAMES)))
MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
+MULTILIB_MATCHES := march?rv64gc=march?rv64imafdc
--
2.41.0
@@ -0,0 +1,51 @@
From a72e0613f79f6b6867819317accb7a714031a08c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:05:41 +0000
Subject: [PATCH 24/35] always build libgcc_eh.a
highly inspired by:
http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch
---
libgcc/Makefile.in | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
index 6c4dc79ab71..023cede18a7 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -960,8 +960,9 @@ ifneq ($(LIBUNWIND),)
all: libunwind.a
endif
+all: libgcc_eh.a
ifeq ($(enable_shared),yes)
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
+all: libgcc_s$(SHLIB_EXT)
ifneq ($(LIBUNWIND),)
all: libunwind$(SHLIB_EXT)
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
@@ -1163,10 +1164,6 @@ install-libunwind:
install-shared:
$(mkinstalldirs) $(DESTDIR)$(inst_libdir)
- $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
- chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
- $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
-
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
@shlib_base_name@,libgcc_s,$(subst \
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
@@ -1183,6 +1180,10 @@ ifeq ($(enable_gcov),yes)
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a
endif
+ $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+
parts="$(INSTALL_PARTS)"; \
for file in $$parts; do \
rm -f $(DESTDIR)$(inst_libdir)/$$file; \
--
2.41.0
@@ -0,0 +1,135 @@
From 3ee8cbc1cad261b30d4a7a66d31496d5f243ce2f Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:06:30 +0000
Subject: [PATCH 25/35] ada: libgnarl compatibility for musl
---
gcc/ada/libgnarl/s-osinte__linux.ads | 11 ------
gcc/ada/libgnarl/s-taprop__linux.adb | 53 ++--------------------------
2 files changed, 3 insertions(+), 61 deletions(-)
diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__linux.ads
index a5e645d334d..32165347071 100644
--- a/gcc/ada/libgnarl/s-osinte__linux.ads
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads
@@ -403,12 +403,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
- function pthread_rwlockattr_setkind_np
- (attr : access pthread_rwlockattr_t;
- pref : int) return int;
- pragma Import
- (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
-
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
@@ -470,11 +464,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
- function pthread_mutexattr_setprioceiling
- (attr : access pthread_mutexattr_t;
- prioceiling : int) return int;
- pragma Import (C, pthread_mutexattr_setprioceiling);
-
type struct_sched_param is record
sched_priority : int; -- scheduling priority
end record;
diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb b/gcc/ada/libgnarl/s-taprop__linux.adb
index 821ceef30e4..ae95b58e01e 100644
--- a/gcc/ada/libgnarl/s-taprop__linux.adb
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb
@@ -198,9 +198,6 @@ package body System.Task_Primitives.Operations is
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
- function GNAT_has_cap_sys_nice return C.int;
- pragma Import
- (C, GNAT_has_cap_sys_nice, "__gnat_has_cap_sys_nice");
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
@@ -210,38 +207,6 @@ package body System.Task_Primitives.Operations is
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
- function Get_Ceiling_Support return Boolean;
- -- Get the value of the Ceiling_Support constant (see below).
- -- Note well: If this function or related code is modified, it should be
- -- tested by hand, because automated testing doesn't exercise it.
-
- -------------------------
- -- Get_Ceiling_Support --
- -------------------------
-
- function Get_Ceiling_Support return Boolean is
- Ceiling_Support : Boolean := False;
- begin
- if Locking_Policy /= 'C' then
- return False;
- end if;
-
- declare
- function geteuid return Integer;
- pragma Import (C, geteuid, "geteuid");
- Superuser : constant Boolean := geteuid = 0;
- Has_Cap : constant C.int := GNAT_has_cap_sys_nice;
- pragma Assert (Has_Cap in 0 | 1);
- begin
- Ceiling_Support := Superuser or else Has_Cap = 1;
- end;
-
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
- pragma Warnings (Off, "non-preelaborable call not allowed*");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
- pragma Warnings (On, "non-preelaborable call not allowed*");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
@@ -344,7 +309,9 @@ package body System.Task_Primitives.Operations is
-- Init_Mutex --
----------------
+ pragma Warnings (Off, "formal parameter * is not referenced");
function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return C.int is
+ pragma Warnings (On, "formal parameter * is not referenced");
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
@@ -356,16 +323,7 @@ package body System.Task_Primitives.Operations is
return Result;
end if;
- if Ceiling_Support then
- Result := pthread_mutexattr_setprotocol
- (Mutex_Attr'Access, PTHREAD_PRIO_PROTECT);
- pragma Assert (Result = 0);
-
- Result := pthread_mutexattr_setprioceiling
- (Mutex_Attr'Access, Prio_To_Linux_Prio (Prio));
- pragma Assert (Result = 0);
-
- elsif Locking_Policy = 'I' then
+ if Locking_Policy = 'I' then
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
@@ -405,11 +363,6 @@ package body System.Task_Primitives.Operations is
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
- Result := pthread_rwlockattr_setkind_np
- (RWlock_Attr'Access,
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
- pragma Assert (Result = 0);
-
Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access);
pragma Assert (Result in 0 | ENOMEM);
--
2.41.0
@@ -0,0 +1,247 @@
From 3df4788c79c7429b196c7b284af2b4cf9a4b4f8d Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:07:48 +0000
Subject: [PATCH 26/35] ada: musl support fixes
---
gcc/ada/Makefile.rtl | 16 ++++++++--------
gcc/ada/adaint.c | 34 +++++++++++++++++++---------------
gcc/ada/adaint.h | 10 ++++------
gcc/ada/terminals.c | 8 ++++----
4 files changed, 35 insertions(+), 33 deletions(-)
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index 32cbdb692..463028fbe 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -1558,7 +1558,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
s-intman.adb<libgnarl/s-intman__posix.adb \
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
a-exetim.adb<libgnarl/a-exetim__posix.adb \
a-exetim.ads<libgnarl/a-exetim__default.ads \
s-linux.ads<libgnarl/s-linux.ads \
@@ -2144,7 +2144,7 @@ ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),)
g-sercom.adb<libgnat/g-sercom__linux.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
$(GNATRTL_128BIT_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-loongarch.ads
@@ -2232,7 +2232,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-ppc.ads
@@ -2267,7 +2267,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
endif
# ARM linux, GNU eabi
-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
+ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<libgnarl/a-intnam__linux.ads \
s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
@@ -2311,7 +2311,7 @@ ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
s-intman.adb<libgnarl/s-intman__posix.adb \
s-linux.ads<libgnarl/s-linux.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
s-mudido.adb<libgnarl/s-mudido__affinity.adb \
s-osinte.ads<libgnarl/s-osinte__linux.ads \
s-osinte.adb<libgnarl/s-osinte__posix.adb \
@@ -2488,7 +2488,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
$(GNATRTL_128BIT_PAIRS) \
@@ -2592,7 +2592,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
$(SIMD_PATH_TARGET_PAIRS) \
@@ -2637,7 +2637,7 @@ ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
$(SIMD_PATH_TARGET_PAIRS) \
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 74aa3c412..ef6118f37 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -94,6 +94,11 @@
#include <sys/param.h>
#include <sys/pstat.h>
#endif
+
+#if defined (linux) || defined(__linux__)
+#define _GNU_SOURCE 1
+#include <sched.h>
+#endif
#ifdef __PikeOS__
#define __BSD_VISIBLE 1
@@ -3465,7 +3470,6 @@ __gnat_lwp_self (void)
#endif
#if defined (__linux__)
-#include <sched.h>
/* glibc versions earlier than 2.7 do not define the routines to handle
dynamically allocated CPU sets. For these targets, we use the static
@@ -3475,7 +3479,7 @@ __gnat_lwp_self (void)
/* Dynamic cpu sets */
-cpu_set_t *
+void *
__gnat_cpu_alloc (size_t count)
{
return CPU_ALLOC (count);
@@ -3488,33 +3492,33 @@ __gnat_cpu_alloc_size (size_t count)
}
void
-__gnat_cpu_free (cpu_set_t *set)
+__gnat_cpu_free (void *set)
{
- CPU_FREE (set);
+ CPU_FREE ((cpu_set_t *) set);
}
void
-__gnat_cpu_zero (size_t count, cpu_set_t *set)
+__gnat_cpu_zero (size_t count, void *set)
{
- CPU_ZERO_S (count, set);
+ CPU_ZERO_S (count, (cpu_set_t *) set);
}
void
-__gnat_cpu_set (int cpu, size_t count, cpu_set_t *set)
+__gnat_cpu_set (int cpu, size_t count, void *set)
{
/* Ada handles CPU numbers starting from 1, while C identifies the first
CPU by a 0, so we need to adjust. */
- CPU_SET_S (cpu - 1, count, set);
+ CPU_SET_S (cpu - 1, count, (cpu_set_t *) set);
}
#else /* !CPU_ALLOC */
/* Static cpu sets */
-cpu_set_t *
+void *
__gnat_cpu_alloc (size_t count ATTRIBUTE_UNUSED)
{
- return (cpu_set_t *) xmalloc (sizeof (cpu_set_t));
+ return xmalloc (sizeof (cpu_set_t));
}
size_t
@@ -3524,23 +3528,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
}
void
-__gnat_cpu_free (cpu_set_t *set)
+__gnat_cpu_free (void *set)
{
free (set);
}
void
-__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
+__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, void *set)
{
- CPU_ZERO (set);
+ CPU_ZERO ((cpu_set_t *) set);
}
void
-__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
+__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, void *set)
{
/* Ada handles CPU numbers starting from 1, while C identifies the first
CPU by a 0, so we need to adjust. */
- CPU_SET (cpu - 1, set);
+ CPU_SET (cpu - 1, (cpu_set_t *) set);
}
#endif /* !CPU_ALLOC */
#endif /* __linux__ */
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
index 0cbfd0e15..f97ed905b 100644
--- a/gcc/ada/adaint.h
+++ b/gcc/ada/adaint.h
@@ -319,13 +319,11 @@ extern void *__gnat_lwp_self (void);
/* Routines for interface to required CPU set primitives */
-#include <sched.h>
-
-extern cpu_set_t *__gnat_cpu_alloc (size_t);
+extern void * __gnat_cpu_alloc (size_t);
extern size_t __gnat_cpu_alloc_size (size_t);
-extern void __gnat_cpu_free (cpu_set_t *);
-extern void __gnat_cpu_zero (size_t, cpu_set_t *);
-extern void __gnat_cpu_set (int, size_t, cpu_set_t *);
+extern void __gnat_cpu_free (void *);
+extern void __gnat_cpu_zero (size_t, void *);
+extern void __gnat_cpu_set (int, size_t, void *);
#endif
#if defined (_WIN32)
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
index 05af82c27..626ac35bc 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
@@ -1134,7 +1134,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
/* POSIX does not specify how to open the master side of a terminal.Several
methods are available (system specific):
1- using a cloning device (USE_CLONE_DEVICE)
- 2- getpt (USE_GETPT)
+ 2- posix_openpt (USE_POSIX_OPENPT)
3- openpty (USE_OPENPTY)
When using the cloning device method, the macro USE_CLONE_DEVICE should
@@ -1148,7 +1148,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
#if defined (__APPLE__) || defined (BSD)
#define USE_OPENPTY
#elif defined (__linux__)
-#define USE_GETPT
+#define USE_POSIX_OPENPT
#elif defined (__sun__)
#define USE_CLONE_DEVICE "/dev/ptmx"
#elif defined (_AIX)
@@ -1197,8 +1197,8 @@ allocate_pty_desc (pty_desc **desc) {
int master_fd = -1;
char *slave_name = NULL;
-#ifdef USE_GETPT
- master_fd = getpt ();
+#if defined(USE_POSIX_OPENPT)
+ master_fd = posix_openpt(O_RDWR | O_NOCTTY);
#elif defined (USE_OPENPTY)
status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
#elif defined (USE_CLONE_DEVICE)
@@ -0,0 +1,256 @@
From 7b50823d8a4131e5a55d2499a0f5a52b3d91eed2 Mon Sep 17 00:00:00 2001
From: Drew DeVault <sir@cmpwn.com>
Date: Wed, 9 Dec 2020 07:42:06 +0000
Subject: [PATCH 27/35] configure: Add --enable-autolink-libatomic, use in
LINK_GCC_C_SEQUENCE_SPEC [PR81358]
This fixes issues with RISC-V.
---
Makefile.in | 1 +
gcc/config.in | 6 ++++++
gcc/config/gnu-user.h | 12 +++++++++++-
gcc/configure | 31 ++++++++++++++++++++++++++++++-
gcc/configure.ac | 21 +++++++++++++++++++++
gcc/doc/install.texi | 8 ++++++++
gcc/doc/tm.texi | 8 +++++++-
gcc/doc/tm.texi.in | 8 +++++++-
gcc/gcc.cc | 12 +++++++++++-
9 files changed, 102 insertions(+), 5 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 6ff2b3f9925..394b105b271 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -235,6 +235,7 @@ HOST_EXPORTS = \
RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)"; export RANLIB_FOR_TARGET; \
READELF_FOR_TARGET="$(READELF_FOR_TARGET)"; export READELF_FOR_TARGET; \
TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \
+ TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \
HOST_LIBS="$(STAGE1_LIBS)"; export HOST_LIBS; \
GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \
GMPINC="$(HOST_GMPINC)"; export GMPINC; \
diff --git a/gcc/config.in b/gcc/config.in
index 0679fbbf4c6..ee81139b385 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -118,6 +118,12 @@
#endif
+/* Define if libatomic should always be linked. */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_AUTOLINK_LIBATOMIC
+#endif
+
+
/* Define to 1 to specify that we are using the BID decimal floating point
format instead of DPD */
#ifndef USED_FOR_TARGET
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index b26b17f2f2a..3f64ea46180 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -109,8 +109,18 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
#endif
+#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC)
+# ifdef LD_AS_NEEDED_OPTION
+# define LINK_LIBATOMIC_SPEC LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION
+# else
+# define LINK_LIBATOMIC_SPEC "-latomic"
+# endif
+#elif !defined(LINK_LIBATOMIC_SPEC)
+# define LINK_LIBATOMIC_SPEC ""
+#endif
+
#define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \
- "%{static|static-pie:--start-group} %G %{!nolibc:%L} \
+ "%{static|static-pie:--start-group} %G %{!nolibc:" LINK_LIBATOMIC_SPEC " %L} \
%{static|static-pie:--end-group}%{!static:%{!static-pie:%G}}"
#undef LINK_GCC_C_SEQUENCE_SPEC
diff --git a/gcc/configure b/gcc/configure
index e59cbee1767..787c35d4e25 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -984,6 +984,7 @@ with_changes_root_url
enable_languages
with_multilib_list
with_multilib_generator
+enable_autolink_libatomic
with_zstd
with_zstd_include
with_zstd_lib
@@ -1713,6 +1714,9 @@ Optional Features:
--disable-shared don't provide a shared libgcc
--disable-gcov don't provide libgcov and related host tools
--enable-languages=LIST specify which front-ends to build
+ --enable-autolink-libatomic
+ enable automatic linking of libatomic (ignored if
+ not built)
--disable-rpath do not hardcode runtime library paths
--enable-sjlj-exceptions
arrange to use setjmp/longjmp exception handling
@@ -8329,7 +8333,6 @@ else
fi
-
# Check whether --with-multilib-generator was given.
if test "${with_multilib_generator+set}" = set; then :
withval=$with_multilib_generator; :
@@ -8337,6 +8340,32 @@ else
with_multilib_generator=default
fi
+# If libatomic is available, whether it should be linked automatically
+# Check whether --enable-autolink-libatomic was given.
+if test "${enable_autolink_libatomic+set}" = set; then :
+ enableval=$enable_autolink_libatomic;
+ case $enable_autolink_libatomic in
+ yes | no) ;;
+ *) as_fn_error $? "'$enable_autolink_libatomic' is an invalid value for
+--enable-autolink-libatomic. Valid choices are 'yes' and 'no'." "$LINENO" 5 ;;
+ esac
+
+else
+ enable_autolink_libatomic=''
+fi
+
+
+if test x$enable_autolink_libatomic = xyes; then
+ if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then
+
+$as_echo "#define ENABLE_AUTOLINK_LIBATOMIC 1" >>confdefs.h
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libatomic is not build for this target, --enable-autolink-libatomic ignored" >&5
+$as_echo "$as_me: WARNING: libatomic is not build for this target, --enable-autolink-libatomic ignored" >&2;}
+ fi
+fi
+
# -------------------------
# Checks for other programs
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 57268319de1..56bcaa87620 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1199,6 +1199,27 @@ AC_ARG_WITH(multilib-generator,
:,
with_multilib_generator=default)
+# If libatomic is available, whether it should be linked automatically
+AC_ARG_ENABLE(autolink-libatomic,
+[AS_HELP_STRING([--enable-autolink-libatomic],
+ [enable automatic linking of libatomic (ignored if not built)])],
+[
+ case $enable_autolink_libatomic in
+ yes | no) ;;
+ *) AC_MSG_ERROR(['$enable_autolink_libatomic' is an invalid value for
+--enable-autolink-libatomic. Valid choices are 'yes' and 'no'.]) ;;
+ esac
+], [enable_autolink_libatomic=''])
+
+if test x$enable_autolink_libatomic = xyes; then
+ if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then
+ AC_DEFINE(ENABLE_AUTOLINK_LIBATOMIC, 1,
+ [Define if libatomic should always be linked.])
+ else
+ AC_MSG_WARN([libatomic is not build for this target, --enable-autolink-libatomic ignored])
+ fi
+fi
+
# -------------------------
# Checks for other programs
# -------------------------
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index b30d3691fe6..ccc8e5dbb00 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -2377,6 +2377,14 @@ files, but these changed header paths may conflict with some compilation
environments. Enabled by default, and may be disabled using
@option{--disable-canonical-system-headers}.
+@item --enable-autolink-libatomic
+@itemx --disable-autolink-libatomic
+Tell GCC that it should automatically link libatomic; if supported by
+the linker, the file is only linked as needed. This flag is ignored
+when libatomic is not built. Note that this conigure flag is in particular
+useful when building an offloading-target compiler; as for those, a
+user had to specify @code{-foffload=target=-latomic} otherwise.
+
@item --with-glibc-version=@var{major}.@var{minor}
Tell GCC that when the GNU C Library (glibc) is used on the target it
will be version @var{major}.@var{minor} or later. Normally this can
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index a660e33739b..6183c407a2b 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -381,7 +381,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
@defmac LINK_GCC_C_SEQUENCE_SPEC
The sequence in which libgcc and libc are specified to the linker.
-By default this is @code{%G %L %G}.
+By default this is @code{%G LINK_LIBATOMIC_SPEC %L %G}.
+@end defmac
+
+@defmac LINK_LIBATOMIC_SPEC
+This macro is used in the default @code{LINK_GCC_C_SEQUENCE_SPEC} to link
+libatomic. By default, it is unset unless @code{ENABLE_AUTOLINK_LIBATOMIC}
+is set.
@end defmac
@defmac POST_LINK_SPEC
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in
index f7ab5d48a63..281540aba68 100644
--- a/gcc/doc/tm.texi.in
+++ b/gcc/doc/tm.texi.in
@@ -381,7 +381,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
@defmac LINK_GCC_C_SEQUENCE_SPEC
The sequence in which libgcc and libc are specified to the linker.
-By default this is @code{%G %L %G}.
+By default this is @code{%G LINK_LIBATOMIC_SPEC %L %G}.
+@end defmac
+
+@defmac LINK_LIBATOMIC_SPEC
+This macro is used in the default @code{LINK_GCC_C_SEQUENCE_SPEC} to link
+libatomic. By default, it is unset unless @code{ENABLE_AUTOLINK_LIBATOMIC}
+is set.
@end defmac
@defmac POST_LINK_SPEC
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 59390fd39d6..dae1dd4cf79 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -974,13 +974,23 @@ proper position among the other output files. */
# define ASM_DEBUG_OPTION_SPEC ""
#endif
+#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC)
+# ifdef LD_AS_NEEDED_OPTION
+# define LINK_LIBATOMIC_SPEC LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION
+# else
+# define LINK_LIBATOMIC_SPEC "-latomic"
+# endif
+#elif !defined(LINK_LIBATOMIC_SPEC)
+# define LINK_LIBATOMIC_SPEC ""
+#endif
+
/* Here is the spec for running the linker, after compiling all files. */
/* This is overridable by the target in case they need to specify the
-lgcc and -lc order specially, yet not require them to override all
of LINK_COMMAND_SPEC. */
#ifndef LINK_GCC_C_SEQUENCE_SPEC
-#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
+#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:" LINK_LIBATOMIC_SPEC " %L %G}"
#endif
#ifdef ENABLE_DEFAULT_SSP
--
2.41.0
@@ -0,0 +1,57 @@
From 5bbbd320e54ab5341cfba83e8af98685131caba1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 29 Aug 2021 12:23:34 +0200
Subject: [PATCH 28/35] configure: fix detection of atomic builtins in
libatomic configure script
Alpine's --enable-autolink-libatomic (which is enabled for riscv64 by
default) causes the libatomic configure script to incorrectly detect
which builtins are available on riscv64. This then causes incorrect code
generation for libatomic since it assumes compiler builtins to be
available which are not actually available on riscv64.
This commit fixes this issue by disabling linking of libatomic configure
test code entirely, thereby preventing linking against libatomic.
See:
* https://gitlab.alpinelinux.org/alpine/aports/-/issues/12948
* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101996#c6
---
libatomic/configure.tgt | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
index a92ae9e8309..90b579ca4d8 100644
--- a/libatomic/configure.tgt
+++ b/libatomic/configure.tgt
@@ -30,6 +30,26 @@
# on ${target_cpu}. For example to allow proper use of multilibs.
configure_tgt_pre_target_cpu_XCFLAGS="${XCFLAGS}"
+# The libatomic configure script performs several checks to determine
+# whether builtins for atomic operations are available. When compiling
+# with --enable-autolink-libatomic the test code compiled by the
+# configure script is also linked against libatomic. This causes it
+# to think that builtins are available, even if there are not, since
+# the tested symbols are provided by libatomic.
+#
+# This is a hack to ensure that we don't link against libatomic by not
+# linking any configure test code at all when --enable-autolink-libatomic
+# is given.
+#
+# See:
+#
+# * https://gitlab.alpinelinux.org/alpine/aports/-/issues/12817
+# * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101996#c4
+#
+if test x$enable_autolink_libatomic = xyes; then
+ gcc_no_link=yes
+fi
+
case "${target_cpu}" in
alpha*)
# fenv.c needs this option to generate inexact exceptions.
--
2.41.0
@@ -0,0 +1,27 @@
From 430c701a3cefbe09a9c7c8a2f5bbe957f9b2ecb2 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Thu, 30 Jun 2022 16:44:51 +0000
Subject: [PATCH 29/35] libstdc++: do not throw exceptions for non-C locales on
musl targets
---
libstdc++-v3/config/locale/generic/c_locale.cc | 3 ---
1 file changed, 3 deletions(-)
diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc
index 8849d78fdfa..aff467f98fe 100644
--- a/libstdc++-v3/config/locale/generic/c_locale.cc
+++ b/libstdc++-v3/config/locale/generic/c_locale.cc
@@ -242,9 +242,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Currently, the generic model only supports the "C" locale.
// See http://gcc.gnu.org/ml/libstdc++/2003-02/msg00345.html
__cloc = 0;
- if (strcmp(__s, "C"))
- __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
- "name not valid"));
}
void
--
2.41.0
@@ -0,0 +1,27 @@
From 05f0043755f341a2ff4f845379327076b3e0203d Mon Sep 17 00:00:00 2001
From: Mathias LANG <pro.mathias.lang@gmail.com>
Date: Mon, 17 Jan 2022 03:49:21 +0000
Subject: [PATCH 30/35] gdc: unconditionally link libgphobos against
libucontext
ref: alpine/aports#13422
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index 394b105b271..bc4a77fc300 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -52809,7 +52809,7 @@ configure-target-libphobos:
esac; \
module_srcdir=libphobos; \
rm -f no-such-file || : ; \
- CONFIG_SITE=no-such-file $(SHELL) \
+ CONFIG_SITE=no-such-file LIBS="-lucontext $$LIBS" $(SHELL) \
$$s/$$module_srcdir/configure \
--srcdir=$${topdir}/$$module_srcdir \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
--
2.41.0
@@ -0,0 +1,54 @@
From 0b89a74fbf77ae6917f043c79cd03db0d6ef0212 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sat, 16 Jul 2022 09:21:11 +0200
Subject: [PATCH 31/35] druntime: link against libucontext on all platforms
On musl-based Linux distributions, swapcontext etc. are not provided by
musl but instead by libucontext. Hence, we _always_ need to link against
an external library for these functions.
---
libphobos/configure | 8 --------
libphobos/m4/druntime/libraries.m4 | 8 --------
2 files changed, 16 deletions(-)
diff --git a/libphobos/configure b/libphobos/configure
index 925c53c5f5e..60c2a0c11c6 100755
--- a/libphobos/configure
+++ b/libphobos/configure
@@ -15216,14 +15216,6 @@ fi
# Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
# "yes" for targets that have 'version = AsmExternal'.
druntime_fiber_asm_external=no
- case "$target_cpu" in
- aarch64* | \
- arm* | \
- i[34567]86|x86_64 | \
- powerpc)
- druntime_fiber_asm_external=yes
- ;;
- esac
if test "$druntime_fiber_asm_external" = no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing swapcontext" >&5
$as_echo_n "checking for library containing swapcontext... " >&6; }
diff --git a/libphobos/m4/druntime/libraries.m4 b/libphobos/m4/druntime/libraries.m4
index 45a56f6f76a..fef6e890b1e 100644
--- a/libphobos/m4/druntime/libraries.m4
+++ b/libphobos/m4/druntime/libraries.m4
@@ -220,14 +220,6 @@ AC_DEFUN([DRUNTIME_LIBRARIES_UCONTEXT],
# Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
# "yes" for targets that have 'version = AsmExternal'.
druntime_fiber_asm_external=no
- case "$target_cpu" in
- aarch64* | \
- arm* | \
- i[[34567]]86|x86_64 | \
- powerpc)
- druntime_fiber_asm_external=yes
- ;;
- esac
if test "$druntime_fiber_asm_external" = no; then
AC_SEARCH_LIBS([swapcontext], [c ucontext], [],
AC_MSG_ERROR([swapcontext required but not found]))
--
2.41.0
@@ -0,0 +1,25 @@
From eeec799f43fbd0bfffc13594585b39d708972511 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Tue, 19 Jul 2022 14:54:07 +0200
Subject: [PATCH 32/35] libgnat: time_t is always 64-bit on musl libc
---
gcc/ada/libgnat/s-parame.ads | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/ada/libgnat/s-parame.ads b/gcc/ada/libgnat/s-parame.ads
index 3d6e345a1ba..cfe0b4d3ca6 100644
--- a/gcc/ada/libgnat/s-parame.ads
+++ b/gcc/ada/libgnat/s-parame.ads
@@ -102,7 +102,7 @@ package System.Parameters is
-- Characteristics of time_t type --
------------------------------------
- time_t_bits : constant := Long_Integer'Size;
+ time_t_bits : constant := Long_Long_Integer'Size;
-- Number of bits in type time_t
----------------------------------------------
--
2.41.0
@@ -0,0 +1,44 @@
From b71d21b87e6946c763edad5e420bf22d8a453077 Mon Sep 17 00:00:00 2001
From: psykose <alice@ayaya.dev>
Date: Mon, 29 May 2023 15:33:11 +0000
Subject: [PATCH 33/35] libphobos: do not use LFS64 symbols
musl does not have these since 1.2.4, we can't use the compat interfaces.
---
libphobos/libdruntime/core/sys/posix/config.d | 2 +-
libphobos/libdruntime/core/sys/posix/sys/mman.d | 6 +-----
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/libphobos/libdruntime/core/sys/posix/config.d b/libphobos/libdruntime/core/sys/posix/config.d
index ae6752f220e..6b80d1ff0e6 100644
--- a/libphobos/libdruntime/core/sys/posix/config.d
+++ b/libphobos/libdruntime/core/sys/posix/config.d
@@ -88,7 +88,7 @@ else version (CRuntime_Musl)
enum __REDIRECT = false;
// Those three are irrelevant for Musl as it always uses 64 bits off_t
- enum __USE_FILE_OFFSET64 = _FILE_OFFSET_BITS == 64;
+ enum __USE_FILE_OFFSET64 = false;
enum __USE_LARGEFILE = __USE_FILE_OFFSET64 && !__REDIRECT;
enum __USE_LARGEFILE64 = __USE_FILE_OFFSET64 && !__REDIRECT;
diff --git a/libphobos/libdruntime/core/sys/posix/sys/mman.d b/libphobos/libdruntime/core/sys/posix/sys/mman.d
index 0d3d517d69a..323aa0af72d 100644
--- a/libphobos/libdruntime/core/sys/posix/sys/mman.d
+++ b/libphobos/libdruntime/core/sys/posix/sys/mman.d
@@ -293,11 +293,7 @@ else version (CRuntime_Bionic)
}
else version (CRuntime_Musl)
{
- static if (__USE_LARGEFILE64) void* mmap64(void*, size_t, int, int, int, off_t);
- static if (__USE_FILE_OFFSET64)
- alias mmap = mmap64;
- else
- void* mmap(void*, size_t, int, int, int, off_t);
+ void* mmap(void*, size_t, int, int, int, off_t);
int munmap(void*, size_t);
}
else version (CRuntime_UClibc)
--
2.41.0
@@ -0,0 +1,195 @@
From 4bfcb35bc43d3e3b7510620362d7c28d9e4c17ca Mon Sep 17 00:00:00 2001
From: psykose <alice@ayaya.dev>
Date: Mon, 10 Jul 2023 23:23:29 +0000
Subject: [PATCH 34/35] libgo: fix lfs64 use
---
.../go/internal/syscall/unix/at_largefile.go | 2 +-
libgo/go/os/dir_largefile.go | 2 +-
libgo/go/syscall/libcall_glibc.go | 2 +-
libgo/go/syscall/libcall_linux.go | 4 +--
libgo/go/syscall/libcall_posix_largefile.go | 26 +++++++++----------
libgo/runtime/go-varargs.c | 2 +-
libgo/sysinfo.c | 9 +++----
7 files changed, 22 insertions(+), 25 deletions(-)
diff --git a/libgo/go/internal/syscall/unix/at_largefile.go b/libgo/go/internal/syscall/unix/at_largefile.go
index 82e0dcfd074..16151ecad1b 100644
--- a/libgo/go/internal/syscall/unix/at_largefile.go
+++ b/libgo/go/internal/syscall/unix/at_largefile.go
@@ -10,5 +10,5 @@ import (
"syscall"
)
-//extern fstatat64
+//extern fstatat
func fstatat(int32, *byte, *syscall.Stat_t, int32) int32
diff --git a/libgo/go/os/dir_largefile.go b/libgo/go/os/dir_largefile.go
index 1fc5ee0771f..0c6dffe1a75 100644
--- a/libgo/go/os/dir_largefile.go
+++ b/libgo/go/os/dir_largefile.go
@@ -11,5 +11,5 @@ package os
import "syscall"
-//extern readdir64
+//extern readdir
func libc_readdir(*syscall.DIR) *syscall.Dirent
diff --git a/libgo/go/syscall/libcall_glibc.go b/libgo/go/syscall/libcall_glibc.go
index 5c1ec483c75..5a1245ed44b 100644
--- a/libgo/go/syscall/libcall_glibc.go
+++ b/libgo/go/syscall/libcall_glibc.go
@@ -114,7 +114,7 @@ func Pipe2(p []int, flags int) (err error) {
}
//sys sendfile(outfd int, infd int, offset *Offset_t, count int) (written int, err error)
-//sendfile64(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
+//sendfile(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
if race.Enabled {
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
index 03ca7261b59..ad21fd0b3ac 100644
--- a/libgo/go/syscall/libcall_linux.go
+++ b/libgo/go/syscall/libcall_linux.go
@@ -158,7 +158,7 @@ func Reboot(cmd int) (err error) {
//adjtimex(buf *Timex) _C_int
//sys Fstatfs(fd int, buf *Statfs_t) (err error)
-//fstatfs64(fd _C_int, buf *Statfs_t) _C_int
+//fstatfs(fd _C_int, buf *Statfs_t) _C_int
func Gettid() (tid int) {
r1, _, _ := Syscall(SYS_GETTID, 0, 0, 0)
@@ -245,7 +245,7 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i
}
//sys Statfs(path string, buf *Statfs_t) (err error)
-//statfs64(path *byte, buf *Statfs_t) _C_int
+//statfs(path *byte, buf *Statfs_t) _C_int
//sysnb Sysinfo(info *Sysinfo_t) (err error)
//sysinfo(info *Sysinfo_t) _C_int
diff --git a/libgo/go/syscall/libcall_posix_largefile.go b/libgo/go/syscall/libcall_posix_largefile.go
index f90055bb29a..334212f0af1 100644
--- a/libgo/go/syscall/libcall_posix_largefile.go
+++ b/libgo/go/syscall/libcall_posix_largefile.go
@@ -10,40 +10,40 @@
package syscall
//sys Creat(path string, mode uint32) (fd int, err error)
-//creat64(path *byte, mode Mode_t) _C_int
+//creat(path *byte, mode Mode_t) _C_int
//sys Fstat(fd int, stat *Stat_t) (err error)
-//fstat64(fd _C_int, stat *Stat_t) _C_int
+//fstat(fd _C_int, stat *Stat_t) _C_int
//sys Ftruncate(fd int, length int64) (err error)
-//ftruncate64(fd _C_int, length Offset_t) _C_int
+//ftruncate(fd _C_int, length Offset_t) _C_int
//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
-//getrlimit64(resource _C_int, rlim *Rlimit) _C_int
+//getrlimit(resource _C_int, rlim *Rlimit) _C_int
//sys Lstat(path string, stat *Stat_t) (err error)
-//lstat64(path *byte, stat *Stat_t) _C_int
+//lstat(path *byte, stat *Stat_t) _C_int
//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
-//mmap64(addr *byte, length Size_t, prot _C_int, flags _C_int, fd _C_int, offset Offset_t) *byte
+//mmap(addr *byte, length Size_t, prot _C_int, flags _C_int, fd _C_int, offset Offset_t) *byte
//sys Open(path string, mode int, perm uint32) (fd int, err error)
-//__go_open64(path *byte, mode _C_int, perm Mode_t) _C_int
+//__go_open(path *byte, mode _C_int, perm Mode_t) _C_int
//sys Pread(fd int, p []byte, offset int64) (n int, err error)
-//pread64(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
+//pread(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error)
-//pwrite64(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
+//pwrite(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
//sys Seek(fd int, offset int64, whence int) (off int64, err error)
-//lseek64(fd _C_int, offset Offset_t, whence _C_int) Offset_t
+//lseek(fd _C_int, offset Offset_t, whence _C_int) Offset_t
//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
-//setrlimit64(resource int, rlim *Rlimit) _C_int
+//setrlimit(resource int, rlim *Rlimit) _C_int
//sys Stat(path string, stat *Stat_t) (err error)
-//stat64(path *byte, stat *Stat_t) _C_int
+//stat(path *byte, stat *Stat_t) _C_int
//sys Truncate(path string, length int64) (err error)
-//truncate64(path *byte, length Offset_t) _C_int
+//truncate(path *byte, length Offset_t) _C_int
diff --git a/libgo/runtime/go-varargs.c b/libgo/runtime/go-varargs.c
index f84860891e6..7efc9615985 100644
--- a/libgo/runtime/go-varargs.c
+++ b/libgo/runtime/go-varargs.c
@@ -84,7 +84,7 @@ __go_ioctl_ptr (int d, int request, void *arg)
int
__go_open64 (char *path, int mode, mode_t perm)
{
- return open64 (path, mode, perm);
+ return open (path, mode, perm);
}
#endif
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
index 180f5c31d74..1d717d55c0e 100644
--- a/libgo/sysinfo.c
+++ b/libgo/sysinfo.c
@@ -366,7 +366,7 @@ typedef loff_t libgo_loff_t_type;
#endif
#if defined(HAVE_OFF64_T)
-typedef off64_t libgo_off_t_type;
+typedef off_t libgo_off_t_type;
#else
typedef off_t libgo_off_t_type;
#endif
@@ -398,13 +398,11 @@ typedef off_t libgo_off_t_type;
// From dirent.h
SREF(dirent);
-SREF(dirent64);
OTREF(DIR);
EREF(DT_UNKNOWN);
// From fcntl.h
SREF(flock);
-SREF(flock64);
// From ffi headers
SREF(_ffi_type);
@@ -485,11 +483,10 @@ EREF(SS_ONSTACK);
EREF(SEGV_MAPERR);
// From stat.h
-SREF(stat64);
+SREF(stat);
// From statfs.h
SREF(statfs);
-SREF(statfs64);
// From sysinfo.h
SREF(sysinfo);
@@ -519,7 +516,7 @@ EREF(PTRACE_PEEKTEXT);
// From sys/resource.h
SREF(rusage);
-SREF(rlimit64);
+SREF(rlimit);
EREF(RLIMIT_NOFILE);
EREF(PRIO_USER);
EREF(RUSAGE_SELF);
--
2.41.0
@@ -0,0 +1,32 @@
From c4f484f465a32e796ae384aa3f90e79fa218b4e9 Mon Sep 17 00:00:00 2001
From: Jingyun Hua <huajingyun@loongson.cn>
Date: Mon, 7 Aug 2023 15:25:58 +0800
Subject: [PATCH] loongarch disable multilib support
Signed-off-by: Jingyun Hua <huajingyun@loongson.cn>
---
gcc/config/loongarch/t-linux | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/gcc/config/loongarch/t-linux b/gcc/config/loongarch/t-linux
index 23e1fb979..c2753abb8 100644
--- a/gcc/config/loongarch/t-linux
+++ b/gcc/config/loongarch/t-linux
@@ -21,11 +21,6 @@ MULTIOSDIR_lp64f := ../lib64/f32$(call if_multiarch,:loongarch64-linux-gnuf32)
MULTIOSDIR_lp64s := ../lib64/sf$(call if_multiarch,:loongarch64-linux-gnusf)
# Don't define MULTILIB_OSDIRNAMES if multilib is disabled.
-ifeq ($(filter LA_DISABLE_MULTILIB,$(tm_defines)),)
-
- MULTILIB_OSDIRNAMES = .=$(MULTIOSDIR_$(mlib_default))
- MULTILIB_OSDIRNAMES += mabi.lp64d=$(MULTIOSDIR_lp64d)
- MULTILIB_OSDIRNAMES += mabi.lp64f=$(MULTIOSDIR_lp64f)
- MULTILIB_OSDIRNAMES += mabi.lp64s=$(MULTIOSDIR_lp64s)
-
-endif
+ MULTILIB_OSDIRNAMES = mabi.lp64d=../lib
+ MULTILIB_OSDIRNAMES += mabi.lp64f=../lib
+ MULTILIB_OSDIRNAMES += mabi.lp64s=../lib
--
2.41.0
@@ -0,0 +1,87 @@
From: Celeste <cielesti@protonmail.com>
Date: Mon, 2 Sep 2024 02:54:17 +0000
Subject: [PATCH] libphobos: add riscv64 and loongarch64 support
Add musl support for these 2 architectures based on fenv.h and signal.h from:
https://git.musl-libc.org/cgit/musl/tree/arch/riscv64/bits?h=v1.2.5
https://git.musl-libc.org/cgit/musl/tree/arch/loongarch64/bits?h=v1.2.5
---
libphobos/libdruntime/core/stdc/fenv.d | 13 +++++++++++++
libphobos/libdruntime/core/sys/posix/signal.d | 10 ++++++++++
2 files changed, 23 insertions(+)
diff --git a/libphobos/libdruntime/core/stdc/fenv.d b/libphobos/libdruntime/core/stdc/fenv.d
index a7364c0a..5b327e4a 100644
--- a/libphobos/libdruntime/core/stdc/fenv.d
+++ b/libphobos/libdruntime/core/stdc/fenv.d
@@ -436,20 +436,33 @@ else version (CRuntime_Musl)
ushort __cs_selector;
ushort __opcode;
uint __data_offset;
ushort __data_selector;
ushort __unused5;
version (X86_64)
uint __mxcsr;
}
alias ushort fexcept_t;
}
+ else version (RISCV64)
+ {
+ alias uint fenv_t;
+ alias uint fexcept_t;
+ }
+ else version (LoongArch64)
+ {
+ struct fenv_t
+ {
+ uint __cw;
+ }
+ alias uint fexcept_t;
+ }
else
{
static assert(false, "Architecture not supported.");
}
}
else version (CRuntime_Newlib)
{
version (AArch64)
{
alias fenv_t = ulong;
diff --git a/libphobos/libdruntime/core/sys/posix/signal.d b/libphobos/libdruntime/core/sys/posix/signal.d
index a8b7f751..78d8b3cd 100644
--- a/libphobos/libdruntime/core/sys/posix/signal.d
+++ b/libphobos/libdruntime/core/sys/posix/signal.d
@@ -2751,20 +2751,30 @@ else version (CRuntime_Musl)
else version (PPC_Any)
{
enum MINSIGSTKSZ = 4096;
enum SIGSTKSZ = 10240;
}
else version (X86_Any)
{
enum MINSIGSTKSZ = 2048;
enum SIGSTKSZ = 8192;
}
+ else version (RISCV64)
+ {
+ enum MINSIGSTKSZ = 2048;
+ enum SIGSTKSZ = 8192;
+ }
+ else version (LoongArch64)
+ {
+ enum MINSIGSTKSZ = 4096;
+ enum SIGSTKSZ = 16384;
+ }
else
static assert(0, "unimplemented");
//ucontext_t (defined in core.sys.posix.ucontext)
//mcontext_t (defined in core.sys.posix.ucontext)
version (MIPS_Any)
{
struct stack_t
{
+788
View File
@@ -0,0 +1,788 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-armhf
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=armhf
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
LANG_OBJC=false
LANG_JAVA=false
LANG_GO=false
LANG_FORTRAN=false
LANG_ADA=false
options="!strip"
# abuild doesn't try to tries to install "build-base-$CTARGET_ARCH"
# when this variable matches "no*"
BOOTSTRAP="nobuildbase"
# abuild will only cross compile when this variable is set, but it
# needs to find a valid package database in there for dependency
# resolving, so we set it to /.
CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
pkgname=gcc-armhf
pkgver=14.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
_pkgbase="${pkgver%%_git*}"
# date component from snapshots
_pkgsnap="${pkgver##*_git}"
[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2"
[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross=""
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armhf
pkgrel=5
pkgdesc="Stage2 cross-compiler for armhf"
url="https://gcc.gnu.org"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-armhf mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armhf binutils-armhf"
subpackages="g++-armhf:gpp libstdc++-dev-armhf:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
: "${LANG_OBJC:=true}"
: "${LANG_GO:=true}"
: "${LANG_FORTRAN:=true}"
: "${LANG_ADA:=true}"
: "${LANG_JIT:=true}"
_libgomp=true
_libgcc=false
_libatomic=true
_libitm=true
if [ "$CHOST" != "$CTARGET" ]; then
if [ "$BOOTSTRAP" = nolibc ]; then
LANG_CXX=false
LANG_D=false
LANG_ADA=false
_libgcc=false
_builddir="$srcdir/build-cross-pass2"
else
_builddir="$srcdir/build-cross-final"
fi
LANG_OBJC=false
LANG_GO=false
LANG_FORTRAN=false
LANG_JIT=false
_libgomp=false
_libatomic=false
_libitm=false
# format-sec: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
CPPFLAGS="${CPPFLAGS/-Werror=format-security/}"
# reset target flags (should be set in crosscreate abuild)
# fixup flags. seems gcc treats CPPFLAGS as global without
# _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS.
export CFLAGS="$CPPFLAGS -g0 ${CFLAGS/-Werror=format-security/}"
export CXXFLAGS="$CPPFLAGS -g0 ${CXXFLAGS/-Werror=format-security/}"
unset CPPFLAGS
export CFLAGS_FOR_TARGET=" "
export CXXFLAGS_FOR_TARGET=" "
export LDFLAGS_FOR_TARGET=" "
STRIP_FOR_TARGET="$CTARGET-strip"
elif [ "$CBUILD" != "$CHOST" ]; then
# format-sec: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
CPPFLAGS="${CPPFLAGS/-Werror=format-security/}"
# fixup flags. seems gcc treats CPPFLAGS as global without
# _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS.
export CFLAGS="$CPPFLAGS -g0 ${CFLAGS/-Werror=format-security/}"
export CXXFLAGS="$CPPFLAGS -g0 ${CXXFLAGS/-Werror=format-security/}"
unset CPPFLAGS
# reset flags and cc for build
export CC_FOR_BUILD="gcc"
export CXX_FOR_BUILD="g++"
export CFLAGS_FOR_BUILD=" "
export CXXFLAGS_FOR_BUILD=" "
export LDFLAGS_FOR_BUILD=" "
export CFLAGS_FOR_TARGET=" "
export CXXFLAGS_FOR_TARGET=" "
export LDFLAGS_FOR_TARGET=" "
# Languages that do not need bootstrapping
LANG_OBJC=false
LANG_GO=false
LANG_FORTRAN=false
LANG_JIT=false
STRIP_FOR_TARGET=${CROSS_COMPILE}strip
_builddir="$srcdir/build-cross-native"
else
STRIP_FOR_TARGET=${CROSS_COMPILE}strip
_builddir="$srcdir/build"
# format-sec: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
CPPFLAGS="${CPPFLAGS/-Werror=format-security/}"
# pass -g0 by default to bypass -g, since we don't do debug
# if -dbg added, the -g is appended and overrides this
export CFLAGS="$CPPFLAGS -g0 ${CFLAGS/-Werror=format-security/} -O2"
export CXXFLAGS="$CPPFLAGS -g0 ${CXXFLAGS/-Werror=format-security/} -O2"
unset CPPFLAGS
# https://gcc.gnu.org/install/build.html
export CFLAGS_FOR_TARGET="$CFLAGS"
export CXXFLAGS_FOR_TARGET="$CXXFLAGS"
export LDFLAGS_FOR_TARGET="$LDFLAGS"
export BOOT_CFLAGS="$CFLAGS"
export BOOT_LDFLAGS="$LDFLAGS"
fi
case "$CTARGET_ARCH" in
# GDC hasn't been ported to PowerPC
# See libphobos/configure.tgt in GCC sources for supported targets
# riscv fails with: error: static assert "unimplemented"
ppc64le|riscv64) LANG_D=false ;;
# GDC does currently not work on 32-bit musl architectures.
# This is a known upstream issue.
# See: https://github.com/dlang/druntime/pull/3383
armhf|armv7|x86) LANG_D=false ;;
esac
# libitm has TEXTRELs in ARM build, so disable for now
case "$CTARGET_ARCH" in
arm*) _libitm=false ;;
mips*) _libitm=false ;;
riscv64) _libitm=false ;;
loongarch64) _libitm=false ;;
esac
# Internal libffi fails to build on MIPS at the moment, need to
# investigate further. We disable LANG_GO on mips64 as it requires
# the internal libffi.
case "$CTARGET_ARCH" in
mips*) LANG_GO=false ;;
loongarch64) LANG_GO=false ;;
esac
# Fortran uses libquadmath if toolchain has __float128
# currently on x86, x86_64 and ia64
_libquadmath=$LANG_FORTRAN
case "$CTARGET_ARCH" in
x86 | x86_64 | ppc64le) ;;
*) _libquadmath=false ;;
esac
# libatomic is a dependency for openvswitch
$_libatomic && subpackages="$subpackages libatomic::$CTARGET_ARCH"
$_libgcc && subpackages="$subpackages libgcc::$CTARGET_ARCH"
$_libquadmath && subpackages="$subpackages libquadmath::$CTARGET_ARCH"
if $_libgomp; then
depends="$depends libgomp=$_gccrel"
subpackages="$subpackages libgomp::$CTARGET_ARCH"
fi
case "$CTARGET_ARCH" in
riscv64|loongarch64)
LANG_ADA=false;;
esac
_languages=c
if $LANG_CXX; then
_languages="$_languages,c++"
fi
if $LANG_D; then
subpackages="$subpackages gcc-gdc$_target:gdc"
_languages="$_languages,d"
makedepends_build="$makedepends_build libucontext-dev"
if [ "$CBUILD" = "$CTARGET" ]; then
makedepends_build="$makedepends_build gcc-gdc-bootstrap"
subpackages="$subpackages libgphobos::$CTARGET_ARCH"
else
# shared libgphobos is for D programs to link against, so
# skip building that while cross-compiling the GDC compiler
makedepends_build="$makedepends_build gcc-gdc gcc-gdc$_cross"
fi
fi
if $LANG_OBJC; then
subpackages="$subpackages libobjc::$CTARGET_ARCH gcc-objc$_target:objc"
_languages="$_languages,objc"
fi
if $LANG_GO; then
subpackages="$subpackages libgo::$CTARGET_ARCH gcc-go$_target:go"
_languages="$_languages,go"
fi
if $LANG_FORTRAN; then
subpackages="$subpackages libgfortran::$CTARGET_ARCH gfortran$_target:gfortran"
_languages="$_languages,fortran"
fi
if $LANG_ADA; then
subpackages="$subpackages gcc-gnat$_target:gnat libgnat::$CTARGET_ARCH"
_languages="$_languages,ada"
if [ "$CBUILD" = "$CTARGET" ]; then
makedepends_build="$makedepends_build gcc-gnat-bootstrap"
subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH"
else
makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross"
fi
fi
if $LANG_JIT; then
subpackages="$subpackages libgccjit:jit libgccjit-dev:jitdev"
fi
makedepends="$makedepends_build $makedepends_host"
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
#
# right now, we are using a git snapshot. snapshots are taken from gcc.gnu.org/pub/gcc/snapshots.
# However, since they are periodically deleted from the GCC mirrors the utilized snapshots are
# mirrored on dev.alpinelinux.org. Please ensure that the snapshot Git commit (as stated in the
# README) matches the base commit on the version-specific branch in the Git repository below.
#
# PLEASE submit all patches to gcc to https://gitlab.alpinelinux.org/kaniini/alpine-gcc-patches,
# so that they can be properly tracked and easily rebased if needed.
#source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-$_pkgsnap/gcc-${_pkgbase%%.*}-$_pkgsnap.tar.xz
source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0001-posix_memalign.patch
0002-gcc-poison-system-directories.patch
0003-specs-turn-on-Wl-z-now-by-default.patch
0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
0006-Enable-Wformat-and-Wformat-security-by-default.patch
0007-Enable-Wtrampolines-by-default.patch
0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
0011-libiberty-copy-PIC-objects-during-build-process.patch
0012-libgcc_s.patch
0013-nopie.patch
0014-ada-fix-shared-linking.patch
0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
0016-add-fortify-headers-paths.patch
0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
0019-aarch64-disable-multilib-support.patch
0020-s390x-disable-multilib-support.patch
0021-ppc64-le-disable-multilib-support.patch
0022-x86_64-disable-multilib-support.patch
0023-riscv-disable-multilib-support.patch
0024-always-build-libgcc_eh.a.patch
0025-ada-libgnarl-compatibility-for-musl.patch
0026-ada-musl-support-fixes.patch
0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
0031-druntime-link-against-libucontext-on-all-platforms.patch
0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
0033-libphobos-do-not-use-LFS64-symbols.patch
0034-libgo-fix-lfs64-use.patch
0035-loongarch-disable-multilib-support.patch
0036-libphobos-add-riscv64-and-loongarch64-support.patch
fix-arm64.patch
ppc64le-quadmath.patch
riscv64-improve-build-time.patch
"
# secfixes:
# 13.2.1_git20231014-r0:
# - CVE-2023-4039
# we build out-of-tree
#builddir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
builddir="$srcdir"/gcc-$_pkgbase
_gcclibdir="/usr/lib/gcc/$CTARGET/$_pkgbase"
_gcclibexec="/usr/libexec/gcc/$CTARGET/$_pkgbase"
prepare() {
default_prepare
echo $_pkgbase > gcc/BASE-VER
}
build() {
local _arch_configure=
local _bootstrap_configure=
local _jit_configure=
case "$CTARGET" in
aarch64-*-*-*) _arch_configure="--with-arch=armv8-a --with-abi=lp64";;
armv5-*-*-*eabi) _arch_configure="--with-arch=armv5te --with-tune=arm926ej-s --with-float=soft --with-abi=aapcs-linux";;
armv6-*-*-*eabihf) _arch_configure="--with-arch=armv6kz --with-tune=arm1176jzf-s --with-fpu=vfpv2 --with-float=hard --with-abi=aapcs-linux";;
armv7-*-*-*eabihf) _arch_configure="--with-arch=armv7-a --with-tune=generic-armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-abi=aapcs-linux --with-mode=thumb";;
mips-*-*-*) _arch_configure="--with-arch=mips32 --with-mips-plt --with-float=soft --with-abi=32";;
mips64-*-*-*) _arch_configure="--with-arch=mips3 --with-tune=mips64 --with-mips-plt --with-float=soft --with-abi=64";;
mips64el-*-*-*) _arch_configure="--with-arch=mips3 --with-tune=mips64 --with-mips-plt --with-float=soft --with-abi=64";;
mipsel-*-*-*) _arch_configure="--with-arch=mips32 --with-mips-plt --with-float=soft --with-abi=32";;
powerpc-*-*-*) _arch_configure="--enable-secureplt --enable-decimal-float=no";;
powerpc64*-*-*-*) _arch_configure="--with-abi=elfv2 --enable-secureplt --enable-decimal-float=no --enable-targets=powerpcle-linux";;
i486-*-*-*) _arch_configure="--with-arch=i486 --with-tune=generic --enable-cld";;
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
mips*) _hash_style_configure="--with-linker-hash-style=sysv" ;;
*) _hash_style_configure="--with-linker-hash-style=gnu" ;;
esac
export libat_cv_have_ifunc=no
case "$BOOTSTRAP" in
nolibc) _bootstrap_configure="--with-newlib --disable-shared --enable-threads=no" ;;
*)
# cross-bootstrap GDC with a static libphobos: due to GCC's
# ./configure not having a --disable-shared=libphobos option,
# we have to use --enable-shared with everything else instead.
if $LANG_D && [ "$CBUILD" != "$CTARGET" ]; then
_bootstrap_configure="--enable-shared=libgcc,libstdc++,libffi,zlib,boehm-gc,ada,libada,libgo,libobjc,libatomic,libgomp,libitm,libgfortran,libquadmath"
else
_bootstrap_configure="--enable-shared"
fi
_bootstrap_configure="$_bootstrap_configure --enable-threads --enable-tls"
;;
esac
$_libgomp || _bootstrap_configure="$_bootstrap_configure --disable-libgomp"
$_libatomic || _bootstrap_configure="$_bootstrap_configure --disable-libatomic"
$_libitm || _bootstrap_configure="$_bootstrap_configure --disable-libitm"
$_libquadmath || _arch_configure="$_arch_configure --disable-libquadmath"
msg "Building the following:"
echo ""
echo " CBUILD=$CBUILD"
echo " CHOST=$CHOST"
echo " CTARGET=$CTARGET"
echo " CTARGET_ARCH=$CTARGET_ARCH"
echo " languages=$_languages"
echo " arch_configure=$_arch_configure"
echo " cross_configure=$_cross_configure"
echo " bootstrap_configure=$_bootstrap_configure"
echo " hash_style_configure=$_hash_style_configure"
echo ""
local version="Alpine $pkgver"
local gccconfiguration="
--prefix=/usr
--mandir=/usr/share/man
--infodir=/usr/share/info
--build=$CBUILD
--host=$CHOST
--target=$CTARGET
--enable-checking=release
--disable-cet
--disable-fixed-point
--disable-libstdcxx-pch
--disable-multilib
--disable-nls
--disable-werror
--disable-symvers
--enable-__cxa_atexit
--enable-default-pie
--enable-default-ssp
--enable-languages=$_languages
--enable-link-serialization=2
--enable-linker-build-id
$_arch_configure
--disable-libssp
--disable-libsanitizer
$_cross_configure
$_bootstrap_configure
--with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
--with-system-zlib
$_hash_style_configure
"
mkdir -p "$_builddir"
cd "$_builddir"
"$builddir"/configure $gccconfiguration \
--with-pkgversion="$version"
msg "building gcc"
if $LANG_D && [ "$CBUILD" != "$CTARGET" ]; then
# cross-compiling libphobos with parallel make fails
make all-target-libphobos
fi
make
# we build gccjit separate to not build all of gcc with --enable-host-shared
# as doing so slows it down a few %, so for some quick if's here we gain
# free performance
if $LANG_JIT; then
mkdir -p "$_builddir"/libgccjit-build
cd "$_builddir"/libgccjit-build
"$builddir"/configure $gccconfiguration \
--disable-bootstrap \
--enable-host-shared \
--enable-languages=jit \
--with-pkgversion="$version"
msg "building libgccjit"
make all-gcc
fi
}
package() {
cd "$_builddir"
make -j1 DESTDIR="$pkgdir" install
[ "$CHOST" = "$CTARGET" ] && ln -s gcc "$pkgdir"/usr/bin/cc
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
if $LANG_JIT; then
make -C "$_builddir"/libgccjit-build/gcc DESTDIR="$pkgdir" jit.install-common
fi
# we dont support gcj -static
# and saving 35MB is not bad.
find "$pkgdir" \( -name libgtkpeer.a \
-o -name libgjsmalsa.a \
-o -name libgij.a \) \
-delete
# strip debug info from some static libs
find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
-o -name libgphobos.a -o -name libgdruntime.a \
-o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \
-o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \
-o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \
-a -type f \
-exec $STRIP_FOR_TARGET -g {} +
if $_libgomp; then
mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir
fi
if $_libitm; then
mv "$pkgdir"/usr/lib/libitm.spec "$pkgdir"/$_gcclibdir
fi
# remove ffi
rm -f "$pkgdir"/usr/lib/libffi* "$pkgdir"/usr/share/man/man3/ffi*
find "$pkgdir" -name 'ffi*.h' -delete
local gdblib=${_target:+$CTARGET/}lib
if [ -d "$pkgdir"/usr/$gdblib/ ]; then
for i in $(find "$pkgdir"/usr/$gdblib/ -type f -maxdepth 1 -name "*-gdb.py"); do
mkdir -p "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib
mv "$i" "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib/
done
fi
# move ada runtime libs
if $LANG_ADA; then
local libgnat_static=
[ "$CHOST" = "$CTARGET" ] && libgnat_static="libgna*.a"
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "$libgnat_static" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
fi
if [ "$CHOST" != "$CTARGET" ]; then
# cross-gcc: remove any files that would conflict with the
# native gcc package
rm -rf "$pkgdir"/usr/include "${pkgdir:?}"/usr/share
# libcc1 does not depend on target, don't ship it
rm -rf "$pkgdir"/usr/lib/libcc1.so*
# fixup gcc library symlinks to be linker scripts so
# linker finds the libs from relocated sysroot
for so in "$pkgdir"/usr/"$CTARGET"/lib/*.so; do
if [ -h "$so" ]; then
local _real=$(basename "$(readlink "$so")")
rm -f "$so"
echo "GROUP ($_real)" > "$so"
fi
done
else
# add c89/c99 wrapper scripts
cat >"$pkgdir"/usr/bin/c89 <<'EOF'
#!/bin/sh
_flavor="-std=c89"
for opt; do
case "$opt" in
-ansi|-std=c89|-std=iso9899:1990) _flavor="";;
-std=*) echo "$(basename $0) called with non ANSI/ISO C option $opt" >&2
exit 1;;
esac
done
exec gcc $_flavor ${1+"$@"}
EOF
cat >"$pkgdir"/usr/bin/c99 <<'EOF'
#!/bin/sh
_flavor="-std=c99"
for opt; do
case "$opt" in
-std=c99|-std=iso9899:1999) _flavor="";;
-std=*) echo "$(basename $0) called with non ISO C99 option $opt" >&2
exit 1;;
esac
done
exec gcc $_flavor ${1+"$@"}
EOF
chmod 755 "$pkgdir"/usr/bin/c?9
# install lto plugin so regular binutils may use it
mkdir -p "$pkgdir"/usr/lib/bfd-plugins
ln -s /$_gcclibexec/liblto_plugin.so "$pkgdir/usr/lib/bfd-plugins/"
fi
}
libatomic() {
pkgdesc="GCC Atomic library"
depends=
replaces="gcc"
amove usr/lib/libatomic.so.*
}
libcxx() {
pkgdesc="GNU C++ standard runtime library"
depends=
if [ "$CHOST" = "$CTARGET" ]; then
# verify that we are using clock_gettime rather than doing direct syscalls
# so we dont break 32 bit arches due to time64.
nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime
fi
amove usr/lib/libstdc++.so.*
}
libcxx_dev() {
pkgdesc="GNU C++ standard runtime library (development files)"
depends=
replaces="g++"
amove usr/${_target:+$CTARGET/}lib/libstdc++.a \
usr/${_target:+$CTARGET/}lib/libstdc++exp.a \
usr/${_target:+$CTARGET/}lib/libstdc++.so \
usr/${_target:+$CTARGET/}lib/libstdc++fs.a \
usr/${_target:+$CTARGET/}lib/libsupc++.a \
usr/${_target:+$CTARGET/}include/c++
}
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
jit() {
pkgdesc="GCC JIT Library"
depends=
amove usr/lib/libgccjit.so*
}
jitdev() {
pkgdesc="GCC JIT Library (development files)"
depends="libgccjit"
amove usr/include/libgccjit*.h
}
libobjc() {
pkgdesc="GNU Objective-C runtime"
replaces="objc"
depends=
amove usr/lib/libobjc.so.*
}
objc() {
pkgdesc="GNU Objective-C"
replaces="gcc"
depends="musl-dev gcc=$_gccrel libobjc=$_gccrel"
amove $_gcclibexec/cc1obj
amove $_gcclibdir/include/objc
amove usr/lib/libobjc.so
amove usr/lib/libobjc.a
}
libgcc() {
pkgdesc="GNU C compiler runtime libraries"
depends=
amove usr/lib/libgcc_s.so.*
}
libgomp() {
pkgdesc="GCC shared-memory parallel programming API library"
depends=
replaces="gcc"
amove usr/lib/libgomp.so.*
}
libgphobos() {
pkgdesc="D programming language standard library for GCC"
depends=
amove usr/lib/libgdruntime.so.*
amove usr/lib/libgphobos.so.*
}
gdc() {
pkgdesc="GCC-based D language compiler"
depends="gcc$_target=$_gccrel musl-dev libucontext-dev"
[ "$CBUILD" = "$CTARGET" ] && depends="$depends libgphobos=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && provides="gcc-gdc-bootstrap=$_gccrel"
# Copy: The installed '.d' files, the static lib, the binary itself
# The shared libs are part of 'libgphobos' so one can run program
# without installing the compiler
amove $_gcclibexec/d21
amove $_gcclibdir/include/d
if [ "$CBUILD" = "$CTARGET" ]; then
amove usr/lib/libgdruntime.so
amove usr/lib/libgphobos.so
fi
amove usr/${_target:+$CTARGET/}lib/libgdruntime.a
amove usr/${_target:+$CTARGET/}lib/libgphobos.a
amove usr/${_target:+$CTARGET/}lib/libgphobos.spec
amove usr/bin/*gdc
}
libgo() {
pkgdesc="Go runtime library for GCC"
depends=
amove usr/lib/libgo.so.*
}
go() {
pkgdesc="GCC Go frontend (intended for bootstrapping community/go)"
depends="gcc=$_gccrel libgo=$_gccrel !go"
install="$pkgname-go.post-install"
amove usr/lib/go
amove usr/bin/*go
amove usr/bin/*gofmt
amove $_gcclibexec/go1
amove $_gcclibexec/cgo
amove $_gcclibexec/buildid
amove $_gcclibexec/test2json
amove $_gcclibexec/vet
amove usr/lib/libgo.a
amove usr/lib/libgo.so
amove usr/lib/libgobegin.a
amove usr/lib/libgolibbegin.a
}
libgfortran() {
pkgdesc="Fortran runtime library for GCC"
depends=
amove usr/lib/libgfortran.so.*
}
libquadmath() {
replaces="gcc"
pkgdesc="128-bit math library for GCC"
depends=
amove usr/lib/libquadmath.so.*
}
gfortran() {
pkgdesc="GNU Fortran Compiler"
depends="gcc=$_gccrel libgfortran=$_gccrel"
$_libquadmath && depends="$depends libquadmath=$_gccrel"
replaces="gcc"
amove usr/bin/*gfortran
amove usr/lib/libgfortran.a
amove usr/lib/libgfortran.so
if $_libquadmath; then
amove usr/lib/libquadmath.a
amove usr/lib/libquadmath.so
fi
amove $_gcclibdir/finclude
amove $_gcclibexec/f951
mv -v "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir/
}
libgnat() {
pkgdesc="GNU Ada runtime shared libraries"
depends=
amove usr/lib/libgna*.so
}
libgnatstatic() {
pkgdesc="GNU Ada static libraries"
depends=
amove usr/lib/libgna*.a
}
gnat() {
pkgdesc="Ada support for GCC"
depends="gcc=$_gccrel"
provides="$pkgname-gnat-bootstrap=$_gccrel"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel"
amove $_gcclibexec/*gnat*
amove $_gcclibdir/*ada*
amove usr/bin/*gnat*
}
gdb() {
pkgdesc="$pkgdesc (gdb printers)"
install_if="$pkgname=$pkgver-r$pkgrel gdb"
amove \
usr/share/gdb/python/ \
usr/share/gcc-*/python/
}
sha512sums="
932bdef0cda94bacedf452ab17f103c0cb511ff2cec55e9112fc0328cbf1d803b42595728ea7b200e0a057c03e85626f937012e49a7515bc5dd256b2bf4bc396 gcc-14.2.0.tar.xz
1ecffba1b07d60e1b4422302b032bbea918b674c8e12b30aa6965b544d700ce86b61e9f7b8d402c6caf59257f491a394dd0912f0948565d6eae9335ee54f3b35 0001-posix_memalign.patch
1d102a7b17683909dde4d8591dd889149299e77a2b2003cdc0635dc816666be940e41ae534b469485391a9bed183cd5cd337f130e4e1ecb62cb9ad86c4a081db 0002-gcc-poison-system-directories.patch
3f24bb6a50d3c45b71ea05590e32fe3e69b91377ab185352891d5035c76ed193117c6d0b314a4c364bcf136b9a9dd5c926d6c7c30ab436976c121ebfea8d3ddd 0003-specs-turn-on-Wl-z-now-by-default.patch
17a2993027d3ddf8595952ebcae425695ddc7b1cf73b384d2e55fddecb9cbf3f6482860a502ff69b14075e12badf27300fd3039f3a9005e851fd8d121d258c2b 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
444550e55491ff89fe8cbbb4b73d017c9c147cdce1ad5c0561fe7d6ab3834515a814c7676c408cfeec18e1aaace27b3c26a2ffe4a75042285df5124976c38672 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
5a5f57e4e45745bb4d9d63d7d410fe9dd56ce12dbd70c376dd45015909307faf02391e75368e4e7404591614a874cee41b20652cf27be234765d6db97ceb4e7e 0006-Enable-Wformat-and-Wformat-security-by-default.patch
3a2b22388398a93dae7787e794cd580b9c577326f286241e086120c1fcfdd9228c2e00407088ebb163fb1acc21722c199071343551c989a958dc3c845b15132d 0007-Enable-Wtrampolines-by-default.patch
7535de1c552544e3a51cbb00b5e08ac59edbf3bdcfce2a63b9f319fada3f3676f47e3a00c75d91bcefd14500555ea0844f18c130ff46b20f416ea76071e5af39 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
93d03afd83dee5f7129c36a7b81fa8fd323476507e2f53a4fbe40a026037e7dfafa23591145d7af5848d9a322d212497947a0f58ef828734552e6a6dabd00cfa 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
da9eaf2f0ddbec5ee14dc26053936587e6c76fbf16846db804a18cf4d318579426ebcc566aed02daf8e34f60c08b61f5d3959305886dca9bbcdc84db057258d9 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
35b9aafe7eee8138cb7aad7164a8f77c15ccdce26843cee78b5871ef91d76cad22ed0871b20f51c4b89b71afd9cfe4ba4227086e158c466558513708fe7d2a1a 0011-libiberty-copy-PIC-objects-during-build-process.patch
9d43f844fad0ac6e1c35a2b6f461f9278ae09e468f2c9ae8adc43accbe6934994aa10d3a433644d1393a4a76e3caed69e3191db7f3c0c24b4e7a0a0a0cbac3f1 0012-libgcc_s.patch
91dde3079c1400c124ab5604597f5857185d075809649603aa3641a4581b34029bfcbd4281a5bd925d1c5e6e3b1f5f3322efda34345c6930652d685a6c9525f4 0013-nopie.patch
0b50ad15115192699efa9fda3d4fb1c2fa95da06d7880ba34615b40c19a8256e1fe364da39f5c70dc22fbccf21db2de5900932afef68948722eeb25e435262f8 0014-ada-fix-shared-linking.patch
00097c7106625ccf02149a757366f434c48f2abe824bb8b4bf067d29308889cb6039a5e5b2d3bd2683617693b47707d549252c56eea6bc3cdc2450a8d14f46a7 0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
7f0bc42b93a389b614054e700b851abfbc53db391aa10cbdf6990d41396b293af78980bb39f1cf0967184d3fbf3d46ac7c7f096717b8f193ea34cbf7f37d7e91 0016-add-fortify-headers-paths.patch
0841acbce81250f8cb140a75ff62958dfcab3bed792822baf1fe4193dd62633648343f4b66df886c12338eed88a98e591b968131416460f9f0274046019bb8ef 0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
589d538bdf692559e475e53c79869734dede0eb15228cab9ca901c9db81b0e78a0e532b20dfb05ca584ea19ff4bedd83e139ddca912a26b446c5eb6905180536 0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
2213e07bab6f5d8d3d39c732f5385f46cc8f0c84e35054139fdaf13051252d7bf11f647f54aa8456b532166b008fff0656d8f41278e34ba868dd6fe427427a3a 0019-aarch64-disable-multilib-support.patch
a9567947471c3ba8a547a79c55e183974554bf823d9a97a165c966d7b3caad8789980e096e3b78452ece5de062bd9bb006af464bbf0c5a35b689eac3ee21e5c5 0020-s390x-disable-multilib-support.patch
f382eb5f7c2c60c5a23fac587c9629a3059d7be0898e97a1feaf9b9cbe1ef4693cc1177eb29333e8b7944fa17487478e73958be45d5782ccb9ef501961fb9a96 0021-ppc64-le-disable-multilib-support.patch
44ab86feb8e41e7c2b2e27accdf46194c9b80ee6a39543303dc04824f669d9fad182aabd40c9c7f6c265cf9bb71be830c257be115dc9d701d54eca3aa9ef174e 0022-x86_64-disable-multilib-support.patch
abf845792433a21fed5dd06167b9f6cf5e8f8026a409acce93824e466c5148e192bf5f404a271931fe4b65283499329bf67bb01019f2f3e02501f20619404e6c 0023-riscv-disable-multilib-support.patch
ab88a2f63e3545bbc36537aa9a86f2c6c35e41bbf702d6e13743a405cdac4f901eed5737189b780da96647fea9f5d863fdc76373f25a00064106dcb5514d6d87 0024-always-build-libgcc_eh.a.patch
8fdbe0c8bf4ca60f458a33e59027de03d15ac91933fe46d8ca62119346d20b9bc2447c0bf22bceb63d0cf8613ab61512d9197f4e6c2224af473b63ef9f254295 0025-ada-libgnarl-compatibility-for-musl.patch
684bf2db12aa45e8db7a895ab0f227b4e4351f611b4fcc6e1745d7ad94d31b3554f39d8cf9e2203520b3c6ee35cf309b417d4a842e7a8cd55a2b2accb23f2f24 0026-ada-musl-support-fixes.patch
3f9a406d7d2ce34951215ffbcadb49a45e55ad5c24ab9097c0e5e92383e43b876872ccd2a7e7def2833ab204975ee5733f8bcf90934db9fa9c4f6f56c62081f6 0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
720a4001f9a1fa4122e456077ecff8d3eb8af7c83d0a81f9da6a6cca05b23664206a82a349e34482c48bfe40e99aa5f21567613d0913f6a24f282bc84a994496 0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
2044c23b23726965c0a6fd39f616cc464badd650947cb40495eeabd906a3af629878c1d28b403b8eb46b30a1a0ba39083023290d62f0c99ccf070063226e3f8f 0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
58e8415612e1042329ad114471852c19f6bf15bf3bfd7cd81ceeafa75778bcc28410a01071a7c8cbf12b8f549acd85723215772813deedb8f266e28b9e01a353 0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
d47b559075f40d526235f47b91da1d0cf6bfe6c5b7311bbfe08af9dd6e8f27e6c7cd82e3b2d529aab0536246fc56e2d42c089b22cacb0e7f09ca4a9d07556994 0031-druntime-link-against-libucontext-on-all-platforms.patch
b325035cb7122d79c6b42ca6d3fc9e02319ed2f7cddb0639dff25d2798d2ce63812cd623462cdf95e21c9ffbf2412193f8b9fc89a4c36fa5a6a041661ac7399d 0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
c474f34e6f9a4239d486a65141a133dbe8ce91427d502a57a9fd6eb403478a2b5715ba74f24c1cc0761e16eec77ba2c1ca921fb7d7bc1e040fc3703fc9559e75 0033-libphobos-do-not-use-LFS64-symbols.patch
c4482ffc36e7894b2140800159f4cbc9a3e9011e43a69b69f4fa92d5a11e2ee645c7e21df4423dd1e0636e8890849a5719647bfbdf84f951d638f8f488cb718c 0034-libgo-fix-lfs64-use.patch
65df1d489e8d07a811f39e27fd29e3b2b4164fbc2c5fdc16a5142886d94a96e3fb28ccf4f20dd297ba6540ef8ea1ac3eb65a4279494639bf2f0f8376a3896cc3 0035-loongarch-disable-multilib-support.patch
06f64544fd8bc4b6c8b06410c5198aa8fb4e82c232afc0cad83b2c69ac5d39399968206defa78297222700cd18e7fd7e8244afa76d343406a01f657c86306453 0036-libphobos-add-riscv64-and-loongarch64-support.patch
00319c9770362520e8e93bd03fda1769dfa3622eba77d620e11d8af45a38e6d804a5e924046ae388e1cfaea605696e89c343fca507aaaa5edd58d80744fff14f fix-arm64.patch
815265826742400f86336f0c2d3e4edc37398dbc6505ee81107c0103c13ac0f406cff851438d2323033c6c6d0c0323765ee15b975eab8d1dd465f9e988168fb9 ppc64le-quadmath.patch
ea55e0fa6813fc95c4ca2e87f059182edc54dc61515ebb92bf6eb31dbbd176d0fe81edcc7ea28d32f84ca37e8d48a544623d3d9bc94aa41ffc0859326a616aa2 riscv64-improve-build-time.patch
"
+544
View File
@@ -0,0 +1,544 @@
From 2894660df1292153632edbc2a5b66eaf6a864660 Mon Sep 17 00:00:00 2001
From: Richard Sandiford <richard.sandiford@arm.com>
Date: Thu, 13 Jun 2024 12:48:21 +0100
Subject: [PATCH 1/4] aarch64: Fix invalid nested subregs [PR115464]
The testcase extracts one arm_neon.h vector from a pair (one subreg)
and then reinterprets the result as an SVE vector (another subreg).
Each subreg makes sense individually, but we can't fold them together
into a single subreg: it's 32 bytes -> 16 bytes -> 16*N bytes,
but the interpretation of 32 bytes -> 16*N bytes depends on
whether N==1 or N>1.
Since the second subreg makes sense individually, simplify_subreg
should bail out rather than ICE on it. simplify_gen_subreg will
then do the same (because it already checks validate_subreg).
This leaves simplify_gen_subreg returning null, requiring the
caller to take appropriate action.
I think this is relatively likely to occur elsewhere, so the patch
adds a helper for forcing a subreg, allowing a temporary pseudo to
be created where necessary.
I'll follow up by using force_subreg in more places. This patch
is intended to be a minimal backportable fix for the PR.
gcc/
PR target/115464
* simplify-rtx.cc (simplify_context::simplify_subreg): Don't try
to fold two subregs together if their relationship isn't known
at compile time.
* explow.h (force_subreg): Declare.
* explow.cc (force_subreg): New function.
* config/aarch64/aarch64-sve-builtins-base.cc
(svset_neonq_impl::expand): Use it instead of simplify_gen_subreg.
gcc/testsuite/
PR target/115464
* gcc.target/aarch64/sve/acle/general/pr115464.c: New test.
(cherry picked from commit 0970ff46ba6330fc80e8736fc05b2eaeeae0b6a0)
---
gcc/config/aarch64/aarch64-sve-builtins-base.cc | 2 +-
gcc/explow.cc | 15 +++++++++++++++
gcc/explow.h | 2 ++
gcc/simplify-rtx.cc | 5 +++++
.../aarch64/sve/acle/general/pr115464.c | 13 +++++++++++++
5 files changed, 36 insertions(+), 1 deletion(-)
create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
index 0d2edf3f19e..c9182594bc1 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
@@ -1174,7 +1174,7 @@ public:
Advanced SIMD argument as an SVE vector. */
if (!BYTES_BIG_ENDIAN
&& is_undef (CALL_EXPR_ARG (e.call_expr, 0)))
- return simplify_gen_subreg (mode, e.args[1], GET_MODE (e.args[1]), 0);
+ return force_subreg (mode, e.args[1], GET_MODE (e.args[1]), 0);
rtx_vector_builder builder (VNx16BImode, 16, 2);
for (unsigned int i = 0; i < 16; i++)
diff --git a/gcc/explow.cc b/gcc/explow.cc
index 8e5f6b8e680..f6843398c4b 100644
--- a/gcc/explow.cc
+++ b/gcc/explow.cc
@@ -745,6 +745,21 @@ force_reg (machine_mode mode, rtx x)
return temp;
}
+/* Like simplify_gen_subreg, but force OP into a new register if the
+ subreg cannot be formed directly. */
+
+rtx
+force_subreg (machine_mode outermode, rtx op,
+ machine_mode innermode, poly_uint64 byte)
+{
+ rtx x = simplify_gen_subreg (outermode, op, innermode, byte);
+ if (x)
+ return x;
+
+ op = copy_to_mode_reg (innermode, op);
+ return simplify_gen_subreg (outermode, op, innermode, byte);
+}
+
/* If X is a memory ref, copy its contents to a new temp reg and return
that reg. Otherwise, return X. */
diff --git a/gcc/explow.h b/gcc/explow.h
index 16aa02cfb68..cbd1fcb7eb3 100644
--- a/gcc/explow.h
+++ b/gcc/explow.h
@@ -42,6 +42,8 @@ extern rtx copy_to_suggested_reg (rtx, rtx, machine_mode);
Args are mode (in case value is a constant) and the value. */
extern rtx force_reg (machine_mode, rtx);
+extern rtx force_subreg (machine_mode, rtx, machine_mode, poly_uint64);
+
/* Return given rtx, copied into a new temp reg if it was in memory. */
extern rtx force_not_mem (rtx);
diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc
index dceaa13333c..729d408aa55 100644
--- a/gcc/simplify-rtx.cc
+++ b/gcc/simplify-rtx.cc
@@ -7612,6 +7612,11 @@ simplify_context::simplify_subreg (machine_mode outermode, rtx op,
poly_uint64 innermostsize = GET_MODE_SIZE (innermostmode);
rtx newx;
+ /* Make sure that the relationship between the two subregs is
+ known at compile time. */
+ if (!ordered_p (outersize, innermostsize))
+ return NULL_RTX;
+
if (outermode == innermostmode
&& known_eq (byte, 0U)
&& known_eq (SUBREG_BYTE (op), 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c
new file mode 100644
index 00000000000..d728d1325ed
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c
@@ -0,0 +1,13 @@
+/* { dg-options "-O2" } */
+
+#include <arm_neon.h>
+#include <arm_sve.h>
+#include <arm_neon_sve_bridge.h>
+
+svuint16_t
+convolve4_4_x (uint16x8x2_t permute_tbl)
+{
+ return svset_neonq_u16 (svundef_u16 (), permute_tbl.val[1]);
+}
+
+/* { dg-final { scan-assembler {\tmov\tz0\.d, z1\.d\n} } } */
--
2.46.0
From 7edecb21012d88902c60d38f5865bc254eaa9c55 Mon Sep 17 00:00:00 2001
From: Richard Sandiford <richard.sandiford@arm.com>
Date: Tue, 18 Jun 2024 12:22:30 +0100
Subject: [PATCH 2/4] aarch64: Use force_subreg in more places
This patch makes the aarch64 code use force_subreg instead of
simplify_gen_subreg in more places. The criteria were:
(1) The code is obviously specific to expand (where new pseudos
can be created).
(2) The value is obviously an rvalue rather than an lvalue.
(3) The offset wasn't a simple lowpart or highpart calculation;
a later patch will deal with those.
gcc/
* config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin):
Use force_subreg instead of simplify_gen_subreg.
* config/aarch64/aarch64-simd.md (ctz<mode>2): Likewise.
* config/aarch64/aarch64-sve-builtins-base.cc
(svget_impl::expand): Likewise.
(svget_neonq_impl::expand): Likewise.
* config/aarch64/aarch64-sve-builtins-functions.h
(multireg_permute::expand): Likewise.
(cherry picked from commit 1474a8eead4ab390e59ee014befa8c40346679f4)
---
gcc/config/aarch64/aarch64-builtins.cc | 4 ++--
gcc/config/aarch64/aarch64-simd.md | 4 ++--
gcc/config/aarch64/aarch64-sve-builtins-base.cc | 8 +++-----
gcc/config/aarch64/aarch64-sve-builtins-functions.h | 6 +++---
4 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
index 75d21de1401..b2e46a073a8 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -2510,12 +2510,12 @@ aarch64_expand_fcmla_builtin (tree exp, rtx target, int fcode)
rtx temp2 = gen_reg_rtx (DImode);
temp1 = simplify_gen_subreg (d->mode, op2, quadmode,
subreg_lowpart_offset (d->mode, quadmode));
- temp1 = simplify_gen_subreg (V2DImode, temp1, d->mode, 0);
+ temp1 = force_subreg (V2DImode, temp1, d->mode, 0);
if (BYTES_BIG_ENDIAN)
emit_insn (gen_aarch64_get_lanev2di (temp2, temp1, const0_rtx));
else
emit_insn (gen_aarch64_get_lanev2di (temp2, temp1, const1_rtx));
- op2 = simplify_gen_subreg (d->mode, temp2, GET_MODE (temp2), 0);
+ op2 = force_subreg (d->mode, temp2, GET_MODE (temp2), 0);
/* And recalculate the index. */
lane -= nunits / 4;
diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
index 33ab0741e87..5b9efe0b165 100644
--- a/gcc/config/aarch64/aarch64-simd.md
+++ b/gcc/config/aarch64/aarch64-simd.md
@@ -412,8 +412,8 @@
"TARGET_SIMD"
{
emit_insn (gen_bswap<mode>2 (operands[0], operands[1]));
- rtx op0_castsi2qi = simplify_gen_subreg(<VS:VSI2QI>mode, operands[0],
- <MODE>mode, 0);
+ rtx op0_castsi2qi = force_subreg (<VS:VSI2QI>mode, operands[0],
+ <MODE>mode, 0);
emit_insn (gen_aarch64_rbit<VS:vsi2qi> (op0_castsi2qi, op0_castsi2qi));
emit_insn (gen_clz<mode>2 (operands[0], operands[0]));
DONE;
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
index c9182594bc1..2c95da79572 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
@@ -1121,9 +1121,8 @@ public:
expand (function_expander &e) const override
{
/* Fold the access into a subreg rvalue. */
- return simplify_gen_subreg (e.vector_mode (0), e.args[0],
- GET_MODE (e.args[0]),
- INTVAL (e.args[1]) * BYTES_PER_SVE_VECTOR);
+ return force_subreg (e.vector_mode (0), e.args[0], GET_MODE (e.args[0]),
+ INTVAL (e.args[1]) * BYTES_PER_SVE_VECTOR);
}
};
@@ -1157,8 +1156,7 @@ public:
e.add_fixed_operand (indices);
return e.generate_insn (icode);
}
- return simplify_gen_subreg (e.result_mode (), e.args[0],
- GET_MODE (e.args[0]), 0);
+ return force_subreg (e.result_mode (), e.args[0], GET_MODE (e.args[0]), 0);
}
};
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-functions.h b/gcc/config/aarch64/aarch64-sve-builtins-functions.h
index 3b8e575e98e..7d06a57ff83 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-functions.h
+++ b/gcc/config/aarch64/aarch64-sve-builtins-functions.h
@@ -639,9 +639,9 @@ public:
{
machine_mode elt_mode = e.vector_mode (0);
rtx arg = e.args[0];
- e.args[0] = simplify_gen_subreg (elt_mode, arg, GET_MODE (arg), 0);
- e.args.safe_push (simplify_gen_subreg (elt_mode, arg, GET_MODE (arg),
- GET_MODE_SIZE (elt_mode)));
+ e.args[0] = force_subreg (elt_mode, arg, GET_MODE (arg), 0);
+ e.args.safe_push (force_subreg (elt_mode, arg, GET_MODE (arg),
+ GET_MODE_SIZE (elt_mode)));
}
return e.use_exact_insn (icode);
}
--
2.46.0
From 0ab664f41762803a72e5e99025b0512cad493985 Mon Sep 17 00:00:00 2001
From: Richard Sandiford <richard.sandiford@arm.com>
Date: Tue, 18 Jun 2024 12:22:31 +0100
Subject: [PATCH 3/4] aarch64: Add some uses of force_lowpart_subreg
This patch makes more use of force_lowpart_subreg, similarly
to the recent patch for force_subreg. The criteria were:
(1) The code is obviously specific to expand (where new pseudos
can be created).
(2) The value is obviously an rvalue rather than an lvalue.
gcc/
PR target/115464
* config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin)
(aarch64_expand_rwsr_builtin): Use force_lowpart_subreg instead of
simplify_gen_subreg and lowpart_subreg.
* config/aarch64/aarch64-sve-builtins-base.cc
(svset_neonq_impl::expand): Likewise.
* config/aarch64/aarch64-sve-builtins-sme.cc
(add_load_store_slice_operand): Likewise.
* config/aarch64/aarch64.cc (aarch64_sve_reinterpret): Likewise.
(aarch64_addti_scratch_regs, aarch64_subvti_scratch_regs): Likewise.
gcc/testsuite/
PR target/115464
* gcc.target/aarch64/sve/acle/general/pr115464_2.c: New test.
(cherry picked from commit 6bd4fbae45d11795a9a6f54b866308d4d7134def)
---
gcc/config/aarch64/aarch64-builtins.cc | 11 +++++------
gcc/config/aarch64/aarch64-sve-builtins-base.cc | 2 +-
gcc/config/aarch64/aarch64-sve-builtins-sme.cc | 2 +-
gcc/config/aarch64/aarch64.cc | 14 +++++---------
.../aarch64/sve/acle/general/pr115464_2.c | 11 +++++++++++
5 files changed, 23 insertions(+), 17 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c
diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
index b2e46a073a8..264b9560709 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -2497,8 +2497,7 @@ aarch64_expand_fcmla_builtin (tree exp, rtx target, int fcode)
int lane = INTVAL (lane_idx);
if (lane < nunits / 4)
- op2 = simplify_gen_subreg (d->mode, op2, quadmode,
- subreg_lowpart_offset (d->mode, quadmode));
+ op2 = force_lowpart_subreg (d->mode, op2, quadmode);
else
{
/* Select the upper 64 bits, either a V2SF or V4HF, this however
@@ -2508,8 +2507,7 @@ aarch64_expand_fcmla_builtin (tree exp, rtx target, int fcode)
gen_highpart_mode generates code that isn't optimal. */
rtx temp1 = gen_reg_rtx (d->mode);
rtx temp2 = gen_reg_rtx (DImode);
- temp1 = simplify_gen_subreg (d->mode, op2, quadmode,
- subreg_lowpart_offset (d->mode, quadmode));
+ temp1 = force_lowpart_subreg (d->mode, op2, quadmode);
temp1 = force_subreg (V2DImode, temp1, d->mode, 0);
if (BYTES_BIG_ENDIAN)
emit_insn (gen_aarch64_get_lanev2di (temp2, temp1, const0_rtx));
@@ -2754,7 +2752,7 @@ aarch64_expand_rwsr_builtin (tree exp, rtx target, int fcode)
case AARCH64_WSR64:
case AARCH64_WSRF64:
case AARCH64_WSR128:
- subreg = lowpart_subreg (sysreg_mode, input_val, mode);
+ subreg = force_lowpart_subreg (sysreg_mode, input_val, mode);
break;
case AARCH64_WSRF:
subreg = gen_lowpart_SUBREG (SImode, input_val);
@@ -2789,7 +2787,8 @@ aarch64_expand_rwsr_builtin (tree exp, rtx target, int fcode)
case AARCH64_RSR64:
case AARCH64_RSRF64:
case AARCH64_RSR128:
- return lowpart_subreg (TYPE_MODE (TREE_TYPE (exp)), target, sysreg_mode);
+ return force_lowpart_subreg (TYPE_MODE (TREE_TYPE (exp)),
+ target, sysreg_mode);
case AARCH64_RSRF:
subreg = gen_lowpart_SUBREG (SImode, target);
return gen_lowpart_SUBREG (SFmode, subreg);
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
index 2c95da79572..3c970e9c5f8 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
@@ -1183,7 +1183,7 @@ public:
if (BYTES_BIG_ENDIAN)
return e.use_exact_insn (code_for_aarch64_sve_set_neonq (mode));
insn_code icode = code_for_vcond_mask (mode, mode);
- e.args[1] = lowpart_subreg (mode, e.args[1], GET_MODE (e.args[1]));
+ e.args[1] = force_lowpart_subreg (mode, e.args[1], GET_MODE (e.args[1]));
e.add_output_operand (icode);
e.add_input_operand (icode, e.args[1]);
e.add_input_operand (icode, e.args[0]);
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sme.cc b/gcc/config/aarch64/aarch64-sve-builtins-sme.cc
index f4c91bcbb95..b66b35ae60b 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-sme.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins-sme.cc
@@ -112,7 +112,7 @@ add_load_store_slice_operand (function_expander &e, insn_code icode,
rtx base = e.args[argno];
if (e.mode_suffix_id == MODE_vnum)
{
- rtx vnum = lowpart_subreg (SImode, e.args[vnum_argno], DImode);
+ rtx vnum = force_lowpart_subreg (SImode, e.args[vnum_argno], DImode);
base = simplify_gen_binary (PLUS, SImode, base, vnum);
}
e.add_input_operand (icode, base);
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index 1beec94629d..a064aeecbc0 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -3284,7 +3284,7 @@ aarch64_sve_reinterpret (machine_mode mode, rtx x)
/* can_change_mode_class must only return true if subregs and svreinterprets
have the same semantics. */
if (targetm.can_change_mode_class (GET_MODE (x), mode, FP_REGS))
- return lowpart_subreg (mode, x, GET_MODE (x));
+ return force_lowpart_subreg (mode, x, GET_MODE (x));
rtx res = gen_reg_rtx (mode);
x = force_reg (GET_MODE (x), x);
@@ -26979,9 +26979,8 @@ aarch64_addti_scratch_regs (rtx op1, rtx op2, rtx *low_dest,
rtx *high_in2)
{
*low_dest = gen_reg_rtx (DImode);
- *low_in1 = gen_lowpart (DImode, op1);
- *low_in2 = simplify_gen_subreg (DImode, op2, TImode,
- subreg_lowpart_offset (DImode, TImode));
+ *low_in1 = force_lowpart_subreg (DImode, op1, TImode);
+ *low_in2 = force_lowpart_subreg (DImode, op2, TImode);
*high_dest = gen_reg_rtx (DImode);
*high_in1 = gen_highpart (DImode, op1);
*high_in2 = simplify_gen_subreg (DImode, op2, TImode,
@@ -27013,11 +27012,8 @@ aarch64_subvti_scratch_regs (rtx op1, rtx op2, rtx *low_dest,
rtx *high_in2)
{
*low_dest = gen_reg_rtx (DImode);
- *low_in1 = simplify_gen_subreg (DImode, op1, TImode,
- subreg_lowpart_offset (DImode, TImode));
-
- *low_in2 = simplify_gen_subreg (DImode, op2, TImode,
- subreg_lowpart_offset (DImode, TImode));
+ *low_in1 = force_lowpart_subreg (DImode, op1, TImode);
+ *low_in2 = force_lowpart_subreg (DImode, op2, TImode);
*high_dest = gen_reg_rtx (DImode);
*high_in1 = simplify_gen_subreg (DImode, op1, TImode,
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c
new file mode 100644
index 00000000000..f561c34f732
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c
@@ -0,0 +1,11 @@
+/* { dg-options "-O2" } */
+
+#include <arm_neon.h>
+#include <arm_sve.h>
+#include <arm_neon_sve_bridge.h>
+
+svuint16_t
+convolve4_4_x (uint16x8x2_t permute_tbl, svuint16_t a)
+{
+ return svset_neonq_u16 (a, permute_tbl.val[1]);
+}
--
2.46.0
From e21a377dea6edfaaa494f07974135e58ff66eef1 Mon Sep 17 00:00:00 2001
From: Richard Sandiford <richard.sandiford@arm.com>
Date: Tue, 18 Jun 2024 12:22:31 +0100
Subject: [PATCH 4/4] Add force_lowpart_subreg
optabs had a local function called lowpart_subreg_maybe_copy
that is very similar to the lowpart version of force_subreg.
This patch adds a force_lowpart_subreg wrapper around
force_subreg and uses it in optabs.cc.
The only difference between the old and new functions is that
the old one asserted success while the new one doesn't.
It's common not to assert elsewhere when taking subregs;
normally a null result is enough.
Later patches will make more use of the new function.
gcc/
* explow.h (force_lowpart_subreg): Declare.
* explow.cc (force_lowpart_subreg): New function.
* optabs.cc (lowpart_subreg_maybe_copy): Delete.
(expand_absneg_bit): Use force_lowpart_subreg instead of
lowpart_subreg_maybe_copy.
(expand_copysign_bit): Likewise.
(cherry picked from commit 5f40d1c0cc6ce91ef28d326b8707b3f05e6f239c)
---
gcc/explow.cc | 14 ++++++++++++++
gcc/explow.h | 1 +
gcc/optabs.cc | 24 ++----------------------
3 files changed, 17 insertions(+), 22 deletions(-)
diff --git a/gcc/explow.cc b/gcc/explow.cc
index f6843398c4b..5fdfa81f69b 100644
--- a/gcc/explow.cc
+++ b/gcc/explow.cc
@@ -760,6 +760,20 @@ force_subreg (machine_mode outermode, rtx op,
return simplify_gen_subreg (outermode, op, innermode, byte);
}
+/* Try to return an rvalue expression for the OUTERMODE lowpart of OP,
+ which has mode INNERMODE. Allow OP to be forced into a new register
+ if necessary.
+
+ Return null on failure. */
+
+rtx
+force_lowpart_subreg (machine_mode outermode, rtx op,
+ machine_mode innermode)
+{
+ auto byte = subreg_lowpart_offset (outermode, innermode);
+ return force_subreg (outermode, op, innermode, byte);
+}
+
/* If X is a memory ref, copy its contents to a new temp reg and return
that reg. Otherwise, return X. */
diff --git a/gcc/explow.h b/gcc/explow.h
index cbd1fcb7eb3..dd654649b06 100644
--- a/gcc/explow.h
+++ b/gcc/explow.h
@@ -43,6 +43,7 @@ extern rtx copy_to_suggested_reg (rtx, rtx, machine_mode);
extern rtx force_reg (machine_mode, rtx);
extern rtx force_subreg (machine_mode, rtx, machine_mode, poly_uint64);
+extern rtx force_lowpart_subreg (machine_mode, rtx, machine_mode);
/* Return given rtx, copied into a new temp reg if it was in memory. */
extern rtx force_not_mem (rtx);
diff --git a/gcc/optabs.cc b/gcc/optabs.cc
index ce91f94ed43..804c0dc73ba 100644
--- a/gcc/optabs.cc
+++ b/gcc/optabs.cc
@@ -3096,26 +3096,6 @@ expand_ffs (scalar_int_mode mode, rtx op0, rtx target)
return 0;
}
-/* Extract the OMODE lowpart from VAL, which has IMODE. Under certain
- conditions, VAL may already be a SUBREG against which we cannot generate
- a further SUBREG. In this case, we expect forcing the value into a
- register will work around the situation. */
-
-static rtx
-lowpart_subreg_maybe_copy (machine_mode omode, rtx val,
- machine_mode imode)
-{
- rtx ret;
- ret = lowpart_subreg (omode, val, imode);
- if (ret == NULL)
- {
- val = force_reg (imode, val);
- ret = lowpart_subreg (omode, val, imode);
- gcc_assert (ret != NULL);
- }
- return ret;
-}
-
/* Expand a floating point absolute value or negation operation via a
logical operation on the sign bit. */
@@ -3204,7 +3184,7 @@ expand_absneg_bit (enum rtx_code code, scalar_float_mode mode,
gen_lowpart (imode, op0),
immed_wide_int_const (mask, imode),
gen_lowpart (imode, target), 1, OPTAB_LIB_WIDEN);
- target = lowpart_subreg_maybe_copy (mode, temp, imode);
+ target = force_lowpart_subreg (mode, temp, imode);
set_dst_reg_note (get_last_insn (), REG_EQUAL,
gen_rtx_fmt_e (code, mode, copy_rtx (op0)),
@@ -4043,7 +4023,7 @@ expand_copysign_bit (scalar_float_mode mode, rtx op0, rtx op1, rtx target,
temp = expand_binop (imode, ior_optab, op0, op1,
gen_lowpart (imode, target), 1, OPTAB_LIB_WIDEN);
- target = lowpart_subreg_maybe_copy (mode, temp, imode);
+ target = force_lowpart_subreg (mode, temp, imode);
}
return target;
--
2.46.0
+8
View File
@@ -0,0 +1,8 @@
#!/bin/sh
cat 1>&2 <<EOF
*
* gcc-go is used in Alpine for bootstrapping Go.
* It is currently discouraged to use it for other purposes.
*
EOF
+56
View File
@@ -0,0 +1,56 @@
Patch-Source: https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=3fe5720430a9ba61ed7562aac4d758cc77d49a28
--
From 3fe5720430a9ba61ed7562aac4d758cc77d49a28 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Sat, 3 Aug 2024 20:37:54 +0200
Subject: [PATCH] libquadmath: Fix up libquadmath/math/sqrtq.c compilation in
some powerpc* configurations [PR116007]
My PR114623 change started using soft-fp.h and quad.h for the sqrtq implementation.
Unfortunately, that seems to fail building in some powerpc* configurations, where
TFmode isn't available.
quad.h has:
#ifndef TFtype
typedef float TFtype __attribute__ ((mode (TF)));
#endif
and uses TFtype. quad.h has:
/* Define the complex type corresponding to __float128
("_Complex __float128" is not allowed) */
#if (!defined(_ARCH_PPC)) || defined(__LONG_DOUBLE_IEEE128__)
typedef _Complex float __attribute__((mode(TC))) __complex128;
#else
typedef _Complex float __attribute__((mode(KC))) __complex128;
#endif
with the conditional and KCmode use added during porting of libquadmath
to powerpc*, so I've just defined TFtype for powerpc when __LONG_DOUBLE_IEEE128__
isn't defined; I could define it to float __attribute__ ((mode (KF))) but it
seemed easier to just define it to __float128 which should do the same thing.
2024-08-03 Jakub Jelinek <jakub@redhat.com>
PR target/116007
* math/sqrtq.c (TFtype): For PowerPC without __LONG_DOUBLE_IEEE128__
define to __float128 before including soft-fp.h and quad.h.
(cherry picked from commit 3ac02e67503ccffa3dfeeffc0a60fce6bdaca43b)
---
libquadmath/math/sqrtq.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/libquadmath/math/sqrtq.c b/libquadmath/math/sqrtq.c
index 8ca2828d42ce..a58998a06670 100644
--- a/libquadmath/math/sqrtq.c
+++ b/libquadmath/math/sqrtq.c
@@ -9,6 +9,9 @@
&& defined(FE_TOWARDZERO) \
&& defined(FE_INEXACT)
#define USE_SOFT_FP 1
+#if defined(_ARCH_PPC) && !defined(__LONG_DOUBLE_IEEE128__)
+#define TFtype __float128
+#endif
#include "../../libgcc/soft-fp/soft-fp.h"
#include "../../libgcc/soft-fp/quad.h"
#endif
--
2.43.5
@@ -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
+8 -9
View File
@@ -34,20 +34,19 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armv7
pkgrel=4
pkgrel=5
pkgdesc="Stage2 cross-compiler for armv7"
url="https://gcc.gnu.org"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-armv7 mpc1"
depends="binutils-armv7 mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armv7 binutils-armv7"
subpackages="g++-armv7:gpp libstdc++-dev-armv7:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
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}"
@@ -320,7 +319,7 @@ build() {
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
loongarch64-*-*-*) _arch_configure="--with-arch=loongarch64 --with-abi=lp64d";;
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
@@ -473,7 +472,9 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
local libgnat_static=
[ "$CHOST" = "$CTARGET" ] && libgnat_static="libgna*.a"
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "$libgnat_static" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
@@ -486,9 +487,6 @@ package() {
# 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
@@ -570,9 +568,10 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
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"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
@@ -0,0 +1,42 @@
From 47b4bd4deb2c356bb07d2a96f22127aefafec3a4 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Fri, 26 Jan 2018 20:32:50 +0000
Subject: [PATCH 01/35] posix_memalign
---
gcc/config/i386/pmm_malloc.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
index 3527283693b..c4071b64b53 100644
--- a/gcc/config/i386/pmm_malloc.h
+++ b/gcc/config/i386/pmm_malloc.h
@@ -27,12 +27,13 @@
#include <stdlib.h>
/* We can't depend on <stdlib.h> since the prototype of posix_memalign
- may not be visible. */
+ may not be visible and we can't pollute the namespace either. */
#ifndef __cplusplus
-extern int posix_memalign (void **, size_t, size_t);
+extern int _mm_posix_memalign (void **, size_t, size_t)
#else
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
+extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw ()
#endif
+__asm__("posix_memalign");
static __inline void *
_mm_malloc (size_t __size, size_t __alignment)
@@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment)
return malloc (__size);
if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4))
__alignment = sizeof (void *);
- if (posix_memalign (&__ptr, __alignment, __size) == 0)
+ if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0)
return __ptr;
else
return NULL;
--
2.41.0
@@ -0,0 +1,203 @@
From 4fa620d8c3e6730211bfb071eb4c817320491bd0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 08:59:00 +0400
Subject: [PATCH 02/35] gcc: poison-system-directories
Add /sw/include and /opt/include based on the original
zecke-no-host-includes.patch patch. The original patch checked for
/usr/include, /sw/include and /opt/include and then triggered a failure and
aborted.
Instead, we add the two missing items to the current scan. If the user
wants this to be a failure, they can add "-Werror=poison-system-directories".
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
---
gcc/common.opt | 4 ++++
gcc/config.in | 6 ++++++
gcc/configure | 16 ++++++++++++++++
gcc/configure.ac | 10 ++++++++++
gcc/doc/invoke.texi | 9 +++++++++
gcc/gcc.cc | 2 ++
gcc/incpath.cc | 21 +++++++++++++++++++++
7 files changed, 68 insertions(+)
diff --git a/gcc/common.opt b/gcc/common.opt
index 862c474d3c8..64c4277c991 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -711,6 +711,10 @@ Wreturn-local-addr
Common Var(warn_return_local_addr) Init(1) Warning
Warn about returning a pointer/reference to a local or temporary variable.
+Wpoison-system-directories
+Common Var(flag_poison_system_directories) Init(1) Warning
+Warn for -I and -L options using system directories if cross compiling
+
Wshadow
Common Var(warn_shadow) Warning
Warn when one variable shadows another. Same as -Wshadow=global.
diff --git a/gcc/config.in b/gcc/config.in
index 4cad077bfbe..0679fbbf4c6 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -236,6 +236,12 @@
#endif
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+#endif
+
+
/* Define if you want all operations on RTL (the basic data structure of the
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
index c7b26d1927d..8c46369f73f 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -1026,6 +1026,7 @@ enable_maintainer_mode
enable_link_mutex
enable_link_serialization
enable_version_specific_runtime_libs
+enable_poison_system_directories
enable_plugin
enable_host_shared
enable_libquadmath_support
@@ -1788,6 +1789,8 @@ Optional Features:
--enable-version-specific-runtime-libs
specify that runtime libraries should be installed
in a compiler-specific directory
+ --enable-poison-system-directories
+ warn for use of native system header directories
--enable-plugin enable plugin support
--enable-host-shared build host code as shared libraries
--disable-libquadmath-support
@@ -31753,6 +31756,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
fi
+# Check whether --enable-poison-system-directories was given.
+if test "${enable_poison_system_directories+set}" = set; then :
+ enableval=$enable_poison_system_directories;
+else
+ enable_poison_system_directories=no
+fi
+
+if test "x${enable_poison_system_directories}" = "xyes"; then
+
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
+
+fi
+
# Substitute configuration variables
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 09082e8ccae..5504bf6eb01 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -7292,6 +7292,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
+AC_ARG_ENABLE([poison-system-directories],
+ AS_HELP_STRING([--enable-poison-system-directories],
+ [warn for use of native system header directories]),,
+ [enable_poison_system_directories=no])
+if test "x${enable_poison_system_directories}" = "xyes"; then
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
+ [1],
+ [Define to warn for use of native system header directories])
+fi
+
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index af0e5933fdb..b6731a4673c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -384,6 +384,7 @@ Objective-C and Objective-C++ Dialects}.
-Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded
-Wparentheses -Wno-pedantic-ms-format
-Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast
+-Wno-poison-system-directories
-Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls
-Wrestrict -Wno-return-local-addr -Wreturn-type
-Wno-scalar-storage-order -Wsequence-point
@@ -8426,6 +8427,14 @@ made up of data only and thus requires no special treatment. But, for
most targets, it is made up of code and thus requires the stack to be
made executable in order for the program to work properly.
+@opindex Wno-poison-system-directories
+@item -Wno-poison-system-directories
+Do not warn for @option{-I} or @option{-L} options using system
+directories such as @file{/usr/include} when cross compiling. This
+option is intended for use in chroot environments when such
+directories contain the correct headers and libraries for the target
+system rather than the host.
+
@opindex Wfloat-equal
@opindex Wno-float-equal
@item -Wfloat-equal
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 16bb07f2cdc..33b56e721d2 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1177,6 +1187,8 @@ proper position among the other output files. */
"-z now " \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
+ %{Wno-poison-system-directories:--no-poison-system-directories} \
+ %{Werror=poison-system-directories:--error-poison-system-directories} \
%{static|no-pie|static-pie:} %@{L*} %(link_libgcc) " \
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
diff --git a/gcc/incpath.cc b/gcc/incpath.cc
index 4d44321183f..0f3f071b44c 100644
--- a/gcc/incpath.cc
+++ b/gcc/incpath.cc
@@ -26,6 +26,7 @@
#include "intl.h"
#include "incpath.h"
#include "cppdefault.h"
+#include "diagnostic-core.h"
/* Microsoft Windows does not natively support inodes.
VMS has non-numeric inodes. */
@@ -399,6 +400,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
}
fprintf (stderr, _("End of search list.\n"));
}
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ if (flag_poison_system_directories)
+ {
+ struct cpp_dir *p;
+
+ for (p = heads[INC_QUOTE]; p; p = p->next)
+ {
+ if ((!strncmp (p->name, "/usr/include", 12))
+ || (!strncmp (p->name, "/usr/local/include", 18))
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
+ || (!strncmp (p->name, "/sw/include", 11))
+ || (!strncmp (p->name, "/opt/include", 12)))
+ warning (OPT_Wpoison_system_directories,
+ "include location \"%s\" is unsafe for "
+ "cross-compilation",
+ p->name);
+ }
+ }
+#endif
}
/* Use given -I paths for #include "..." but not #include <...>, and
--
2.41.0
@@ -0,0 +1,44 @@
From ff4dd4ce33133e675b7bedc86b73357c04631cb9 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:45:49 +0000
Subject: [PATCH 03/35] specs: turn on -Wl,-z,now by default
Previously, we also used to turn on -z relro here, but we now build
binutils with --enable-relro, which is functionally equivalent.
Binutils does not appear to have a similar option for enabling -z
now by default.
---
gcc/doc/invoke.texi | 3 +++
gcc/gcc.cc | 1 +
2 files changed, 4 insertions(+)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index b6731a4673c..f393c7846c6 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -17961,6 +17961,9 @@ For example, @option{-Wl,-Map,output.map} passes @option{-Map output.map} to the
linker. When using the GNU linker, you can also get the same effect with
@option{-Wl,-Map=output.map}.
+NOTE: In Alpine Linux, for LDFLAGS, the option
+@option{-Wl,-z,now} is used. To disable, use @option{-Wl,-z,nonow}.
+
@opindex u
@item -u @var{symbol}
Pretend the symbol @var{symbol} is undefined, to force linking of
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 33b56e721d2..f82fae23c22 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1144,6 +1144,7 @@ proper position among the other output files. */
"%{flto|flto=*:%<fcompare-debug*} \
%{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC \
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
+ "-z now " \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
%{Wno-poison-system-directories:--no-poison-system-directories} \
--
2.41.0
@@ -0,0 +1,46 @@
From 1b315235433701e4a974da259b8d651169ddc7ac Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:46:22 +0000
Subject: [PATCH 04/35] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
ObjC, ObjC++, if the optimization level is > 0
---
gcc/c-family/c-cppbuiltin.cc | 4 ++++
gcc/doc/invoke.texi | 6 ++++++
2 files changed, 10 insertions(+)
diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
index 5d64625fcd7..868d69506e4 100644
--- a/gcc/c-family/c-cppbuiltin.cc
+++ b/gcc/c-family/c-cppbuiltin.cc
@@ -1546,6 +1546,10 @@ c_cpp_builtins (cpp_reader *pfile)
builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);
+ /* Fortify Source enabled by default for optimization levels > 0 */
+ if (optimize)
+ builtin_define_with_int_value ("_FORTIFY_SOURCE", 2);
+
/* Misc. */
if (flag_gnu89_inline)
cpp_define (pfile, "__GNUC_GNU_INLINE__");
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f393c7846c6..ef3c14a189e 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -11868,6 +11868,12 @@ also turns on the following optimization flags:
Please note the warning under @option{-fgcse} about
invoking @option{-O2} on programs that use computed gotos.
+NOTE: In Alpine Linux, @option{-D_FORTIFY_SOURCE=2} is
+set by default, and is activated when @option{-O} is set to 2 or higher.
+This enables additional compile-time and run-time checks for several libc
+functions. To disable, specify either @option{-U_FORTIFY_SOURCE} or
+@option{-D_FORTIFY_SOURCE=0}.
+
@opindex O3
@item -O3
Optimize yet more. @option{-O3} turns on all optimizations specified
--
2.41.0
@@ -0,0 +1,272 @@
From 67c0f5789630b27149f60ff831999ef7c1dba5d5 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:46:56 +0000
Subject: [PATCH 05/35] On linux targets pass --as-needed by default to the
linker, but always link the sanitizer libraries with --no-as-needed.
---
gcc/config/aarch64/aarch64-linux.h | 1 +
gcc/config/alpha/linux-elf.h | 2 +-
gcc/config/arm/linux-elf.h | 1 +
gcc/config/gnu-user.h | 6 +++---
gcc/config/i386/gnu-user.h | 2 +-
gcc/config/i386/gnu-user64.h | 1 +
gcc/config/ia64/linux.h | 2 +-
gcc/config/mips/gnu-user.h | 1 +
gcc/config/riscv/linux.h | 1 +
gcc/config/rs6000/linux64.h | 4 ++--
gcc/config/rs6000/sysv4.h | 2 +-
gcc/config/s390/linux.h | 2 +-
gcc/config/sparc/linux.h | 2 +-
gcc/gcc.cc | 28 ++++++++++++++++++++--------
14 files changed, 36 insertions(+), 19 deletions(-)
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
index 4277f03da2a..b131983a546 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -35,6 +35,7 @@
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
#define LINUX_TARGET_LINK_SPEC "%{h*} \
+ --as-needed \
%{static:-Bstatic} \
%{shared:-shared} \
%{symbolic:-Bsymbolic} \
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
index 03f783f2ad1..d946e700dda 100644
--- a/gcc/config/alpha/linux-elf.h
+++ b/gcc/config/alpha/linux-elf.h
@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. If not see
#define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER
-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
+#define LINK_SPEC "-m elf64alpha --as-needed %{G*} %{relax:-relax} \
%{O*:-O3} %{!O*:-O1} \
%{shared:-shared} \
%{!shared: \
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
index 7b7b7cbbe14..49c050c6f2c 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -70,6 +70,7 @@
%{rdynamic:-export-dynamic} \
%{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
-X \
+ --as-needed \
%{mbig-endian:-EB} %{mlittle-endian:-EL}" \
SUBTARGET_EXTRA_LINK_SPEC
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index eda8010b133..b26b17f2f2a 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \
"%{static-libasan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBHWASAN_EARLY_SPEC
#define LIBHWASAN_EARLY_SPEC "%{!shared:libhwasan_preinit%O%s} " \
"%{static-libhwasan:%{!shared:" \
@@ -146,12 +146,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \
"%{static-libtsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBLSAN_EARLY_SPEC
#define LIBLSAN_EARLY_SPEC "%{!shared:liblsan_preinit%O%s} " \
"%{static-liblsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#endif
#undef TARGET_F951_OPTIONS
diff --git a/gcc/config/i386/gnu-user.h b/gcc/config/i386/gnu-user.h
index a79b739089d..e0752673dff 100644
--- a/gcc/config/i386/gnu-user.h
+++ b/gcc/config/i386/gnu-user.h
@@ -68,7 +68,7 @@ along with GCC; see the file COPYING3. If not see
{ "link_emulation", GNU_USER_LINK_EMULATION },\
{ "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
+#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --as-needed %{shared:-shared} \
%{!shared: \
%{!static: \
%{!static-pie: \
diff --git a/gcc/config/i386/gnu-user64.h b/gcc/config/i386/gnu-user64.h
index 3b63b99acf6..759bf0db86f 100644
--- a/gcc/config/i386/gnu-user64.h
+++ b/gcc/config/i386/gnu-user64.h
@@ -56,6 +56,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
"%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \
%{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \
%{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \
+ --as-needed \
%{shared:-shared} \
%{!shared: \
%{!static: \
diff --git a/gcc/config/ia64/linux.h b/gcc/config/ia64/linux.h
index 5dfd428aa17..02656dad7fc 100644
--- a/gcc/config/ia64/linux.h
+++ b/gcc/config/ia64/linux.h
@@ -58,7 +58,7 @@ do { \
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
#undef LINK_SPEC
-#define LINK_SPEC "\
+#define LINK_SPEC " --as-needed \
%{shared:-shared} \
%{!shared: \
%{!static: \
diff --git a/gcc/config/mips/gnu-user.h b/gcc/config/mips/gnu-user.h
index a4e5380b589..3cc61bce69f 100644
--- a/gcc/config/mips/gnu-user.h
+++ b/gcc/config/mips/gnu-user.h
@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. If not see
#undef GNU_USER_TARGET_LINK_SPEC
#define GNU_USER_TARGET_LINK_SPEC "\
%{G*} %{EB} %{EL} %{mips*} %{shared} \
+ -as-needed \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
index 3e625e0f867..f8c2c351e5a 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
"%{mabi=ilp32:_ilp32}"
#define LINK_SPEC "\
+-as-needed \
-melf" XLEN_SPEC DEFAULT_ENDIAN_SPEC "riscv" LD_EMUL_SUFFIX " \
%{mno-relax:--no-relax} \
%{mbig-endian:-EB} \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 9e457033d11..08016bf224d 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -377,13 +377,13 @@ extern int dot_symbols;
" -m elf64ppc")
#endif
-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --as-needed %{!shared: %{!static: \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}} \
%(link_os_extra_spec32)"
-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --as-needed %{!shared: %{!static: \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index ae932fc22f0..c8ff0c6dc8e 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -780,7 +780,7 @@ GNU_USER_TARGET_CC1_SPEC
#define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
#endif
-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --as-needed %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
index 02aa1edaff8..64df5801134 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -82,7 +82,7 @@ along with GCC; see the file COPYING3. If not see
#undef LINK_SPEC
#define LINK_SPEC \
- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --as-needed \
%{shared:-shared} \
%{!shared: \
%{static:-static} \
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
index 0e33b3cac2c..c2f44546e62 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -81,7 +81,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
#undef LINK_SPEC
-#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
+#define LINK_SPEC "-m elf32_sparc --as-needed %{shared:-shared} \
%{!mno-relax:%{!r:-relax}} \
%{!shared: \
%{!static: \
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index f82fae23c22..da6417dd0d1 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -754,8 +754,11 @@ proper position among the other output files. */
#ifdef LIBASAN_EARLY_SPEC
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \
- "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
+ " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lasan " \
+ " %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -790,8 +793,11 @@ proper position among the other output files. */
#ifdef LIBTSAN_EARLY_SPEC
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \
- "} -ltsan %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
+ " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -ltsan " \
+ " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -808,8 +814,11 @@ proper position among the other output files. */
#ifdef LIBLSAN_EARLY_SPEC
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION \
- "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
+ " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -llsan " \
+ " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -824,8 +833,11 @@ proper position among the other output files. */
#define STATIC_LIBUBSAN_LIBS \
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
-#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \
- "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
+ " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lubsan " \
+ " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
--
2.41.0
@@ -0,0 +1,34 @@
From bb25e8489384504cd59e4a2538720863da1fb29c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:47:43 +0000
Subject: [PATCH 06/35] Enable -Wformat and -Wformat-security by default.
---
gcc/c-family/c.opt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index a75038930ae..b98726f33ed 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -704,7 +704,7 @@ Warn about function calls with format strings that write past the end
of the destination region. Same as -Wformat-overflow=1.
Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
Warn about possible security problems with format functions.
Wformat-signedness
@@ -725,7 +725,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++
Warn about zero-length formats.
Wformat=
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
Warn about printf/scanf/strftime/strfmon format string anomalies.
Wformat-overflow=
--
2.41.0
@@ -0,0 +1,25 @@
From 4a728ad48a7b437cc6f2697e26603bf648149f86 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:48:24 +0000
Subject: [PATCH 07/35] Enable -Wtrampolines by default.
---
gcc/common.opt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index 64c4277c991..c24839d32bc 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -803,7 +803,7 @@ Common Var(warn_system_headers) Warning
Do not suppress warnings from system headers.
Wtrampolines
-Common Var(warn_trampolines) Warning
+Common Var(warn_trampolines) Init(1) Warning
Warn whenever a trampoline is generated.
Wtrivial-auto-var-init
--
2.41.0
@@ -0,0 +1,53 @@
From 32f24560d0602f7735d5e9efd92fe3151bd72cea Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:49:40 +0000
Subject: [PATCH 08/35] Disable ssp on -nostdlib, -nodefaultlibs and
-ffreestanding Change the buffer size.
---
gcc/gcc.cc | 8 +++++++-
gcc/params.opt | 2 +-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index da6417dd0d1..b5a6f200635 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -983,6 +983,12 @@ proper position among the other output files. */
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
+#ifdef ENABLE_DEFAULT_SSP
+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
+#else
+#define NO_SSP_SPEC ""
+#endif
+
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
@@ -1282,7 +1288,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
%{fprofile-arcs|fprofile-generate*|coverage:\
%{!fprofile-update=single:\
diff --git a/gcc/params.opt b/gcc/params.opt
index 823cdb2ff85..5b096899b40 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -1006,7 +1006,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
The maximum number of SSA_NAME assignments to follow in determining a value.
-param=ssp-buffer-size=
-Common Joined UInteger Var(param_ssp_buffer_size) Init(8) IntegerRange(1, 65536) Param Optimization
+Common Joined UInteger Var(param_ssp_buffer_size) Init(4) IntegerRange(1, 65536) Param Optimization
The lower bound for a buffer to be considered for stack smashing protection.
-param=stack-clash-protection-guard-size=
--
2.41.0
@@ -0,0 +1,54 @@
From c7ec8da7280d7f97f5543eb9ddeca7600aafc43c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:50:33 +0000
Subject: [PATCH 09/35] Ensure that msgfmt doesn't encounter problems during
gcc bootstrapping.
Solves error messages like the following:
msgfmt: /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/./gcc/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libstdc++.so.6)
The libgcc_s.so used during build doesn't satisfy the needs of the
libstdc++.so that msgfmt is linked against. On the other hand, msgfmt
is used as a stand-alone application here, and what library it uses
behind the scenes is of no concern to the gcc build process.
Therefore, simply invoking it "as usual", i.e. without any special
library path, will make it work as expected here.
2011-09-19 Martin von Gagern
References:
https://bugs.gentoo.org/372377
https://bugs.gentoo.org/295480
---
libstdc++-v3/po/Makefile.am | 1 +
libstdc++-v3/po/Makefile.in | 1 +
2 files changed, 2 insertions(+)
diff --git a/libstdc++-v3/po/Makefile.am b/libstdc++-v3/po/Makefile.am
index 12d34910830..61b13762b71 100644
--- a/libstdc++-v3/po/Makefile.am
+++ b/libstdc++-v3/po/Makefile.am
@@ -38,6 +38,7 @@ MSGFMT = msgfmt
EXTRA_DIST = string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN)
.po.mo:
+ env --unset=LD_LIBRARY_PATH \
$(MSGFMT) -o $@ $<
all-local: all-local-$(USE_NLS)
diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
index 8e93445acd2..d6ff06e5ddb 100644
--- a/libstdc++-v3/po/Makefile.in
+++ b/libstdc++-v3/po/Makefile.in
@@ -561,6 +561,7 @@ uninstall-am:
.po.mo:
+ env --unset=LD_LIBRARY_PATH \
$(MSGFMT) -o $@ $<
all-local: all-local-$(USE_NLS)
--
2.41.0
@@ -0,0 +1,28 @@
From aaa029bcee68298695b7c4278c90b6bc320d098c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:52:07 +0000
Subject: [PATCH 10/35] Don't declare asprintf if defined as a macro.
---
include/libiberty.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/libiberty.h b/include/libiberty.h
index 1d5c779fcff..19e3cb1e31c 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -652,8 +652,11 @@ extern void *bsearch_r (const void *, const void *,
/* Like sprintf but provides a pointer to malloc'd storage, which must
be freed by the caller. */
+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */
+#ifndef asprintf
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
#endif
+#endif
/* Like asprintf but allocates memory without fail. This works like
xmalloc. */
--
2.41.0
@@ -0,0 +1,24 @@
From 65e01e749205c9af218b01233cebd0077538d0ee Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:53:00 +0000
Subject: [PATCH 11/35] libiberty: copy PIC objects during build process
---
libiberty/Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index 72608f3e4a7..58356884728 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -265,6 +265,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
$(AR) $(AR_FLAGS) $(TARGETLIB) \
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
$(RANLIB) $(TARGETLIB); \
+ cp $(TARGETLIB) ../ ; \
cd ..; \
else true; fi
--
2.41.0
+57
View File
@@ -0,0 +1,57 @@
From 453a815bf2844971a91eaef800af188d9e86b784 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 24 Oct 2015 20:09:53 +0000
Subject: [PATCH 12/35] libgcc_s
---
gcc/config/i386/i386-expand.cc | 4 ++--
libgcc/config/i386/cpuinfo.c | 6 +++---
libgcc/config/i386/t-linux | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index 0d817fc3f3b..2e99db00db9 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -12691,10 +12691,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
{
case IX86_BUILTIN_CPU_INIT:
{
- /* Make it call __cpu_indicator_init in libgcc. */
+ /* Make it call __cpu_indicator_init in libgcc.a. */
tree call_expr, fndecl, type;
type = build_function_type_list (integer_type_node, NULL_TREE);
- fndecl = build_fn_decl ("__cpu_indicator_init", type);
+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
call_expr = build_call_expr (fndecl, 0);
return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
}
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index 50b6d8248a2..724ced402a1 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -63,7 +63,7 @@ __cpu_indicator_init (void)
__cpu_features2);
}
-#if defined SHARED && defined USE_ELF_SYMVER
-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0");
-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0");
+#ifndef SHARED
+int __cpu_indicator_init_local (void)
+ __attribute__ ((weak, alias ("__cpu_indicator_init")));
#endif
diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
index 8506a635790..564296f788e 100644
--- a/libgcc/config/i386/t-linux
+++ b/libgcc/config/i386/t-linux
@@ -3,5 +3,5 @@
# t-slibgcc-elf-ver and t-linux
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS)
+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
--
2.41.0
+85
View File
@@ -0,0 +1,85 @@
From 7d7d12137c666761a8dd61179c9651b85dae9b41 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 7 Nov 2015 02:08:05 +0000
Subject: [PATCH 13/35] nopie
---
gcc/configure | 27 +++++++++++++++++++++++++++
gcc/configure.ac | 13 +++++++++++++
2 files changed, 40 insertions(+)
diff --git a/gcc/configure b/gcc/configure
index 23da7d55d..f38732bb2 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -34534,6 +34534,29 @@ rm -f core conftest.err conftest.$ac_objext \
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_no_pie" >&5
$as_echo "$gcc_cv_no_pie" >&6; }
+# Check if -nopie works.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -nopie option" >&5
+$as_echo_n "checking for -nopie option... " >&6; }
+if ${gcc_cv_nopie+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -nopie"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int main(void) {return 0;}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ gcc_cv_nopie=yes
+else
+ gcc_cv_nopie=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$saved_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_nopie" >&5
+$as_echo "$gcc_cv_nopie" >&6; }
if test x$enable_host_shared = xyes; then
PICFLAG=-fPIC
@@ -34551,6 +34574,8 @@ if test x$enable_host_pie = xyes; then
LD_PICFLAG=-pie
elif test x$gcc_cv_no_pie = xyes; then
LD_PICFLAG=-no-pie
+elif test x$gcc_cv_nopie = xyes; then
+ LD_PICFLAG=-nopie
else
LD_PICFLAG=
fi
diff --git a/gcc/configure.ac b/gcc/configure.ac
index d7cf0b92c..db2e2c802 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -7781,6 +7781,15 @@ AC_CACHE_CHECK([for -no-pie option],
[gcc_cv_no_pie=yes],
[gcc_cv_no_pie=no])
LDFLAGS="$saved_LDFLAGS"])
+# Check if -nopie works.
+AC_CACHE_CHECK([for -nopie option],
+ [gcc_cv_nopie],
+ [saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -nopie"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([int main(void) {return 0;}])],
+ [gcc_cv_nopie=yes],
+ [gcc_cv_nopie=no])
+ LDFLAGS="$saved_LDFLAGS"])
if test x$enable_host_shared = xyes; then
PICFLAG=-fPIC
@@ -7798,6 +7807,8 @@ if test x$enable_host_pie = xyes; then
LD_PICFLAG=-pie
elif test x$gcc_cv_no_pie = xyes; then
LD_PICFLAG=-no-pie
+elif test x$gcc_cv_nopie = xyes; then
+ LD_PICFLAG=-nopie
else
LD_PICFLAG=
fi
--
2.41.0
@@ -0,0 +1,42 @@
From dd5bb97c31a9f57034c70a7a18ba6e2e133084c7 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:59:16 +0000
Subject: [PATCH 14/35] ada: fix shared linking
---
gcc/ada/link.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/gcc/ada/link.c b/gcc/ada/link.c
index f2126441208..22cfa9c641f 100644
--- a/gcc/ada/link.c
+++ b/gcc/ada/link.c
@@ -107,9 +107,9 @@ const char *__gnat_default_libgcc_subdir = "lib";
|| defined (__NetBSD__) || defined (__OpenBSD__) \
|| defined (__QNX__)
const char *__gnat_object_file_option = "-Wl,@";
-const char *__gnat_run_path_option = "-Wl,-rpath,";
-char __gnat_shared_libgnat_default = STATIC;
-char __gnat_shared_libgcc_default = STATIC;
+const char *__gnat_run_path_option = "";
+char __gnat_shared_libgnat_default = SHARED;
+char __gnat_shared_libgcc_default = SHARED;
int __gnat_link_max = 8192;
unsigned char __gnat_objlist_file_supported = 1;
const char *__gnat_object_library_extension = ".a";
@@ -129,9 +129,9 @@ const char *__gnat_default_libgcc_subdir = "lib";
#elif defined (__linux__) || defined (__GLIBC__)
const char *__gnat_object_file_option = "-Wl,@";
-const char *__gnat_run_path_option = "-Wl,-rpath,";
-char __gnat_shared_libgnat_default = STATIC;
-char __gnat_shared_libgcc_default = STATIC;
+const char *__gnat_run_path_option = "";
+char __gnat_shared_libgnat_default = SHARED;
+char __gnat_shared_libgcc_default = SHARED;
int __gnat_link_max = 8192;
unsigned char __gnat_objlist_file_supported = 1;
const char *__gnat_object_library_extension = ".a";
--
2.41.0
@@ -0,0 +1,24 @@
From 6bb5b7d9161d05f31b001d8211a9c63caf63fd2f Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:59:43 +0000
Subject: [PATCH 15/35] build: fix CXXFLAGS_FOR_BUILD passing
---
Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.in b/Makefile.in
index 06a9398e172..6ff2b3f9925 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -178,6 +178,7 @@ BUILD_EXPORTS = \
# built for the build system to override those in BASE_FLAGS_TO_PASS.
EXTRA_BUILD_FLAGS = \
CFLAGS="$(CFLAGS_FOR_BUILD)" \
+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
LDFLAGS="$(LDFLAGS_FOR_BUILD)"
# This is the list of directories to built for the host system.
--
2.41.0
@@ -0,0 +1,25 @@
From f0d9e00cac06689f64b214de7aee80d7116ef084 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:01:06 +0000
Subject: [PATCH 16/35] add fortify-headers paths
---
gcc/config/linux.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
index e3aca79cccc..b3537b8fbeb 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -159,6 +159,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#ifdef NATIVE_SYSTEM_HEADER_DIR
#define INCLUDE_DEFAULTS_MUSL_NATIVE \
+ { NATIVE_SYSTEM_HEADER_DIR "/fortify", 0, 0, 0, 1, 2 }, \
+ { NATIVE_SYSTEM_HEADER_DIR "/fortify", 0, 0, 0, 1, 0 }, \
{ NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \
{ NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
#else
--
2.41.0
@@ -0,0 +1,31 @@
From 857db04f4f1a06e866551b4172fe8f27363f4a92 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Fri, 21 Aug 2020 07:03:00 +0000
Subject: [PATCH 17/35] Alpine musl package provides libssp_nonshared.a. We
link to it unconditionally, as otherwise we get link failures if some objects
are -fstack-protector built and final link happens with -fno-stack-protector.
This seems to be the common case when bootstrapping gcc, the piepatches do
not seem to fully fix the crosstoolchain and bootstrap sequence wrt.
stack-protector flag usage.
---
gcc/gcc.cc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index b5a6f200635..6cbb726599b 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -991,8 +991,7 @@ proper position among the other output files. */
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
-#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
- "|fstack-protector-strong|fstack-protector-explicit:}"
+#define LINK_SSP_SPEC "-lssp_nonshared"
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
--
2.41.0
@@ -0,0 +1,69 @@
From 5a8347e23ab13912b6edec2c6c6e3a101b017c79 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:03:42 +0000
Subject: [PATCH 18/35] DP: Use --push-state/--pop-state for gold as well when
linking libtsan.
---
gcc/gcc.cc | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 6cbb726599b..59390fd39d6 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -755,10 +755,10 @@ proper position among the other output files. */
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
- " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libasan:--push-state --no-as-needed}" \
" -lasan " \
" %{static-libasan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libasan:--pop-state}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -794,10 +794,10 @@ proper position among the other output files. */
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
- " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libtsan:--push-state --no-as-needed}" \
" -ltsan " \
" %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libtsan:--pop-state}" \
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -815,10 +815,10 @@ proper position among the other output files. */
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
- " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-liblsan:--push-state --no-as-needed}" \
" -llsan " \
" %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-liblsan:--pop-state}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -834,10 +834,10 @@ proper position among the other output files. */
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
- " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libubsan:--push-state --no-as-needed}" \
" -lubsan " \
" %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libubsan:--pop-state}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
--
2.41.0
@@ -0,0 +1,26 @@
From 41d00a2eb0754acf71958808bd17dbebeb517b84 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:12:55 +0000
Subject: [PATCH 19/35] aarch64: disable multilib support
multilib is unsupported on Alpine GCC
---
gcc/config/aarch64/t-aarch64-linux | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
index 57bf4100fcd..172894b57ef 100644
--- a/gcc/config/aarch64/t-aarch64-linux
+++ b/gcc/config/aarch64/t-aarch64-linux
@@ -22,7 +22,7 @@ LIB1ASMSRC = aarch64/lib1funcs.asm
LIB1ASMFUNCS = _aarch64_sync_cache_range
AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
+MULTILIB_OSDIRNAMES = mabi.lp64=../lib
MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
--
2.41.0
@@ -0,0 +1,25 @@
From 85b42bfbba71616831d14360b16998acb28790fd Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:13:59 +0000
Subject: [PATCH 20/35] s390x: disable multilib support
multilib is not supported on Alpine GCC at present
---
gcc/config/s390/t-linux64 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/config/s390/t-linux64 b/gcc/config/s390/t-linux64
index cc6ab367072..7f498ee1cdc 100644
--- a/gcc/config/s390/t-linux64
+++ b/gcc/config/s390/t-linux64
@@ -7,5 +7,5 @@
MULTILIB_OPTIONS = m64/m31
MULTILIB_DIRNAMES = 64 32
-MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu)
-MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu)
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
--
2.41.0
@@ -0,0 +1,81 @@
From 7b53df284242638e940c0155b6c21e88cea1f55b Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:14:33 +0000
Subject: [PATCH 21/35] ppc64[le]: disable multilib support
multilib is not presently supported on Alpine GCC
---
gcc/config/rs6000/t-linux | 6 ++++--
gcc/config/rs6000/t-linux64 | 4 ++--
gcc/config/rs6000/t-linux64bele | 4 ++--
gcc/config/rs6000/t-linux64lebe | 4 ++--
4 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/gcc/config/rs6000/t-linux b/gcc/config/rs6000/t-linux
index 4e371255533..128c75c7d39 100644
--- a/gcc/config/rs6000/t-linux
+++ b/gcc/config/rs6000/t-linux
@@ -2,7 +2,8 @@
# or soft-float.
ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float)))
ifneq (,$(findstring powerpc64,$(target)))
-MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
else
MULTIARCH_DIRNAME := $(call if_multiarch,powerpc-linux-gnu)
endif
@@ -10,7 +11,8 @@ ifneq (,$(findstring powerpcle,$(target)))
MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME))
endif
ifneq (,$(findstring powerpc64le,$(target)))
-MULTILIB_OSDIRNAMES := $(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
endif
endif
diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
index 01a94242308..b3a76379c03 100644
--- a/gcc/config/rs6000/t-linux64
+++ b/gcc/config/rs6000/t-linux64
@@ -28,8 +28,8 @@
MULTILIB_OPTIONS := m64/m32
MULTILIB_DIRNAMES := 64 32
MULTILIB_EXTRA_OPTS :=
-MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.cc
$(COMPILE) $<
diff --git a/gcc/config/rs6000/t-linux64bele b/gcc/config/rs6000/t-linux64bele
index 97c1ee6fb4d..08d72639cb6 100644
--- a/gcc/config/rs6000/t-linux64bele
+++ b/gcc/config/rs6000/t-linux64bele
@@ -2,6 +2,6 @@
MULTILIB_OPTIONS += mlittle
MULTILIB_DIRNAMES += le
-MULTILIB_OSDIRNAMES += $(subst =,.mlittle=,$(subst lible32,lib32le,$(subst lible64,lib64le,$(subst lib,lible,$(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))))))
-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mlittle%,$(MULTILIB_OSDIRNAMES)))
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
diff --git a/gcc/config/rs6000/t-linux64lebe b/gcc/config/rs6000/t-linux64lebe
index 2e63bdb9fc9..c6e1c5db65d 100644
--- a/gcc/config/rs6000/t-linux64lebe
+++ b/gcc/config/rs6000/t-linux64lebe
@@ -2,6 +2,6 @@
MULTILIB_OPTIONS += mbig
MULTILIB_DIRNAMES += be
-MULTILIB_OSDIRNAMES += $(subst =,.mbig=,$(subst libbe32,lib32be,$(subst libbe64,lib64be,$(subst lib,libbe,$(subst le-linux,-linux,$(MULTILIB_OSDIRNAMES))))))
-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mbig%,$(MULTILIB_OSDIRNAMES)))
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
--
2.41.0
@@ -0,0 +1,26 @@
From 96e7e1e9a899d9bb5fcbdf788bd529d0390c626f Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:14:54 +0000
Subject: [PATCH 22/35] x86_64: disable multilib support
multilib is not presently supported on Alpine GCC
---
gcc/config/i386/t-linux64 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
index 138956b0962..bc03dab874f 100644
--- a/gcc/config/i386/t-linux64
+++ b/gcc/config/i386/t-linux64
@@ -33,6 +33,6 @@
comma=,
MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
--
2.41.0
@@ -0,0 +1,76 @@
From b26224acf342eacb33491f6ea0da1faf73d35715 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 3 Jan 2022 07:14:48 +0100
Subject: [PATCH 23/35] riscv: disable multilib support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From the musl wiki [1]:
musl does not support sharing an include directory between archs
[…], and thus is not compatible with GCC-style multilib. It is
recommended that distributions build GCC with multilib disabled,
and use library directories named lib, not lib64 or lib32.
For this reason, we patch existing GCC configuration files (gcc/config)
to pin MULTILIB_OSDIRNAMES to lib, there is also a corresponding GCC
upstream bug about this issue [2]. Avoiding the use of lib64 and lib32
directories is a bit more difficult on the RISC-V architecture. This is
due to the fact that the default RISC-V configuration does not only use
the lib64 and lib32 directories but also subdirectories within these
directories for different RISC-V ABIs (e.g. lp64d, lp64, …) [3].
This patch aligns the RISC-V configuration with other architectures by
pinning MULTILIB_OSDIRNAMES to lib for rv64gc (our default RISC-V
-march). Furthermore, this patch removes the ABI-specific startfile
prefix spec. Since both of these impact the default LIBRARY_PATH [4]
this patch thereby aligns the default RISC-V LIBRARY_PATH with that from
other Alpine architectures and thereby fixes #13369 [5].
Incidentally, this also fixes gccgo on riscv64, as without this patch
gccgo is otherwise not able to find the *.gox files for the Go standard
library.
[1]: https://wiki.musl-libc.org/guidelines-for-distributions.html#Multilib/multi_arch
[2]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90077
[3]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103889#c14
[4]: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/gcc.c;h=d4c8746b0aa322286decf92aa72a12f0a393b655;hb=HEAD#l9122
[5]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13369
---
gcc/config/riscv/linux.h | 8 --------
gcc/config/riscv/t-linux | 7 +++++--
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
index f8c2c351e5a..8d9881eadeb 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -60,11 +60,3 @@ along with GCC; see the file COPYING3. If not see
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
%{static:-static} %{static-pie:-static -pie --no-dynamic-linker -z text}}"
-
-#define STARTFILE_PREFIX_SPEC \
- "/lib" XLEN_SPEC "/" ABI_SPEC "/ " \
- "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ " \
- "/lib/ " \
- "/usr/lib/ "
-
-#define RISCV_USE_CUSTOMISED_MULTI_LIB select_by_abi
diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux
index 216d2776a18..1a8a863853e 100644
--- a/gcc/config/riscv/t-linux
+++ b/gcc/config/riscv/t-linux
@@ -1,3 +1,6 @@
-# Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/
-MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES)))
+MULTILIB_OPTIONS := march=rv64gc
+MULTILIB_DIRNAMES := rv64gc
+
+MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib,$(MULTILIB_DIRNAMES)))
MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
+MULTILIB_MATCHES := march?rv64gc=march?rv64imafdc
--
2.41.0
@@ -0,0 +1,51 @@
From a72e0613f79f6b6867819317accb7a714031a08c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:05:41 +0000
Subject: [PATCH 24/35] always build libgcc_eh.a
highly inspired by:
http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch
---
libgcc/Makefile.in | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
index 6c4dc79ab71..023cede18a7 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -960,8 +960,9 @@ ifneq ($(LIBUNWIND),)
all: libunwind.a
endif
+all: libgcc_eh.a
ifeq ($(enable_shared),yes)
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
+all: libgcc_s$(SHLIB_EXT)
ifneq ($(LIBUNWIND),)
all: libunwind$(SHLIB_EXT)
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
@@ -1163,10 +1164,6 @@ install-libunwind:
install-shared:
$(mkinstalldirs) $(DESTDIR)$(inst_libdir)
- $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
- chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
- $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
-
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
@shlib_base_name@,libgcc_s,$(subst \
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
@@ -1183,6 +1180,10 @@ ifeq ($(enable_gcov),yes)
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a
endif
+ $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+
parts="$(INSTALL_PARTS)"; \
for file in $$parts; do \
rm -f $(DESTDIR)$(inst_libdir)/$$file; \
--
2.41.0
@@ -0,0 +1,135 @@
From 3ee8cbc1cad261b30d4a7a66d31496d5f243ce2f Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:06:30 +0000
Subject: [PATCH 25/35] ada: libgnarl compatibility for musl
---
gcc/ada/libgnarl/s-osinte__linux.ads | 11 ------
gcc/ada/libgnarl/s-taprop__linux.adb | 53 ++--------------------------
2 files changed, 3 insertions(+), 61 deletions(-)
diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__linux.ads
index a5e645d334d..32165347071 100644
--- a/gcc/ada/libgnarl/s-osinte__linux.ads
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads
@@ -403,12 +403,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
- function pthread_rwlockattr_setkind_np
- (attr : access pthread_rwlockattr_t;
- pref : int) return int;
- pragma Import
- (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
-
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
@@ -470,11 +464,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
- function pthread_mutexattr_setprioceiling
- (attr : access pthread_mutexattr_t;
- prioceiling : int) return int;
- pragma Import (C, pthread_mutexattr_setprioceiling);
-
type struct_sched_param is record
sched_priority : int; -- scheduling priority
end record;
diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb b/gcc/ada/libgnarl/s-taprop__linux.adb
index 821ceef30e4..ae95b58e01e 100644
--- a/gcc/ada/libgnarl/s-taprop__linux.adb
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb
@@ -198,9 +198,6 @@ package body System.Task_Primitives.Operations is
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
- function GNAT_has_cap_sys_nice return C.int;
- pragma Import
- (C, GNAT_has_cap_sys_nice, "__gnat_has_cap_sys_nice");
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
@@ -210,38 +207,6 @@ package body System.Task_Primitives.Operations is
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
- function Get_Ceiling_Support return Boolean;
- -- Get the value of the Ceiling_Support constant (see below).
- -- Note well: If this function or related code is modified, it should be
- -- tested by hand, because automated testing doesn't exercise it.
-
- -------------------------
- -- Get_Ceiling_Support --
- -------------------------
-
- function Get_Ceiling_Support return Boolean is
- Ceiling_Support : Boolean := False;
- begin
- if Locking_Policy /= 'C' then
- return False;
- end if;
-
- declare
- function geteuid return Integer;
- pragma Import (C, geteuid, "geteuid");
- Superuser : constant Boolean := geteuid = 0;
- Has_Cap : constant C.int := GNAT_has_cap_sys_nice;
- pragma Assert (Has_Cap in 0 | 1);
- begin
- Ceiling_Support := Superuser or else Has_Cap = 1;
- end;
-
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
- pragma Warnings (Off, "non-preelaborable call not allowed*");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
- pragma Warnings (On, "non-preelaborable call not allowed*");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
@@ -344,7 +309,9 @@ package body System.Task_Primitives.Operations is
-- Init_Mutex --
----------------
+ pragma Warnings (Off, "formal parameter * is not referenced");
function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return C.int is
+ pragma Warnings (On, "formal parameter * is not referenced");
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
@@ -356,16 +323,7 @@ package body System.Task_Primitives.Operations is
return Result;
end if;
- if Ceiling_Support then
- Result := pthread_mutexattr_setprotocol
- (Mutex_Attr'Access, PTHREAD_PRIO_PROTECT);
- pragma Assert (Result = 0);
-
- Result := pthread_mutexattr_setprioceiling
- (Mutex_Attr'Access, Prio_To_Linux_Prio (Prio));
- pragma Assert (Result = 0);
-
- elsif Locking_Policy = 'I' then
+ if Locking_Policy = 'I' then
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
@@ -405,11 +363,6 @@ package body System.Task_Primitives.Operations is
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
- Result := pthread_rwlockattr_setkind_np
- (RWlock_Attr'Access,
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
- pragma Assert (Result = 0);
-
Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access);
pragma Assert (Result in 0 | ENOMEM);
--
2.41.0
@@ -0,0 +1,247 @@
From 3df4788c79c7429b196c7b284af2b4cf9a4b4f8d Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:07:48 +0000
Subject: [PATCH 26/35] ada: musl support fixes
---
gcc/ada/Makefile.rtl | 16 ++++++++--------
gcc/ada/adaint.c | 34 +++++++++++++++++++---------------
gcc/ada/adaint.h | 10 ++++------
gcc/ada/terminals.c | 8 ++++----
4 files changed, 35 insertions(+), 33 deletions(-)
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index 32cbdb692..463028fbe 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -1558,7 +1558,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
s-intman.adb<libgnarl/s-intman__posix.adb \
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
a-exetim.adb<libgnarl/a-exetim__posix.adb \
a-exetim.ads<libgnarl/a-exetim__default.ads \
s-linux.ads<libgnarl/s-linux.ads \
@@ -2144,7 +2144,7 @@ ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),)
g-sercom.adb<libgnat/g-sercom__linux.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
$(GNATRTL_128BIT_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-loongarch.ads
@@ -2232,7 +2232,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-ppc.ads
@@ -2267,7 +2267,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
endif
# ARM linux, GNU eabi
-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
+ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<libgnarl/a-intnam__linux.ads \
s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
@@ -2311,7 +2311,7 @@ ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
s-intman.adb<libgnarl/s-intman__posix.adb \
s-linux.ads<libgnarl/s-linux.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
s-mudido.adb<libgnarl/s-mudido__affinity.adb \
s-osinte.ads<libgnarl/s-osinte__linux.ads \
s-osinte.adb<libgnarl/s-osinte__posix.adb \
@@ -2488,7 +2488,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
$(GNATRTL_128BIT_PAIRS) \
@@ -2592,7 +2592,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
$(SIMD_PATH_TARGET_PAIRS) \
@@ -2637,7 +2637,7 @@ ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
$(SIMD_PATH_TARGET_PAIRS) \
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 74aa3c412..ef6118f37 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -94,6 +94,11 @@
#include <sys/param.h>
#include <sys/pstat.h>
#endif
+
+#if defined (linux) || defined(__linux__)
+#define _GNU_SOURCE 1
+#include <sched.h>
+#endif
#ifdef __PikeOS__
#define __BSD_VISIBLE 1
@@ -3465,7 +3470,6 @@ __gnat_lwp_self (void)
#endif
#if defined (__linux__)
-#include <sched.h>
/* glibc versions earlier than 2.7 do not define the routines to handle
dynamically allocated CPU sets. For these targets, we use the static
@@ -3475,7 +3479,7 @@ __gnat_lwp_self (void)
/* Dynamic cpu sets */
-cpu_set_t *
+void *
__gnat_cpu_alloc (size_t count)
{
return CPU_ALLOC (count);
@@ -3488,33 +3492,33 @@ __gnat_cpu_alloc_size (size_t count)
}
void
-__gnat_cpu_free (cpu_set_t *set)
+__gnat_cpu_free (void *set)
{
- CPU_FREE (set);
+ CPU_FREE ((cpu_set_t *) set);
}
void
-__gnat_cpu_zero (size_t count, cpu_set_t *set)
+__gnat_cpu_zero (size_t count, void *set)
{
- CPU_ZERO_S (count, set);
+ CPU_ZERO_S (count, (cpu_set_t *) set);
}
void
-__gnat_cpu_set (int cpu, size_t count, cpu_set_t *set)
+__gnat_cpu_set (int cpu, size_t count, void *set)
{
/* Ada handles CPU numbers starting from 1, while C identifies the first
CPU by a 0, so we need to adjust. */
- CPU_SET_S (cpu - 1, count, set);
+ CPU_SET_S (cpu - 1, count, (cpu_set_t *) set);
}
#else /* !CPU_ALLOC */
/* Static cpu sets */
-cpu_set_t *
+void *
__gnat_cpu_alloc (size_t count ATTRIBUTE_UNUSED)
{
- return (cpu_set_t *) xmalloc (sizeof (cpu_set_t));
+ return xmalloc (sizeof (cpu_set_t));
}
size_t
@@ -3524,23 +3528,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
}
void
-__gnat_cpu_free (cpu_set_t *set)
+__gnat_cpu_free (void *set)
{
free (set);
}
void
-__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
+__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, void *set)
{
- CPU_ZERO (set);
+ CPU_ZERO ((cpu_set_t *) set);
}
void
-__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
+__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, void *set)
{
/* Ada handles CPU numbers starting from 1, while C identifies the first
CPU by a 0, so we need to adjust. */
- CPU_SET (cpu - 1, set);
+ CPU_SET (cpu - 1, (cpu_set_t *) set);
}
#endif /* !CPU_ALLOC */
#endif /* __linux__ */
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
index 0cbfd0e15..f97ed905b 100644
--- a/gcc/ada/adaint.h
+++ b/gcc/ada/adaint.h
@@ -319,13 +319,11 @@ extern void *__gnat_lwp_self (void);
/* Routines for interface to required CPU set primitives */
-#include <sched.h>
-
-extern cpu_set_t *__gnat_cpu_alloc (size_t);
+extern void * __gnat_cpu_alloc (size_t);
extern size_t __gnat_cpu_alloc_size (size_t);
-extern void __gnat_cpu_free (cpu_set_t *);
-extern void __gnat_cpu_zero (size_t, cpu_set_t *);
-extern void __gnat_cpu_set (int, size_t, cpu_set_t *);
+extern void __gnat_cpu_free (void *);
+extern void __gnat_cpu_zero (size_t, void *);
+extern void __gnat_cpu_set (int, size_t, void *);
#endif
#if defined (_WIN32)
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
index 05af82c27..626ac35bc 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
@@ -1134,7 +1134,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
/* POSIX does not specify how to open the master side of a terminal.Several
methods are available (system specific):
1- using a cloning device (USE_CLONE_DEVICE)
- 2- getpt (USE_GETPT)
+ 2- posix_openpt (USE_POSIX_OPENPT)
3- openpty (USE_OPENPTY)
When using the cloning device method, the macro USE_CLONE_DEVICE should
@@ -1148,7 +1148,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
#if defined (__APPLE__) || defined (BSD)
#define USE_OPENPTY
#elif defined (__linux__)
-#define USE_GETPT
+#define USE_POSIX_OPENPT
#elif defined (__sun__)
#define USE_CLONE_DEVICE "/dev/ptmx"
#elif defined (_AIX)
@@ -1197,8 +1197,8 @@ allocate_pty_desc (pty_desc **desc) {
int master_fd = -1;
char *slave_name = NULL;
-#ifdef USE_GETPT
- master_fd = getpt ();
+#if defined(USE_POSIX_OPENPT)
+ master_fd = posix_openpt(O_RDWR | O_NOCTTY);
#elif defined (USE_OPENPTY)
status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
#elif defined (USE_CLONE_DEVICE)
@@ -0,0 +1,256 @@
From 7b50823d8a4131e5a55d2499a0f5a52b3d91eed2 Mon Sep 17 00:00:00 2001
From: Drew DeVault <sir@cmpwn.com>
Date: Wed, 9 Dec 2020 07:42:06 +0000
Subject: [PATCH 27/35] configure: Add --enable-autolink-libatomic, use in
LINK_GCC_C_SEQUENCE_SPEC [PR81358]
This fixes issues with RISC-V.
---
Makefile.in | 1 +
gcc/config.in | 6 ++++++
gcc/config/gnu-user.h | 12 +++++++++++-
gcc/configure | 31 ++++++++++++++++++++++++++++++-
gcc/configure.ac | 21 +++++++++++++++++++++
gcc/doc/install.texi | 8 ++++++++
gcc/doc/tm.texi | 8 +++++++-
gcc/doc/tm.texi.in | 8 +++++++-
gcc/gcc.cc | 12 +++++++++++-
9 files changed, 102 insertions(+), 5 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 6ff2b3f9925..394b105b271 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -235,6 +235,7 @@ HOST_EXPORTS = \
RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)"; export RANLIB_FOR_TARGET; \
READELF_FOR_TARGET="$(READELF_FOR_TARGET)"; export READELF_FOR_TARGET; \
TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \
+ TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \
HOST_LIBS="$(STAGE1_LIBS)"; export HOST_LIBS; \
GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \
GMPINC="$(HOST_GMPINC)"; export GMPINC; \
diff --git a/gcc/config.in b/gcc/config.in
index 0679fbbf4c6..ee81139b385 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -118,6 +118,12 @@
#endif
+/* Define if libatomic should always be linked. */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_AUTOLINK_LIBATOMIC
+#endif
+
+
/* Define to 1 to specify that we are using the BID decimal floating point
format instead of DPD */
#ifndef USED_FOR_TARGET
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index b26b17f2f2a..3f64ea46180 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -109,8 +109,18 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
#endif
+#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC)
+# ifdef LD_AS_NEEDED_OPTION
+# define LINK_LIBATOMIC_SPEC LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION
+# else
+# define LINK_LIBATOMIC_SPEC "-latomic"
+# endif
+#elif !defined(LINK_LIBATOMIC_SPEC)
+# define LINK_LIBATOMIC_SPEC ""
+#endif
+
#define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \
- "%{static|static-pie:--start-group} %G %{!nolibc:%L} \
+ "%{static|static-pie:--start-group} %G %{!nolibc:" LINK_LIBATOMIC_SPEC " %L} \
%{static|static-pie:--end-group}%{!static:%{!static-pie:%G}}"
#undef LINK_GCC_C_SEQUENCE_SPEC
diff --git a/gcc/configure b/gcc/configure
index e59cbee1767..787c35d4e25 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -984,6 +984,7 @@ with_changes_root_url
enable_languages
with_multilib_list
with_multilib_generator
+enable_autolink_libatomic
with_zstd
with_zstd_include
with_zstd_lib
@@ -1713,6 +1714,9 @@ Optional Features:
--disable-shared don't provide a shared libgcc
--disable-gcov don't provide libgcov and related host tools
--enable-languages=LIST specify which front-ends to build
+ --enable-autolink-libatomic
+ enable automatic linking of libatomic (ignored if
+ not built)
--disable-rpath do not hardcode runtime library paths
--enable-sjlj-exceptions
arrange to use setjmp/longjmp exception handling
@@ -8329,7 +8333,6 @@ else
fi
-
# Check whether --with-multilib-generator was given.
if test "${with_multilib_generator+set}" = set; then :
withval=$with_multilib_generator; :
@@ -8337,6 +8340,32 @@ else
with_multilib_generator=default
fi
+# If libatomic is available, whether it should be linked automatically
+# Check whether --enable-autolink-libatomic was given.
+if test "${enable_autolink_libatomic+set}" = set; then :
+ enableval=$enable_autolink_libatomic;
+ case $enable_autolink_libatomic in
+ yes | no) ;;
+ *) as_fn_error $? "'$enable_autolink_libatomic' is an invalid value for
+--enable-autolink-libatomic. Valid choices are 'yes' and 'no'." "$LINENO" 5 ;;
+ esac
+
+else
+ enable_autolink_libatomic=''
+fi
+
+
+if test x$enable_autolink_libatomic = xyes; then
+ if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then
+
+$as_echo "#define ENABLE_AUTOLINK_LIBATOMIC 1" >>confdefs.h
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libatomic is not build for this target, --enable-autolink-libatomic ignored" >&5
+$as_echo "$as_me: WARNING: libatomic is not build for this target, --enable-autolink-libatomic ignored" >&2;}
+ fi
+fi
+
# -------------------------
# Checks for other programs
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 57268319de1..56bcaa87620 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1199,6 +1199,27 @@ AC_ARG_WITH(multilib-generator,
:,
with_multilib_generator=default)
+# If libatomic is available, whether it should be linked automatically
+AC_ARG_ENABLE(autolink-libatomic,
+[AS_HELP_STRING([--enable-autolink-libatomic],
+ [enable automatic linking of libatomic (ignored if not built)])],
+[
+ case $enable_autolink_libatomic in
+ yes | no) ;;
+ *) AC_MSG_ERROR(['$enable_autolink_libatomic' is an invalid value for
+--enable-autolink-libatomic. Valid choices are 'yes' and 'no'.]) ;;
+ esac
+], [enable_autolink_libatomic=''])
+
+if test x$enable_autolink_libatomic = xyes; then
+ if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then
+ AC_DEFINE(ENABLE_AUTOLINK_LIBATOMIC, 1,
+ [Define if libatomic should always be linked.])
+ else
+ AC_MSG_WARN([libatomic is not build for this target, --enable-autolink-libatomic ignored])
+ fi
+fi
+
# -------------------------
# Checks for other programs
# -------------------------
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index b30d3691fe6..ccc8e5dbb00 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -2377,6 +2377,14 @@ files, but these changed header paths may conflict with some compilation
environments. Enabled by default, and may be disabled using
@option{--disable-canonical-system-headers}.
+@item --enable-autolink-libatomic
+@itemx --disable-autolink-libatomic
+Tell GCC that it should automatically link libatomic; if supported by
+the linker, the file is only linked as needed. This flag is ignored
+when libatomic is not built. Note that this conigure flag is in particular
+useful when building an offloading-target compiler; as for those, a
+user had to specify @code{-foffload=target=-latomic} otherwise.
+
@item --with-glibc-version=@var{major}.@var{minor}
Tell GCC that when the GNU C Library (glibc) is used on the target it
will be version @var{major}.@var{minor} or later. Normally this can
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index a660e33739b..6183c407a2b 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -381,7 +381,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
@defmac LINK_GCC_C_SEQUENCE_SPEC
The sequence in which libgcc and libc are specified to the linker.
-By default this is @code{%G %L %G}.
+By default this is @code{%G LINK_LIBATOMIC_SPEC %L %G}.
+@end defmac
+
+@defmac LINK_LIBATOMIC_SPEC
+This macro is used in the default @code{LINK_GCC_C_SEQUENCE_SPEC} to link
+libatomic. By default, it is unset unless @code{ENABLE_AUTOLINK_LIBATOMIC}
+is set.
@end defmac
@defmac POST_LINK_SPEC
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in
index f7ab5d48a63..281540aba68 100644
--- a/gcc/doc/tm.texi.in
+++ b/gcc/doc/tm.texi.in
@@ -381,7 +381,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
@defmac LINK_GCC_C_SEQUENCE_SPEC
The sequence in which libgcc and libc are specified to the linker.
-By default this is @code{%G %L %G}.
+By default this is @code{%G LINK_LIBATOMIC_SPEC %L %G}.
+@end defmac
+
+@defmac LINK_LIBATOMIC_SPEC
+This macro is used in the default @code{LINK_GCC_C_SEQUENCE_SPEC} to link
+libatomic. By default, it is unset unless @code{ENABLE_AUTOLINK_LIBATOMIC}
+is set.
@end defmac
@defmac POST_LINK_SPEC
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 59390fd39d6..dae1dd4cf79 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -974,13 +974,23 @@ proper position among the other output files. */
# define ASM_DEBUG_OPTION_SPEC ""
#endif
+#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC)
+# ifdef LD_AS_NEEDED_OPTION
+# define LINK_LIBATOMIC_SPEC LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION
+# else
+# define LINK_LIBATOMIC_SPEC "-latomic"
+# endif
+#elif !defined(LINK_LIBATOMIC_SPEC)
+# define LINK_LIBATOMIC_SPEC ""
+#endif
+
/* Here is the spec for running the linker, after compiling all files. */
/* This is overridable by the target in case they need to specify the
-lgcc and -lc order specially, yet not require them to override all
of LINK_COMMAND_SPEC. */
#ifndef LINK_GCC_C_SEQUENCE_SPEC
-#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
+#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:" LINK_LIBATOMIC_SPEC " %L %G}"
#endif
#ifdef ENABLE_DEFAULT_SSP
--
2.41.0
@@ -0,0 +1,57 @@
From 5bbbd320e54ab5341cfba83e8af98685131caba1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 29 Aug 2021 12:23:34 +0200
Subject: [PATCH 28/35] configure: fix detection of atomic builtins in
libatomic configure script
Alpine's --enable-autolink-libatomic (which is enabled for riscv64 by
default) causes the libatomic configure script to incorrectly detect
which builtins are available on riscv64. This then causes incorrect code
generation for libatomic since it assumes compiler builtins to be
available which are not actually available on riscv64.
This commit fixes this issue by disabling linking of libatomic configure
test code entirely, thereby preventing linking against libatomic.
See:
* https://gitlab.alpinelinux.org/alpine/aports/-/issues/12948
* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101996#c6
---
libatomic/configure.tgt | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
index a92ae9e8309..90b579ca4d8 100644
--- a/libatomic/configure.tgt
+++ b/libatomic/configure.tgt
@@ -30,6 +30,26 @@
# on ${target_cpu}. For example to allow proper use of multilibs.
configure_tgt_pre_target_cpu_XCFLAGS="${XCFLAGS}"
+# The libatomic configure script performs several checks to determine
+# whether builtins for atomic operations are available. When compiling
+# with --enable-autolink-libatomic the test code compiled by the
+# configure script is also linked against libatomic. This causes it
+# to think that builtins are available, even if there are not, since
+# the tested symbols are provided by libatomic.
+#
+# This is a hack to ensure that we don't link against libatomic by not
+# linking any configure test code at all when --enable-autolink-libatomic
+# is given.
+#
+# See:
+#
+# * https://gitlab.alpinelinux.org/alpine/aports/-/issues/12817
+# * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101996#c4
+#
+if test x$enable_autolink_libatomic = xyes; then
+ gcc_no_link=yes
+fi
+
case "${target_cpu}" in
alpha*)
# fenv.c needs this option to generate inexact exceptions.
--
2.41.0
@@ -0,0 +1,27 @@
From 430c701a3cefbe09a9c7c8a2f5bbe957f9b2ecb2 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Thu, 30 Jun 2022 16:44:51 +0000
Subject: [PATCH 29/35] libstdc++: do not throw exceptions for non-C locales on
musl targets
---
libstdc++-v3/config/locale/generic/c_locale.cc | 3 ---
1 file changed, 3 deletions(-)
diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc
index 8849d78fdfa..aff467f98fe 100644
--- a/libstdc++-v3/config/locale/generic/c_locale.cc
+++ b/libstdc++-v3/config/locale/generic/c_locale.cc
@@ -242,9 +242,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Currently, the generic model only supports the "C" locale.
// See http://gcc.gnu.org/ml/libstdc++/2003-02/msg00345.html
__cloc = 0;
- if (strcmp(__s, "C"))
- __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
- "name not valid"));
}
void
--
2.41.0
@@ -0,0 +1,27 @@
From 05f0043755f341a2ff4f845379327076b3e0203d Mon Sep 17 00:00:00 2001
From: Mathias LANG <pro.mathias.lang@gmail.com>
Date: Mon, 17 Jan 2022 03:49:21 +0000
Subject: [PATCH 30/35] gdc: unconditionally link libgphobos against
libucontext
ref: alpine/aports#13422
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index 394b105b271..bc4a77fc300 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -52809,7 +52809,7 @@ configure-target-libphobos:
esac; \
module_srcdir=libphobos; \
rm -f no-such-file || : ; \
- CONFIG_SITE=no-such-file $(SHELL) \
+ CONFIG_SITE=no-such-file LIBS="-lucontext $$LIBS" $(SHELL) \
$$s/$$module_srcdir/configure \
--srcdir=$${topdir}/$$module_srcdir \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
--
2.41.0
@@ -0,0 +1,54 @@
From 0b89a74fbf77ae6917f043c79cd03db0d6ef0212 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sat, 16 Jul 2022 09:21:11 +0200
Subject: [PATCH 31/35] druntime: link against libucontext on all platforms
On musl-based Linux distributions, swapcontext etc. are not provided by
musl but instead by libucontext. Hence, we _always_ need to link against
an external library for these functions.
---
libphobos/configure | 8 --------
libphobos/m4/druntime/libraries.m4 | 8 --------
2 files changed, 16 deletions(-)
diff --git a/libphobos/configure b/libphobos/configure
index 925c53c5f5e..60c2a0c11c6 100755
--- a/libphobos/configure
+++ b/libphobos/configure
@@ -15216,14 +15216,6 @@ fi
# Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
# "yes" for targets that have 'version = AsmExternal'.
druntime_fiber_asm_external=no
- case "$target_cpu" in
- aarch64* | \
- arm* | \
- i[34567]86|x86_64 | \
- powerpc)
- druntime_fiber_asm_external=yes
- ;;
- esac
if test "$druntime_fiber_asm_external" = no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing swapcontext" >&5
$as_echo_n "checking for library containing swapcontext... " >&6; }
diff --git a/libphobos/m4/druntime/libraries.m4 b/libphobos/m4/druntime/libraries.m4
index 45a56f6f76a..fef6e890b1e 100644
--- a/libphobos/m4/druntime/libraries.m4
+++ b/libphobos/m4/druntime/libraries.m4
@@ -220,14 +220,6 @@ AC_DEFUN([DRUNTIME_LIBRARIES_UCONTEXT],
# Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
# "yes" for targets that have 'version = AsmExternal'.
druntime_fiber_asm_external=no
- case "$target_cpu" in
- aarch64* | \
- arm* | \
- i[[34567]]86|x86_64 | \
- powerpc)
- druntime_fiber_asm_external=yes
- ;;
- esac
if test "$druntime_fiber_asm_external" = no; then
AC_SEARCH_LIBS([swapcontext], [c ucontext], [],
AC_MSG_ERROR([swapcontext required but not found]))
--
2.41.0
@@ -0,0 +1,25 @@
From eeec799f43fbd0bfffc13594585b39d708972511 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Tue, 19 Jul 2022 14:54:07 +0200
Subject: [PATCH 32/35] libgnat: time_t is always 64-bit on musl libc
---
gcc/ada/libgnat/s-parame.ads | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/ada/libgnat/s-parame.ads b/gcc/ada/libgnat/s-parame.ads
index 3d6e345a1ba..cfe0b4d3ca6 100644
--- a/gcc/ada/libgnat/s-parame.ads
+++ b/gcc/ada/libgnat/s-parame.ads
@@ -102,7 +102,7 @@ package System.Parameters is
-- Characteristics of time_t type --
------------------------------------
- time_t_bits : constant := Long_Integer'Size;
+ time_t_bits : constant := Long_Long_Integer'Size;
-- Number of bits in type time_t
----------------------------------------------
--
2.41.0
@@ -0,0 +1,44 @@
From b71d21b87e6946c763edad5e420bf22d8a453077 Mon Sep 17 00:00:00 2001
From: psykose <alice@ayaya.dev>
Date: Mon, 29 May 2023 15:33:11 +0000
Subject: [PATCH 33/35] libphobos: do not use LFS64 symbols
musl does not have these since 1.2.4, we can't use the compat interfaces.
---
libphobos/libdruntime/core/sys/posix/config.d | 2 +-
libphobos/libdruntime/core/sys/posix/sys/mman.d | 6 +-----
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/libphobos/libdruntime/core/sys/posix/config.d b/libphobos/libdruntime/core/sys/posix/config.d
index ae6752f220e..6b80d1ff0e6 100644
--- a/libphobos/libdruntime/core/sys/posix/config.d
+++ b/libphobos/libdruntime/core/sys/posix/config.d
@@ -88,7 +88,7 @@ else version (CRuntime_Musl)
enum __REDIRECT = false;
// Those three are irrelevant for Musl as it always uses 64 bits off_t
- enum __USE_FILE_OFFSET64 = _FILE_OFFSET_BITS == 64;
+ enum __USE_FILE_OFFSET64 = false;
enum __USE_LARGEFILE = __USE_FILE_OFFSET64 && !__REDIRECT;
enum __USE_LARGEFILE64 = __USE_FILE_OFFSET64 && !__REDIRECT;
diff --git a/libphobos/libdruntime/core/sys/posix/sys/mman.d b/libphobos/libdruntime/core/sys/posix/sys/mman.d
index 0d3d517d69a..323aa0af72d 100644
--- a/libphobos/libdruntime/core/sys/posix/sys/mman.d
+++ b/libphobos/libdruntime/core/sys/posix/sys/mman.d
@@ -293,11 +293,7 @@ else version (CRuntime_Bionic)
}
else version (CRuntime_Musl)
{
- static if (__USE_LARGEFILE64) void* mmap64(void*, size_t, int, int, int, off_t);
- static if (__USE_FILE_OFFSET64)
- alias mmap = mmap64;
- else
- void* mmap(void*, size_t, int, int, int, off_t);
+ void* mmap(void*, size_t, int, int, int, off_t);
int munmap(void*, size_t);
}
else version (CRuntime_UClibc)
--
2.41.0
@@ -0,0 +1,195 @@
From 4bfcb35bc43d3e3b7510620362d7c28d9e4c17ca Mon Sep 17 00:00:00 2001
From: psykose <alice@ayaya.dev>
Date: Mon, 10 Jul 2023 23:23:29 +0000
Subject: [PATCH 34/35] libgo: fix lfs64 use
---
.../go/internal/syscall/unix/at_largefile.go | 2 +-
libgo/go/os/dir_largefile.go | 2 +-
libgo/go/syscall/libcall_glibc.go | 2 +-
libgo/go/syscall/libcall_linux.go | 4 +--
libgo/go/syscall/libcall_posix_largefile.go | 26 +++++++++----------
libgo/runtime/go-varargs.c | 2 +-
libgo/sysinfo.c | 9 +++----
7 files changed, 22 insertions(+), 25 deletions(-)
diff --git a/libgo/go/internal/syscall/unix/at_largefile.go b/libgo/go/internal/syscall/unix/at_largefile.go
index 82e0dcfd074..16151ecad1b 100644
--- a/libgo/go/internal/syscall/unix/at_largefile.go
+++ b/libgo/go/internal/syscall/unix/at_largefile.go
@@ -10,5 +10,5 @@ import (
"syscall"
)
-//extern fstatat64
+//extern fstatat
func fstatat(int32, *byte, *syscall.Stat_t, int32) int32
diff --git a/libgo/go/os/dir_largefile.go b/libgo/go/os/dir_largefile.go
index 1fc5ee0771f..0c6dffe1a75 100644
--- a/libgo/go/os/dir_largefile.go
+++ b/libgo/go/os/dir_largefile.go
@@ -11,5 +11,5 @@ package os
import "syscall"
-//extern readdir64
+//extern readdir
func libc_readdir(*syscall.DIR) *syscall.Dirent
diff --git a/libgo/go/syscall/libcall_glibc.go b/libgo/go/syscall/libcall_glibc.go
index 5c1ec483c75..5a1245ed44b 100644
--- a/libgo/go/syscall/libcall_glibc.go
+++ b/libgo/go/syscall/libcall_glibc.go
@@ -114,7 +114,7 @@ func Pipe2(p []int, flags int) (err error) {
}
//sys sendfile(outfd int, infd int, offset *Offset_t, count int) (written int, err error)
-//sendfile64(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
+//sendfile(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
if race.Enabled {
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
index 03ca7261b59..ad21fd0b3ac 100644
--- a/libgo/go/syscall/libcall_linux.go
+++ b/libgo/go/syscall/libcall_linux.go
@@ -158,7 +158,7 @@ func Reboot(cmd int) (err error) {
//adjtimex(buf *Timex) _C_int
//sys Fstatfs(fd int, buf *Statfs_t) (err error)
-//fstatfs64(fd _C_int, buf *Statfs_t) _C_int
+//fstatfs(fd _C_int, buf *Statfs_t) _C_int
func Gettid() (tid int) {
r1, _, _ := Syscall(SYS_GETTID, 0, 0, 0)
@@ -245,7 +245,7 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i
}
//sys Statfs(path string, buf *Statfs_t) (err error)
-//statfs64(path *byte, buf *Statfs_t) _C_int
+//statfs(path *byte, buf *Statfs_t) _C_int
//sysnb Sysinfo(info *Sysinfo_t) (err error)
//sysinfo(info *Sysinfo_t) _C_int
diff --git a/libgo/go/syscall/libcall_posix_largefile.go b/libgo/go/syscall/libcall_posix_largefile.go
index f90055bb29a..334212f0af1 100644
--- a/libgo/go/syscall/libcall_posix_largefile.go
+++ b/libgo/go/syscall/libcall_posix_largefile.go
@@ -10,40 +10,40 @@
package syscall
//sys Creat(path string, mode uint32) (fd int, err error)
-//creat64(path *byte, mode Mode_t) _C_int
+//creat(path *byte, mode Mode_t) _C_int
//sys Fstat(fd int, stat *Stat_t) (err error)
-//fstat64(fd _C_int, stat *Stat_t) _C_int
+//fstat(fd _C_int, stat *Stat_t) _C_int
//sys Ftruncate(fd int, length int64) (err error)
-//ftruncate64(fd _C_int, length Offset_t) _C_int
+//ftruncate(fd _C_int, length Offset_t) _C_int
//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
-//getrlimit64(resource _C_int, rlim *Rlimit) _C_int
+//getrlimit(resource _C_int, rlim *Rlimit) _C_int
//sys Lstat(path string, stat *Stat_t) (err error)
-//lstat64(path *byte, stat *Stat_t) _C_int
+//lstat(path *byte, stat *Stat_t) _C_int
//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
-//mmap64(addr *byte, length Size_t, prot _C_int, flags _C_int, fd _C_int, offset Offset_t) *byte
+//mmap(addr *byte, length Size_t, prot _C_int, flags _C_int, fd _C_int, offset Offset_t) *byte
//sys Open(path string, mode int, perm uint32) (fd int, err error)
-//__go_open64(path *byte, mode _C_int, perm Mode_t) _C_int
+//__go_open(path *byte, mode _C_int, perm Mode_t) _C_int
//sys Pread(fd int, p []byte, offset int64) (n int, err error)
-//pread64(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
+//pread(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error)
-//pwrite64(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
+//pwrite(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
//sys Seek(fd int, offset int64, whence int) (off int64, err error)
-//lseek64(fd _C_int, offset Offset_t, whence _C_int) Offset_t
+//lseek(fd _C_int, offset Offset_t, whence _C_int) Offset_t
//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
-//setrlimit64(resource int, rlim *Rlimit) _C_int
+//setrlimit(resource int, rlim *Rlimit) _C_int
//sys Stat(path string, stat *Stat_t) (err error)
-//stat64(path *byte, stat *Stat_t) _C_int
+//stat(path *byte, stat *Stat_t) _C_int
//sys Truncate(path string, length int64) (err error)
-//truncate64(path *byte, length Offset_t) _C_int
+//truncate(path *byte, length Offset_t) _C_int
diff --git a/libgo/runtime/go-varargs.c b/libgo/runtime/go-varargs.c
index f84860891e6..7efc9615985 100644
--- a/libgo/runtime/go-varargs.c
+++ b/libgo/runtime/go-varargs.c
@@ -84,7 +84,7 @@ __go_ioctl_ptr (int d, int request, void *arg)
int
__go_open64 (char *path, int mode, mode_t perm)
{
- return open64 (path, mode, perm);
+ return open (path, mode, perm);
}
#endif
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
index 180f5c31d74..1d717d55c0e 100644
--- a/libgo/sysinfo.c
+++ b/libgo/sysinfo.c
@@ -366,7 +366,7 @@ typedef loff_t libgo_loff_t_type;
#endif
#if defined(HAVE_OFF64_T)
-typedef off64_t libgo_off_t_type;
+typedef off_t libgo_off_t_type;
#else
typedef off_t libgo_off_t_type;
#endif
@@ -398,13 +398,11 @@ typedef off_t libgo_off_t_type;
// From dirent.h
SREF(dirent);
-SREF(dirent64);
OTREF(DIR);
EREF(DT_UNKNOWN);
// From fcntl.h
SREF(flock);
-SREF(flock64);
// From ffi headers
SREF(_ffi_type);
@@ -485,11 +483,10 @@ EREF(SS_ONSTACK);
EREF(SEGV_MAPERR);
// From stat.h
-SREF(stat64);
+SREF(stat);
// From statfs.h
SREF(statfs);
-SREF(statfs64);
// From sysinfo.h
SREF(sysinfo);
@@ -519,7 +516,7 @@ EREF(PTRACE_PEEKTEXT);
// From sys/resource.h
SREF(rusage);
-SREF(rlimit64);
+SREF(rlimit);
EREF(RLIMIT_NOFILE);
EREF(PRIO_USER);
EREF(RUSAGE_SELF);
--
2.41.0
Loaded 100 of 4346 files, more files were not shown because too many files have changed in this diff. Show more