Compare commits

...
566 Commits
Author SHA1 Message Date
Clayton Craft 3c99d38858 main/pmos-base-ui: use dnsane for DNS
Fixes #1430 by basically filtering DNS queries to remove any with addresses
that might cause traffic to go over a lower priority interface. See that issue
for a more detailed explanation of the problem.

It does this by:
        1) configuring NetworkManager to send DNS config to resolvconf, instead
           of writing to resolv.conf directly. In my (limited) testing, this
           seems to be necessary to get NM to trigger resolvconf which is
           needed for...
        2) configuring resolvconf to ignore any DNS it receives and use
           localhost, when writing resolv.conf

openresolv is used because the alternative of modifying resolv.conf
manually gets messy, specifically with apk where it may not replace
/etc/resolv.conf if the user / something else has modified it...

Note that there's still some possibilities for apps that have hardcoded DNS
nameservers to bypass dnsane. It's not trivial to catch this. The most straight
forward way is to use a firewall rule to redirect all outbound DNS to dnsane.
But this would break mmsd and any other apps that actually need to query
specific nameservers to function properly.

I used a SIM that had a mobile data connection, but traffic was dropped by the
carrier outside of the phone. In other words, my phone was often in the exact
situation described in #1430. When connected to wifi, I could very easily
notice when traffic was being routed incorrectly because anything destined for
mobile data would fail (pages stopped loading, etc). After some amount of
casual testing while using the phone "normally", I haven't noticed any failures
yet from that problem.
2023-01-13 13:58:42 -08:00
Caleb Connolly 7ac2abf20b community/linux-postmarketos-qcom-sdm845: apply audio fix (MR 3800)
Fix APR q6voice nodes which broke audio on 6.1.3
https://gitlab.com/sdm845-mainline/linux/-/commit/a5312556efefb2d93385681687a54fc5f6862c32

[ci:skip-build]: Already built successfully in CI
2023-01-11 22:34:55 +01:00
Clayton Craft bca632d4f6 postmarketos-base: enable using zram swap by default (MR 3752)
This installs zram-init and sets it to start on boot for all
devices/UIs. The included conf.d/zram-init also allows diabling using
zram swap or overriding the size by using a deviceinfo var.

I did an analysis of the pmos base install size with the 'none' UI
selected, after depending on zram-init, and the following new package is
installed:
        zram-init-11.1-r1 installed size: 40 KiB

These packages are dependencies of zram-init, however they are already
installed in the base image (with 'none' UI) so they are not counted
above:
        util-linux-misc-2.38.1-r0 installed size: 6816 KiB
        e2fsprogs-extra-1.46.5-r4 installed size: 1324 KiB

So this seems like a very small price to pay for the benefit of not
making the logic/implementation more complicated than this.

     * Starting busybox syslog ... [ ok ]
    ssh-keygen: generating new host keys: RSA ECDSA ED25519
     * Starting sshd ... [ ok ]
    zram swap: activating with size: 243 MB
     * Loading zram module...
     [ ok ]
     * Swap->zram0
     [ ok ]
     * Starting local ... [ ok ]

This change introduces one new deviceinfo variable:
deviceinfo_zram_swap_pct: percentage of RAM to use for zram swap

Default percentages if the second var is unset are explained in the
zram-init file this commit adds. A value of 0 disables zram swap.

fixes #1133
2023-01-11 15:39:40 +01:00
Oliver Smith 0569fdd9f8 cross/binutils-*: upgrade to 2.39-r3 (MR 3798)
[ci:skip-build]: Already built successfully in CI
2023-01-11 15:24:47 +01:00
Anton Bambura 75f91b45de linux-postmarketos-exynos5: use postmarketos-installkernel (MR 3751)
[ci:skip-build]: already built successfully in CI
2023-01-10 13:35:59 +01:00
M0Rf30 fde3200e27 linux-postmarketos-qcom-msm8953: upgrade to 6.1.0 (MR 3759)
Signed-off-by: Gianluca Boiano <morf3089@gmail.com>
[ci:skip-build]: already built successfully in CI
2023-01-10 13:11:32 +01:00
Adel Ahmed adf2d837af sony-leo: add mainline kernel (MR 3770)
[ci:skip-build]: already built successfully in CI
2023-01-10 13:06:32 +01:00
Oliver Smith a64a9a1ca0 main/msm-firmware-loader: upgrade to 1.1.0 (MR 3797)
[ci:skip-build]: already built successfully in CI
2023-01-10 12:06:52 +01:00
Oliver Smith 166acbc194 cross/gurb-efi-x86: upgrade to 2.06-r7 2023-01-09 15:43:47 +01:00
Oliver Smith 2bcb2246ce cross/gcc-*: upgrade to 12.2.1_git20220924-r8 2023-01-09 15:43:42 +01:00
Clayton Craft c3669975e9 purism-librem5: disable power management for Sparklan/brcmfmac wifi (MR 3793)
This wifi module doesn't ship with the L5, but I have one because it's
generally more stable than the redpine thing that does ship with the
L5... however there's a known problem with having PM enabled on it.

This adds a NM config option, that matches specifically on this
device/driver, to disable wifi. PM for the redpine should not be
affected by this config change.

[ci:skip-build] already built successfully in CI
2023-01-08 13:56:25 -08:00
Clayton Craft 152f8e4715 main/unl0kr: add to initramfs-extra (MR 3777)
This moves unl0kr and all of its dependencies into the initramfs-extra,
it does so by using a relatively new mkinitfs feature for installing
files into the -extra archive.

[ci:skip-build] already built successfully in CI
2023-01-08 11:04:41 -08:00
Clayton Craft d27e1bd65d main/pmos-mkinitfs: run udev after mounting the initramfs-extra (MR 3777)
By positioning this after extracting the initramfs-extra archive, we can
allow udev to exist in the -extra archive and not have any size impact
on the base initramfs archive.

Any hook that needs udev in the initramfs can get that support, provided
that the hook lists udev requirements in the .files config for it.
2023-01-08 11:04:41 -08:00
Marc0x1 35659b6b0d xunlong-orangepi-pc: new device (MR 3785) 2023-01-08 18:41:54 +01:00
Luca Weiss af198149e0 cross/gcc-*: upgrade to 12.2.1_git20220924-r7 (MR 3794) 2023-01-08 12:03:22 +01:00
Luca Weiss fa915996b0 cross/busybox-static-*: upgrade to 1.35.0-r30 (MR 3794) 2023-01-08 12:02:06 +01:00
Alexander Martinz 64b0044426 community/linux-postmarketos-qcom-sdm845: upgrade to 6.1.3 (MR 3782)
For a merge list, please see the merge commits:
  - 6.1.1  - (https://gitlab.com/sdm845-mainline/linux/-/commit/5ed7044b056ca68cf4756e4be225d220a0e386b3)
  - 6.1.2  - (https://gitlab.com/sdm845-mainline/linux/-/commit/ec165d9c018716c6e3510fe6ad7aed70d338a8c1)
  - 6.1.3  - (https://gitlab.com/sdm845-mainline/linux/-/commit/3735d5032c1ada943251fb08cfe9b879197e802d)

Change-Id: Id46e827a90a9c68cb69d23dc0698a8ea2a5e4336
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>

[ci:skip-build] already built successfully in CI
2023-01-07 23:15:13 -08:00
Anton Bambura 594fe30620 google-veyron-minnie: switch to depthcharge and extlinux (MR 3789)
Make use of stock depthcharge bootloader to not deal with U-Boot issues:
- broken USB
- broken eMMC
- broken latest version of U-Boot

Use extlinux instead of Grub for users with U-Boot to simplify process.
Also, some of old U-Boot builds may not support EFI.

[ci:skip-build] already built successfully in CI
2023-01-07 22:48:23 -08:00
Anton Bambura 93a6d69fe8 google-spring: new device (MR 3788)
[ci:skip-build] already built successfully in CI
2023-01-07 22:44:30 -08:00
Anton Bambura 8730f20fc9 google-veyron-speedy: switch to depthcharge and extlinux (MR 3786)
Make use of stock depthcharge bootloader to not deal with U-Boot issues:
 - broken USB
 - broken eMMC
 - broken latest version of U-Boot

Use extlinux instead of Grub for users with U-Boot to simplify process.
Also, some of old U-Boot builds may not support EFI.

[ci:skip-build] already built successfully in CI
2023-01-07 22:42:10 -08:00
Anton Bambura 98284111ed google-kevin: add extlinux (MR 3787)
[ci:skip-build] already built successfully in CI
2023-01-07 22:40:20 -08:00
Anton Bambura 4f27e36d60 google-bob: add extlinux (MR 3787) 2023-01-07 22:40:20 -08:00
Anton Bambura 33594e6d6d lg-c50: new device (MR 3783)
[ci:skip-build]: already built successfully in CI
2023-01-06 22:22:52 +01:00
Raymond Hackley c0db634e92 main/postmarketos-base-ui: networkmanager: depends on networkmanager{,-*} (MR 3749)
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2023-01-06 21:53:28 +01:00
Jan Jasper de Kroon 314d1e58c3 device/main/linux-postmarketos-allwinner: upgrade to 6.1.3_git20230104 (MR 3781)
[ci:skip-build]: already built successfully in CI
2023-01-06 21:31:46 +01:00
Anton Bambura 40a3650f23 google-veyron-tiger: new device (MR 3772)
[ci:skip-build]: already built successfully in CI
2023-01-06 21:28:38 +01:00
Anton Bambura 01b684f271 google-veyron-mighty: new device (MR 3772) 2023-01-06 21:28:22 +01:00
Anton Bambura bee023cc1c google-veyron-mickey: new device (MR 3772) 2023-01-06 21:28:22 +01:00
Anton Bambura 1466b2be98 google-veyron-jaq: new device (MR 3772) 2023-01-06 21:28:21 +01:00
Anton Bambura 5945753142 google-veyron-fievel: new device (MR 3772) 2023-01-06 21:28:15 +01:00
Anton Bambura 47e1660711 google-dumo: new device (MR 3748)
[ci:skip-build]: already built successfully in CI
2023-01-05 04:03:45 +01:00
Anton Bambura 213913c122 google-druwl: new device (MR 3748) 2023-01-05 04:03:36 +01:00
Anton Bambura bbf6fa2e71 google-dru: new device (MR 3748) 2023-01-05 04:03:31 +01:00
Andreas Kemnade 7b35230958 linux-kobo-clara-mainline: upgrade to 6.1 (MR 3764)
use already the touchscreen driver which is accepted for
6.2

[ci:skip-build]: already built successfully in CI
2023-01-05 03:55:56 +01:00
exkc 09670b7395 mangopi-mq-pro: new device (MR 3761)
[ci:skip-build]: already built successfully in CI
2023-01-05 03:51:58 +01:00
exkc eea97fa1a8 linux-postmarketos-allwinner-d1: new aport (MR 3761) 2023-01-05 03:51:58 +01:00
exkc 66c863af81 u-boot-mangopi-mq-pro: new aport (MR 3761) 2023-01-05 03:51:58 +01:00
Anton Bambura 33254c4d19 aarch64 chromebooks: add $deviceinfo_depthcharge_board to deviceinfo (MR 3724)
This is needed to use depthchargectl instead of mkdepthcharge

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2023-01-05 03:49:21 +01:00
Anton Bambura b243969ea7 pine64-pinephonepro: use generated grub.cfg (MR 3724) 2023-01-05 03:49:15 +01:00
Anton Bambura 33c59fc7fa pine64-pinebookpro: use generated extlinux.conf (MR 3724) 2023-01-05 03:49:15 +01:00
Anton Bambura d59be3b0ea main/boot-deploy: upgrade to 0.7.0 (MR 3724) 2023-01-05 03:49:10 +01:00
Julian Winkler f3b5419349 motorola-smi: new device (Motorola RAZR i) (MR 3774)
[ci:skip-build]: already built successfully in CI
2023-01-05 03:37:38 +01:00
Julian Winkler 1e9be758ea linux-postmarketos-intel-medfield: new kernel for Intel Medfield (MR 3774) 2023-01-05 03:37:24 +01:00
Newbyte e756db4ba3 linux-postmarketos-stericsson: upgrade to 6.1 (MR 3730)
Also enable MGLRU.

[ci:skip-build]: already built successfully in CI
2023-01-05 02:58:11 +01:00
Cédric Bellegarde fb119cc8e2 main/postmarketos-ui-phosh: clean up dconf overrides (MR 3775)
[ci:skip-build]: already built successfully in CI
2023-01-05 02:48:34 +01:00
Petr Vorel ca20cbcaf4 linux-postmarketos-qcom-msm8994: upgrade to 6.1.2 (MR 3762)
New features:
* msm8994-huawei-angler: Add sdhc1 definition (internal SD card).

Backporting 3 patches:
* 0001-arm64-dts-msm8992-bullhead-add-memory-hole-region.patch
fixes bullhead boot since 6.0-rc1, already in qcom tree

* 0002-arm64-dts-qcom-msm8992-bullhead-Fix-cont_splash_mem-.patch
memory fix, likely to be merged

* 0003-arm64-dts-qcom-msm8992-bullhead-Disable-dfps_data_me.patch
memory fix, likely to be merged

* 0004-arm64-dts-qcom-msm8992-Don-t-use-sfpb-mutex.patch
memory fix, likely to be merged

* 0005-arm64-dts-msm8994-angler-fix-the-memory-map.patch
fixes angler reset during starting services in rootfs,
likely to be merged

Remove all backported commits from newer versions.

While at it, remove various CONFIG_NET_VENDOR_.* and
CONFIG_MSM_.* and CONFIG_.*_QCOM_.* for other SOCs.

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
[ci:skip-build]: already built successfully in CI
2023-01-05 00:38:16 +01:00
André Apitzsch 383bdab043 bq-piccolo: add remote processor switch (MR 3780)
[ci:skip-build]: already built successfully in CI
2023-01-04 23:33:17 +01:00
Luca Weiss e07103fb74 testing/linux-postmarketos-qcom-msm8974: upgrade to 6.0.13 (MR 3658)
Manual config changes:
* CRYPTO_DEV_QCOM_RNG=m
* LEDS_IS31FL319X=m
* QCOM_RMTFS_MEM=y

[ci:skip-build]: already built successfully in CI
2022-12-29 19:31:45 +01:00
Affe Null 8141d4f90f linux-postmarketos-qcom-msm8909: remove (MR 3768)
Support for msm8909 devices has been merged into msm8916-mainline

[ci:skip-build]: already built successfully in CI
2022-12-29 18:41:16 +01:00
Affe Null ac7fc0276b nokia-leo: new device (MR 3768)
Initial port using msm8916-mainline kernel
2022-12-29 18:41:16 +01:00
Affe Null a722471215 nokia-sparkler: new device (MR 3768)
Initial port using msm8916-mainline kernel
2022-12-29 18:41:16 +01:00
Affe Null 3695a9246a nokia-argon: add modem support and switch to msm8916-mainline kernel (MR 3768) 2022-12-29 18:41:16 +01:00
Affe Null 66982061a1 soc-qcom-msm8909: new aport (MR 3768)
Shared SoC package for MSM8909

Currently provides a dummy soc-qcom-msm8909 package that depends on
soc-qcom-msm8916 and a soc-qcom-msm8909-modem package for modem support.
2022-12-29 18:40:55 +01:00
Affe Null 75cd718f5c modem/rmtfs: add tunning partition alias patch for msm8909 Nokia devices (MR 3768)
Like alcatel-idol3, these devices have a tunning partition. However, the
modem calls it modem_tng instead of modem_tunning. This patch adds the
alternative name for the partition.

An upstream pull request has already been submitted (see patch).
2022-12-29 18:40:12 +01:00
Luca Weiss ac073485e0 fairphone-fp3: add swlock-offset, make msm-fb-refresher downstream-only (MR 3767)
Since the RTC like on most Qualcomm chips is read-only, use
swclock-offset package to fix up time after boot.

And since we don't need msm-fb-refresher on mainline, move it to the
downstream kernel subpackage.
2022-12-29 18:22:48 +01:00
Luca Weiss ce8f4219d2 fairphone-fp2: add swclock-offset dependency (MR 3767)
The device has a standard read-only Qualcomm RTC, so time without
swclock-offset will always be wrong after reboot.
2022-12-29 18:22:48 +01:00
Raymond Hackley ecc98c26de samsung-grandmax: move to community (MR 3696)
Like samsung-e7, samsung-grandmax works quite well. Move it to community.

[ci:skip-build] already built successfully in CI
2022-12-29 18:17:41 +01:00
Andreas Kemnade f046cd5d1b kobo-librah2o: new device (MR 2954)
Basic support for the Kobo Libra H2O ebook reader.

Waveform handling shares the same oddities as for the Kobo Clara HD, the
existing waveform from eMMC is used.

Preferred way to install is to export the eMMC as USB Mass storage,
backing it up, and installing there.

U-Boot is a more recent one than the factory u-boot, supporting easy
access for buttons/LEDs. Pressing PageUp while powering on gives you the
possibility to enable USB mass storage mode to restore your backup.

Kernel is the near mainline kernel also used by the Kobo Clara HD.

It lacks some devicetree additions which are planned for the next
update, but basic things like buttons, usb, serial and wifi are
supported.
2022-12-29 18:07:51 +01:00
Sicelo A. Mhlongo a787222aeb postmarketos-ui-i3wm: use tinydm and relocate device-specific file (MR 3769)
* lock.sh is specific to Nokia N900, so move to device-nokia-n900
* use tinydm instead of lightdm

Signed-off-by: Sicelo A. Mhlongo <absicsz@gmail.com>
[ci:skip-build]: already built successfully in CI
2022-12-29 17:57:38 +01:00
Alistair Francis 22e26ced4f linux-purism-librem5: upgrade to 6.1.1pureos1 (MR 3758)
Signed-off-by: Alistair Francis <alistair@alistair23.me>
[ci:skip-build]: already built successfully in CI
2022-12-29 17:50:52 +01:00
Oliver Smith aebf7d2898 temp/megapixels-purism: bump pkgrel (MR 3771)
Fix for:
  missing depend(s): so:libcamera.so.0.0.2

[ci:skip-build]: already built successfully in CI
2022-12-29 17:47:26 +01:00
Oliver Smith 3afcd215a7 main/postmarketos-ui-plasma-desktop: move some deps to extra (MR 3756)
Move some dependencies from plasma-desktop to the -extras subpackage, so
they don't get installed by default:

* audiocd-kio (2 MiB): using a CD drive with postmarketOS seems to be a
  very rare combination
* kolourpaint (3 MiB): very basic image editor with featureset of MS
  paint, I don't think it's that useful in a default install. Users
  looking for an image editor may want to use e.g. krita instead and can
  install whatever they want to use after the default install is done.
* kwrite (20 MiB): another text editor, kate (3 MiB), is already getting
  installed by default
* okular (81 MiB): quite big, and pdfs can also be viewed in firefox
  which we install by default
* mesa-demos (50 MiB): rather big for just being some graphical demos

It's always a good idea to keep the install image small, but in this
instance the change was prompted because we currently hit a size limit
when generating install images. In particular, when generating the
v22.12 image for the pinebookpro. The process for generating install
images is not optimized for size (see bpo issue 116) and this should be
improved, but in the meantime let's just reduce the install size with
this patch on edge and backport it to v22.12 so building this image
doesn't fail anymore.

Sizes listed above are for aarch64 and include dependencies that get
removed together with removing the package.
2022-12-29 17:35:09 +01:00
M0Rf30 595821f808 xiaomi-vince: remove downstream kernel and unuseful resources (MR 3760)
Signed-off-by: Gianluca Boiano <morf3089@gmail.com>
[ci:skip-build]: already built successfully in CI
2022-12-29 17:32:29 +01:00
Oliver Smith 05030c7cfe channels.cfg: mark v22.12 as released 2022-12-22 23:31:12 +01:00
Oliver Smith 6c06572dba cross/gcc-*: upgrade to 12.2.1_git20220924-r6 2022-12-22 23:08:55 +01:00
Alistair Francis 9183be336b linux-purism-librem5: Add 166MHz to DDRC OPP table (MR 3754)
Backport the Purism patch from https://source.puri.sm/Librem5/linux/-/merge_requests/640

"With this patch, older revisions (2.0) should be able to switch between
166MHz and 800MHz as opposed to being stuck to 800MHz all the time, since
that was the only supported frequency in the OPP table."

Signed-off-by: Alistair Francis <alistair@alistair23.me>

[ci:skip-build] already built successfully in CI
2022-12-20 12:17:16 -08:00
Minecrell 04c166cdde firmware-motorola-osprey: package wcnss firmware for harpia (MR 3746)
The WCNSS firwmare used for motorola-harpia seems to have weird issues
that prevent using WiFi properly except for a few limited channels. It
is not clear why this happens, it seems to be some peculiar firmware
difference (perhaps the channels need to be enabled with some
non-standard command).

Since Motorola uses the same signing keys for all their MSM8916
devices, it is possible to use the firmware from other devices instead.
Initial testing shows promising results when using the older WCNSS
firmware from motorola-osprey instead, it does not seem to have this
issue.

It's not clear yet if this has any negative effects. The WCNSS firmware
should not be device-specific, but theoretically it could be (if
Motorola made some weird changes inside it).

For now just package it in firmware-motorola-osprey-wcnss. This package
can be easily installed on harpia devices for testing (using apk add)
and will then take precendence over the default firmware from the
firmware partition (via msm-firmware-loader).

Move firmware-motorola-osprey from testing to community so that the
package is preserved for motorola-harpia users (testing is deleted in
stable branches).

[ci:skip-build]: already built successfully in CI
2022-12-20 08:30:15 +01:00
Minecrell 2f315e3b72 motorola-osprey: use device-specific WCNSS_qcom_wlan_nv.bin (MR 3746)
motorola-osprey can generally use the firmware from motorola-harpia
(which is a bit newer). However, the WCNSS_qcom_wlan_nv.bin is usually
device specific (it contains some kind of calibration values for
WiFi/BT).

The file packaged in firmware-motorola-osprey-wcnss-nv is identical to
the file in firmware-motorola-harpia-wcnss-nv. However, It looks a bit
like this might be a mistake in the source repository
(https://github.com/pmsourcedump/firmware-motorola-osprey). The
wlan/prima folder there is completely identical to the one used for
motorola-harpia, but the stock ROM and LineageOS use different files.

Fix this by packaging the file from TheMuppets. Also modernize the
firmware-motorola-osprey package by applying pil-squasher to the
venus/video firmware.
2022-12-20 08:29:57 +01:00
Minecrell 047a8ba6dc motorola-osprey: restore firmware package (MR 3746)
This reverts parts of commit 9c8a189e6d
("motorola-osprey: use firmware from harpia (MR 2613)").
2022-12-20 08:29:57 +01:00
Minecrell 7273c5d1b3 motorola-osprey: rename to Motorola Moto G 2015 (MR 3746)
motorola-osprey has a very clunky name at the moment "Motorola Moto G
3rd gen. (2015)". The device was mostly just called "Motorola Moto G"
by Motorola, so it is hard to choose a fitting (but unique) name.

In the postmarketOS wiki it is called "Motorola Moto G 2015" so let's
just drop the "3rd gen." in the pmOS device package as well.

Also make the deviceinfo consistent with harpia while at it.
2022-12-20 08:29:47 +01:00
Anton Bambura a4a0451269 google-bob: new device (MR 3747)
cros-ec-sensorhub is blocked because of wrong accelerometer mount matrix
2022-12-20 08:23:04 +01:00
Kabir Akzaman 891109adce samsung-j7elte: new device (Samsung Galaxy J7) (MR 3715)
[ci:skip-build] already built successfully in CI
2022-12-19 22:37:58 -08:00
Elagost fd90572c61 postmarketos-base: replace sudo with cmd:sudo (MR 3721)
[ci:skip-build] already built successfully in CI
2022-12-18 13:23:33 -08:00
Oliver Smith 7d673c4301 main/postmarketos-release-upgrade: upgrade to 1.3.1 (MR 3750)
[ci:skip-build]: already built successfully in CI
2022-12-18 14:55:09 +01:00
Anjandev Momi 8c466207dd main/sxmo-common: allow switching between pipewire and pulseaudio (MR 3711)
Users can switch to pulseaudio with:
  doas apk add sxmo-audio-common-pulse

We can make the poco f1 device APKBUILD depend on
sxmo-common-audio-pulse. This allows you to install pulseaudio on Sxmo
which was the reason Joel said the poco f1 was having issues with call
audio: https://gitlab.com/postmarketOS/pmaports/-/issues/1821

After installing pulseaudio with this patch, the other side still
cannot hear me. I am posting this work so that others can just run
pulseaudio on sxmo and find out what's causing this bug.

Note by ollieparanoid: while it doesn't fix the bug completely, it seems
it's required to make calling work again, something we definitively want
to have in v22.12 so I'm merging this now. Also the sxmo-utils patch was
merged to sxmo-utils upstream, but isn't in alpine yet. Adding this
package (previous patch) temporarily makes sense.

Co-developed-by: Oliver Smith <ollieparanoid@postmarketos.org>
[ci:skip-vercheck]: pkg forked from alpine has pkgrel > 0
[ci:skip-build]: already built successfully in CI
2022-12-18 14:36:21 +01:00
Anjandev Momi 3ff8cfa528 temp/sxmo-utils: patch to support pulseaudio (MR 3711)
This package is just forked from alpine upstream and patched to support
pulseaudio. This patch should be upstreamed to sxmo but posting here so
that others can help me figure out why audio calls with poco f1 and Sxmo
are broken:

https://gitlab.com/postmarketOS/pmaports/-/issues/1821
2022-12-18 14:34:23 +01:00
M0Rf30 7125b75b68 linux-postmarketos-qcom-msm8953: upgrade to 6.0.10 (MR 3697)
Signed-off-by: Gianluca Boiano <morf3089@gmail.com>

[ci:skip-build]: Already built successfully in CI
2022-12-18 13:35:22 +01:00
M0Rf30 0a74080b08 xiaomi-vince: command-line cleanup and panels enablement (MR 3697)
Signed-off-by: Gianluca Boiano <morf3089@gmail.com>
2022-12-18 13:35:17 +01:00
Jan Jasper de Kroon 2707def9f8 device/main/linux-postmarketos-allwinner: Switch to CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL (MR 3720)
Schedutil is a CPU scheduler that is designed to be more efficient than other schedulers, such as the conservative scheduler, in terms of energy consumption.
This is because schedutil uses information about the utilization of individual CPU cores to make more intelligent decisions about when and how to scale the frequency of the CPU.
This can help to reduce the overall power consumption of the device, which can be particularly beneficial for battery-powered devices.
Additionally, schedutil can also help to improve the overall performance of the device by ensuring that the CPU is able to operate at its maximum frequency when needed.

In my personal testing I haven't seen any noticable impact on power consumption, while the performance does certainly noticeably increase
Note: This is only a change in the aarch64 configuration as the armv7 configuration already used the schedutil scheduler as default.

[ci:skip-build]: Already built successfully in CI
2022-12-18 13:32:22 +01:00
Raffaele Tranquillini 1bb85eecbd cutiepi-tablet: new device (MR 3737)
This adds initial support to CutiePi tablet, with basic peripherals, sound, touchscreen, and wireless support.

Signed-off-by: Raffaele Tranquillini <raffaele.tranquillini@gmail.com>

Add peripheral overlays

Signed-off-by: Raffaele Tranquillini <raffaele.tranquillini@gmail.com>

[ci:skip-build]: Already built successfully in CI
2022-12-18 13:13:19 +01:00
Jan Jasper de Kroon 433e4155f1 device/community/linux-pine64-pinephonepro: Switch to CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL (MR 3719)
Schedutil is a CPU scheduler that is designed to be more efficient than other schedulers, such as the conservative scheduler, in terms of energy consumption.
This is because schedutil uses information about the utilization of individual CPU cores to make more intelligent decisions about when and how to scale the frequency of the CPU.
This can help to reduce the overall power consumption of the device, which can be particularly beneficial for battery-powered devices.
Additionally, schedutil can also help to improve the overall performance of the device by ensuring that the CPU is able to operate at its maximum frequency when needed.

In my personal testing I haven't seen any noticable impact on power consumption, while the performance does certainly noticeably increase

[ci:skip-build]: Already built successfully in CI
2022-12-18 13:05:10 +01:00
André Apitzsch 9cbee8fda5 bq-piccolo: fix Phosh scaling (MR 3732) 2022-12-18 12:59:41 +01:00
André Apitzsch 4531d7695c bq-piccolo: add FDE support (MR 3732) 2022-12-18 12:59:41 +01:00
André Apitzsch 0dfce721cc bq-piccolo: use msm-firmware-loader (MR 3732) 2022-12-18 12:59:41 +01:00
André Apitzsch dbff2ff79a bq-piccolo: depend on linux-postmarketos-qcom-msm8916 (MR 3732) 2022-12-18 12:59:41 +01:00
BO41 f2bc2753ff huawei-kiwi: use msm-firmware-loader (MR 3736) 2022-12-18 12:54:00 +01:00
BO41 a35a23e11a huawei-kiwi: depend on linux-postmarketos-qcom-msm8916 (MR 3736) 2022-12-18 12:54:00 +01:00
Vincent Knecht 673dae7860 alcatel-idol3: depend on linux-postmarketos-qcom-msm8916 (MR 3738)
Use msm8916 kernel package instead of linux-postmarketos-qcom-msm8939
Also remove rmi_core from deviceinfo_modules_initfs
since it's automatically pulled by rmi_i2c
2022-12-18 12:48:28 +01:00
André Apitzsch 02d45f3a5e main/*: rebuild for Python 3.11 (MR 3745) 2022-12-18 10:26:36 +01:00
Luca Weiss ec0d98e9be community/linux-postmarketos-qcom-sm6350: upgrade to 6.1.0 (MR 3741)
* Enable flash/torch LED (CONFIG_LEDS_QCOM_FLASH)
* Fix USB init when not plugged in during bootloader stage

[ci:skip-build] already built successfully in CI
2022-12-17 01:44:14 -08:00
Oliver Smith 148967f00b temp/megapixels-*: bump pkgrel (MR 3740)
Fix for:
  missing depend(s): so:libtiff.so.5

[ci:skip-build] already built successfully in CI
2022-12-17 01:42:07 -08:00
Clayton Craft 1f2aab3a86 linux-purism-librem5: update to 6.1.0pureos1 (MR 3725)
Most of the config diff is from rebasing the kconfig in pmaports with
mainline + purism changes

[ci:skip-build] already built successfully in CI
2022-12-16 23:37:02 -08:00
Joel Selvaraj 1191682ea6 community/linux-postmarketos-qcom-sdm845: upgrade to 6.1.0 (MR 3739)
[ci:skip-build]: already built successfully in CI
2022-12-16 10:59:53 +01:00
Anton Bambura 2f9f93db59 google-peach-pi: drop software rendering configs (MR 3734) 2022-12-15 02:41:48 +02:00
Anton Bambura c92b3e8cf8 google-peach-pit: drop software rendering configs (MR 3734) 2022-12-15 02:41:44 +02:00
Oliver Smith b057815623 temp/megapixels-purism: bump pkgrel (MR 3733)
Fix for:
  missing depend(s): so:libcamera.so.0.0.1

[ci:skip-build]: already built successfully in CI
2022-12-14 21:44:28 +01:00
Oliver Smith 16b24bb86f main/mobile-config-firefox: upgrade to 3.2.0 (MR 3729)
[ci:skip-build]: already built successfully in CI
2022-12-14 21:18:15 +01:00
Mas Ahmad Muhammad bee146fb1f lenovo-a6010: add panel-wingtech-qimei-ili9881 (MR 3574)
Signed-off-by: Mas Ahmad Muhammad (m.charly81@gmail.com)
2022-12-14 17:53:00 +01:00
Mas Ahmad Muhammad 6e867c57ec lenovo-a6000: add panel-wingtech-qimei-ili9881 (MR 3574)
Signed-off-by: Mas Ahmad Muhammad (m.charly81@gmail.com)
2022-12-14 17:53:00 +01:00
Lux Aliaga 7aaee51a3e linux-postmarketos-qcom-sm6125: upgrade to 6.1 (MR 3727)
This is a version bump for the sm6125 mainline kernel fork.

Changes:
* Added UFS nodes to the sm6125 platform
* Enabled UFS nodes for xiaomi-laurel
* Enabled configs required for UFS support (Notoriously
CONFIG_PHY_QCOM_QMP)
* Filled in EXTRAVERSION for kernel fork
* Added SMD RPM regulators for xiaomi-laurel

Signed-off-by: Lux Aliaga <they@mint.lgbt>

[ci:skip-build]: Already built successfully in CI
2022-12-14 17:41:57 +01:00
Lux Aliaga a27a7ce737 device-xiaomi-laurel: add missing deviceinfo parameters (MR 3727)
This commit adds sparse flashing and rootfs sector size to deviceinfo

Signed-off-by: Lux Aliaga <they@mint.lgbt>
2022-12-14 17:41:57 +01:00
Jan Jasper de Kroon b86f80890e device/community/linux-pine64-pinephonepro: upgrade v6.1 (MR 3713)
Fix included in this build:
- Patch which sets GPIO pin for stk3311 as input
- ppp: don't reset 'display state of charge' (dsoc) to 0 on vbat low interrupt

[ci:skip-build]: already built successfully in CI
2022-12-14 10:14:14 +01:00
Anton Bambura 10ff840e85 main/postmarketos-mkinitfs: resize root partition on Chrome OS devices (MR 3726)
[ci:skip-build]: already built successfully in CI
2022-12-14 10:07:39 +01:00
David Wronek d91cf7fdf4 xiaomi-surya: new device (MR 3706)
Add support for the Xiaomi POCO X3 NFC.

[ci:skip-build] already built successfully in CI
2022-12-13 22:14:46 -08:00
David Wronek 00bd9b7525 linux-postmarketos-qcom-sm7150: new aport (MR 3706)
Add an aport for the Qualcomm SM7150 mainline kernel.
2022-12-13 22:14:46 -08:00
Anton Bambura b97f685e4a linux-google-nyan: enable kconfigcheck-community (MR 3708)
[ci:skip-build] already built successfully in CI
2022-12-13 22:09:39 -08:00
Raymond Hackley d4ee51e6fb samsung-a7: depends on linux-postmarketos-qcom-msm8916 (MR 3722)
[ci:skip-build] already built successfully in CI
2022-12-13 21:36:18 -08:00
Jakob Hauser b402c03b1f main/swclock-offset: upgrade to 0.2.2 (MR 3714)
This upgrade has no effect on postmarketOS, as there were only systemd
service files added to the repository. The upgrade is done solely to
keep track with the newest version.

[ci:skip-build] already built successfully in CI
2022-12-13 21:31:17 -08:00
Minecrell 9784f1b83f community/linux-postmarketos-qcom-msm8916: upgrade to 6.1 (MR 3718)
- Update to Linux v6.1
- Initial support for MSM8905/MSM8909 and MSM8939 SoCs
- Various kernel configuration tweaks
  - Disabled support for system suspend since it provides little advantages
    at the moment and keeps causing trouble (device fails to wake up etc).

Device changes:
  - alcatel-idol347
    - Torch/indicator LEDs
  - samsung-a3 and a5
    - Vibrator
  - samsung-cprime and grandmax
    - Touchscreen
  - wingtech-wt865x8 (lenovo-a6000/a6010)
    - qimei-ili9881 panel driver
  - wingtech-wt88047 (xiaomi-wt88047)
    - Flash LED

New devices:
  - alcatel-idol3 (MSM8939)
    - eMMC, SD card, USB, Buttons, WiFi/BT, Vibrator
    - Display, Brightness control
    - Touchscreen
    - Sensors (Accelerometer, Magnetometer, Gyroscope, Proximity)
    - Sound/Modem
    - Battery/Charging
    - Torch/indicator LEDs
  - huawei-kiwi (MSM8939)
    - eMMC, SD card, USB, Buttons, WiFi/BT, Vibrator
    - Display, Brightness control
    - Touchscreen
    - Sensors (Accelerometer, Magnetometer, Proximity, Hall)
    - Sound
    - Indicator LEDs
  - longcheer-l9100 (bq-piccolo, MSM8939)
    - eMMC, SD card, USB, Buttons, WiFi/BT, Vibrator
    - Display, Brightness control
    - Touchscreen
    - Sensors (Accelerometer/Gyroscope/IMU, Magnetometer, Light, Hall)
    - Battery/Charging
    - Flash LED
  - samsung-a7 (MSM8939)
    - eMMC, SD card, USB, Buttons, WiFi/BT, Vibrator
    - Display (with some quirks)
    - Touchscreen, touch keys
    - Sensors (Accelerometer, Magnetometer, Hall)
    - Sound/Modem
    - Battery status
    - NFC
  - nokia-argon/leo/sparkler (MSM8905)
    - eMMC, SD card, USB, Keypad/Buttons, WiFi/BT, Vibrator (argon-only)
    - Display, Brightness control
    - Modem
    - Battery/Charging

[ci:skip-build] already built successfully in CI
2022-12-13 21:21:58 -08:00
M0Rf30 b92f2efff2 linux-samsung-herolte: change src repo and sync config with upstream (MR 3710)
Signed-off-by: Gianluca Boiano <morf3089@gmail.com>
[ci:skip-build]: already built successfully in CI
2022-12-13 09:52:45 +01:00
Mithil Bavishi 32532c7530 linux-postmarketos-omap: upgrade to 6.1 (MR 3716)
Update the omap kernel to stable 6.1 release. This commit also contains a patch that
fixes broken usb, which should only be needed for versions 5.19 to 6.1 as later
releases will have a proper fix merged.

[ci:skip-build]: already built successfully in CI
2022-12-13 09:44:01 +01:00
Jami Kettunen 9e4a82a503 volla-mimameid: add support for close to mainline kernel (MR 3652)
[ci:skip-build] already built successfully in CI
2022-12-12 16:18:13 -08:00
Jami Kettunen a58ac8384e linux-postmarketos-mediatek-mt6768: new aport (6.1_rc5) (MR 3652)
This is an early mainline port for the MediaTek MT6763 Helio P65/G70/G8*
SoCs that boots with all 8 cores online, logs on display (simplefb) or
UART serial console, USB gadget mode facilitating netbooting
postmarketOS while tethered via RNDIS and PMIC enabling functions like
vibrator, power/volume keys.
2022-12-12 16:18:00 -08:00
Anton Bambura b8780e2cb6 linux-postmarketos-mediatek-mt8173: enable kconfigcheck-community (MR 3707)
[ci:skip-build]: already built successfully in CI
2022-12-11 21:00:27 +01:00
Richard Acayan e3ffc66577 google-sargo: add modem support (MR 3695)
The modem needs more firmware. Some firmware is in the modem partition
and needs to be loaded.

[ci:skip-build]: Already built successfully in CI
2022-12-10 23:30:59 +01:00
Richard Acayan 89a7cbc4df device/testing/linux-postmarketos-qcom-sdm670: upgrade to 6.0.11 (MR 3695) 2022-12-10 23:30:54 +01:00
Lux Aliaga d68c6de7a5 device-xiaomi-laurel: modify mantainer name (MR 3699)
Since I'm not going by the "mint" alias anymore, I've decided to fix
that on the APKBUILDs

Signed-off-by: Lux Aliaga <they@mint.lgbt>

[ci:skip-build]: Already built successfully in CI
2022-12-10 23:26:05 +01:00
Lux Aliaga fe3f50084b linux-postmarketos-qcom-sm6125: upgrade to 6.0 (MR 3699)
This is a version bump for the sm6125 mainline kernel fork. It should
also fix a config issue.

Changes:
* Made QUSB2 built-in instead of a module (Fixes USB connectivity
issues)
* Updates to xiaomi-laurel device tree to fit new schema
* Changed maintainer name

Signed-off-by: Lux Aliaga <they@mint.lgbt>
2022-12-10 23:25:59 +01:00
Alistair Francis bb359dfc4f purism-librem5: add alistair23 as co-maintainer (MR 3705)
Signed-off-by: Alistair Francis <alistair@alistair23.me>

[ci:skip-vercheck]
[ci:skip-build] already built successfully in CI
2022-12-10 11:17:39 -08:00
Clayton Craft 280605a1f9 *-purism-librem5: remove Bhushan as co-maintainer (MR 3705)
He is not actively maintaining this device in pmOS
2022-12-10 11:11:13 -08:00
Alistair Francis d737c7757e device/main/u-boot-librem5: upgrade to 2022.10 (MR 3704)
Update to the latest release from Purism.

Signed-off-by: Alistair Francis <alistair@alistair23.me>

[ci:skip-build] already built successfully in CI
2022-12-09 14:55:43 -08:00
Bobby The Builder 61c985a901 pine64-pinephonepro: add --test-quick-suspend-resume to ModemManager (MR 3701)
Prevent losing the Modem after a resume

[ci:skip-build]: already built successfully in CI
2022-12-09 18:35:48 +01:00
Bobby The Builder 575bbc458e pine64-pinephonepro: enhance mic sensitivity (MR 3701) 2022-12-09 18:35:36 +01:00
Joel Selvaraj cba716d2ec community/soc-qcom-sdm845: update alsa ucm conf (MR 3702)
Update ucm conf to latest commit. Fixes headphones volume too high issue.

[ci:skip-build]: already built successfully in CI
2022-12-09 08:17:55 +01:00
Clayton Craft 4c5c74bb8a purism-librem5: use gnss-share with geoclue (MR 3698)
This fixes gnss out of the box on the librem 5, by configuring geoclue
to use gnss-share as a nmea source.

I went this route, of overriding a .service file that invokes geoclue
with a command line option, because forking this .service file is much
nicer than forking geoclue.conf. The conf file will likely change over
time to add new app permissions or whatever, and it's unlikely
(hopefull!) that this .service file will change much upstream...

[ci:skip-build] already built successfully in CI
2022-12-08 22:56:53 -08:00
Jan Jasper de Kroon 1542dbfb9d device/main/linux-postmarketos-allwinner: upgrade to 6.1.0_rc7_git20221205 (MR 3694)
Contains the following fix:
- don't reinitialize bluetooth on Pinephone during resume

[ci:skip-build]: already built successfully in CI
2022-12-07 21:15:33 +01:00
Bobby The Builder c7dc9e5fc3 linux-pine64-pinephonepro: Enable on-boot USB network initialization (MR 3688)
CONFIG_USB_GADGET=y
   CONFIG_USB_DWC3_DUAL_ROLE=y
   CONFIG_USB_XHCI_HCD=y
   CONFIG_USB_XHCI_PLATFORM=y
   CONFIG_USB_DWC2=y
   remove un-necessary activated configs

[ci:skip-build]: already built successfully in CI
2022-12-07 20:54:43 +01:00
Sicelo A. Mhlongo fcc93a83df linux-nokia-n900: upgrade to lts 5.15.81 (MR 3692)
- Upgrade to linux 5.15.81
- Remove SPI driver for accelerometer to stop unnecessary dmesg output

[ci:skip-build]: already built successfully in CI
2022-12-07 09:52:35 +01:00
Raymond Hackley d6cb995b99 main/postmarketos-base: add regulator-haptic udev rules (MR 3691)
Add rules for regulator-haptic, which is used on:
- samsung-e5/e7
- samsung-cprime/gprime
- samsung-j3/j5(x)

Note that regulator-haptic is not supported on some devices yet,
and samsung-e5 is not ported at the moment.

[ci:skip-build]: already built successfully in CI
2022-12-07 09:46:19 +01:00
Jan Jasper de Kroon d8be6416d2 device/community/linux-pine64-pinephonepro: Upgrade to 6.1-rc8 (MR 3685)
- Also enabled LRU_GEN by default like on the PinePhone OG
- Set Ext4 module to built-in as this currently is the main fs used for PPP.
Contains the following patch:
- pinephone pro: finished fix for LCD to make it refresh at precisely 60 Hz

[ci:skip-build]: already built successfully in CI
2022-12-07 09:35:20 +01:00
Oliver Smith fc5d3bdd60 cross/gcc-*: upgrade to 12.2.1_git20220924-r5 2022-12-06 09:05:19 +01:00
Oliver Smith 594304eb29 main/postmarketos-release-upgrade: upgrade to 1.3.0 (MR 3690) 2022-12-05 08:00:07 +01:00
Newbyte ab590f2186 linux-postmarketos-exynos4: reduce boot image size (MR 3656)
Otherwise it doesn't fit the small kernel partition on some exynos4
devices (such as samsung-p4note).

Closes https://gitlab.com/postmarketOS/pmaports/-/issues/1785

[ci:skip-build]: Already built successfully in CI
2022-12-04 18:14:55 +01:00
Dzmitry Sankouski fc08a804bc testing/u-boot-starqltechn: update u-boot version and new patches (MR 3679)
Add new patches:
- enable serial console
- save relocation address to find KASLR
- buttons as keyboard input driver to navigate bootmenu
- bootmenu loop entry selection
2022-12-03 12:10:27 +01:00
Jan Jasper de Kroon 7c7c18e40f device/main/linux-postmarketos-allwinner: Enabe LRU_GEN by default (MR 3686)
MGLRU seeks to address Linux's poor page reclamation behavior with this new high performance LRU implementation to over-commit memory.
MGLRU has shown to be beneficial in a variety of benchmarks especially on memory constrained systems.

Some benchmarks:
- https://www.phoronix.com/news/Linux-MGLRU-v9-Promising
- https://www.phoronix.com/news/MGLRU-Reaches-mm-stable

[ci:skip-build]: Already built successfully in CI
2022-12-03 12:06:44 +01:00
Luca Weiss 6981fb47b6 community/firmware-fairphone-fp4: move from testing (MR 3687)
I missed moving this package when moving the device package to
community.

[ci:skip-vercheck]
2022-12-03 11:56:45 +01:00
M0Rf30 aa9127f92c linux-postmarketos-qcom-sdm660: upgrade to 6.0.10 (MR 3668)
Signed-off-by: Gianluca Boiano <morf3089@gmail.com>
[ci:skip-build]: already built successfully in CI
2022-12-02 08:57:36 +01:00
M0Rf30 eb2dd0b952 xiaomi-tulip: new device (Xiaomi Redmi Note 6 Pro) (MR 3668)
Signed-off-by: Gianluca Boiano <morf3089@gmail.com>
2022-12-02 08:57:27 +01:00
Mithil Bavishi b7fd6c90b0 linux-postmarketos-omap: update config (MR 3653)
[ci:skip-build]: already built successfully in CI
2022-12-02 08:50:52 +01:00
Mithil Bavishi 91035012b1 device: New device samsung-espresso10 2022-12-02 08:50:48 +01:00
Mithil Bavishi c45c27008c device-samsung-espresso3g: Rename to espresso7 2022-12-02 08:50:47 +01:00
Mithil Bavishi 85f9a49ad6 samsung-espresso10: move downstream pieces to unmaintained 2022-12-02 08:50:43 +01:00
Henrik Grimler a0678836a1 linux-postmarketos-exynos5: use exynos5-mainline repo to get src (MR 3675)
Patches are merged in that repo, so we then no longer have to keep
them in the pmaports repo.

[ci:skip-build]: already built successfully in CI
2022-12-02 08:42:01 +01:00
Anton Bambura a85c880974 linux-postmarketos-exynos5: add kconfigcheck-community (MR 3675) 2022-12-02 08:41:48 +01:00
Clayton Craft 4f712b5771 linux-purism-librem5: upgrade to 6.0.8 (MR 3684)
[ci:skip-build]: already built successfully in CI
2022-12-02 07:27:12 +01:00
Clayton Craft 584337aa82 purism-librem5: upgrade to latest ucm, fix udev rule installation (MR 3684)
Apparently upstream names udev rules with the .udev extension... which
doesn't work with udev (I guess debian has a helper for installing rules
and it renames them?). This adds the expected ".rules" extension to them
so that udev actually uses them.

This update also includes improved ucm config from Purism.

"Lockdown suppport" is also added here, which allows toggling off all of
the hks on the L5 to disable all radios, etc without breaking some
sensors. For more info, see 65ec7038 in librem5-base.
2022-12-01 16:46:14 -08:00
Oliver Smith 5e7faf1a09 device/main/u-boot-librem5: fix build on gcc 12 (MR 3683)
Disable Werror and add -no-warn-rwx-segment to LDFLAGS of
arm-trusted-firmware to make it build with gcc 12, smilar to:
https://gitlab.alpinelinux.org/alpine/aports/-/commit/769f9666b663ba06dca63ddbff6eb1af458355f3

Related: https://builds.sr.ht/~postmarketos/job/894728#task-pmbootstrap_build-422

[ci:skip-build] already built successfully in CI
2022-12-01 09:27:52 -08:00
Clayton Craft 2ccd927e23 purism-librem5: change default device tree (MR 3614)
Based on some new (to me...) info from Purism's Sebastian K, there are
apparently Evergreen devices that return different values for board rev,
so we shouldn't assume only r4 are Evergreen, and default to the r2 DT.

But many earlier devices (Birch, Chestnut, Dogwood) may or may not have
the board rev set either. Who knows! Defaulting to the Evergreen DT on
these devices is bad too, but there weren't many of those shipped (I
guess?), at least not compared to the number of Evergreens that aren't
properly identifiable in u-boot... so this using this DT by default is
the best of the two bad options we have.

This comment thread has more info:
https://gitlab.com/postmarketOS/pmaports/-/issues/1643#note_1147248594

fixes #1643

[ci:skip-build] already built successfully in CI
2022-12-01 09:24:13 -08:00
Jacopo Mondi 9db5f1d9f6 device/pine64-pinephonepro: Build DW9714 lens module (MR 3677)
Add the CONFIG_DW9714 symbol to the PinephonePro defconfig.

The PinephonePro rear camera module uses the DW9714 VCM to drive the
lens, and a driver is required to successfully complete the media
graph probe sequence.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
2022-12-01 12:19:52 +00:00
choc 2b7036dd54 testing/samsung-goyavewifi: new device (MR 3377)
xorg, ssh, touchscreen, battery works
[ci:skip-build]: already built successfully in CI
2022-12-01 09:50:53 +01:00
Jan Jasper de Kroon ccc870dcf9 device/main/linux-postmarketos-allwinner: Upgrade to 6.1-rc7 (MR 3678)
Kernel source updated to 6.1-rc7
Ext2 and Ext3 modules in aarch64 config disabled because Ext4 is backwards compatible.
2 fixes for PinePhone included in this source:
pinephone: fix power key behavior during suspend (avoid stuck key during resume)
pinephone keyboard: wait for 100ms after enabling power supply and before probing.

[ci:skip-build]: already built successfully in CI
2022-12-01 09:02:47 +01:00
Oliver Smith 3802b2cd40 temp/arm-trusted-firmware: fix build on gcc 12 (MR 3681)
Apply the same fix as in Alpine:
https://gitlab.alpinelinux.org/alpine/aports/-/commit/769f9666b663ba06dca63ddbff6eb1af458355f3

[ci:skip-build]: already built successfully in CI
2022-11-30 09:54:28 +01:00
Anton Bambura 9d98a872ed CODOWNERS: Add @Grimler for exynos5 kernel and tablets (MR 3680) 2022-11-29 21:25:14 +02:00
Newbyte 89ef6fcef8 main/crust: fix build with GCC 12 (MR 3676)
Patch picked from https://github.com/crust-firmware/crust/pull/209

[ci:skip-build]: Already built successfully in CI
2022-11-28 23:59:34 +01:00
Luca Weiss ff09c35b63 testing/linux-postmarketos-qcom-msm8974: enable kconfigcheck-community (MR 3657)
Also disable some unused CONFIG_ARCH_MSM* options.

[ci:skip-build]: Already built successfully in CI
2022-11-28 10:23:28 +01:00
Joel Selvaraj eab0457e00 CI: shellcheck: include call_audio_idle_suspend_workaround script (MR 3639)
[ci:skip-build]: already built successfully in CI
2022-11-28 09:07:52 +01:00
Joel Selvaraj ba6c4be060 community/device-oneplus-fajita: add q6voiced conf as it can make calls now (MR 3639)
Related dts and alsa ucm confs are merged in our tree.
2022-11-28 09:07:33 +01:00
Joel Selvaraj 156d093bc5 community/device-oneplus-enchilada: update q6voiced conf to match kernel (MR 3639) 2022-11-28 09:07:33 +01:00
Joel Selvaraj e95d28a6e7 community/soc-qcom-sdm845: update ucm confs and add call audio idle suspend workaround (MR 3639)
In SDM845, the q6voice kernel driver connects modem and audio backends.
Callaudiod seems to switch to correct audio device and prepares it, however, the audio
device get's closed since no one from the userspace is actively listening to it.
This cuts the audio in call. As a workaround, I have added to script to disable the
suspend-on-idle pulseaudio module during calls, so the audio devices don't close automatically.
2022-11-28 09:07:33 +01:00
Alexander Martinz 8e5d58b8ad community/linux-postmarketos-qcom-sdm845: upgrade to 6.1.0_rc4 (MR 3639)
Includes the following changes:
- rebase onto rc4
- squash a few changes which were marked to get squashed/fixups
- dropped "wcd934x: use .prepare and .shutdown instead of .trigger"
- OP6 audio device tree changes
- revert of a DSI DCS commit[1], which caused havoc in unprepare
  hooks of panel drivers

[1] - https://lore.kernel.org/linux-arm-msm/1892d0af-8aa4-dc03-887a-e44bb623b836@linaro.org/

Change-Id: I4790a278c0d35618ca824a036982769e66767ffd
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
2022-11-28 09:07:28 +01:00
Niko a58776b2a5 main/postmarketos-ui-gnome-mobile: update to newest development commits
[ci:skip-build]: already built successfully in CI
2022-11-28 08:57:23 +01:00
Oliver Smith a135553ee7 channels.cfg: add initial v22.12 branch 2022-11-28 08:25:48 +01:00
Oliver Smith 50f178a8fd temp/mutter-mobile: fix dep mutter-mobile-schemas (MR 3672)
It should have depended on mutter-mobile-schemas instead of
mutter-mobile. Looks like mutter-mobile-schemas was getting installed
instead of mutter-mobile for it only by chance until now.

[ci:skip-build]: already built successfully in CI
2022-11-27 19:00:26 +01:00
Dylan Van Assche 1cbc021701 unmaintained/shift-axolotl-downstream: new device (MR 3637)
Downstream for kernel development, not for actual use.

Kernel defconfig taken from stock with:
- CONFIG_ANDROID_PARANOID_NETWORK unset
- CONFIG_DEVTMPFS set
- CONFIG_EXT4_FS_POSIX_ACL set
- CONFIG_LOCALVERSION set to "-downstream"
- CONFIG_SYSVIPC set
- CONFIG_USB_CONFIGFS_RNDIS set
- CONFIG_USER_NS set

Change-Id: I22bfd30dfc664dfaa2123c856b3662ddb37e760f
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
[ci:skip-build]: already built successfully in CI
2022-11-27 18:56:37 +01:00
Anton Bambura de609bf946 CODEOWNERS: update owners of Tegra-related packages (MR 3671) 2022-11-27 18:41:19 +01:00
Oliver Smith c1b08d8c60 u-boot-pinephone: disable automatic upgrade (MR 3664)
Don't upgrade u-boot automatically anymore as it doesn't work reliably
and isn't necessary anymore. See the wiki article for details.

Related: https://wiki.postmarketos.org/wiki/PinePhone_U-Boot_Upgrade
2022-11-27 17:52:30 +01:00
Oliver Smith 1af1eafd23 CI: mark deviceinfo_usb_rndis_function as obsolete (MR 3669)
[ci:skip-build]: already built successfully in CI
2022-11-27 17:30:03 +01:00
Luca Weiss 9271ab80b6 device/*: rename deviceinfo_usb_rndis_function (MR 3669)
Use the new variable name as used in initfs
2022-11-27 17:29:55 +01:00
Luca Weiss f60539ea18 main/postmarketos-mkinitfs: rename usb_rndis_function variable (MR 3669)
The variable describes the configfs function name to use, no matter if
it's rndis, ncm, ecm or any other function. So change the name of the
variable, the string we write to the configuration file and some
comments.
2022-11-27 17:29:37 +01:00
Jan Jasper de Kroon a3ae92f0ff device/main/linux-postmarketos-allwinner: upgrade to 6.1-rc6 (MR 3666)
[ci:skip-build]: already built successfully in CI
2022-11-27 17:13:01 +01:00
Alexander Martinz 2f6a7c9f77 testing/tablet-x64uefi: reformat depends and bump pkgrel (MR 3663)
Change-Id: I015f35f3e1b7563e341183cc08afb924aa2ed80b
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
2022-11-26 14:45:52 +01:00
Alexander Martinz 21facd5cd5 testing/tablet-x64uefi: add libva subpackage (MR 3663)
Change-Id: I302321b7908ab7af989ca1e93f88eb575bbf2048
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
2022-11-26 14:45:52 +01:00
Alexander Martinz f8285416e1 testing/tablet-x64uefi: add vulkan subpackage (MR 3663)
Enable vulkan on supported hardware configurations
out of the box.

Change-Id: I6c8e1713e7c834aae3a162b8a681f5abde02ed5e
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
2022-11-26 14:45:51 +01:00
Anton Bambura 2163de2a5f linux-postmarketos-mediatek-mt8183: add kconfigcheck-community (MR 3667)
[ci:skip-build]: Already built successfully in CI
2022-11-26 14:22:03 +01:00
Anton Bambura 0109016e86 CODEOWNERS: update mt8183 packages owners (MR 3667) 2022-11-26 14:21:50 +01:00
Anton Bambura af5183e062 linux-postmarketos-mediatek-mt8183: add myself as a co-maintainer (MR 3667) 2022-11-26 14:21:49 +01:00
Sicelo A. Mhlongo e3154dd055 nokia-n900: use updated serial console name (MR 3662)
Since 00648d0282dcca1da453c0b20d27e24bf901a854, the correct serial console name
is ttySx instead of the older ttyOx. Reflect this in cmdline passed to kernel
via u-boot

[ci:skip-build]: already built successfully in CI
2022-11-23 09:07:39 +01:00
Alexander Martinz 5ce0b6ae4d main/postmarketos-ui-plasma-desktop: add various recommended packages (MR 3659)
Recommend installing:
  - fwupd
    - Receive firmware updates for supported hardware

The following packages are required to show device information at:
  - Settings -> About this System -> Show More Information

Devices
  - Firmware Security
    - aha
    - fwupd
  - PCI
    - pciutils

Graphics
  - OpenGL
    - mesa-demos
  - Vulkan
    - vulkan-tools
  - Wayland
    - wayland-utils
  - X-Server
    - xdpyinfo

Change-Id: I8a1eb484720f717f0504418f7c5c6af505b081b6
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
[ci:skip-build]: already built successfully in CI
2022-11-23 09:04:19 +01:00
Luca Weiss c960b3d941 raspberry-pi4: remove conflicting brcmfmac firmware link (MR 3636)
The file brcmfmac43455-sdio.raspberrypi,4-model-b.bin is now provided by
linux-firmware-brcm package in Alpine. Remove to symlink to stop the
file conflict.
2022-11-22 16:32:08 +01:00
Mithil Bavishi 9147bbd9bc linux-postmarketos-omap: update config (MR 3653) 2022-11-22 10:29:33 +01:00
uclydde ecb08a4388 motorola-ali: use mainline kernel and add firmware (MR 3569)
[ci:skip-build]: already built successfully in CI
2022-11-21 09:08:46 +01:00
Oliver Smith 245d41d7c5 CI scripts: fix typo in URL (MR 3655)
Note that the URLs in these scripts are not only for information, but
they are also used as marker by pmbootstrap so it knows these are
compatible with 'pmbootstrap ci'. I just fixed the typo in the
pmbootstrap code as well and made a new release, use pmbootstrap 1.50.0
or above to have it recognize these scripts with 'pmbootstrap ci' again.
2022-11-20 16:50:42 +01:00
Raymond Hackley e9e3295925 main/postmarketos-ui-kodi: Add armv7 (MR 3647)
flatbuffers should have been available on armv7,
since aports 0f3295fb0660f5caf59b8b2385f7c9305f1d57f0

[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2022-11-20 16:22:44 +01:00
Minecrell 63373d18a5 unmaintained/linux-{alcatel,samsung-a5}*: fix checksums (MR 3654)
I renamed the repository so GitHub changed all the checksums. :(

[ci:skip-vercheck]: the source files are still exactly the same
[ci:skip-build]: Already built successfully in CI
2022-11-20 16:13:28 +01:00
Oliver Smith 03ee2e9bba cross/busybox-static-*: upgrade to 1.35.0-r29 2022-11-20 16:01:34 +01:00
Newbyte aacc9f48dd temp/mutter-mobile: remove zenity dependency (MR 3648)
mutter no longer depends on zenity as of version 43.alpha.

See https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2370
And https://gitlab.gnome.org/GNOME/mutter/-/blob/e331e38a191a36faaa5bb049157ab77f94fd7654/NEWS#L137

Alpine commit: https://gitlab.alpinelinux.org/alpine/aports/-/commit/80c64759d16d1161ba706f83fca4d7518ebc3302

[ci:skip-build]: already built successfully in CI
2022-11-20 15:54:57 +01:00
Luca Weiss 7553dc4011 qemu-riscv64: new device (MR 3571)
Support launching postmarketOS in QEMU on riscv64 architecture. It is
mostly copied from device-qemu-aarch64 with some riscv64-specific
modifications.

Currently UIs using Xorg like Mate, XFCE4 and LXQT work fine, Wayland
UIs like weston, plasma-mobile etc didn't work in my testing.

Also using "pmbootstrap qemu --tablet" is needed to make mouse input
work, the defaults don't seem to work at the moment.

[ci:skip-build]: already built successfully in CI
2022-11-20 15:22:22 +01:00
Svyatoslav Ryhel 3301dc90d8 device-lg-p895: add support for LG Optimus Vu (MR 3645)
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
[ci:skip-build]: already built successfully in CI
2022-11-20 15:19:06 +01:00
Svyatoslav Ryhel a7467afe2f firmware-lg-x3: add LG Optimus 4X HD and Vu firmwares (MR 3645)
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2022-11-20 15:18:56 +01:00
Svyatoslav Ryhel 4f72f9b96c linux-postmarketos-grate: upgrade to 6.0.6 stable (MR 3645)
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2022-11-20 15:18:47 +01:00
Luca Weiss e03c6469a7 fairphone-fp3: include touchscreen driver in initfs (MR 3651)
Now that touchscreen driver is supported in kernel, include the module
in initfs so it's available there.

[ci:skip-build]: Already built successfully in CI
2022-11-19 11:44:39 +01:00
Luca Weiss 96179b88df testing/linux-postmarketos-qcom-msm8953: support Moto G6 & FP3 touchscreen (MR 3651)
Upgrade to a newer 5.18.3 commit that adds this support, and enable the
relevant kconfig options.
2022-11-19 00:21:14 +01:00
Luca Weiss 502474cc3a main/*: rebuild against Python 3.10 (MR 3650) 2022-11-18 18:35:26 +01:00
Oliver Smith bbead6a9c6 main/postmarketos-android-recovery-installer: upgrade to 1.0.7 (MR 3646)
[ci:skip-build]: already built successfully in CI
2022-11-18 08:03:08 +01:00
Johannes Marbach b13fe4ece0 main/unl0kr: upgrade to 0.3.0 (MR 3641)
[ci:skip-build]: already built successfully in CI
2022-11-17 21:23:07 +01:00
Oliver Smith a1242ed35e CI: implement distfile-check as python test (MR 3608)
Reimplement the distfile-check as python test inside this git
repository, so we don't need to download a tarball of ci-common.git to
run it. This would not have been nice for running the test with
'pmbootstrap ci', as we don't want it to get downloaded every time the
test runs.

This new implementation is done in less than 40 lines of code, very fast
and doesn't need to create a lot of files in /tmp to build a
"distfiletree".
2022-11-17 19:10:56 +01:00
Oliver Smith 3c4080e8f5 CI: make test_unreferenced_files more generic (MR 3608)
Prepare to add a new test making use of the
parse_source_from_checksums() function in test_unreferenced_files.py by
extending the function to not only return the checksum file names, but
also the checksums. Also rename the file from test_unreferenced_files.py
to test_source.py.
2022-11-17 19:10:56 +01:00
Oliver Smith 6dbe4fdc31 CI: move_logs.sh: put in .ci/lib (MR 3608) 2022-11-17 19:10:56 +01:00
Oliver Smith 196abb1575 CI: kconfig adjust for 'pmbootstrap ci' (MR 3608) 2022-11-17 19:10:56 +01:00
Oliver Smith da52dace85 CI: adjust .ci/common.py users to pmbootstrap ci (MR 3608)
Adjust all CI scripts that make use of .ci/common.py to
'pmbootstrap ci'. Move all scripts that are not direct entry points to
running CI scripts to .ci/lib.

Comment out the dtb check, as it is failing. Apparently it didn't run
properly before. Let's fix this after this CI change is done.
2022-11-17 19:10:56 +01:00
Oliver Smith 8f78988b33 CI: editor-config: adjust for 'pmbootstrap ci' (MR 3608) 2022-11-17 19:10:56 +01:00
Oliver Smith c88cfa516f CI: shellcheck: adjust for 'pmbootstrap ci' (MR 3608)
Split out the grep for CHANGEME into a separate .ci/grep.sh script, as
it's not related to shellcheck and also there's another grep check that
I'll move there in a follow-up patch.
2022-11-17 19:10:56 +01:00
Oliver Smith 613aa1c68a CI: flake8: adjust for 'pmbootstrap ci' (MR 3608) 2022-11-17 19:10:56 +01:00
Oliver Smith a2f75963bf CI: wiki: adjust for 'pmbootstrap ci' (MR 3608)
Add a wrapper .ci/wiki.sh, that pmbootstrap ci can run and use it in
gitlab-ci.yml. Add a .ci/lib/gitlab_prepare_ci.sh script that makes a
user available with sudo, as expected by the pmbootstrap ci compatible
scripts. Set up binfmt_misc too while at it, it will be needed for
running pmbootstrap.

The next patches will adjust the rest of the CI scripts and move the old
scripts in the .ci/lib dir, so only the scripts that should be called
directly are in the .ci dir.

Related: https://postmarketos.org/pmb-ci
2022-11-17 19:10:56 +01:00
Oliver Smith 23790a3577 .ci/check_devices_in_wiki: remove <> around url (MR 3608)
I added this around all urls in the beginning of postmarketOS, but now I
think it makes it less readable and doesn't have a benefit.
2022-11-17 19:09:57 +01:00
Oliver Smith cb79ff57d3 cross/busybox-static-*: upgrade to 1.35.0-r28 2022-11-17 08:35:52 +01:00
Oliver Smith dadfca1fb8 pmaports.cfg: add supported_heimdall_depends
Add the new variable, similar to supported_fastboot_depends.

Related: https://lists.sr.ht/~postmarketos/pmbootstrap-devel/patches/36815
Related: https://wiki.postmarketos.org/wiki/Pmaports.cfg_reference
2022-11-16 08:45:07 +01:00
Dzmitry Sankouski c18d2da154 xiaomi-sagit: fix initramfs module list and blacklist ipa module (MR 3644)
Remove mainline postfix in initramfs module list,
because sagit has only 1 kernel for now.
Blacklisting ipa module fixes poweroff.
See 68cdc1ea2b commit for more info.

[ci:skip-build]: already built successfully in CI
2022-11-16 08:22:47 +01:00
Jakob Hauser 67b5dd49dd main/swclock-offset: move to its own repository (MR 3642)
To make "swclock-offset" available to other projects as well, it was
moved to its own repository.
2022-11-15 10:32:29 +01:00
Jami Kettunen fa69d91465 volla-yggdrasil: new device (Volla Phone) (MR 3319) 2022-11-14 19:44:54 +02:00
Jami Kettunen cf6b0ff530 linux-postmarketos-mediatek-mt6763: new aport (6.1_rc5) (MR 3319)
This is an early mainline port for the MediaTek MT6763 Helio P23 SoC
that just about boots in about 3 minutes with one core online, logs on
display (simplefb) or UART serial console and USB gadget mode
facilitating netbooting postmarketOS while tethered via RNDIS.
2022-11-14 19:44:54 +02:00
medsouz 59c3894c44 device/pine64-pinephonepro: Load Pinephone Pro devicetree with Grub (MR 3628)
Restores Pinephone Keyboard functionality
2022-11-14 09:38:27 -05:00
Newbyte 5230a69c3a temp/megapixels-purism: update url to point to millipixels repo (MR 3640)
Repository was moved.
2022-11-14 08:48:12 +01:00
Newbyte 4ee3b769fb main/postmarketos-ui-phosh: rename kgx to gnome-console (MR 3638)
kgx was renamed to gnome-console with the release of version 42.beta, so
let's reflect that in our Phosh UI package.

[ci:skip-vercheck]: pkgrel bump is not necessary when changing
recommends.
2022-11-14 08:41:45 +01:00
Asutosh Variar 7f12e90c18 apple-iphone6: new device (MR 3629)
[ci:skip-build]: already built successfully in CI
2022-11-14 08:03:23 +01:00
Mithil Bavishi 432c4991fd linux-postmarketos-omap: Add charger (SMB347) support for espresso10 (MR 3626)
[ci:skip-build]: already built successfully in CI
2022-11-13 20:16:20 +01:00
Jan Jasper de Kroon c7c7fbce18 pine64-pinephonepro: Clean up double handled modem udev-rules (MR 3635)
Same as with PinePhone, remove some udev rules already handled by eg25-manager udev.

[ci:skip-build]: already built successfully in CI
2022-11-12 13:05:38 +01:00
Jan Jasper de Kroon 955ac29f0d device/community/linux-pine64-pinephonepro: upgrade to 6.0.8 (MR 3599)
Upgrade PinePhone Pro kernel to rebased 6.0.8
Including 11 PinePhone Keyboard patches.

[ci:skip-build]: already built successfully in CI
2022-11-11 08:21:36 +01:00
Devin Lin 1c42df3769 main/postmarketos-ui-plasma-mobile: Sync configuration with upstream (MR 3634)
[ci:skip-build]: already built successfully in CI
2022-11-11 08:16:18 +01:00
alikates e38db6e4de main/postmarketos-mkinitfs: don't use uevent helper (MR 3351)
Instead of using the uevent helper binary, mdev daemon listens for kernel
events using the netlink interface. Then the requirement of enabling
UEVENT_HELPER for pmOS kernels can be dropped, as it's use is discouraged.

From CONFIG_UEVENT_HELPER kernel config help:

> This should not be used today, because usual systems create many events
> at bootup or device discovery in a very short time frame. One forked
> process per event can create so many processes that it creates a high
> system load, or on smaller systems it is known to create out-of-memory
> situations during bootup.

Support for running mdev as a daemon was added in 2019 with commit [1].

From that same commit:

> Adds the -d option to run mdev in daemon mode handling hotplug events
> from the kernel like udev. If the system generates many hotplug events
> this mode of operation will consume less resources than registering
> mdev as hotplug helper or using the uevent applet.

[1] https://git.busybox.net/busybox/commit/?id=498cec202adbf69a7a72af5e204260682d614183
[ci:skip-build]: already built successfully in CI
2022-11-11 08:11:19 +01:00
Johannes Marbach 0b523f354b main/unl0kr: upgrade to 0.2.0_git20221110 (MR 3633)
[ci:skip-build]: already built successfully in CI
2022-11-11 07:52:20 +01:00
Gareth Peoples c906b166b2 samsung-heatqlte: new device (Samsung Galaxy Ace 4) (MR 3620)
[ci:skip-build]: already built successfully in CI
2022-11-10 21:50:10 +01:00
Alexey Minnekhanov ad249d3b87 linux-postmarketos-qcom-msm8974: upgrade to 5.19.17 (MR 3625)
This contains a fix for second panel variant for samsung-hlte.

No more manual changes, .config was regenerated using kconfig migrate.

[ci:skip-build]: already built successfully in CI
2022-11-10 21:41:20 +01:00
exkc 4a43f241ee linux-postmarketos-allwinner: enable compiling sunxi-cir (MR 3609)
This gets IR RX working on Allwinner-based devices that have IR.

[ci:skip-build]: already built successfully in CI
2022-11-10 21:32:49 +01:00
Oliver Smith 1009f265d1 cross/musl-*: upgrade to 1.2.3-r4 2022-11-10 21:20:18 +01:00
Jan Jasper de Kroon 64e671aea3 Revert "device/pine64-pinephone: add recommended modem udev rules (MR 3235)" (MR 3632)
This reverts commit b62d7f6e7c.
These are already handled by 80-modem-eg25.rules in eg25-manager.

[ci:skip-build]: already built successfully in CI
2022-11-10 21:14:07 +01:00
Jan Jasper de Kroon d4e96df17d Revert "device/pine64-pinephone: add additional modem udev rule for new community firmware serial (MR 3240)" (MR 3632)
This reverts commit f8df093985.
These are already handled by 80-modem-eg25.rules in eg25-manager.
2022-11-10 21:13:55 +01:00
Pablo Correa Gómez df76034e32 main/avbtool: remove (MR 3630)
avbtool is now included in android-tools upstream

Relates #1779
2022-11-09 17:52:50 +01:00
Oliver Smith 8c77e7e42f pmaports.cfg: add supported_fastboot_depends
Add this new variable so pmbootstrap can use it to determine which
depends need to be installed for the fastboot flashing method. It used
to be android-tools,avbtool but now it's only android-tools as avbtool
became part of android-tools.

Related: issue 1779
Related: https://postmarketos.org/pmaports.cfg
2022-11-09 09:00:51 +01:00
iAboothahir 3bf4fe443f firmware-asus-x00td: add missing mba.mbn firmware (MR 3617)
Signed-off-by: Aboothahir U <aboothahirpkd@gmail.com>

[ci:skip-build]: Already built successfully in CI
2022-11-08 08:46:27 +01:00
iAboothahir 7f6b7fb2d0 device-asus-x00td: add qcom_fg ,qcom_pmi8998_charger module to initfs (MR 3617)
Signed-off-by: Aboothahir U <aboothahirpkd@gmail.com>
2022-11-08 08:46:23 +01:00
iAboothahir f7cf971e40 linux-postmarketos-qcom-sdm660: upgrade to 6.0.5 (MR 3617)
Signed-off-by: Aboothahir U <aboothahirpkd@gmail.com>
2022-11-08 08:46:13 +01:00
Jan Jasper de Kroon 62f19c3e03 device/main/linux-postmarketos-allwinner: upgrade to 6.0.7 (MR 3624)
[ci:skip-build]: Already built successfully in CI
2022-11-08 08:39:44 +01:00
Barnabás Czémán 68c728e63c testing/xiaomi-riva: Fix fb.modes (MR 3616)
Fixes fb.modes values.
2022-11-07 21:44:09 +01:00
Segfault a2365ffc57 device/testing: update htc-flounder to use mainline kernel (MR 3623)
This is an incomplete port but it has greater functionality than the existing downstream based one, which has been moved to unmaintained.

[ci:skip-build]: Already built successfully in CI
2022-11-07 21:29:24 +01:00
Segfault d4eed06542 htc-flounder: move downstream pieces to unmaintained (MR 3623)
It can still be chosen as 'htc-flounder-downstream' in
pmbootstrap init.
2022-11-07 21:29:11 +01:00
Dylan Van Assche 64dc758fed community/soc-qcom-sdm845: fix earpiece SHIFT6mq (MR 3618)
Update to latest ALSA UCM configs to fix earpiece on SHIFT6mq

[ci:skip-build] already built successfully in CI
2022-11-06 21:40:54 -08:00
Raymond Hackley 27e98026e4 samsung-{gprimelte{can,xx},fortuna3g}: add both available panel variants (MR 3604)
There are 2 panel variants supported:
- panel-samsung-hx8389c-gh9607501a
- panel-samsung-s6d78a0-gh9607501a

Add both of them to enable panel display during splash and FDE.
Note that fortunaltezt has only one panel variant so it's not included.

[ci:skip-build] already built successfully in CI
2022-11-06 21:38:51 -08:00
Clayton Craft 6ec2ba3c03 postmarketos-android-recovery-installer: upgrade to 1.0.6 (MR 3619)
Fixes:
- Fix installation with FDE
- Use new path to kpartx (MR 16)

Other:
- pmos_install: Increase boot partition size to 256MB (MR 14)
- pmos_install_functions: make shellcheck happy
- update-binary: make shellcheck happy

[ci:skip-build] already built successfully in CI
2022-11-06 21:36:40 -08:00
Newbyte 63b661faa4 cross/musl-riscv64: upgrade to 1.2.3-r2 2022-11-06 15:11:25 +01:00
Newbyte cbb3d09687 cross/musl-armv7: upgrade to 1.2.3-r2 2022-11-06 15:11:13 +01:00
Newbyte fe0c0492a1 cross/musl-armhf: upgrade to 1.2.3-r2 2022-11-06 15:11:06 +01:00
Newbyte 8611e23f3c cross/musl-aarch64: upgrade to 1.2.3-r2 2022-11-06 15:10:52 +01:00
Martijn Braam 4c3be3aa14 main/postmarketos-tweaks: upgrade to 0.13.0 (MR 3613)
[ci:skip-build] already built successfully in CI
2022-11-03 23:27:05 -07:00
Clayton Craft 02198dccdd postmarketos-mkinitfs: upgrade to 1.5.1
Fixes a crash due to the path for kpartx changing in a multipath update
in Alpine Edge.
2022-11-03 12:05:23 -07:00
Dzmitry Sankouski 341e959e45 xiaomi-sagit: new device (Xiaomi Mi6) (MR 3134)
Device uses mainline kernel. What works:
- boots
- display
- touchscreen
- wifi

Also add firmware package

[ci:skip-build]: already built successfully in CI
2022-11-03 07:58:19 +01:00
Raymond Hackley db00e85baf main/postmarketos-config-nftables: 50_*.nft: drop unused wwan rules (MR 3594)
There is "iifname "wwan*" drop" defined in 01_wwan.nft, which drops
any not "established, related" incoming packet from WWAN.

[ci:skip-build]: already built successfully in CI
2022-11-03 07:48:33 +01:00
Richard Acayan 259e8cc44f google-sargo: add nonfree firmware (MR 3590)
Non-free firmware is required for:
 - 3D acceleration
 - Video acceleration
 - Bluetooth

[ci:skip-build]: already built successfully in CI
2022-11-03 07:37:46 +01:00
Richard Acayan f2b1d7e206 device/testing/linux-postmarketos-qcom-sdm670: upgrade to 6.0.6 (MR 3590)
New features for google-sargo:
 - GPU acceleration
 - Bluetooth
 - Haptics (currently only rumble effect)
 - Video acceleration (still untested)
 - NFC (only detection was tested)
2022-11-03 07:37:35 +01:00
Alexander Martinz 0307dc695e tablet-x64uefi: add kernel-edge as additional option (MR 3610)
Certain newer hardware may require a newer kernel than the current
lts in order to work.

Change-Id: Iae0d91f8bf8d1b8516698841895f942e527b0813
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
[ci:skip-build]: already built successfully in CI
2022-11-03 07:33:56 +01:00
Anton Bambura fac4d7e178 temp/alsa-ucm-conf-google-kukui: add myself as maintainer (MR 3611) 2022-11-02 19:07:31 +01:00
Anton Bambura 12d2830ba7 testing/firmware-google-veyron-brcm: add myself as maintainer (MR 3611) 2022-11-02 19:07:31 +01:00
Anton Bambura a98c9ab918 testing/device-microsoft-surface-rt: add myself as maintainer (MR 3611) 2022-11-02 19:07:31 +01:00
Anton Bambura be2368a676 testing/device-lg-judyp: add myself as maintainer (MR 3611) 2022-11-02 19:07:31 +01:00
Anton Bambura 99d21ecfef community/firmware-lenovo-a6010: add myself as maintainer (MR 3611) 2022-11-02 19:07:31 +01:00
Anton Bambura c1a125b56f community/firmware-lenovo-a6000: add myself as maintainer (MR 3611) 2022-11-02 19:07:30 +01:00
Anton Bambura bdec0258b6 CODEOWNERS: add myself for packages that I maintain (MR 3611) 2022-11-02 19:07:30 +01:00
Bart Ribbers 97b18eafb2 community/postmarketos-ui-plasma-desktop: add bluetooth service to default runlevel (MR 3592) 2022-11-02 18:46:07 +01:00
Barnabás Czémán 7ff30616ef xiaomi-riva: Add initial support for Redmi 5A (MR 3595)
[ci:skip-build]: already built successfully in CI
2022-11-02 18:41:19 +01:00
Oliver Smith 1fcbdb1819 pmaports.cfg: set pmbootstrap_min_version=1.47.0
With recent cross/gcc-* upgrades, we actually require pmbootstrap
1.47.0 to avoid the following error:
  ERROR: Invalid pkgver '${_pkgbase}_git${_pkgsnap}' in APKBUILD: /home/user/.local/var/pmbootstrap/cache_git/pmaports/cross/gcc-aarch64/APKBUILD
2022-11-02 15:37:03 +01:00
Oliver Smith d86cd0c188 cross/gcc-*: upgrade to 12.2.1_git20220924-r4 2022-11-02 15:29:48 +01:00
Oliver Smith 5e2730d2db CI: add new test for correct usage of provides (MR 3597)
[ci:ignore-count]
[ci:skip-build]: does not finish for aarch64, I'll verify that it builds
for aarch64 before merging.
2022-11-02 15:02:56 +01:00
Oliver Smith 73376dee97 temp/megapixels-purism: fix provides (MR 3597)
The pkgver is significantly lower (0.19) than the one of megapixels
(1.5.2 as of writing), so we can use the versioned provides here. If it
was closer so megapixels-purism's pkgver could become higher than
megapixels in the future, then we should use unversioned provides with
provider priorities instead.
2022-11-02 15:02:55 +01:00
Oliver Smith 5e73fe103a main/mobile-config-firefox: upgrade to 3.1.0 (MR 3597)
Drop replaces, provides for postmarketos-config-firefox. This was the
name of the package until August of 2020, not relevant anymore. Also
the provides didn't have pkgrel and therefore was wrong.
2022-11-02 15:02:55 +01:00
Oliver Smith f8d12ed781 main/msm-firmware-loader: fix provides (MR 3597) 2022-11-02 15:02:55 +01:00
Oliver Smith f01b561b97 device/community/soc-*-ucm: set provider_priority (MR 3597)
Setting unversioned provides= without provider_priority is not valid.
Set provider_priority=1, the related aports MR will set it to 10 in
alsa-ucm-conf.

Related: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/40814
2022-11-02 15:02:55 +01:00
Oliver Smith a258f27d03 device/community/firmware-bq-picmt: fix provides (MR 3597) 2022-11-02 15:02:54 +01:00
Oliver Smith f288cdaa77 treewide: remove linux-headers replacements (MR 3597)
Remove the -dev subpackages of kernels that replace the linux-headers
package. As I understand, the only case where this would make sense is
if you wanted to build a kernel module against headers that need to be
newer than the headers in Alpine's linux-headers package (currently
5.19.5).

While this might have been historically relevant when wireguard wasn't
in the kernel and you might have needed newer linux-headers to build
the module, it seems irrelevant today. If somebody should need this in
the future, then bring it back properly / consider getting the
linux-headers package in Alpine upgraded. Right now the -dev packages
are broken in several ways:

* Use of unversioned provides= (pma#1766)
* Don't contain binaries needed to build binary packages (pma#462).
  This was worked around in 6aba5f ("Package kernel-scripts
  separately"), but later this didn't build anymore and we removed it.

So in short: broken and unused, drop them.
2022-11-02 15:02:54 +01:00
Oliver Smith 96f8084bcd main/postmarketos-ui-sxmo-de-dwm: set provider_priority=5 (MR 3597)
apk treats provider_priority=0 as if it is not there, not as lowest
value. The previous patch set it to =10 for …-sxmo-de-sway, so set it to
=5 for the dwm version.

Related: https://gitlab.alpinelinux.org/alpine/apk-tools/-/blob/c21f61ddd8d742e4de2202aa623b0c06573f567b/src/solver.c#L713-721
2022-11-02 15:02:54 +01:00
Oliver Smith 04250e1e41 main/postmarketos-ui-sxmo-de-sway: set provider_priority=10 (MR 3597)
apk ignores a provider_priority of 0. In order to have …-sxmo-de-dwm
have a lower provider priority than …-sxmo-de-sway, set a higher
priority than 1 for the sway version.
2022-11-02 15:02:54 +01:00
Oliver Smith 36cff31884 main/mkbootimg-osm0sis: upgrade to 2021.08.06 (MR 3597)
Also fix wrong use of provides.
2022-11-02 15:02:48 +01:00
Alexander Martinz a2c2a6573e community/linux-postmarketos-qcom-sdm845: upgrade to 6.1.0_rc3 (MR 3580)
Change-Id: Ice7c2942892eb0a173dcded835d5fac5a8f32066
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
[ci:skip-build]: already built successfully in CI
2022-11-02 14:54:57 +01:00
Anton Bambura 909df1c8e5 google-hana: depend on alsa-utils (MR 3601)
This makes sound working
[ci:skip-build]: already built successfully in CI
2022-11-02 14:50:51 +01:00
Anton Bambura 6d22ee8398 google-elm: depend on alsa-utils (MR 3601)
This makes sound working
2022-11-02 14:50:39 +01:00
Anton Bambura c689986438 alsa-ucm-conf-google-kukui: add symlinks (MR 3600)
For some reason, alsa sometimes probes it from another locations.
Add symlinks to handle it

Tested-by: Eric Curtin <ecurtin@redhat.com>
[ci:skip-build]: already built successfully in CI
2022-11-02 14:45:54 +01:00
Luca Weiss 5c78e255a6 CI: disallow firmware packages to be noarch (MR 3607)
As explained in the previous commit, it's just unnecessary.

[ci:ignore-count]
[ci:skip-vercheck] no need to rebuild for arch change
2022-11-01 18:20:08 +01:00
Luca Weiss 44f1e77115 device/*/firmware-*: move away from arch="noarch" (MR 3607)
Stop building many firmware packages for architectures that aren't used
by those devices. This should reduce CI/bpo time and repo space by a
bit.
2022-11-01 18:20:03 +01:00
Newbyte 909aebe26f temp/gtk+2.0: remove (MR 3598)
gtk+2.0 for aarch64 is available in Alpine again.
2022-11-01 17:31:01 +01:00
niko 623702d4cf main/postmarketos-ui-gnome-mobile: replace gedit with gnome-text-editor (MR 3603)
[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2022-11-01 16:58:41 +01:00
Dylan Van Assche d8c4343bea community/soc-qcom-sdm845: add ALSA UCM for SHIFT6mq (MR 3606)
Update the ALSA UCM package for the SDM845 so the ALSA UCM configs for
the SHIFT6mq are included. Speaker, microphones, headset work fine in
HiFi mode. In Voice Call mode, the microphone works, but the earpiece is
still silent.

[ci:skip-build]: already built successfully in CI
2022-11-01 16:53:49 +01:00
Dylan Van Assche 9ce52b3587 community/device-shift-axolotl: add q6voiced config (MR 3606)
q6voiced is a daemon to allow voice calls with the q6voice kernel
driver. Add its config so it can open the right audio device on the
SHIFT6mq during a call.
2022-11-01 16:53:49 +01:00
Luca Weiss c4fac0adfa community/linux-postmarketos-qcom-sm6350: enable new community options (MR 3560)
[ci:skip-build] # too many packages for 3h
2022-10-31 21:20:26 +01:00
Luca Weiss 5db3c291f2 community/linux-postmarketos-qcom-msm8996: enable new community options (MR 3560) 2022-10-31 21:19:46 +01:00
Luca Weiss 9ecbd62fce community/linux-postmarketos-qcom-msm8916: enable new community options (MR 3560) 2022-10-31 21:19:35 +01:00
Luca Weiss d49ecb9dbb community/linux-postmarketos-omap: enable new community options (MR 3560) 2022-10-31 21:18:22 +01:00
Luca Weiss 9a462d3759 community/linux-postmarketos-exynos4: enable new community options (MR 3560) 2022-10-31 21:17:39 +01:00
Luca Weiss 76f5a4ab50 community/linux-pine64-pinephonepro: enable new community options (MR 3560) 2022-10-31 21:17:36 +01:00
Luca Weiss bbce946108 community/linux-nokia-n900: enable new community options (MR 3560) 2022-10-31 21:16:39 +01:00
Luca Weiss 0948a1659c main/linux-postmarketos-allwinner: enable new community options (MR 3560) 2022-10-31 21:07:16 +01:00
Sicelo A. Mhlongo 930d8ecad2 device-nokia-n900: fix Fn key in latest xkb-config (MR 3596)
Explicitly set Fn key as Mod5. In xkeyboard-config up to 2.36, this was somehow
set implicitly, since it was working, although I am not sure where/how. In 2.37
it only works when specified.

[ci:skip-build]: already built successfully in CI
2022-10-31 12:34:01 +01:00
Barnabás Czémán e2c984606f firmware-xiaomi-rolex: replace broken source link (MR 3593)
[ci:skip-build]: already built successfully in CI
2022-10-28 09:48:53 +02:00
Sicelo A. Mhlongo 789343b8c7 device-nokia-n900: enable use of rtc time at boot (MR 3586)
Since N900 rtc works fine, remove swclock from boot as it causes time to be set
wrong. Additionally, rtc device is set correctly in kernel, so remove old,
adjusted hwclock config.

Partially reverts pmaports 0e502a5139
[ci:skip-build]: already built successfully in CI
2022-10-28 08:37:16 +02:00
Oliver Smith 2acece294a temp/gtk+2.0: fork from Alpine for aarch64
Fork it as the package is currently gone in Alpine edge for aarch64 and
the builder seems to be stuck.
2022-10-28 08:31:52 +02:00
Luca Weiss 8c19bf2f9b CI: add riscv64 (MR 3566)
Now that we have the cross compilers in place, make the CI build riscv64
as well.
2022-10-26 20:56:18 +02:00
Oliver Smith d410854f6c temp/gnome-shell-mobile: disable on riscv64
[ci:skip-vercheck] [ci:skip-build]: just changing arches
2022-10-26 20:29:19 +02:00
Oliver Smith 2d51770a74 main/postmarketos-ui-gnome-mobile: disable on riscv64 2022-10-26 20:27:13 +02:00
Oliver Smith 5e9e802c67 temp/mutter-mobile: disable on riscv64
Fails for a weird reason, disable to get the initial bpo build for
riscv64 done.

Related: https://builds.sr.ht/~postmarketos/job/869829
2022-10-26 20:25:26 +02:00
Sam Day e017c774f1 linux-postmarketos-qcom-msm8974: compile modules for netboot and iptables 'statistic' (MR 3581)
[ci:skip-build]: already built successfully in CI
2022-10-26 09:55:13 +02:00
Oliver Smith 8185d66b73 main/unixbench: disable on riscv64 (MR 3588)
Related: https://builds.sr.ht/~postmarketos/job/868522
[ci:skip-build], [ci:skip-vercheck]: just disabling arches
2022-10-26 09:24:38 +02:00
Oliver Smith 594a34459e main/postmarketos-ui-plasma-desktop: disable on riscv64 (MR 3588)
Related: https://builds.sr.ht/~postmarketos/job/868600
2022-10-26 09:24:38 +02:00
Oliver Smith 9529c0ab42 main/postmarketos-ondev: disable on riscv64 (MR 3588)
Related: https://builds.sr.ht/~postmarketos/job/868406
2022-10-26 09:24:38 +02:00
Luca Weiss 2852f55ff0 temp/gnome-shell-mobile: enable on riscv64 (MR 3588) 2022-10-26 09:24:38 +02:00
Luca Weiss aaf1306126 temp/mutter-mobile: enable on riscv64 (MR 3588) 2022-10-26 09:24:38 +02:00
Oliver Smith c102971e27 main/qtwebbrowser: remove (MR 3589)
Remove this obsolete package. It was added four years ago because we
didn't have working webbrowsers and hasn't been updated since.
2022-10-26 09:05:35 +02:00
Pablo Correa Gómez b47abadccc temp/gnome-software-plugin-apk: drop (MR 3577) 2022-10-25 09:35:32 +02:00
Pablo Correa Gómez f4acff31f9 temp/gnome-software: drop (MR 3577)
Alpine's version is now mostly adaptive
2022-10-25 09:35:27 +02:00
Luca Weiss 766020c811 main/gcc6: disable on riscv64 (MR 3583)
[ci:skip-vercheck]: Changing arches doesn't require a rebuild
[ci:skip-build]: already built successfully in CI
2022-10-25 08:31:21 +02:00
Luca Weiss 9d15b45746 main/gcc4: disable on riscv64 (MR 3583) 2022-10-25 08:31:09 +02:00
Jan Jasper de Kroon 8b3c4eb6d3 linux-postmarketos-allwinner: upgrade to 6.0.3 (MR 3572)
[ci:skip-build]: already built in CI
2022-10-25 08:26:39 +02:00
Luca Weiss c31c11cad9 main/hello-world-rust: allow textrels on riscv64 (MR 3584)
[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2022-10-25 08:18:11 +02:00
Oliver Smith 8029ed0762 temp/gnome-shell-mobile: remove dep gnome-themes-standard (MR 3587)
Follow what Alpine is doing with gnome-shell.

Fix for upstream-compat check:
  missing depend(s): gnome-themes-standard

Related: https://gitlab.alpinelinux.org/alpine/aports/-/commit/b745f99744d915c51d97bf17d8a9a4a59502a923
Related: https://gitlab.alpinelinux.org/alpine/aports/-/commit/959ad322e0cb616257443206fd3ca85f7492012d
2022-10-25 08:01:32 +02:00
iAboothahir 5361b42aeb device-asus-x00td: add firmware-asus-x00td (MR 3579)
Signed-off-by: Aboothahir U <aboothahirpkd@gmail.com>
2022-10-24 13:25:38 +03:00
iAboothahir 4a8a890148 firmware-asus-x00td: add firmware for GPU, WiFi, Bluetooth, ADSP, etc. (MR 3579)
Signed-off-by: iAboothahir <aboothahirpkd@gmail.com>
2022-10-24 13:25:04 +03:00
Alexey Minnekhanov e78098c34f main/postmarketos-ui-fbkeyboard: fix dejavu font path (MR 3582)
Alpine has changed location and package name of ttf-dejavu
fonts, adjust to new location.

Without this, fbkeyboard service crashes with error:

  unable to load font file: No such file or directory

Default font path is hardcoded [1] to
  "/usr/share/fonts/ttf-dejavu/DejaVuSans.ttf".
Luckily there is a CLI switch to change default, use it.

[1] https://github.com/bakonyiferenc/fbkeyboard/blob/master/fbkeyboard.c#L37
2022-10-24 13:10:52 +03:00
Joel Selvaraj c9dc088afd community/firmware-xiaomi-beryllium: update maintainer info (MR 3497)
Venji10 is no longer involved in actively maintaining the package for more than a year plus.
Changing myself to be the maintainer and also updated my email id.

[ci:skip-build]: already built successfully in CI
2022-10-24 09:46:44 +02:00
Joel Selvaraj 2decd7eb54 community/xiaomi-beryllium: update q6voiced conf and update maintainer information (MR 3497)
Because of recent changes to kernel and alsa-ucm-conf,
the q6voiced device is changed.

Venji10 is no longer involved in actively maintaining the package for more than a year plus.
Changing myself to be the maintainer and also updated my email id.
2022-10-24 09:46:39 +02:00
Joel Selvaraj c831889cb3 community/soc-qcom-sdm845: upgrade alsa-ucm-conf and add co-maintainer (MR 3497)
Rebased our work on top of latest upstram alsa-ucm-conf.
The beryllium ucm conf is also reworked to fix wrong default audio device issue
and now headphones auto-switching on plugin also works as expected.

Adding myself as a co-maintainer for this package.

Change-Id: I360c60d1675c884c9e85cd95f940fa6cb4b75e83
Signed-off-by: Joel Selvaraj <joelselvaraj.oss@gmail.com>
2022-10-24 09:46:38 +02:00
Alexander Martinz e5334cd8fa community/linux-postmarketos-qcom-sdm845: upgrade to 6.0.3 and update co-maintainer email id (MR 3497)
Change-Id: I986b3401fd81ac18b7336f8f0be53e2cf4c4515c
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
Signed-off-by: Joel Selvaraj <joelselvaraj.oss@gmail.com>
2022-10-24 09:46:34 +02:00
Newbyte 63e8cff254 main/postmarketos-ui-phosh: replace gedit with gnome-text-editor (MR 3551)
Text Editor is a new modern text editor for GNOME. It is the new
default, replacing gedit upstream. As such, let's do the same here
downstream.

[ci:skip-vercheck]: pkgrel bump is not necessary when changing
recommends.
[ci:skip-build]: already built successfully in CI
2022-10-24 09:39:26 +02:00
Newbyte 665bcc199d temp/dino: drop (MR 3575)
For whatever reason, Alpine includes the mobile adaptivity patches for
this app:
https://gitlab.alpinelinux.org/alpine/aports/-/blob/cb88c5701fd93e78b133e746c6c3fa6db0001c66/community/dino/mobile-ui.patch

As such, drop our fork since it's unnecessary.

Reported-by: Airtower
2022-10-24 08:53:07 +02:00
Newbyte 445e530314 temp/xkeyboard-config: drop (MR 3573)
The PinePhone keyboard patches should be available in upstream
xkeyboard-config since version 2.36.
2022-10-24 08:49:16 +02:00
Mithil Bavishi fb9bc89df8 linux-samsung-espresso3g: remove (MR 3563)
[ci:skip-build]: ollie verified it builds locally
2022-10-23 14:01:38 +02:00
Mithil Bavishi 784919ce5e samsung-espresso3g: use linux-postmarketos-omap (MR 3563) 2022-10-23 14:01:33 +02:00
Mithil Bavishi e34cce6e0f community/linux-postmarketos-omap: upgrade to 6.0.2 (MR 3563) 2022-10-23 14:01:28 +02:00
Alexey Min adcc988069 temp/dino: rebuild against new libicuuc.so (MR 3568)
[ci:skip-build]: Already built successfully in CI
2022-10-22 15:41:56 +02:00
Clayton Craft 052fdf55ac linux-purism-librem5: upgrade to 6.0.2 (MR 3570)
[ci:skip-build]: Already built successfully in CI
2022-10-22 13:32:58 +02:00
Sergey Lisov 8d07a9897a mdoem/libsamsung-ipc: upgrade to 6.0.0004 (MR 3456)
1. Upgrades the library to version 6.0.0004
2. Adds runtime overrides for detected device and board,
   to facilitate running on devices where autodetect fails.
2022-10-21 15:19:07 +03:00
Sicelo A. Mhlongo 45aaac6d30 linux-nokia-n900: fix usbnet regression (MR 3567)
After c49180f8cf, usbnet did not come up on N900
automatically since the UDC probed a little late. Fix this by making the driver
built-in.

While at it, make watchdog built-in so it can be kicked even when boot takes
long for any reason.

[ci:skip-build]: already built successfully in CI
2022-10-21 09:17:26 +02:00
Jan Jasper de Kroon a526c9213d linux-pine64-pinephonepro: add WiFi CVE backports (MR 3552)
These are the patches added to mitigate the CVE's which have been found in wifi stack.
More information on these CVE's can be found over here: https://seclists.org/oss-sec/2022/q4/20

[ci:skip-build]: Already built successfully in CI
2022-10-20 19:04:43 +02:00
Bobby The Builder 5c42cad7a6 linux-postmarketos-allwinner: regenerate config and enable ARM CPU Idle driver (MR 3564)
[ci:skip-build]: Already built successfully in CI
2022-10-20 18:57:23 +02:00
Luca Weiss dc9e47ae00 cross/{binutils,gcc,musl}-riscv64: new aport (MR 3559)
Use pmbootstrap aportgen to generate these new packages.

[ci:skip-vercheck]
2022-10-20 18:52:37 +02:00
Newbyte eafbfdc95c temp/megapixels-purism: rebuild against libcamera 0.0.1 (MR 3565)
[ci:skip-build]: Already built successfully in CI
2022-10-20 09:50:58 +02:00
Yassine Oudjana 2837bdb657 community/linux-postmarketos-qcom-msm8996: upgrade to 6.0.2 (MR 3561)
[ci:skip-build]: already built successfully in CI
2022-10-20 09:21:42 +02:00
Lorenz Wildberg d6931ca312 temp/gnome-shell-mobile: upgrade to 43.0 (MR 3555)
[ci:skip-build]: Already built successfully in CI
2022-10-19 13:02:46 +02:00
Lorenz Wildberg 924a2cb8d3 temp/mutter-mobile: upgrade to 43.0 (MR 3555) 2022-10-19 13:02:41 +02:00
Luca Weiss 5985852e77 temp/gtk+3.0: fix build (MR 3557)
Pick some patches from gtk 3.24.34 to fix compilation under GCC 12.

[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2022-10-19 09:05:15 +02:00
Sicelo A. Mhlongo c49180f8cf linux-nokia-n900: apply wifi cve fixes (MR 3558)
- Downgrade kernel from EOL 5.18 to LTS 5.15 in order to apply WiFi CVE fixes.
  It is currently not possible to upgrade to newer (5.19+) kernels due to a USB
  regression.
- Modify 0005-iio-accel-st-accel-add-lis302dl.patch so it applies on 5.15.74
- Reinstate 0008-wl1251-specify-max.-IE-length.patch for nl80211 support. Patch
  was dropped because it is in mainline since 5.18

[ci:skip-vercheck]: downgrade
[ci:skip-build]: already built successfully in CI
2022-10-19 08:34:43 +02:00
Alexander Martinz 13046d8972 community/linux-postmarketos-qcom-sdm845: upgrade to 5.19.16 (MR 3556)
For a merge list, please see the merge commits:
  - 5.19.13 - (https://gitlab.com/sdm845-mainline/linux/-/commit/6384fddb508e3af48adade641fc74e124085d1ee)
  - 5.19.14 - (https://gitlab.com/sdm845-mainline/linux/-/commit/85caddc9c87626e005000b45d724371d7c8ad177)
  - 5.19.15 - (https://gitlab.com/sdm845-mainline/linux/-/commit/fca27cdc51f207b1acbc66e896382d3240650f60)
  - 5.19.16 - (https://gitlab.com/sdm845-mainline/linux/-/commit/9aa25bf492928bc7a4542e87d28919c9ac36d27c)

Note: This is an important release, as 5.19.16 fixes the recently
      published wifi stack vulnerabilities.

Change-Id: Iffff2c65bdd697b01bc5d8fc090e9a2f2577c701
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
2022-10-18 10:54:34 +02:00
Caleb Connolly 82ad096a42 CODEOWNERS: add Alex to axolotl codeowners (MR 3547) 2022-10-18 09:55:49 +02:00
Newbyte 99abd2fdf0 linux-postmarketos-stericsson: upgrade to 5.19.8 (MR 3307)
Also enable iwd options and disable ux500 crypto hardware driver due to
bugs.

[ci:skip-build]: already built successfully in CI
2022-10-18 09:48:47 +02:00
Jan Jasper de Kroon 62bd0f84bd linux-postmarketos-allwinner: upgrade to 6.0.2 - 1017-0205 Megi Tag (MR 3553)
This updates the APKBUILD with the new Megi 6.0.2 tag release.
The 2 incremental patches on top of 6.0 have hereby been removed.

[ci:skip-build]: already built successfully in CI
2022-10-18 09:17:11 +02:00
Alexey Min 4fe645dead main/lk2nd: upgrade to 0.13.0 (MR 3554)
- Support for the huawei-g7 display panel in lk1st
- FS based boot is skipped when going to the recovery
- Generate image without appended dtb for lk2nd-msm8226
- Some bug fixes and device improvements

New devices:
 - Samsung Galaxy Ace 4 (SM-G357FZ)
 - Samsung Galaxy Grand 2 (SM-G7102)
 - Samsung Galaxy Grand Max (SM-G720AX)
 - Samsung Galaxy Tab 4 10.1 (2014) (SM-T530)
 - Huawei Ascend G6 L11 LTE
 - Some new variants for the existing Samsung devices

Changelog: https://github.com/msm8916-mainline/lk2nd/releases/tag/0.13.0
2022-10-18 02:03:55 +03:00
Oliver Smith 89a5382518 cross/gcc-*: add fixme note for the isl workaround (MR 3548)
Make sure we drop !tracedeps next time when upgrading the gcc packages
(after Alpine's gcc has been upgraded). The workaround we have in
pmbootstrap is tied to the current version, and that's the only way we
can remove it for good. The FIXME line can be deleted after this has
been done. Note that current 'pmbootstrap aportgen gcc-*' code will
automatically remove the !tracedeps option - a reminder to double check
it.

[ci:skip-build] [ci:skip-vercheck]: just adding a comment
2022-10-16 18:11:21 +02:00
Caleb Connolly 94b2f1a6f0 CODEOWNERS: sdm845 and axolotl (MR 3546)
* Specify the whole sdm845-mainline group for *-qcom-sdm845 packages.
* Add myself and Dylan for axolotl
2022-10-16 17:28:01 +02:00
Caleb Connolly 6a161e0a2d CODEOWNERS: reformat (MR 3546)
* Switch to tab indenting with tab size 8 to improve rendering
* Fix my entries (missing trailing /)
2022-10-16 17:28:01 +02:00
Newbyte d0d05b39cd main/boot-deploy: upgrade to 0.6.1 (MR 3534) 2022-10-16 17:19:57 +02:00
blacksilver ff797d6bfe samsung-xcover3lte: use samsung sparse format (MR 3500)
RootFS cannot be flashed on this devices since Samsung uses a different sparse format.
Enable this in the deviceinfo file to allow flashing the rootFS.

[ci:skip-build]: already built successfully in CI
2022-10-16 16:46:43 +02:00
Newbyte 2f8a5bf400 linux-postmarketos-exynos4: upgrade to 6.0.2 (MR 3539)
Part of https://gitlab.com/postmarketOS/pmaports/-/issues/1749
[ci:skip-build]: already built successfully in CI
2022-10-16 16:32:37 +02:00
Anjandev Momi 20713e27a3 editorconfig-check: set "tabs for indentation, spaces for alignment" style (MR 3530)
https://github.com/editorconfig-checker/editorconfig-checker/issues/66
[ci:ignore-count] [ci:skip-build]: already built successfully in CI
2022-10-16 16:27:25 +02:00
Anjandev Momi e7a8141113 CI: check if most text files have final_newline and conform to editorconfig (MR 3530)
fixes #592
2022-10-16 16:27:25 +02:00
Anjandev Momi 7270f472e3 treewide: fix tabs, final newline, trailing whitespace (MR 3530) 2022-10-16 16:27:22 +02:00
Martijn Braam 8ff73a7de4 pine64-pinebookpro: enable deep sleep (MR 3543)
After testing 6.0.0 I retried deep sleep and it seems to work fine now

[ci:skip-build]: already built successfully in CI
2022-10-16 16:07:00 +02:00
Jan Jasper de Kroon 97ed826c3c linux-postmarketos-rockchip: upgrade to 6.0.2
This kernel upgrade comprises of 2 point releases 6.0.1 and 6.0.2.
the release from 6.0 to 6.0.2 is a regular maintenance release.
Kernel update 6.0.2 addresses 5 important CVE's in the Wifi stack.
More info can be found over here: https://seclists.org/oss-sec/2022/q4/20

[ci:skip-build]: already built successfully in CI
2022-10-16 16:03:21 +02:00
Jan Jasper de Kroon 32646621be linux-postmarketos-allwinner: upgrade to 6.0.2
This kernel update addresses 5 important CVE's in the Wifi stack.
More info can be found over here: https://seclists.org/oss-sec/2022/q4/20

[ci:skip-build]: already built successfully in CI
2022-10-16 15:01:28 +02:00
Oliver Smith 2b3254df32 CI: test_unreferenced_files: remove debug prints (MR 3545)
Drop these debug prints which I added while extending the test to work
with MR 3386.
2022-10-16 14:26:48 +02:00
Luca Weiss f007868914 community/linux-postmarketos-qcom-sm6350: upgrade to 6.0.2 (MR 3542)
* Merge 6.0.2 stable
* Add pm7250b PMIC to dts

[ci:skip-build] Already built successfuly on CI in MR
2022-10-16 13:47:54 +02:00
Raymond Hackley a8dbcc046f samsung-cprime: new device (MR 3103)
[ci:skip-build] Already built successfuly on CI in MR
2022-10-16 13:44:13 +02:00
Minecrell d4762ed74f community/linux-postmarketos-qcom-msm8916: upgrade to 6.0.2 (MR 3532)
- Update to Linux v6.0.2 (includes fixes for WiFi CVEs)
- Tweak kernel configuration slightly (especially crypto options)

[ci:skip-build] Already built successfuly on CI in MR
2022-10-16 13:15:35 +02:00
Minecrell 8f37872995 community/linux-postmarketos-qcom-msm8916: upgrade to 6.0.1 (MR 3532)
- Update to Linux v6.0.1
- Upstreamed some patches this time
- Fixed register address in smb1360 driver

Device changes:
  - samsung-gtelwifiue
    - Audio
    - Better USB detection
  - samsung-e5/e7/grandmax
    - Refactoring for changes that landed upstream
    - Key LED control

New devices:
  - samsung-cprime/heatqlte
    - eMMC, SD card, USB, Buttons, WiFi/BT, Vibrator
    - Display, Brightness control (not for AMOLED on heatqlte)
    - Sensors (Accelerometer)
    - Sound/Modem
    - Battery status
    - NFC
    - NOTE: No touchscreen yet
2022-10-16 13:15:33 +02:00
Affe Null cb8105ee14 nokia-argon: new device (Nokia 8110 4G) (MR 3527)
Initial Nokia 8110 4G port with close-to-mainline kernel.

[ci:skip-build] Already built fine on CI in MR
2022-10-16 11:19:17 +03:00
Affe Null f27500700e linux-postmarketos-qcom-msm8909: close-to-mainline kernel for MSM8909 (MR 3527) 2022-10-16 11:18:15 +03:00
Affe Null 10df987e0e main/mipi-dbi-cmd: tool for generating SPI panel init sequence firmware (MR 3527) 2022-10-16 11:18:04 +03:00
Alexey Minnekhanov 4144c7631f main/postmarketos-config-nftables: use versioned constraints in install_if (MR 3536)
Consistently use `install_if="$pkgname=$pkgver-r$pkgrel ...` everywhere,
this is recommended upstream.

See https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#install_if
2022-10-16 08:19:21 +03:00
Raymond Hackley 1efe44bb36 main/postmarketos-config-nftables: add VLC chromecast rules (MR 3536) 2022-10-16 08:08:54 +03:00
Luca Weiss afc11656d8 ci: unreferenced: skip cross/ (MR 3541)
It thinks that the gcc-go.post-install files from the new cross/gcc-*
packages isn't used because those add subpackages dynamically in the
APKBUILD which isn't handled.
2022-10-15 23:26:29 +02:00
Newbyte 2c5274eeed cross/gcc-armv7: upgrade to 12.2.1_git20220924-r3 (MR 3541) 2022-10-15 18:11:21 +02:00
Newbyte 57d953746e cross/gcc-armhf: upgrade to 12.2.1_git20220924-r3 (MR 3541) 2022-10-15 18:11:06 +02:00
Newbyte 192ca97cd5 cross/gcc-aarch64: upgrade to 12.2.1_git20220924-r3 (MR 3541) 2022-10-15 18:10:16 +02:00
Newbyte 4818c2c2cd linux-postmarketos-exynos4: enable zstd compression (MR 3522) 2022-10-15 13:10:31 +02:00
Henrik Grimler 2c68614713 linux-postmarketos-exynos4: update patch 0005 after kernel upgrade (MR 3522)
Our patch needs to be adjusted after commit 58e4a2d27d32 ("extcon: Fix
extcon_get_extcon_dev() error handling").  Also generate all other
patch headers, and make it possible to apply patch 0008 and 0009 with
git am.
2022-10-15 13:10:31 +02:00
Martin Jücker b15f448999 linux-postmarketos-exynos4: add missing lcd patches for p4note (MR 3522) 2022-10-15 13:10:28 +02:00
Martin Jücker 4668038a9a linux-postmarketos-exynos4: update to 6.0.1 (MR 3522) 2022-10-15 13:09:41 +02:00
Anton Bambura 5ec845da6e linux-postmarketos-rockchip: drop armv7 and upgrade to 6.0 (MR 3526)
[ci:skip-build] Already built successfuly on CI in MR
2022-10-14 12:41:30 +02:00
Jami Kettunen bd2cdfbaf4 device-oneplus-dumpling: get linux-edge(-6.0.1) booting again (MR 3531)
Additionally switch mainline kernel from qcom_fg to bq27xxx_battery_i2c.

While at it simplify the deviceinfo_modules_initfs_alpine list to
exclude implicit dependencies that mkinitfs can find itself to make the
line length a bit less unwieldy.

[ci:skip-build] Already built successfuly on CI in MR
2022-10-14 11:56:06 +02:00
Jami Kettunen 1769b565ed device-oneplus-cheeseburger: get linux-edge(-6.0.1) booting again (MR 3531)
Additionally switch mainline kernel from qcom_fg to bq27xxx_battery_i2c
and probe the correct panel driver, this was a regression that came from
the initial linux-edge enablement MR.

While at it simplify the deviceinfo_modules_initfs_alpine list to
exclude implicit dependencies that mkinitfs can find itself to make the
line length a bit less unwieldy.
2022-10-14 11:55:58 +02:00
Jami Kettunen d6f337898e device-oneplus-dumpling: block auto-loading ipa module (MR 3531)
While this provides the ability to use ModemManager, there are quite a
lot of issues with the driver still; keep it enabled in kernel for now
and let users "modprobe ipa" if they want to test modem features
whichever side effects that may cause including:
- Making the device nearly impossible to poweroff or reboot
- Making the UI lag noticeably more due to some interconnect bandwidth
  issues
2022-10-14 11:55:58 +02:00
Jami Kettunen 68cdc1ea2b device-oneplus-cheeseburger: block auto-loading ipa module (MR 3531)
While this provides the ability to use ModemManager, there are quite a
lot of issues with the driver still; keep it enabled in kernel for now
and let users "modprobe ipa" if they want to test modem features
whichever side effects that may cause including:
- Making the device nearly impossible to poweroff or reboot
- Making the UI lag noticeably more due to some interconnect bandwidth
  issues
2022-10-14 11:55:58 +02:00
Jami Kettunen 59716b061d linux-postmarketos-qcom-msm8998: upgrade to 6.0 (MR 3531) 2022-10-14 11:55:58 +02:00
Jami Kettunen 7bdacb41c1 device-oneplus-cheeseburger: workaround wrong touch rotation on PlaMo (MR 3531)
This will have to do until https://invent.kde.org/teams/plasma-mobile/issues/-/issues/160
is solved; the display orientation will remain upside down upon
installation but at least the touchscreen coordinates are correct now.
2022-10-14 11:55:57 +02:00
Jami Kettunen e8fa0d7448 device-oneplus-dumpling: start using soc-qcom-msm8998 (MR 3531) 2022-10-14 11:55:57 +02:00
Jami Kettunen 2fde525443 device-oneplus-cheeseburger: start using soc-qcom-msm8998 (MR 3531) 2022-10-14 11:55:57 +02:00
Jami Kettunen fbd0ebc602 firmware-oneplus-msm8998: use as much as possible from linux-firmware-* (MR 3531)
The qca (Bluetooth) and qcom (non-zap GPU) firmware blobs don't need to
be signed by the OEM, so let's use upstream versions to benefit from
fixes and updates done there.
2022-10-14 11:55:57 +02:00
Jami Kettunen 8ed8d07043 soc-qcom-msm8998: new aport (MR 3531)
The soc-qcom-sdm845* packages are mostly sufficient, but there are a few
issues that all MSM8998 devices on mainline will face, so include
workarounds for them in a generic package all device pkgs can depend on.
2022-10-14 11:55:57 +02:00
Jami Kettunen 57492bf7da soc-qcom-sdm845: move some deps to nonfree subpackage (MR 3531)
Both msm-modem-uim-selection and bootmac depend on nonfree firmware to
be useful, so put them under soc-qcom-sdm845-nonfree-firmware.
2022-10-14 11:55:57 +02:00
Raymond Hackley e0fa89db06 postmarketos-config-nftables: fix syntax errors and coding styles (MR 3535) 2022-10-14 09:35:31 +02:00
reisl fb209f5eeb device-samsung-beyond1lte: fix flashing (MR 3477) 2022-10-14 09:25:12 +03:00
reisl 33d1eef6e7 linux-samsung-beyond1lte: add OTG and vlan network support (MR 3477) 2022-10-14 09:24:08 +03:00
Anton Bambura 330420c648 veyron chromebooks: use linux-google-veyron (MR 3524)
[ci:skip-build] Already built successfuly on CI in MR
2022-10-13 15:48:58 +02:00
Anton Bambura bc70ccdcf4 linux-google-veyron: separate from linux-postmarketos-rockchip and upgrade to 6.0 (MR 3524)
Also, add patches for better HDMI support
2022-10-13 15:47:17 +02:00
Clayton Craft 325cc8e483 linux-purism-librem5: upgrade to 6.0
- the config diff is just rebasing

- drops the ship mode patch I wrote, since it is no longer required
  after a pending update to the device-purism-librem5 package...

- drops the dogwood voltage patch, apparently no longer necessary,
  see: https://source.puri.sm/Librem5/linux/-/issues/442#note_214984

- drops the usdhc bus patch
  see: https://source.puri.sm/Librem5/linux/-/issues/442#note_215026

[ci:skip-build] already built successfully in CI
2022-10-13 06:09:10 -07:00
Jami Kettunen e10cf4fadc testing/linux-*: rename kconfigcheck-anbox to kconfigcheck-waydroid (MR 3507)
This renamed option is being checked for since pmbootstrap 1.47.0[1].

[1] https://gitlab.com/postmarketOS/pmbootstrap/-/tags/1.47.0

[ci:skip-build]
[ci:skip-vercheck]
2022-10-13 13:44:30 +02:00
Raymond Hackley b1e1d7f6d3 postmarketos-config-nftables: add upnp-client rules (MR 3533)
Add rules to accept SSDP/UPnP Replies, which can be used for discovery
in VLC.
2022-10-13 13:12:53 +02:00
Jan Jasper de Kroon 130e15f2ec linux-postmarketos-allwinner: upgrade to 6.0.1_git20221004 (MR 3518) 2022-10-13 10:40:29 +02:00
Oliver Smith f8ce8ef0e3 teclast-x80pro: drop device (MR 3528)
Kernel doesn't compile anymore, and it doesn't seem worth fixing it
again. The kernel has been added in 2017 as a stock mainline kernel from
that time with only two patches and wasn't maintained since then,
looking at git log --follow it was only patched to fix it up when
it didn't build.

As the device is a generic x86_64 tablet: if somebody has that
particular device, try to get the generic device-tablet-x64uefi running
instead.
2022-10-13 09:46:01 +02:00
Luca Weiss 570f7a50b5 community/device-fairphone-fp4: add qbootctl & swclock-offset (MR 3529)
The qbootctl service tells the bootloader that the current boot has
succeeded, so that the bootloader doesn't switch to the other slot after
~7 tries.

The swclock-offset dependency ensures that the time is set correctly
after a reboot, caused by the read-only RTC on Qualcomm.

[ci:skip-build]: already built successfully in CI
2022-10-13 09:37:15 +02:00
Brendan Hardy 29d3abe94d motorola-shamu: port from armhf to armv7 (MR 3415)
[ci:skip-vercheck]
2022-10-12 22:35:57 +02:00
Dang Huynh ae252a05a4 device-nokia-n900: use wl1251-cal for calibration data (MR 3386) 2022-10-12 21:39:13 +02:00
Dang Huynh 69510f79f7 main/wl1251-cal: new pkgbuild (MR 3386)
This program grabs the WLAN calibration data from a NAND partition
on the Nokia N900.

Signed-off-by: Dang Huynh <danct12@disroot.org>
2022-10-12 21:39:12 +02:00
Oliver Smith 4cd4463a21 ci: unreferenced: handle triggers from subpackages (MR 3386)
Depends: pmbootstrap MR 2202
2022-10-12 21:39:12 +02:00
Oliver Smith b01974179c ci: unreferenced: refactor subpackage_installs (MR 3386)
Make it shorter in preparation for adding the same thing for triggers.
2022-10-12 21:39:12 +02:00
Anton Bambura e3904d8796 mt8183 devices: depend on soc-mediatek-mt8183 (MR 3525)
[ci:ignore-count]
2022-10-12 11:20:17 +02:00
Anton Bambura e384f479f2 soc-mediatek-mt8183: new aport (MR 3525) 2022-10-12 11:20:17 +02:00
Jami Kettunen 1d88d8bcdd main/waydroid-image: remove (MR 3508)
This has been out-of-date for almost a year with seemingly stalled
progress on the existing upgrade MR[1] for months now; it really seems
like no one wants to maintain this which currently leaves this
"force-installed-by-default" packaged image broken on all wlroots-based
Wayland compositors for example.

[1] https://gitlab.com/postmarketOS/pmaports/-/merge_requests/3091 ("Draft: main/waydroid-image: upgrade to 17.1.20220419")
2022-10-12 08:57:01 +02:00
knuxify 419cd8bf46 temp/gnome-shell-mobile: don't build against libsoup2 (MR 3523)
Fixes #1735.

[ci:skip-build]: already built successfully in CI
2022-10-12 08:17:16 +02:00
Henrik Grimler bd7c8d15ad linux-postmarketos-exynos5: re-generate patch headers (MR 3516)
Patch header for 0027 was not formatted correctly.  Fix that and
re-generate all other patches while we are at it.

[ci:skip-build] Already built successfuly on CI in MR
2022-10-11 18:39:46 +02:00
Anton Bambura ca3069185b google-snow: add MFC firmware (MR 3516) 2022-10-11 18:39:45 +02:00
Anton Bambura 851d946b72 google-peach-pit: add MFC firmware (MR 3516) 2022-10-11 18:39:45 +02:00
Anton Bambura 24cf355714 google-peach-pi: add MFC firmware (MR 3516) 2022-10-11 18:39:44 +02:00
Anton Bambura 8acf002c17 linux-postmarketos-exynos5: upgrade to 5.18.5 (MR 3516)
Also:

Fix camera on google-snow.

Enable video decoder.

Make boot.img smaller making kernel more modular and making FS-related
modules =y instead of =m (built-in file systems consume less space
than initramfs modules).
2022-10-11 18:39:43 +02:00
Oliver Smith 03ceddb284 CI: check mesa-dri-gallium dependency for devices (MR 3478)
Devices should not depend on it anymore to allow a more minimal install.
postmarketos-base will pull it in if mesa is installed.

[ci:ignore-count]
2022-10-11 11:19:53 +02:00
Newbyte 270e5e28ad device: drop depend on mesa-dri-gallium (MR 3478)
This is now installed by postmarketos-base when appropriate.
2022-10-11 11:19:43 +02:00
Minecrell 5f140538bf main/postmarketos-base: install mesa-dri-gallium only if needed (MR 3478)
At the moment almost all device packages force installation of the Mesa
drivers, even when they are not used by any application (for example on
a minimal headless installation with "none" or "console" UI).
Omitting mesa-dri-gallium from such installations saves about ~150 MiB
of disk space (469 MiB -> 317 MiB rootfs for minimal installation on
arrow-db410c).

The "classic" drivers have been removed from Mesa so only one mesa-dri-
package exists now: mesa-dri-gallium contains all Mesa drivers,
llvmpipe, freedreno, lima, panfrost, Intel (iris/crocus), ...

This means we can easily create an install_if package in
postmarketos-base that installs that driver package only if needed
(= only if another package requires the "mesa" package).

Strictly speaking the install_if could be restricted further since
mesa-dri-gallium is only needed by "mesa-egl", "mesa-gbm" and "mesa-gl"
but not e.g. the Vulkan drivers. Having three postmarketos-base
subpackages (one install_if for each of them) seems a bit
overengineered, though. "mesa" is a common dependency of all three
of them, so using install_if="... mesa" should be good enough.
2022-10-11 11:19:30 +02:00
Clayton Craft e27f63fd40 gnome-shell-mobile: depend on font-cantarell (MR 3521)
renamed in aports@9a0b06a175
2022-10-10 19:10:47 -07:00
Clayton Craft 03b842f3d7 postmarketos-splash: depend on font-droid (MR 3521)
renamed in aports@924a022f24
2022-10-10 18:53:37 -07:00
Clayton Craft 2023292d64 postmarketos-mkinitfs-hook-console-shell: change path to dejavu font (MR 3521)
renamed in aports@ee78772612

this also adds an explicit dependency on the font, since it may not have
been installed if postmarketos-ui-base was installed... (e.g. ui=None)
2022-10-10 18:53:37 -07:00
Clayton Craft 7327bd393f main/*: depend on font-dejavu (MR 3521)
renamed in aports@ee78772612
2022-10-10 18:53:35 -07:00
Newbyte 5c161ce834 mt8183 devices: update kernel dependency name (MR 3512)
[ci:ignore-count]
[ci:skip-build] already built successfully in CI
2022-10-10 18:12:13 -07:00
Newbyte 1ec0acca36 linux-postmarketos-mediatek-mt8183: rename from linux-postmarketos-mtk-mt8183 (MR 3512)
See https://gitlab.com/postmarketOS/pmaports/-/merge_requests/3475#note_1118700476
2022-10-10 18:12:13 -07:00
Oliver Smith 86a787ffd9 linux-wiko-lenny5: drop python2 dependency (MR 3519)
Don't run python2 drvgen.

Related: https://wiki.postmarketos.org/wiki/Porting_to_a_new_device#Removing_python2_dependency

[ci:skip-build] Already built successfuly on CI in MR
2022-10-10 21:21:55 +02:00
Oliver Smith ce93fd7188 linux-lenovo-p1m: fix dependencies (MR 3519)
It builds just fine with the python2 dependency removed, probably copy
pasted from another kernel. And apk-tools definitively should not be in
there.
2022-10-10 21:21:22 +02:00
Oliver Smith 4b045d8f33 linux-alcatel-5010d: drop python2 dependency (MR 3519)
Don't run python2 drvgen.

Related: https://wiki.postmarketos.org/wiki/Porting_to_a_new_device#Removing_python2_dependency
2022-10-10 21:21:21 +02:00
Jakob Hauser 6b2cd8133c main/postmarketos-ui-xfce4: remove xfce4-battery-plugin and icon link (MR 3503)
The xfce4-battery-plugin doesn't need to be installed anymore since we
switched to the "power manager plugin" in postmarketos-ui-xfce4 0.5.0.

The link to the old PostmarketOS icon isn't needed anymore for new
installations.

[ci:skip-build]: already built successfully in CI
2022-10-10 17:30:22 +02:00
Anton Bambura dd5b85b210 google-veyron-speedy: set deviceinfo_cgpt_kpart_start to 24576 (MR 3517)
This will be needed for	booting	from eMMC.

[ci:skip-build]: already built successfully in CI
2022-10-10 17:17:10 +02:00
Anton Bambura ef31cc225e google-veyron-minnie: set deviceinfo_cgpt_kpart_start to 24576 (MR 3517)
This will be needed for booting from eMMC
2022-10-10 17:16:55 +02:00
Oliver Smith e1ef261c86 Partially revert "linux-*: install dtbs to /boot/dtbs (MR 3254)
Reverts commit 70efe55031 for kernels that
started failing on bpo. I suspect it's caused by a change in binutils,
since I tried building linux-oneplus-billie2 with gcc6 and got the same
error (after trying other workarounds like disabling selinux for it, but
then it failed elsewhere).
2022-10-10 07:34:03 +02:00
Clayton Craft 4b72fbd9da main/osk-sdl: upgrade to 0.67.1, change font dep and add patch to fix path
the ttf-dejavu package was renamed[1] and the path to the font file
changes.

https://gitlab.alpinelinux.org/alpine/aports/-/commit/ee787726123a4ff2dbd19460e53467d891f52456

fixes https://gitlab.com/postmarketOS/postmarketos-mkinitfs/-/issues/15
2022-10-09 14:34:23 -07:00
Elagost a292830ef9 device-pine64-pinephone: add kxkbrc for plasma-mobile pinephone-keyboard (MR 3438) 2022-10-09 12:45:35 -05:00
Newbyte 60d4821f68 CI: add dtb location check (MR 3254)
[ci:ignore-count]: Too many packages probably
[ci:skip-build]: No way this would finish in time
2022-10-09 17:04:36 +02:00
Newbyte a1f8eecde7 linux-postmarketos-qcom-msm8939: update checksums (MR 3254)
Checksums changed for some reason? ???

[ci:ignore-count]: Too many packages probably
[ci:skip-build]: No way this would finish in time
2022-10-09 17:04:36 +02:00
Newbyte 381ffe19cf samsung-starqltechn: update fdt data path to reflect new dtb location (MR 3254) 2022-10-09 17:04:36 +02:00
Newbyte 0308b77c47 lark-freeme-70-2s: remove dtb location workaround (MR 3254)
See previous commit for rationale.
2022-10-09 17:04:35 +02:00
Newbyte b9bb6bbba8 goclever-gcta741l: remove dtb location workaround (MR 3254)
We previously installed dtbs outside of the boot partition, so it
was necessary to copy them from the root partition to boot if you
wanted to utilise them in U-Boot scripts. This is no longer
necessary as we now install dtbs to the boot partition directly, so
remove this workaround and edit the U-Boot script to reflect the
change.
2022-10-09 17:04:35 +02:00
Newbyte 70efe55031 linux-*: install dtbs to /boot/dtbs (MR 3254)
[ci:ignore-count]: Too many packages probably
[ci:skip-build]: No way this would finish in time
2022-10-09 17:04:30 +02:00
Dylan Van Assche 90c11c46ca main/device-pine64-pinephone: refactor fwupd plugins (MR 3513)
fwupd 1.8.6 has all plugins builtin, remove subpackages
2022-10-09 16:22:38 +02:00
Dylan Van Assche 08bed11db5 community/device-shift-axolotl: refactor fwupd plugins (MR 3513)
fwupd 1.8.6 has all plugins builtin, remove subpackages
2022-10-09 16:22:19 +02:00
Dylan Van Assche 2867af783a community/device-pine64-pinephonepro: refactor fwupd plugins (MR 3513)
fwupd 1.8.6 has all plugins builtin, remove subpackages
2022-10-09 16:22:03 +02:00
Newbyte fa048b7517 main/postmarketos-base-ui: run SDL in Wayland mode by default (MR 2669)
This is possible now that all SDL (1) applications use sdl12-compat
instead of "classic" SDL 1.2. Note that this only is applied to user
interfaces that use Wayland and are launched through tinydm.

See https://gitlab.alpinelinux.org/alpine/aports/-/issues/12739
2022-10-09 15:23:59 +02:00
Richard Acayan bfe586d720 google-sargo: add maintainer (MR 3488)
I can maintain this device.

[ci:skip-build] Already built successfuly on CI in MR
2022-10-08 22:10:44 +02:00
Richard Acayan 353297c656 google-sargo: depend on sdm845 soc package (MR 3488)
Some SDM845-specific configurations and packages are also useful for the
Pixel 3a:
 - mesa-dri-gallium
 - qbootctl
 - swclock-offset
2022-10-08 22:10:39 +02:00
Richard Acayan 161f0751b7 google-sargo: enable automatic kernel upgrade (MR 3488) 2022-10-08 22:10:38 +02:00
Richard Acayan c368b64135 google-sargo: alphabetically sort dependencies (MR 3488)
One dependency is not alphabetically sorted. Put it in its place so
the placement of the next additions make sense.
2022-10-08 22:10:38 +02:00
Richard Acayan 7be1ac7f84 google-sargo: switch to close-to mainline kernel (MR 3488)
Note: This kernel does not have support for flash LED or haptics.
2022-10-08 22:10:38 +02:00
Newbyte 29f7006d5d main/postmarketos-ui-plasma-mobile: ttf-droid-nonlatin -> font-droid-nonlatin (MR 3506)
This was renamed in aports: https://gitlab.alpinelinux.org/alpine/aports/-/commit/924a022f242a928be94da4c616218d3fe8ee9ffe

[ci:skip-vercheck]
2022-10-08 19:14:51 +02:00
choc 0921691cbe testing/samsung-gts28velte: new device (MR 3384)
based on samsung-gts210velte

[ci:skip-build] Already built successfuly on CI in MR
2022-10-08 13:24:35 +02:00
Anton Bambura 6d77ccc0e2 google-elm: new device (MR 3505)
[ci:skip-build] Already built successfuly on CI in MR
2022-10-08 13:11:29 +02:00
Anton Bambura 602ecf8bdf google-hana: new device (MR 3505)
This device package represents several devices, so use plural form in
pkgdesc of APKBUILD:

pkgdesc="Google Hana Chromebooks"

However, when deviceinfo is already installed, it is intended to represent
only current device, so use singular form here:

deviceinfo_name="Google Hana Chromebook"
2022-10-08 13:10:49 +02:00
Anton Bambura fc256d626b firmware-powervr-gx6250: new aport (MR 3505) 2022-10-08 13:10:44 +02:00
Anton Bambura c5443e33fd linux-postmarketos-mediatek-mt8173: new aport (MR 3505) 2022-10-08 13:10:39 +02:00
Jakob Hauser b016cef0b2 main/postmarketos-ui-mate: add elogind (MR 3502)
That way rfkill plugin allows to use media keys for WiFi and Bluetooth.
And a suspend button becomes available in the shutdown dialog.
2022-10-08 10:46:42 +02:00
Sergey Lisov ad454e784d modem/samsungipcd: new aport (MR 3460)
Emulates an AT serial modem using libsamsung-ipc
2022-10-07 21:44:11 +02:00
Oliver Smith a53224a8e7 {main,cross}/gcc{4,6}*: remove !tracedeps option (MR 3498)
Don't build with !tracedeps, as otherwise the isl dependency is not
properly added to the built gccs. In practice this probably doesn't
matter since we only use these old gccs to build kernels in the native
chroots (not via crossdirect in foreign arch chroots), and we also
install a proper gcc in the native chroot that pulls in the isl
dependency. But fix it for correctness.

Related: pmaports issue 1732

[ci:skip-build] Already built successfuly on CI in MR
2022-10-07 21:36:17 +02:00
Clayton Craft 67b5efcea1 device-purism-librem5: upgrade to 1.34 (MR 3501)
- update to use librem5-base v52
- install usbguard config / new subpackage
- move xorg.conf to new x11 subpackage
- refactor udev rule install to just install everything available from
  librem5-base upstream
- use purism's shipmode script, see:
  https://source.puri.sm/Librem5/linux/-/merge_requests/333#note_195511
2022-10-07 21:31:45 +02:00
Yassine Oudjana e345f8fae1 samsung-grandpplte: new device (MR 3475)
Add device package for Samsung Galaxy Grand Prime+ (grandpplte).
This device uses U-Boot as a secondary bootloader.
2022-10-07 20:00:12 +02:00
Yassine Oudjana f455193c4a testing/mt6735-bootshim: new package (MR 3475)
Add package for MT6735 aarch64 boot shim, needed for booting arm64
Linux on samsung-grandpplte.
2022-10-07 20:00:12 +02:00
Yassine Oudjana 3601a50cc5 testing/u-boot-grandpplte: new package (MR 3475)
Add package of U-Boot fork for MT6735 with samsung-grandpplte
configuration.
2022-10-07 20:00:11 +02:00
Yassine Oudjana 60256d230e testing/linux-postmarketos-mediatek-mt6735: new package (MR 3475)
Add kernel package for MediaTek MT6735 mainline fork.
2022-10-07 20:00:10 +02:00
Bart Ribbers 122fc4d75a main/postmarketos-ui-plasma-mobile: bump pkgrel
Seems to have been lost in a rebase on the previous commit, sorry
2022-10-07 19:07:33 +02:00
Bhushan Shah 40bd7f1ce8 Use postmarketOS artwork on plasma-mobile (#1464) (MR 3459)
(cherry picked from commit 302b6f5c29)
2022-10-07 09:36:30 +02:00
Bart Ribbers b5c5918126 main/postmarketos-ui-plasma-mobile: remove firefox (MR 3499)
We already ship Angelfish and shipping 2 browser takes up a lot of
space. Besides Angelfish feels more native in Plasma Mobile (being baed
on Qt and made for mobile) and has a built-in adblocker nowadays so it
seems like the better option.

urfkill hasn't been used for quite a while, no need to keep it around

Motivation for this change is that the image builds of the UI are
currently running out of space so we need to decrease the image size
2022-10-06 11:39:54 +02:00
Bart Ribbers 980660b14f main/postmarketos-ui-plasma-mobile: remove urfkill
It hasn't been needed for a while
2022-10-06 08:59:02 +02:00
Oliver Smith d93ba1f372 cross/busybox-static-*: upgrade to 1.35.0-r27 2022-10-06 08:46:53 +02:00
Alexey Minnekhanov 0d0da0e271 testing/device-samsung-hlte: add new panel module to initfs (MR 3493)
[ci:skip-build]: already built successfully in CI
2022-10-06 08:22:42 +02:00
Luca Weiss d42260fd6f testing/device-*: adjust dtbs for msm8974 5.19 kernel (MR 3493)
During the msm8974 cleanup that landed in 5.19 a bunch of dtbs were
renamed to have a better name. Adjust deviceinfo for those devices.
2022-10-06 08:22:39 +02:00
Luca Weiss 655b0e12dd testing/linux-postmarketos-qcom-msm8974: upgrade to 5.19.9 (MR 3493) 2022-10-06 08:22:39 +02:00
Jakob Hauser a7b31e4731 main/postmarketos-ui-{mate,xfce4}: replace pulseaudio-utils by pulseaudio (MR 3479)
Actually package pulseaudio is needed instead of pulseaudio-utils.
Package pulseaudio-utils then gets drawn in by postmarketos-base-ui
sub-package pulseaudio.

For Xfce4 this is a cosmetic change because pulseaudio gets installed
as a dependency of pavucontol already. Keeping pulseaudio in the
_pmb_reccomends list makes sense to be clear which pieces are needed.

For MATE an explicit installation of pulseaudio is needed because it
doesn't use pavucontrol.

[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2022-10-06 08:17:30 +02:00
Jakob Hauser 485cb2c6bd main/postmarketos-ui-{mate,xfce4}: add alsa-plugins-pulse (MR 3472)
Package alsa-plugins-pulse forewards PulseAudio interfaces to ALSA.
This helps to clean up the mess of PulseAudio vs. ALSA.

[ci:skip-vercheck]
2022-10-06 01:48:06 +03:00
Minecrell 018b1a1a2d community/device-asus-me176c: switch to linux-edge (MR 3167)
Linux 5.18 brought better support for some x86-based Android tablets,
thanks to work from Hans de Goede. This includes asus-me176c: the
modified ACPI table and the Linux fork is no longer necessary,
it can just run linux-edge from Alpine.

Drop the old Linux 5.4 fork and related packages. Instead of using
the proprietary sound firmware from linux-firmware-intel, switch to
using the open-source(!) "Sound Open Firmware" (SOF).

NOTE: The mainline battery driver seems quite a bit less accurate
than the ugly old driver ported from the downstream driver. Also,
Bluetooth seems to fail on some boots now. Overall it works quite
well though. :)
2022-10-06 01:34:42 +03:00
Newbyte 1ebdc7f4ab temp/mutter-mobile: rebuild against latest gnome-desktop (MR 3486) 2022-10-05 20:49:20 +02:00
Newbyte 2528ac7e95 temp/gnome-shell-mobile: rebuild against latest evolution-data-server (MR 3486)
and gnome-desktop
2022-10-05 20:48:37 +02:00
Jami Kettunen abde87678f soc-qcom-sdm845: fix dependency typo of -vulkan subpackage (MR 3495)
Fixes:

  ERROR: unable to select packages:
    mesa-vulkan-freedreeno (no such package):
      required by: soc-qcom-sdm845-vulkan-9-r0[mesa-vulkan-freedreeno]

Reference: https://pkgs.alpinelinux.org/package/edge/main/aarch64/mesa-vulkan-freedreno
2022-10-05 14:52:08 +02:00
Newbyte c995738e07 main/postmarketos-ui-phosh: drop osk.sh (MR 3487)
Since c49d84f4ab1856156d26d59f5c88387776990d24 in Alpine's aports,
the sm.puri.OSK0.desktop service no longer tries to execute
/usr/bin/osk-wayland and instead just executes /usr/bin/squeekboard
directly, thus avoiding this needless indirection. virtboard hasn't
existed in postmarketOS for years at this point and squeekboard is
a hard dependency of phosh, so it's always going to be present
(thus making this check unnecessary) and the fallback if it isn't
wouldn't work anyway.

[ci:skip-build]: already built successfully in CI
2022-10-05 09:20:01 +02:00
Caleb Connolly c24bb158a6 soc-qcom-sdm845: automatically install vulkan support (MR 3494)
[ci:skip-build]: already built successfully in CI
2022-10-05 09:17:24 +02:00
Luca Weiss 686d217dd5 testing/device-lg-lenok: add mainline dtb reference (MR 3491)
[ci:skip-build]: already built successfully in CI
2022-10-05 09:06:22 +02:00
Luca Weiss faec786db5 testing/device-huawei-sturgeon: add mainline dtb reference (MR 3491) 2022-10-05 09:06:13 +02:00
Luca Weiss b1d4e6e45a testing/device-asus-sparrow: add mainline dtb reference (MR 3491) 2022-10-05 09:06:08 +02:00
Luca Weiss 52a8258a5e main/pil-squasher: remove (MR 3490)
Upstreamed to Alpine.
2022-10-04 22:48:30 +02:00
Anton Bambura 5b8c948efd google-willow: new device (MR 3489)
[ci:skip-build] Already built successfuly on CI in MR
2022-10-04 21:45:10 +02:00
Anton Bambura 5bc6b9d97c google-kodama: new device (MR 3489) 2022-10-04 21:45:09 +02:00
Anton Bambura 27156ad6e9 google-kenzo: new device (MR 3489) 2022-10-04 21:45:09 +02:00
Anton Bambura 1291a002e0 google-kappa: new device (MR 3489) 2022-10-04 21:45:08 +02:00
Anton Bambura de4f3c94a8 google-kakadu: new device (MR 3489) 2022-10-04 21:45:07 +02:00
Anton Bambura 2d59881635 google-damu: new device (MR 3489) 2022-10-04 21:45:06 +02:00
Anton Bambura a21e0c569a google-fennel14: new device (MR 3489) 2022-10-04 21:45:06 +02:00
Anton Bambura d123359627 google-fennel: new device (MR 3489) 2022-10-04 21:45:05 +02:00
Anton Bambura 2fdb7ad710 google-cozmo: new device (MR 3489) 2022-10-04 21:45:04 +02:00
Anton Bambura 7d016111fd google-burnet: new device (MR 3489) 2022-10-04 21:45:03 +02:00
Newbyte ffea64b8b1 main/postmarketos-ui-phosh: remove phoc scaling configuration (MR 3434)
At this point the only application preconfigured to be scaled was GNOME
Maps, which nowdays adapts just fine to narrow screens. Having it scaled
like this by default only degrades the user experience by making UI
elements tiny and hard to interact with.

Closes https://gitlab.com/postmarketOS/pmaports/-/issues/1716
2022-10-03 20:25:20 +02:00
Alexander Martinz 37c7f81f55 community/linux-postmarketos-qcom-sdm845: upgrade to 5.19.12 (MR 3474)
For a merge list, please see the merge commits:
  - 5.19.8  - (https://gitlab.com/sdm845-mainline/linux/-/commit/30c780c930820e977088a5a145e623a8791bbe36)
  - 5.19.9  - (https://gitlab.com/sdm845-mainline/linux/-/commit/203e94fc4750025c6757ea576ae60761622de2dd)
  - 5.19.10 - (https://gitlab.com/sdm845-mainline/linux/-/commit/a88cf36006d765f3ac2c888d0ca87fa864b8caec)
  - 5.19.11 - (https://gitlab.com/sdm845-mainline/linux/-/commit/ade68530f5ea5bbe020451923d8232b87499c6ee)
  - 5.19.12 - (https://gitlab.com/sdm845-mainline/linux/-/commit/c19a1c06f1ff61f5d6971757442acf0736585551)

Change-Id: Ic6b7f59f326516db392c6281d2cee139a9b92794
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>

[ci:skip-build] Already built successfuly on CI in MR
2022-10-03 17:39:15 +02:00
Jakob Hauser f6db790abc main/swclock-offset: change maintainer name (MR 3481) 2022-10-03 17:09:46 +02:00
Newbyte 92c0846074 cross/gcc-armv7: upgrade to 12.2.1_git20220924-r2 2022-10-03 12:09:39 +02:00
Newbyte 97bbb88f39 cross/gcc-armhf: upgrade to 12.2.1_git20220924-r2 2022-10-03 12:06:50 +02:00
Newbyte 07200b060c cross/gcc-aarch64: upgrade to 12.2.1_git20220924-r2 2022-10-03 12:04:30 +02:00
Clayton Craft 32ea00d3f9 temp/evince: drop aport (MR 3484)
Upstream has evince 43 now, which seems to be adapted (tested on the
Librem 5), and the old evince in this package depends on a package that
no longer exists:
        ERROR: unable to select packages:
          so:libgnome-desktop-3.so.19 (no such package):
            required by: evince-9999_git20211009-r2[so:libgnome-desktop-3.so.19]
2022-10-02 10:44:32 +02:00
Newbyte ce46e963cf main/postmarketos-ui-gnome: disable on armhf (MR 3482)
[ci:skip-vercheck]
2022-10-01 22:42:54 +02:00
Newbyte bed0058f46 temp/gcr4: drop (MR 3465)
gcr4 is now in Alpine.
2022-10-01 22:17:47 +02:00
Newbyte 879c1f6900 temp/gjs: drop (MR 3465)
1.74.0 is now in Alpine.
2022-10-01 22:17:41 +02:00
Caleb Connolly bcd0b58cfb community/firmware-oneplus-sdm845: add OnePlus 6T speaker firmware (MR 3462)
The speaker codec driver is currently carried in the sdm845 mainline
kernel fork, we need the firmware to make use of it.
2022-10-01 22:08:46 +02:00
Caleb Connolly d9e75b4d92 community/firmware-oneplus-sdm845: clean up package logic (MR 3462) 2022-10-01 22:08:41 +02:00
knuxify fba7f73f18 device-raspberry-pi4: enable Bluetooth by default (MR 3461) 2022-10-01 22:03:06 +02:00
knuxify 106379972c device-raspberry-pi4: add firmware subpackage (MR 3461) 2022-10-01 22:03:06 +02:00
Vincent Knecht 63a4d7ab0b community/soc-qcom-msm8916: update ALSA UCM files (MR 3473)
- alcatel-idol347: enable headphones jack control
- msm8916-wcd: fix SpeakerHPHLR switch

[ci:skip-build]: built successfully locally, bpo needs bump
2022-10-01 11:54:28 +02:00
Clayton Craft 2447cb00e0 cross/gcc-*: upgrade to 12.2.1-r1 2022-09-30 17:31:59 -07:00
Newbyte f2c7c48e2a main/postmarketos-base: make apk interactive by default (MR 3444)
This would mitigate issues where apk unexpectedly replaces packages
somewhat as this way the user will be able to see precisely what changes
will happen to their system before they are committed. Furthermore, most
users are likely accustomed to package managers like apt, dnf, pacman,
among others that all are interactive by default and as such this would
provide a more familiar experience for them.

This will not affected pre-existing installs, and advanced users who
do not like this behaviour can restore the old one by deleting
/etc/apk/interactive.

[ci:skip-build]: already built successfully in CI
2022-09-28 09:18:55 +02:00
Raymond Hackley 6f074ad61d samsung-*: Add USB ID (MR 3469)
Some devices have 04e8:6860 as their USB ID. Add it to deviceinfo.

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2022-09-28 09:10:57 +02:00
Bart Ribbers aaa238793d linux-postmarketos-qcom-sdm845: add BTRFS support (MR 3458)
pmbootstrap allows generating btrfs images (install --filesystem btrfs)
but the sdm845 devices don't support booting it without this
2022-09-27 15:26:27 +02:00
Jakob Hauser f5669c1621 main/postmarketos-ui-mate: remove pavucontrol from recommends (MR 3468)
After PulseAudio support for MATE sound was enabled in Alpine Linux,
its interfaces are now available in the native MATE sound settings.
The additional PulseAudio volume control application therefore became
redundant.

[ci:skip-vercheck]
2022-09-27 10:28:19 +02:00
Andreas Kemnade 475b892673 kobo-clara, tolino-shine2hd, tolino-shine3: add mesa-dri-gallium dep (MR 3470)
Mesa behaves again, #1658 is fixed, so lets re-revert MR 3306.
Lets also add the dependency to the other devices using the same
graphics driver.

[ci:skip-build] Already built successfuly on CI in MR
2022-09-27 10:24:48 +02:00
Andreas Kemnade 3dadae21d2 linux-kobo-clara-mainline: upgrade to 5.19.11 (MR 3471)
- silence the wifi a bit, it really provides an enormous amout of spam
- enable pxp mem2mem video converter

[ci:skip-build] Already built successfuly on CI in MR
2022-09-27 10:11:42 +02:00
Oliver Smith 18a08fff5d treewide: adjust deviceinfo to new linting rules (MR 3454)
[ci:ignore-count]
2022-09-27 09:26:53 +02:00
Oliver Smith ff24bce15d CI: deviceinfo: add more strict linting (MR 3454)
pmbootstrap and postmarketos-mkinitfs don't support multiple lines in
these files, and the complexity is not worth implementing there. Let's
keep the format dead-simple and enforce it across all files.

While at it, enforce that comments stat with '# ' and make sure each
line has quotations (we had some without).

Related: discussion in postmarketos-mkinitfs MR 21
2022-09-27 09:26:41 +02:00
Clayton Craft d28d2e4a96 main/postmarketos-mkinitfs: upgrade to 1.5 (MR 3445) 2022-09-27 09:09:15 +02:00
omame 6156f79976 samsung-j6primelte: "Fix" EINVAL on FBIOPUT_VSCREENINFO (MR 3466)
This isn't really a fix, but the device's framebuffer has only one mode and it's enough to get Xorg up and running.

[ci:skip-build]: already built successfully in CI
2022-09-27 08:37:26 +02:00
Vincent Knecht 2f63bc3ca7 msm8939 mainline devices: use soc-qcom-msm8939 package (MR 3463)
Make use of soc-qcom-msm8939 package.
2022-09-26 08:19:56 +02:00
Vincent Knecht 78992d37bb soc-qcom-msm8939: new aport (MR 3463)
Add msm8939 SoC package to be used in addition to soc-qcom-msm8916.

For now it provides a shell script setting FD_MESA_DEBUG=nobin env var
to work-around graphical corruption seen on adreno 405 devices.
2022-09-26 08:19:55 +02:00
M0Rf30 54f97936aa testing/device-xiaomi-vince: mainline kernel support (MR 3446)
Also use correct product name.

[ci:skip-build] Already built successfuly on CI in MR
2022-09-25 17:24:04 +02:00
M0Rf30 faebdf6ba8 testing/firmware-xiaomi-vince: switch sources, restructure (MR 3446)
Fix corrupted adreno blob
2022-09-25 17:23:47 +02:00
M0Rf30 06dd3f2093 testing/linux-postmarketos-qcom-msm8953: upgrade to 5.18.3 (MR 3446)
Add xiaomi-vince support
2022-09-25 17:23:43 +02:00
Sicelo A. Mhlongo f18afd9145 device-nokia-n900: remove duplicates in deviceinfo (MR 3455)
Remove duplicated keyboard/keymap definitions in deviceinfo
2022-09-25 16:05:14 +02:00
David Wronek e2d1aa7bcf cross/gcc-*: upgrade to 12.1.1_git20220630-r6 (MR 3464) 2022-09-25 10:42:33 +02:00
Alexander Martinz 67bfa9a8ff device-shift-axolotl: depend on fwupd and friends (MR 3457)
The SHIFT6mq (axolotl) now supports updating the bootloader via
the new android-boot fwupd plugin.

A big shoutout and heartfelt "Thank You!" to Dylan for working
on this plugin and upstreaming it.

Change-Id: I1d608ce293a152e9354ca117cd370952df3f41ad
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
2022-09-23 12:01:00 +02:00
Luca Weiss a1a2f80a51 CI: require pmb:kconfigcheck-community for community/main devices (MR 3422)
Since nftables check is a part of community check, we can safely remove
the explicit nftables check.

[ci:skip-build]
2022-09-21 22:25:56 +02:00
Luca Weiss 2c58ce8e45 device/{community,main}/*: migrate to pmb:kconfigcheck-community (MR 3422)
Replace usages of pmb:kconfigcheck-* options with
pmb:kconfigcheck-community which will be required for all devices in
community/main category. This ensures more consistent features &
behavior across devices.
2022-09-21 22:25:49 +02:00
Craig Comstock 00f8f73a53 main/gesture: upgrade to 0.7 (MR 3453)
Fix dot gestures on several devices

https://gitlab.com/postmarketOS/pmaports/-/issues/1697
[ci:skip-build]: already built successfully in CI
2022-09-21 22:17:51 +02:00
lucasredelive 8982682ea6 samsung-j8y18lte: new device (Samsung Galaxy J8 (2018)) (MR 3426)
[ci:skip-build]: already built successfully in CI
2022-09-21 20:55:53 +02:00
Luca Weiss 2e4f21edaf main/qt5ct: remove
Package is present in Alpine repos since some time.

Closes #1160
2022-09-21 20:19:43 +02:00
Vincent Knecht 2f0a4245d3 huawei-kiwi: add panel-tianma-nt35596-5p5xa (MR 3451) 2022-09-21 11:30:31 +02:00
Oliver Smith 68eb144ba8 cross/binutils-*: upgrade to 2.39-r2 2022-09-18 21:02:32 +02:00
Bobby The Builder b66e58d4e3 linux-postmarketos-allwinner: upgrade to 5.19.8 (MR 3421)
[ci:skip-build]: already built successfully in CI
2022-09-18 20:53:42 +02:00
Raymond Hackley 3a38bcd09e samsung-fortunaltezt: Set deviceinfo_flash_offset_kernel="0x00008000" (MR 3447)
32-bit devices should use 0x00008000.
2022-09-18 20:26:21 +02:00
Oliver Smith 0a578020c2 main/postmarketos-ui-phosh: don't install gnome-mobile forks (MR 3448)
There is no need to install the experimental GNOME mobile forks when
running Phosh, it will probably just cause instabilities. Let's rather
not do it.
2022-09-18 20:03:40 +02:00
Oliver Smith e4994e5719 main/postmarketos-ui-gnome: don't install gnome-mobile forks (MR 3448)
Don't install the experimental gnome-mobile forks of gnome-shell and
mutter in regular GNOME. These are probably more stable, and most
importantly this prevents accidental uninstallation of gnome-shell
without installing gnome-mobile-shell.

Revert the addition of the gnome-shell dependency to
postmarketos-ui-gnome. This isn't needed anymore and caused further
issues.

Fixes: issue 1701
2022-09-18 20:03:35 +02:00
Oliver Smith 48698459ef main/postmarketos-ui-gnome: add dep on gnome-shell (MR 3443)
Since merging the gnome shell on mobile MR 3404, gnome-shell needs to be
explicitly installed or else it gets removed on upgrade.

[ci:skip-build]: already built successfully in CI
2022-09-16 08:56:05 +02:00
Alexey Minnekhanov dfee25cbf6 xiaomi-platina: add touchscreen module to initfs (MR 3342)
[ci:skip-build] Already built successfuly on CI in MR
2022-09-15 20:19:56 +02:00
Alexey Minnekhanov ff94a38671 xiaomi-lavender: add touchscreen module to initfs (MR 3342) 2022-09-15 20:19:33 +02:00
Alexey Minnekhanov 5a2b291aa4 xiaomi-clover: add touchscreen module to initfs (MR 3342) 2022-09-15 20:19:32 +02:00
Alexey Minnekhanov 4f15437c21 asus-x00td: add touchscreen module to initfs (MR 3342)
And panel-simple is now built-in
2022-09-15 20:19:32 +02:00
Alexey Min 4a685bd493 linux-postmarketos-qcom-sdm660: upgrade to 5.19 (MR 3342)
Upgrade to fresh Linux release.

Enable more features in kernel from pmbootstrap kconfig check:
anbox, containers, iwd, nftables, zram.

Disable CONFIG_REGULATOR_DEBUG to reduce dmesg spam.

DRM and PANEL_SIMPLE are now built-in (DRM_MSM is still "m").

Switch to framebuffer from SIMPLEFB to tinydrm (SIMPLEDRM=y).

Switch APKBUILD to use "make zinstall" approach.

(Device packages might need small adjustments to initfs modules list.)
2022-09-15 20:19:32 +02:00
Newbyte f5937947aa temp/upower: drop (MR 3440)
The known affected devices have had the battery display issues resolved.
xiaomi-beryllium and shift-axolotl were fixed in-kernel by Linux for
sdm845 version 5.19.7, and samsung-skomer works fine after backporting
the upstream Upower fix for the issue:
https://gitlab.freedesktop.org/upower/upower/-/merge_requests/170

The sdm845 devices also work fine with just the Upower fix for what it's
worth. The kernel fix is redundant.
2022-09-15 19:45:52 +02:00
Anjandev Momi d25d6e6088 main/postmarketos-ui-sxmo-de-dwm: upgrade to 1.11.1 (MR 3398)
[ci:skip-build] already built successfully in CI
2022-09-15 10:32:46 -07:00
Anjandev Momi 1c3b44199e main/sxmo-common: upgrade to 1.11.1 (MR 3398) 2022-09-15 10:32:40 -07:00
Anjandev Momi 430612a48f main/postmarketos-ui-sxmo-de-sway: upgrade to 1.11.1 (MR 3398) 2022-09-15 10:32:26 -07:00
Newbyte 3d28282ac7 temp/calamares-extensions: drop (MR 3439)
Patch has been moved to Alpine:
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/38950
2022-09-15 11:27:02 +02:00
Oliver Smith dd32a6697b main/postmarketos-welcome: upgrade to 0.7.0 (MR 3441)
[ci:skip-build]: already built successfully in CI
2022-09-15 09:35:27 +02:00
Newbyte b663e55b3a main/postmarketos-ui-gnome-mobile: new aport (MR 3404)
[ci:skip-build]: already built successfully in CI
2022-09-15 09:30:12 +02:00
Caleb Connolly 47e8aa8160 temp/gnome-shell-mobile: new aport (MR 3404) 2022-09-15 09:30:00 +02:00
Caleb Connolly 088b06cfb8 temp/mutter-mobile: new aport (MR 3404) 2022-09-15 09:30:00 +02:00
Caleb Connolly bdb0c4d4c6 temp/gcr4: new aport (for gnome-mobile, will be moved to alpine) (MR 3404) 2022-09-15 09:30:00 +02:00
Caleb Connolly c5051fecfc temp/gjs: temporarily fork to upgrade for gnome-mobile (MR 3404) 2022-09-15 09:29:55 +02:00
Oliver Smith 2176095404 cross/grub-efi-x86: upgrade to 2.06-r6 2022-09-15 09:15:43 +02:00
Oliver Smith 70001d44a6 cross/busybox-static-*: upgrade to 1.35.0-25 2022-09-15 09:15:38 +02:00
Craig Comstock 911065a682 motorola-surnia: change to mainline kernel (MR 3329)
[ci:skip-build] Already built successfuly on CI in MR
2022-09-14 22:56:47 +02:00
Oliver Smith b45db48e69 main/postmarketos-ui-phosh: update ff in favorites (MR 3420)
Adjust to change in Alpine, Firefox ESR is now launched via
firefox-esr.desktop instead of org.mozilla.firefox.desktop.
2022-09-14 09:51:09 +02:00
Newbyte 6c0cfb081b main/postmarketos-ui-phosh: adopt (MR 3435)
Bart has confirmed he's fine with this.
2022-09-14 09:43:57 +02:00
Bart Ribbers 8ead04ba61 main/postmarketos-ui-glacier: drop (MR 3433)
It's broken and I currently don't have any interest in fixing it or
maintaining it in general. If somebody wants to package it later they
can always restore it
2022-09-14 09:32:11 +02:00
Elagost 8ae2fccd41 linux-postmarketos-allwinner: add exfat module to armv7 config (MR 3437)
[ci:skip-build] Already built fine on CI in MR
2022-09-13 22:10:00 +03:00
Elagost ac881faa86 linux-postmarketos-allwinner: add exfat module (MR 3436)
[ci:skip-build] Already built fine on CI once
2022-09-13 18:39:58 +03:00
Oliver Smith 1ff0cac815 main/gcc{4,6}: remove dependency on isl (MR 3432)
Previously only cross/gcc{4,6}-* packages were adjusted in MR 3419, but
these packages need to be adjusted as well.

Fix for error shown in upstream_compat check:
  Increase 'gcc6' pkgrel (10 -> 11), missing depend(s): isl
  Increase 'gcc4' pkgrel (5 -> 6), missing depend(s): isl

Related: pmbootstrap issue  2167

[ci:skip-build] Already built successfully once
2022-09-13 17:20:20 +03:00
Phil Smith fac1dc0a64 main/postmarketos-ui-phosh: Fix firefox-esr mime (MR 3428)
Firefox packaging changed upstream, renaming the desktop files.  This
caused the mime applications to be stale, so update those.

See also
  https://gitlab.alpinelinux.org/alpine/aports/-/issues/13983
[ci:skip-build]: already built successfully in CI
2022-09-13 09:33:12 +02:00
Newbyte 45fc67abeb samsung-p4note: enable automatic kernel upgrades (MR 3425) 2022-09-13 09:17:36 +02:00
Sicelo A. Mhlongo 8d411c7c4d temp/xkeyboard-config: drop rx-51 patches (MR 3431)
Remove rx-51 (Nokia N900) modifications from package.

Related: #1521
[ci:skip-build]: already built successfully in CI
2022-09-13 09:14:54 +02:00
Sicelo A. Mhlongo 5da6060cd9 device-nokia-n900: Add x11 keymap (MR 3430)
Add rx-51 x11 keymap to device package in response to #1521

[ci:skip-build]: already built successfully in CI
2022-09-13 09:10:47 +02:00
Arnavion 2c74889256 main/postmarketos-hidden-desktop-entries: update firefox(-esr) safe-mode filename (MR 3418)
Ref:

- https://gitlab.alpinelinux.org/alpine/aports/-/commit/614929078261d2c438329c786831e0308baf5160

- https://gitlab.alpinelinux.org/alpine/aports/-/commit/525736254c52aa7dc0c9c7d7fdfef94dae3eba1c
2022-09-13 08:55:19 +02:00
Bart Ribbers b79dd34e1d main/postmarketos-ui-plasma-mobile: add dependency on PipeWire to fix window switcher previews (MR 3424) 2022-09-12 11:36:05 +02:00
Bart Ribbers b23d61b547 main/postmarketos-ui-plasma-mobile: add font-noto-extra to _pmb_recommends (MR 3423)
The "Light" weight is used by the keyboard and some applications

[ci:skip-vercheck]
2022-09-12 10:40:43 +02:00
Newbyte d8cb4fea55 postmarketos-ui-phosh: drop firefox subpackage (MR 3414)
The sole purpose of this subpackage was to work around that Firefox's
.desktop file did not match the GTK app ID. This has been fixed as of
the commit linked below, so drop the subpackage.

See https://gitlab.alpinelinux.org/alpine/aports/-/commit/525736254c52aa7dc0c9c7d7fdfef94dae3eba1c
2022-09-11 18:13:13 +02:00
Fiona Klute 72784fcf6f main/mobile-config-firefox: Fix firefox-esr >= 102.2.0-r1 (MR 3417)
The firefox-esr package in versions >= 102.2.0-r1 installs to
/usr/lib/firefox-esr instead of /usr/lib/firefox, adjust FIREFOX_DIR
to match. Install for both firefox-esr and firefox now.

[ci:skip-build]: already built successfully in CI
2022-09-11 18:00:00 +02:00
1421 changed files with 117145 additions and 41757 deletions

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
#!/bin/sh -e
# Description: run apkbuild-lint on modified APKBUILDs
# Options: native
# Use 'native' because it requires git commit history.
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
# Wrap pmbootstrap to use this repository for --aports
pmaports="$(cd $(dirname $0)/..; pwd -P)"
_pmbootstrap="$(command -v pmbootstrap)"
pmbootstrap() {
"$_pmbootstrap" --aports="$pmaports" "$@"
}
.ci/lib/apkbuild_linting.py
+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
+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
-8
View File
@@ -1,8 +0,0 @@
#!/bin/sh -e
# Convenience wrapper for short arch-specific build jobs in .gitlab-ci.yml
export PYTHONUNBUFFERED=1
JOB_ARCH="${CI_JOB_NAME#build-}"
set -x
su pmos -c ".ci/build_changed_aports.py $JOB_ARCH"
Executable
+20
View File
@@ -0,0 +1,20 @@
#!/bin/sh -e
# Copyright 2022 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
# Description: check pkgver/pkgrel bumps, amount of changed pkgs etc
# Options: native
# Use 'native' because it requires git commit history.
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
# In .gitlab-ci.yml currently .ci/pytest.sh runs before this and
# already downloads and runs install_pmbootstrap.sh.
if ! [ -e install_pmbootstrap.sh ]; then
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
fi
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
.ci/lib/check_changed_aports_versions.py
Executable
+13
View File
@@ -0,0 +1,13 @@
#!/bin/sh -e
# Description: editorconfig-checker: lint for trailing whitespaces etc.
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
apk -q add \
editorconfig-checker
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
set -x
ec
Executable
+14
View File
@@ -0,0 +1,14 @@
#!/bin/sh -e
# Description: lint CI related python scripts/tests
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
apk -q add py3-flake8
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
set -x
# shellcheck disable=SC2046
flake8 --ignore E501,F401,E722,W504,W605 $(find .ci -name '*.py')
Executable
+24
View File
@@ -0,0 +1,24 @@
#!/bin/sh -e
# Description: check various bad patterns with grep
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
apk -q add grep
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
# Find CHANGEMEs in APKBUILDs
if grep -qr '(CHANGEME!)' *; then
echo "ERROR: Please replace '(CHANGEME!)' in the following files:"
grep --color=always -r '(CHANGEME!)' *
exit 1
fi
# DTBs installed to /usr/share/db
# FIXME: doesn't pass currently, fix it and enable it afterwards
# if grep -r 'INSTALL_DTBS_PATH="$pkgdir"/usr/share/dtb'; then
# echo 'Please do not install dtbs to /usr/share/dtb!'
# echo 'Unless you have a good reason not to, please put them in /boot/dtbs'
# exit 1
# fi
Executable
+22
View File
@@ -0,0 +1,22 @@
#!/bin/sh -e
# Description: check all kernel configs with 'pmbootstrap kconfig check'
# Options: native
# Use 'native' because it requires running pmbootstrap.
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
# Wrap pmbootstrap to use this repository for --aports
pmaports="$(cd $(dirname $0)/..; pwd -P)"
_pmbootstrap="$(command -v pmbootstrap)"
pmbootstrap() {
"$_pmbootstrap" --aports="$pmaports" "$@"
}
set -x
pmbootstrap kconfig check
+1
View File
@@ -0,0 +1 @@
../testcases/add_pmbootstrap_to_import_path
File renamed without changes.
@@ -7,7 +7,7 @@ import sys
import common
# pmbootstrap
import testcases.add_pmbootstrap_to_import_path
import add_pmbootstrap_to_import_path
import pmb.parse
import pmb.parse._apkbuild
import pmb.helpers.pmaports
+19
View File
@@ -0,0 +1,19 @@
#!/bin/sh -e
# Description: build modified packages for this architecture
# Options: native slow
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
export PYTHONUNBUFFERED=1
# Get the architecture from the symlink we are running
arch="$(echo "$0" | cut -d '-' -f 2 | cut -d '.' -f 1)"
set -x
.ci/lib/build_changed_aports.py "$arch"
@@ -11,7 +11,7 @@ import subprocess
import common
# pmbootstrap
import testcases.add_pmbootstrap_to_import_path # noqa
import add_pmbootstrap_to_import_path # noqa
import pmb.parse
import pmb.parse.version
import pmb.helpers.logging
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright 2021 Oliver Smith
# Copyright 2022 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import argparse
@@ -13,7 +13,7 @@ def get_devices():
""":returns: list of all devices"""
ret = []
pmaports = (os.path.realpath(os.path.join(os.path.dirname(__file__) +
"/..")))
"/../..")))
for path in glob.glob(pmaports + "/device/*/device-*/"):
device = os.path.dirname(path).split("device-", 1)[1]
@@ -110,7 +110,7 @@ def main():
print("")
print("Now it's time to add some documentation:")
print("1) Create a device specific wiki page as described here:")
print(" <https://wiki.postmarketos.org/wiki/Help:Device_Page>")
print(" https://wiki.postmarketos.org/wiki/Help:Device_Page")
print("2) Set 'booting = yes' in the infobox of your device page.")
print("3) Run these tests again with an empty commit in your MR:")
print(" $ git commit --allow-empty -m 'run tests again'")
+1 -1
View File
@@ -17,7 +17,7 @@ def get_pmaports_dir():
global cache
if "pmaports_dir" in cache:
return cache["pmaports_dir"]
ret = os.path.realpath(os.path.join(os.path.dirname(__file__) + "/.."))
ret = os.path.realpath(os.path.join(os.path.dirname(__file__) + "/../.."))
cache["pmaports_dir"] = ret
return ret
+17
View File
@@ -0,0 +1,17 @@
#!/bin/sh -e
# Copyright 2022 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
if ! mount | grep -q /proc/sys/fs/binfmt_misc; then
echo "Mounting binfmt_misc"
mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
fi
if id "build" > /dev/null 2>&1; then
echo "User 'build' exists already"
else
echo "Creating build user"
adduser -D build
chown -R build:build .
echo 'build ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
fi
File renamed without changes.
+15 -4
View File
@@ -1,10 +1,21 @@
#!/bin/sh -e
# Copyright 2021 Oliver Smith
# Copyright 2022 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
# Description: lint with various python tests
# Options: native
# Use 'native' because it requires pmbootstrap.
# https://postmarketos.org/pmb-ci
# Require pmbootstrap
if ! command -v pmbootstrap > /dev/null; then
echo "ERROR: pmbootstrap needs to be installed."
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh pytest
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
# Require pytest to be installed on the host system
if [ -z "$(command -v pytest)" ]; then
echo "ERROR: pytest command not found, make sure it is in your PATH."
exit 1
fi
+11 -12
View File
@@ -1,16 +1,15 @@
#!/bin/sh -e
# Copyright 2021 Oliver Smith
# Copyright 2022 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
# Description: lint all shell scripts
# https://postmarketos.org/pmb-ci
set -e
DIR="$(cd "$(dirname "$0")" && pwd -P)"
cd "$DIR/.."
DIR="$(cd "$(dirname "$0")/.." && pwd -P)"
# Find CHANGEMEs in APKBUILDs
if grep -qr '(CHANGEME!)' *; then
echo "ERROR: Please replace '(CHANGEME!)' in the following files:"
grep --color=always -r '(CHANGEME!)' *
exit 1
if [ "$(id -u)" = 0 ]; then
set -x
apk -q add shellcheck
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
# Shell: shellcheck
@@ -24,11 +23,10 @@ sh_files="
./main/postmarketos-mkinitfs-hook-debug-shell/20-debug-shell.sh
./main/postmarketos-mkinitfs-hook-netboot/netboot.sh
./main/postmarketos-update-kernel/update-kernel.sh
./main/swclock-offset/swclock-offset-boot.sh
./main/swclock-offset/swclock-offset-shutdown.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
$(find . -path './main/postmarketos-ui-*/*.sh')
$(find . -path './main/postmarketos-ui-*/*.pre-install')
@@ -44,8 +42,9 @@ sh_files="
$(find . -path '.ci/*.sh')
"
for file in $sh_files; do
echo "Test with shellcheck: $file"
cd "$DIR/../$(dirname "$file")"
cd "$DIR/$(dirname "$file")"
shellcheck -e SC1008 -x "$(basename "$file")"
done
+6 -8
View File
@@ -16,20 +16,18 @@ def device_dependency_check(apkbuild, path):
""" Raise an error if a device package has a dependency that is not allowed
(e.g. because it should be in a subpackage instead). """
# asus-me176c: without this, the device will simply run the broken ACPI
# DSDT table, so we might as well update it. See pmaports!699.
firmware_ok = {"device-asus-me176c": ["firmware-asus-me176c-acpi"]}
pkgname = apkbuild["pkgname"]
for depend in apkbuild["depends"]:
if depend == "linux-firmware-none":
continue
if (depend.startswith("firmware-") or
depend.startswith("linux-firmware")):
if pkgname in firmware_ok and depend in firmware_ok[pkgname]:
continue
raise RuntimeError("Firmware package '" + depend + "' found in"
" depends of " + path + ". These go into"
" subpackages now, see"
" <https://postmarketos.org/devicepkg>.")
if depend == "mesa-dri-gallium":
raise RuntimeError(f"{path}: mesa-dri-gallium shouldn't be in"
" depends anymore (see pmaports!3478)")
def test_aports_device(args):
@@ -83,7 +81,7 @@ def test_aports_device_kernel(args):
# Parse kernels from depends
kernels_depends = []
for depend in apkbuild["depends"]:
if not depend.startswith("linux-"):
if not depend.startswith("linux-") or depend.startswith("linux-firmware-"):
continue
kernels_depends.append(depend)
+29 -8
View File
@@ -3,9 +3,10 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import pytest
import sys
import os
import pytest
import re
import sys
import add_pmbootstrap_to_import_path
import pmb.parse
@@ -16,12 +17,15 @@ def deviceinfo_obsolete(info):
Test for obsolete options used in the deviceinfo file. They must still be
defined in pmbootstrap's config/__init__.py.
"""
obsolete_options = ["weston_pixman_type"]
obsolete_options = [
"usb_rndis_function",
"weston_pixman_type",
]
for option in obsolete_options:
if info[option]:
raise RuntimeError("option '" + option + "' is obsolete, please"
" remove it (reasons for removal are at"
" <https://postmarketos.org/deviceinfo>)")
if option in info and info[option]:
raise RuntimeError(f"option {option} is obsolete, please rename"
" or remove it (see reasons for removal of at"
" https://postmarketos.org/deviceinfo)")
def test_deviceinfo(args):
@@ -31,6 +35,8 @@ def test_deviceinfo(args):
# Iterate over all devices
last_exception = None
count = 0
pattern = re.compile("^deviceinfo_[a-zA-Z0-9_]*=\".*\"$")
for folder in glob.glob(args.aports + "/device/*/device-*"):
device = folder[len(args.aports):].split("-", 1)[1]
@@ -39,11 +45,26 @@ def test_deviceinfo(args):
f.close()
try:
# variable can not be empty
for line in lines:
# Require space after # for comments
if line.startswith("#") and not line.startswith("# "):
raise RuntimeError("Comment style: please change '#' to"
f" '# ': {line}")
# Skip empty lines and comments
if not line or line.startswith("# "):
continue
# Variable can not be empty
if '=""' in line:
raise RuntimeError("Please remove the empty variable: " + line)
# Check line against regex (can't use multiple lines etc.)
if not pattern.match(line) or line.endswith("\\\""):
raise RuntimeError("Line looks invalid, maybe missing"
" quotes/multi-line string/comment next"
f" to line instead of above? {line}")
# Successful deviceinfo parsing / obsolete options
info = pmb.parse.deviceinfo(args, device)
deviceinfo_obsolete(info)
+7
View File
@@ -15,8 +15,10 @@ def test_aports_firmware(args):
"""
excluded = [
"firmware-motorola-ali", # Depends on firmware-qcom-adreno-a530
"firmware-motorola-potter", # Depends on soc-qcom-msm8916-ucm
"firmware-oneplus-msm8998", # Depends on soc-qcom-sdm845-nonfree-firmware
"firmware-xiaomi-sagit", # Depends on soc-qcom-sdm845-nonfree-firmware
"firmware-samsung-baffinlite", # Depends on firmware-aosp-broadcom-wlan
"firmware-samsung-crespo", # Depends on firmware-aosp-broadcom-wlan
"firmware-samsung-maguro", # Depends on firmware-aosp-broadcom-wlan
@@ -41,3 +43,8 @@ def test_aports_firmware(args):
raise RuntimeError(f"{aport_name}: \"!tracedeps\" missing in"
" options= line. The tracedeps option is superfluous"
" for firmware packages.")
if "noarch" in apkbuild["arch"]:
raise RuntimeError(f"{aport_name}: \"arch\" must not be \"noarch\"!"
" Please limit this firmware package to the"
" required architectures only!")
+4 -4
View File
@@ -34,9 +34,9 @@ def test_aports_kernel(args):
" pmbootstrap installs cross-compiler"
" automatically.")
# nftables support in kernels used by main and community devices
# check some options only for main and community devices
for dir in ["main", "device/main", "device/community"]:
if path.startswith(f"{args.aports}/{dir}"):
assert pmb.parse.kconfig.check(args,
aport_name.replace("linux-", ""),
force_nftables_check=True)
if "pmb:kconfigcheck-community" not in apkbuild["options"]:
raise RuntimeError(f"{aport_name}: \"pmb:kconfigcheck-community\" missing in"
" options= line, required for all community/main devices.")
+87
View File
@@ -0,0 +1,87 @@
#!/usr/bin/env python3
# Copyright 2022 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import logging
import os
import pytest
import sys
import add_pmbootstrap_to_import_path
import pmb.parse
import pmb.parse._apkbuild
def apkbuild_check_provides(path, apkbuild, version, pkgname, subpkgname=None):
"""
Verify that a package or subpackage is using provides correctly.
:param path: to the APKBUILD for the error message
:param apkbuild: either the full return of pmb.parse.apkbuild() or a
subpackage of it (apkbuild["subpackages"][$subpkgname])
:param version: like 1.0.0-r3 so we can check against it
:param pkgname: package name
:param subpkgname: subpackage name, if we are looking at a subpackage
:returns: list of error strings
"""
name = pkgname
if subpkgname:
name = f"{pkgname}:{subpkgname}"
logging.info(f"{name}: checking provides")
ret = []
if not apkbuild["provides"]:
return ret
for provide in apkbuild["provides"]:
# Having provides entries without version is valid if the
# provider_priorty is also set (pma#1766)
if apkbuild["provider_priority"]:
continue
# Otherwise the version =$pkgver-r$pkgrel needs to be set. pmbootstrap
# already replaces the variables, so we check against the inserted
# values here.
if not provide.endswith(f"={version}"):
provide_no_ver = provide.split("=", 1)[0]
error = f"error in {path}:\n"
if subpkgname:
error += f"in subpackage:\n {subpkgname}\n"
else:
error += f"in package:\n {pkgname}\n"
error += f"broken provides entry:\n {provide_no_ver}\n"
error += "\n"
error += "This provides entry needs to be changed to"
error += f" '{provide_no_ver}=$pkgver-r$pkgrel'"
error += " (do not replace the variables, without '').\n"
error += "\n"
error += "If you know what you are doing and didn't add the"
error += " version on purpose, you also need to set a"
error += " provider_priority (pma#1766).\n"
error += "Reference:"
error += " https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#provides"
ret += [error]
return ret
def test_provides(args):
errors = []
for path in glob.iglob(f"{args.aports}/**/APKBUILD", recursive=True):
apkbuild = pmb.parse.apkbuild(path)
pkgname = apkbuild["pkgname"]
version = f"{apkbuild['pkgver']}-r{apkbuild['pkgrel']}"
path_rel = os.path.relpath(path, args.aports)
errors += apkbuild_check_provides(path_rel, apkbuild, version, pkgname)
for subpkg, subpkg_data in apkbuild["subpackages"].items():
if not subpkg_data:
# default packaging function like -doc
continue
errors += apkbuild_check_provides(path_rel, subpkg_data, version,
pkgname, subpkg)
if errors:
for error in errors:
logging.error(error)
raise RuntimeError(f"test_provides failed with {len(errors)} errors")
+152
View File
@@ -0,0 +1,152 @@
#!/usr/bin/env python3
# Copyright 2022 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
# Various checks on source= in the APKBUILDs
import glob
import logging
import os
import pytest
import sys
import add_pmbootstrap_to_import_path
import pmb.parse
import pmb.parse._apkbuild
import pmb.parse.apkindex
import pmb.helpers.repo
def parse_source_from_checksums(args, apkbuild_path):
"""
Read the APKBUILD file and parse source files from the checksums at the
bottom. This has always the same format, even if $source is built with hard
to parse shell code (like in postmarketos-base).
:param apkbuild_path: full path to the APKBUILD
:returns: dict of parsed "source" filenames and checksums, e.g.:
{"first.patch": "b4dc4f3…",
"second.patch": "b4dc4f3…"}
"""
start = 'sha512sums="'
in_block = False
ret = {}
with open(apkbuild_path, encoding="utf-8") as handle:
for line in handle.readlines():
# Find start
if not in_block:
if line.startswith(start):
in_block = True
else:
continue
# sha512sums may have lines without checksums:
# https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/73
if " " not in line:
continue
try:
checksum, filename = line.rstrip().split(" ", 2)
except ValueError:
raise ValueError("Failed to parse checksums. Try to delete the"
" checksums and generate them again with"
f" 'pmbootstrap checksum': {apkbuild_path}")
# Cut off 'sha512sums="' if the first checksum is in that line
if checksum.startswith(start):
checksum = checksum[len(start):]
# Find end
if filename.endswith('"'):
filename = filename[:-1]
ret[filename] = checksum
return ret
def test_aports_unreferenced_files(args):
"""
Raise an error if an unreferenced file is found
"""
for apkbuild_path in glob.iglob(args.aports + "/**/APKBUILD", recursive=True):
# pmbootstrap parser has some issues with complicated APKBUILDs, skip those.
if apkbuild_path.startswith(args.aports + "/cross/"):
continue
apkbuild = pmb.parse.apkbuild(apkbuild_path)
sources_chk = parse_source_from_checksums(args, apkbuild_path)
# Collect files from subpackages
subpackage_installs = []
subpackage_triggers = []
if apkbuild["subpackages"]:
for subpackage in apkbuild["subpackages"].values():
if not subpackage:
continue
subpackage_installs += subpackage.get("install", [])
subpackage_triggers += subpackage.get("triggers", [])
# Collect trigger files
trigger_sources = []
for trigger in apkbuild["triggers"] + subpackage_triggers:
trigger_sources.append(trigger.split("=")[0])
dirname = os.path.dirname(apkbuild_path)
for file in glob.iglob(dirname + "/**", recursive=True):
rel_file_path = os.path.relpath(file, dirname)
# Skip APKBUILDs and directories
if rel_file_path == "APKBUILD" or os.path.isdir(file):
continue
if os.path.basename(rel_file_path) not in sources_chk \
and rel_file_path not in apkbuild["install"] \
and rel_file_path not in subpackage_installs \
and rel_file_path not in trigger_sources:
raise RuntimeError(f"{apkbuild_path}: found unreferenced file: {rel_file_path}")
def test_distfiles_conflict(args):
"""
Make sure that each filename mentioned in any source= of any APKBUILD
always has the same checksum. This is important because apk caches
downloaded source files in a flat distfiles directory. So if two APKBUILDs
both download a file with the same filename but different checksum, and the
user builds both after each other, abuild will fail on the second build
with a checksum error.
"""
source_all = {}
for apkbuild_path in glob.iglob(f"{args.aports}/**/APKBUILD", recursive=True):
source = parse_source_from_checksums(args, apkbuild_path)
dir_path = os.path.dirname(apkbuild_path)
apkbuild_rel = os.path.relpath(apkbuild_path, args.aports)
for filename, checksum in source.items():
# Files bundled with the APKBUILD don't get copied to the distfiles
# cache, so not relevant for this check. Use glob.glob here and not
# iglob, because we don't want an iterator.
if glob.glob(f"{dir_path}/**/{filename}", recursive=True):
continue
# First time seeing this file
if filename not in source_all:
source_all[filename] = {"checksum": checksum,
"apkbuild_rel": apkbuild_rel}
continue
# Saw this file already with same checksum
if checksum == source_all[filename]["checksum"]:
continue
# Saw this file already with different checksum
logging.error("")
logging.error(f"ERROR: the source file '{filename}' has different"
" checksums in the following files:")
logging.error(f"- {source_all[filename]['apkbuild_rel']}:")
logging.error(f" {source_all[filename]['checksum']}")
logging.error(f"- {apkbuild_rel}:")
logging.error(f" {checksum}")
logging.error("")
logging.error("Fix this by setting a different target filename in"
" the package you modified:")
logging.error("https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#source")
logging.error("")
raise RuntimeError(f"Conflict with source file '{filename}'")
-97
View File
@@ -1,97 +0,0 @@
#!/usr/bin/env python3
# Copyright 2021 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import pytest
import sys
import os
import add_pmbootstrap_to_import_path
import pmb.parse
import pmb.parse._apkbuild
import pmb.parse.apkindex
import pmb.helpers.repo
def parse_source_from_checksums(args, apkbuild_path):
"""
Read the APKBUILD file and parse source files from the checksums at the
bottom. This has always the same format, even if $source is built with hard
to parse shell code (like in postmarketos-base).
:param apkbuild_path: full path to the APKBUILD
:returns: list of parsed "source" files, e.g.:
["first.patch", "second.patch"]
"""
start = 'sha512sums="'
in_block = False
ret = []
with open(apkbuild_path, encoding="utf-8") as handle:
for line in handle.readlines():
# Find start
if not in_block:
if line.startswith(start):
in_block = True
else:
continue
# sha512sums may have lines without checksums:
# https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/73
if " " not in line:
continue
try:
_, filename = line.rstrip().split(" ", 2)
except ValueError:
raise ValueError("Failed to parse checksums. Try to delete the"
" checksums and generate them again with"
f" 'pmbootstrap checksum': {apkbuild_path}")
# Find end
if filename.endswith('"'):
ret += [filename[:-1]]
break
ret += [filename]
return ret
def test_aports_unreferenced_files(args):
"""
Raise an error if an unreferenced file is found
"""
for apkbuild_path in glob.iglob(args.aports + "/**/APKBUILD", recursive=True):
apkbuild = pmb.parse.apkbuild(apkbuild_path)
sources_chk = parse_source_from_checksums(args, apkbuild_path)
# Collect install files from subpackages
subpackage_installs = []
if apkbuild["subpackages"]:
for subpackage in apkbuild["subpackages"].values():
if not subpackage:
continue
try:
subpackage_installs += subpackage["install"]
except KeyError:
continue
# Collect trigger files
trigger_sources = []
if apkbuild["triggers"]:
for trigger in apkbuild["triggers"]:
trigger_sources.append(trigger.split("=")[0])
dirname = os.path.dirname(apkbuild_path)
for file in glob.iglob(dirname + "/**", recursive=True):
rel_file_path = os.path.relpath(file, dirname)
# Skip APKBUILDs and directories
if rel_file_path == "APKBUILD" or os.path.isdir(file):
continue
if os.path.basename(rel_file_path) not in sources_chk \
and rel_file_path not in apkbuild["install"] \
and rel_file_path not in subpackage_installs \
and rel_file_path not in trigger_sources:
raise RuntimeError(f"{apkbuild_path}: found unreferenced file: {rel_file_path}")
Executable
+15
View File
@@ -0,0 +1,15 @@
#!/bin/sh -e
# Description: verify devices are documented in the wiki
# Options: native
# Run natively so we don't need to set up a chroot, python3 is the only dep.
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
apk -q add \
python3
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
set -x
.ci/lib/check_devices_in_wiki.py --booting
+4
View File
@@ -0,0 +1,4 @@
{
"Version": "2.6.0",
"SpacesAftertabs": true
}
+2 -2
View File
@@ -7,8 +7,8 @@
# Top-most EditorConfig file.
root = true
[**/APKBUILD]
[{**.{md,ini,sh,rules,nft},**/APKBUILD}]
indent_style = tab
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
insert_final_newline = true
-1
View File
@@ -20,7 +20,6 @@ dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
+44 -41
View File
@@ -3,7 +3,7 @@
# global settings
image: alpine:latest
after_script:
- .ci/move_logs.sh $CI_PROJECT_DIR
- .ci/lib/move_logs.sh $CI_PROJECT_DIR
stages:
- lint
- build
@@ -31,13 +31,12 @@ wiki:
- merge_requests
changes:
- device/*/device-*/*
before_script:
- apk -q add python3
script:
- .ci/check_devices_in_wiki.py --booting
- .ci/lib/gitlab_prepare_ci.sh
- .ci/wiki.sh
# testcases linting
testcases-linting:
flake8:
stage: lint
<<: *only-default
only:
@@ -49,28 +48,35 @@ testcases-linting:
before_script:
- apk -q add py-flake8
script:
- flake8 --ignore E501,F401,E722,W504,W605
- .ci/lib/gitlab_prepare_ci.sh
- .ci/flake8.sh
# shellcheck
shellcheck:
# shellcheck and various grep checks
shellcheck-grep:
stage: lint
<<: *only-default
image: alpine:edge
before_script:
- apk -q add shellcheck
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/shellcheck.sh
- .ci/grep.sh
# aports checks (generic)
aports-static:
editor-config:
stage: lint
<<: *only-default
before_script:
- wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
- sh ./install_pmbootstrap.sh pytest
image: alpine:edge
script:
- su pmos -c ".ci/run_testcases.sh"
- su pmos -c ".ci/check_changed_aports_versions.py"
- .ci/lib/gitlab_prepare_ci.sh
- .ci/ec.sh
# aports checks (generic)
pytest-commits:
stage: lint
<<: *only-default
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/pytest.sh
- .ci/commits.sh
artifacts:
when: on_failure
paths:
@@ -79,26 +85,12 @@ aports-static:
- pmbootstrap.cfg
expire_in: 1 week
distfile-check:
stage: lint
<<: *only-default
before_script:
- apk -q add make findutils
- wget "https://gitlab.com/postmarketOS/ci-common/-/archive/master/ci-common-master.tar.bz2"
- tar -xf ci-common-master.tar.bz2
- mv ci-common-master/distfile-check/*.sh ci-common-master/distfile-check/Makefile .
- rm -r ci-common-master ci-common-master.tar.bz2
script:
- make -j999
# APKBUILD linting
aport-lint:
stage: lint
before_script:
- wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
- sh ./install_pmbootstrap.sh
script:
- su pmos -c ".ci/apkbuild-linting.py"
- .ci/lib/gitlab_prepare_ci.sh
- .ci/apkbuild-lint.sh
only:
- merge_requests
allow_failure: true
@@ -113,11 +105,9 @@ kernel-kconfig:
changes:
- device/*/linux-*/config-*
- main/linux-*/config-*
before_script:
- wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
- sh ./install_pmbootstrap.sh pytest
script:
- su pmos -c "pmbootstrap kconfig check"
- .ci/lib/gitlab_prepare_ci.sh
- .ci/kconfig.sh
# MR settings
# (Checks for "Allow commits from members who can merge to the target branch")
@@ -136,10 +126,8 @@ mr-settings:
stage: build
<<: *only-default
before_script:
- wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
- sh ./install_pmbootstrap.sh
script:
- .ci/build.sh
- .ci/lib/gitlab_prepare_ci.sh
after_script:
- cp -r /home/pmos/.local/var/pmbootstrap/packages/ packages/ || true
artifacts:
expire_in: 1 week
@@ -149,15 +137,30 @@ mr-settings:
build-x86_64:
extends: .build
script:
- .ci/build-x86_64.sh
build-x86:
extends: .build
script:
- .ci/build-x86.sh
build-aarch64:
extends: .build
script:
- .ci/build-aarch64.sh
build-armv7:
extends: .build
script:
- .ci/build-armv7.sh
build-armhf:
extends: .build
script:
- .ci/build-armhf.sh
build-riscv64:
extends: .build
script:
- .ci/build-riscv64.sh
+80 -18
View File
@@ -1,21 +1,83 @@
# https://docs.gitlab.com/ee/user/project/code_owners.html
device/*/*-htc-golfu/ @Newbyte
device/*/*-pine64-pinephone/ @craftyguy @milesalan @bshah @proycon @anjandev @StacyHarper
device/*/*-htc-m8qlul/ @Newbyte
device/*/*-purism-librem5/ @craftyguy @bshah
device/*/device-lg-judyln/ @Newbyte
device/*/device-samsung-m0/ @Newbyte
device/*/linux-postmarketos-exynos4/ @Newbyte
device/*/linux-postmarketos-msm8939/ @Newbyte
device/*/linux-postmarketos-stericsson/ @Newbyte
device/community/*-qcom-sdm845 @calebccff @joelselvaraj
device/community/*-xiaomi-berrylium @joelselvaraj
device/community/device-oneplus-enchilada @calebccff
device/community/device-oneplus-fajita @calebccff
main/osk-sdl/ @craftyguy
main/postmarketos-ui-plasma-mobile/ @bshah
main/ttyescape @calebccff
temp/u-boot-librem5/ @craftyguy @bshah
device/*/*-htc-golfu/ @Newbyte
device/*/*-pine64-pinephone/ @craftyguy @milesalan @bshah @proycon @anjandev @StacyHarper
device/*/*-htc-m8qlul/ @Newbyte
device/*/*-purism-librem5/ @craftyguy @bshah
device/*/device-lg-judyln/ @Newbyte
device/*/device-samsung-m0/ @Newbyte
device/*/linux-postmarketos-exynos4/ @Newbyte
device/*/linux-postmarketos-msm8939/ @Newbyte
device/*/linux-postmarketos-stericsson/ @Newbyte
device/*/*-qcom-sdm845/ @sdm845-mainline
device/*/*-xiaomi-berrylium/ @joelselvaraj
device/*/device-oneplus-enchilada/ @calebccff
device/*/device-oneplus-fajita/ @calebccff
device/*/firmware-oneplus-sdm845/ @calebccff
device/*/device-shift-axolotl/ @amartinz @calebccff @dylanvanassche
device/*/*-lenovo-a6010/ @jenneron
device/*/*-lenovo-a6000/ @jenneron
device/*/device-microsoft-surface-rt/ @jenneron
device/*/device-google-fennel/ @jenneron
device/*/device-google-veyron-minnie/ @jenneron
device/*/device-google-burnet/ @jenneron
device/*/device-google-elm/ @jenneron
device/*/device-google-nyan-big/ @jenneron
device/*/device-google-peach-pi/ @jenneron
device/*/device-google-veyron-speedy/ @jenneron
device/*/linux-google-veyron/ @jenneron
device/*/u-boot-peach-pi/ @jenneron
device/*/device-google-cozmo/ @jenneron
device/*/u-boot-veyron-speedy/ @jenneron
device/*/device-google-juniper/ @jenneron @binarycraft
device/*/u-boot-peach-pit/ @jenneron
device/*/device-google-damu/ @jenneron
device/*/u-boot-nyan-4gb/ @jenneron
device/*/device-google-kenzo/ @jenneron
device/*/device-google-kodama/ @jenneron
device/*/u-boot-snow/ @jenneron
device/*/device-google-kevin/ @jenneron
device/*/linux-postmarketos-exynos5/ @jenneron @Grimler
device/*/device-google-krane/ @jenneron
device/*/soc-mediatek-mt8183/ @jenneron
device/*/u-boot-veyron-minnie/ @jenneron
device/*/device-google-fennel14/ @jenneron
device/*/linux-google-nyan/ @jenneron
device/*/device-google-willow/ @jenneron
device/*/linux-postmarketos-mediatek-mt8173/ @jenneron
device/*/linux-postmarketos-mediatek-mt8183/ @jenneron @binarycraft
device/*/device-google-nyan-blaze/ @jenneron
device/*/firmware-powervr-gx6250/ @jenneron
device/*/device-google-hana/ @jenneron
device/*/device-google-snow/ @jenneron
device/*/device-google-kappa/ @jenneron
device/*/u-boot-nyan-2gb/ @jenneron
device/*/device-google-veyron-jerry/ @jenneron
device/*/device-google-kakadu/ @jenneron
device/*/firmware-google-veyron-brcm/ @jenneron
device/*/device-google-peach-pit/ @jenneron
device/*/device-lg-judyp/ @jenneron
device/*/device-asus-tf201/ @clamor95
device/*/device-asus-tf300t/ @clamor95
device/*/device-asus-tf300tg/ @clamor95
device/*/device-asus-tf700t/ @clamor95
device/*/device-lg-p895/ @clamor95
device/*/firmware-asus-transformer/ @clamor95 @jenneron
device/*/firmware-lg-x3/ @clamor95
device/*/linux-postmarketos-grate/ @clamor95 @jenneron
device/*/device-samsung-chagallwifi @Grimler
device/*/device-odroid-xu4 @Grimler
device/*/device-samsung-klimtlte @Grimler
device/*/linux-samsung-klimtlte @Grimler
device/*/firmware-odroid-xu4 @Grimler
device/*/linux-samsung-chagallwifi @Grimler
# vim: ts=4 sw=4 et
main/postmarketos-update-depthcharge-kernel/ @jenneron
main/osk-sdl/ @craftyguy
main/postmarketos-ui-plasma-mobile/ @bshah
main/ttyescape @calebccff
temp/u-boot-librem5/ @craftyguy @bshah
temp/alsa-ucm-conf-google-kukui/ @jenneron @binarycraft
temp/alsa-ucm-conf-google-gru/ @jenneron
# vim: ts=8 sw=4 et
+1 -1
View File
@@ -5,4 +5,4 @@ Helpful resources:
* [APKBUILD reference](https://wiki.alpinelinux.org/wiki/APKBUILD_Reference)
* [Alpine Linux aports](https://gitlab.alpinelinux.org/alpine/aports/)
* [Alpine Linux package search](https://pkgs.alpinelinux.org/packages)
* [postmarketOS package search](https://pkgs.postmarketos.org/packages)
* [postmarketOS package search](https://pkgs.postmarketos.org/packages)
+7 -1
View File
@@ -8,8 +8,14 @@ branch_pmaports=master
branch_aports=master
mirrordir_alpine=edge
[v22.06]
[v22.12]
description=Latest release / Recommended for best stability
branch_pmaports=v22.12
branch_aports=3.17-stable
mirrordir_alpine=v3.17
[v22.06]
description=Old release (supported until 2023-01-18)
branch_pmaports=v22.06
branch_aports=3.16-stable
mirrordir_alpine=v3.16
+21 -1
View File
@@ -8,7 +8,7 @@ CTARGET="$(arch_to_hostspec $CTARGET_ARCH)"
pkgname=binutils-aarch64
pkgver=2.39
pkgrel=1
pkgrel=3
pkgdesc="Tools necessary to build programs for aarch64 targets"
url="https://www.gnu.org/software/binutils/"
makedepends_build="bison flex texinfo"
@@ -23,6 +23,7 @@ source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
ld-bfd-mips.patch
0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
binutils-mips-disable-assert.patch
CVE-2022-38533.patch
"
builddir="$srcdir/binutils-$pkgver"
@@ -37,6 +38,10 @@ if [ "$CHOST" != "$CTARGET" ]; then
fi
# secfixes:
# 2.39-r2:
# - CVE-2022-38533
# 2.39-r0:
# - CVE-2022-38126
# 2.35.2-r1:
# - CVE-2021-3487
# 2.32-r0:
@@ -54,6 +59,19 @@ build() {
local _gold_configure="--disable-gold"
local _plugin_configure="--enable-plugins"
case "$CARCH" in
riscv64)
# binutils creates empty textrels here
# https://sourceware.org/bugzilla/show_bug.cgi?id=25694
local no_textrels=""
;;
*)
# set -z text by default
# this is the default for linkers such as ld.lld too
local no_textrels="--enable-textrel-check=error"
;;
esac
if [ "$CHOST" != "$CTARGET" ]; then
_sysroot="$CBUILDROOT"
_cross_configure="--disable-install-libiberty"
@@ -98,6 +116,7 @@ build() {
$_cross_configure \
$_arch_configure \
$_hash_style_configure \
$no_textrels \
--with-pic \
--disable-werror \
--disable-nls \
@@ -146,4 +165,5 @@ f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488
314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch
70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
609cd90d8b334eb309f586b17b9d335a08d3dbb6def7c3eb5c010028fcb681674031e5b9d853aa7a39a50304356a86afc184b85562b3f228f8197f4d29395c8f binutils-mips-disable-assert.patch
631726e557524633ace39c597acbc5ac39bfd25f7b292eee1f0b2a80a503f4ff799f027757d12d5a24b2fa3c07c7e14602d8a86d96e19876d6d0d5d1a02817e7 CVE-2022-38533.patch
"
@@ -0,0 +1,22 @@
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=bfd%2Fcoffcode.h;h=52027981c3f052d98e043cd0c877f0bb5da97c7f;hp=67aaf158ca1829fe63f0065f31a0b1009b227b36;hb=ef186fe54aa6d281a3ff8a9528417e5cc614c797;hpb=80075150727d653c39e9d037e15c6b87dcef08cd
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 67aaf158ca1..52027981c3f 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -4302,10 +4302,13 @@ coff_set_section_contents (bfd * abfd,
rec = (bfd_byte *) location;
recend = rec + count;
- while (rec < recend)
+ while (recend - rec >= 4)
{
+ size_t len = bfd_get_32 (abfd, rec);
+ if (len == 0 || len > (size_t) (recend - rec) / 4)
+ break;
+ rec += len * 4;
++section->lma;
- rec += bfd_get_32 (abfd, rec) * 4;
}
BFD_ASSERT (rec == recend);
+21 -1
View File
@@ -8,7 +8,7 @@ CTARGET="$(arch_to_hostspec $CTARGET_ARCH)"
pkgname=binutils-armhf
pkgver=2.39
pkgrel=1
pkgrel=3
pkgdesc="Tools necessary to build programs for armhf targets"
url="https://www.gnu.org/software/binutils/"
makedepends_build="bison flex texinfo"
@@ -23,6 +23,7 @@ source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
ld-bfd-mips.patch
0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
binutils-mips-disable-assert.patch
CVE-2022-38533.patch
"
builddir="$srcdir/binutils-$pkgver"
@@ -37,6 +38,10 @@ if [ "$CHOST" != "$CTARGET" ]; then
fi
# secfixes:
# 2.39-r2:
# - CVE-2022-38533
# 2.39-r0:
# - CVE-2022-38126
# 2.35.2-r1:
# - CVE-2021-3487
# 2.32-r0:
@@ -54,6 +59,19 @@ build() {
local _gold_configure="--disable-gold"
local _plugin_configure="--enable-plugins"
case "$CARCH" in
riscv64)
# binutils creates empty textrels here
# https://sourceware.org/bugzilla/show_bug.cgi?id=25694
local no_textrels=""
;;
*)
# set -z text by default
# this is the default for linkers such as ld.lld too
local no_textrels="--enable-textrel-check=error"
;;
esac
if [ "$CHOST" != "$CTARGET" ]; then
_sysroot="$CBUILDROOT"
_cross_configure="--disable-install-libiberty"
@@ -98,6 +116,7 @@ build() {
$_cross_configure \
$_arch_configure \
$_hash_style_configure \
$no_textrels \
--with-pic \
--disable-werror \
--disable-nls \
@@ -146,4 +165,5 @@ f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488
314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch
70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
609cd90d8b334eb309f586b17b9d335a08d3dbb6def7c3eb5c010028fcb681674031e5b9d853aa7a39a50304356a86afc184b85562b3f228f8197f4d29395c8f binutils-mips-disable-assert.patch
631726e557524633ace39c597acbc5ac39bfd25f7b292eee1f0b2a80a503f4ff799f027757d12d5a24b2fa3c07c7e14602d8a86d96e19876d6d0d5d1a02817e7 CVE-2022-38533.patch
"
+22
View File
@@ -0,0 +1,22 @@
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=bfd%2Fcoffcode.h;h=52027981c3f052d98e043cd0c877f0bb5da97c7f;hp=67aaf158ca1829fe63f0065f31a0b1009b227b36;hb=ef186fe54aa6d281a3ff8a9528417e5cc614c797;hpb=80075150727d653c39e9d037e15c6b87dcef08cd
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 67aaf158ca1..52027981c3f 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -4302,10 +4302,13 @@ coff_set_section_contents (bfd * abfd,
rec = (bfd_byte *) location;
recend = rec + count;
- while (rec < recend)
+ while (recend - rec >= 4)
{
+ size_t len = bfd_get_32 (abfd, rec);
+ if (len == 0 || len > (size_t) (recend - rec) / 4)
+ break;
+ rec += len * 4;
++section->lma;
- rec += bfd_get_32 (abfd, rec) * 4;
}
BFD_ASSERT (rec == recend);
+21 -1
View File
@@ -8,7 +8,7 @@ CTARGET="$(arch_to_hostspec $CTARGET_ARCH)"
pkgname=binutils-armv7
pkgver=2.39
pkgrel=1
pkgrel=3
pkgdesc="Tools necessary to build programs for armv7 targets"
url="https://www.gnu.org/software/binutils/"
makedepends_build="bison flex texinfo"
@@ -23,6 +23,7 @@ source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
ld-bfd-mips.patch
0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
binutils-mips-disable-assert.patch
CVE-2022-38533.patch
"
builddir="$srcdir/binutils-$pkgver"
@@ -37,6 +38,10 @@ if [ "$CHOST" != "$CTARGET" ]; then
fi
# secfixes:
# 2.39-r2:
# - CVE-2022-38533
# 2.39-r0:
# - CVE-2022-38126
# 2.35.2-r1:
# - CVE-2021-3487
# 2.32-r0:
@@ -54,6 +59,19 @@ build() {
local _gold_configure="--disable-gold"
local _plugin_configure="--enable-plugins"
case "$CARCH" in
riscv64)
# binutils creates empty textrels here
# https://sourceware.org/bugzilla/show_bug.cgi?id=25694
local no_textrels=""
;;
*)
# set -z text by default
# this is the default for linkers such as ld.lld too
local no_textrels="--enable-textrel-check=error"
;;
esac
if [ "$CHOST" != "$CTARGET" ]; then
_sysroot="$CBUILDROOT"
_cross_configure="--disable-install-libiberty"
@@ -98,6 +116,7 @@ build() {
$_cross_configure \
$_arch_configure \
$_hash_style_configure \
$no_textrels \
--with-pic \
--disable-werror \
--disable-nls \
@@ -146,4 +165,5 @@ f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488
314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch
70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
609cd90d8b334eb309f586b17b9d335a08d3dbb6def7c3eb5c010028fcb681674031e5b9d853aa7a39a50304356a86afc184b85562b3f228f8197f4d29395c8f binutils-mips-disable-assert.patch
631726e557524633ace39c597acbc5ac39bfd25f7b292eee1f0b2a80a503f4ff799f027757d12d5a24b2fa3c07c7e14602d8a86d96e19876d6d0d5d1a02817e7 CVE-2022-38533.patch
"
+22
View File
@@ -0,0 +1,22 @@
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=bfd%2Fcoffcode.h;h=52027981c3f052d98e043cd0c877f0bb5da97c7f;hp=67aaf158ca1829fe63f0065f31a0b1009b227b36;hb=ef186fe54aa6d281a3ff8a9528417e5cc614c797;hpb=80075150727d653c39e9d037e15c6b87dcef08cd
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 67aaf158ca1..52027981c3f 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -4302,10 +4302,13 @@ coff_set_section_contents (bfd * abfd,
rec = (bfd_byte *) location;
recend = rec + count;
- while (rec < recend)
+ while (recend - rec >= 4)
{
+ size_t len = bfd_get_32 (abfd, rec);
+ if (len == 0 || len > (size_t) (recend - rec) / 4)
+ break;
+ rec += len * 4;
++section->lma;
- rec += bfd_get_32 (abfd, rec) * 4;
}
BFD_ASSERT (rec == recend);
@@ -0,0 +1,55 @@
From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Tue, 21 Sep 2021 14:53:13 +0000
Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
libraries"
This revert is needed to avoid wrongly tagging objects with the incompatible
IBM long double ABI, which is not supported by musl and will result in
linking errors if used.
This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
---
bfd/elf32-tic6x.c | 3 ---
ld/ldlang.c | 10 ++++------
2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
index 5754f3cb860..3ad1d612749 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ABI_PIC:
case Tag_ABI_PID:
- /* Don't transfer these tags from dynamic objects. */
- if ((ibfd->flags & DYNAMIC) != 0)
- continue;
if (out_attr[i].i > in_attr[i].i)
out_attr[i].i = in_attr[i].i;
break;
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 37b64c89ee1..f13beaef9d9 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -7071,13 +7071,11 @@ lang_check (void)
bfd_printable_name (input_bfd), input_bfd,
bfd_printable_name (link_info.output_bfd));
}
-
- /* If the input bfd has no contents, it shouldn't set the
- private data of the output bfd. */
- else if (!file->flags.just_syms
- && ((input_bfd->flags & DYNAMIC) != 0
- || bfd_count_sections (input_bfd) != 0))
+ else if (bfd_count_sections (input_bfd))
{
+ /* If the input bfd has no contents, it shouldn't set the
+ private data of the output bfd. */
+
bfd_error_handler_type pfn = NULL;
/* If we aren't supposed to warn about mismatched input
--
2.33.0
+169
View File
@@ -0,0 +1,169 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen binutils-riscv64
# Based on: main/binutils
CTARGET_ARCH=riscv64
CTARGET="$(arch_to_hostspec $CTARGET_ARCH)"
pkgname=binutils-riscv64
pkgver=2.39
pkgrel=3
pkgdesc="Tools necessary to build programs for riscv64 targets"
url="https://www.gnu.org/software/binutils/"
makedepends_build="bison flex texinfo"
makedepends_host="zlib-dev"
makedepends="$makedepends_build $makedepends_host"
arch="x86_64"
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
subpackages="binutils-dev binutils-doc"
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
binutils-ld-fix-static-linking.patch
gold-mips.patch
ld-bfd-mips.patch
0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
binutils-mips-disable-assert.patch
CVE-2022-38533.patch
"
builddir="$srcdir/binutils-$pkgver"
if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then
subpackages="$subpackages binutils-gold"
fi
if [ "$CHOST" != "$CTARGET" ]; then
pkgname="binutils-$CTARGET_ARCH"
subpackages=""
sonameprefix="binutils:"
fi
# secfixes:
# 2.39-r2:
# - CVE-2022-38533
# 2.39-r0:
# - CVE-2022-38126
# 2.35.2-r1:
# - CVE-2021-3487
# 2.32-r0:
# - CVE-2018-19931
# - CVE-2018-19932
# - CVE-2018-20002
# - CVE-2018-20712
# 2.28-r1:
# - CVE-2017-7614
build() {
local _sysroot=/
local _cross_configure="--enable-install-libiberty --enable-shared"
local _arch_configure=""
local _gold_configure="--disable-gold"
local _plugin_configure="--enable-plugins"
case "$CARCH" in
riscv64)
# binutils creates empty textrels here
# https://sourceware.org/bugzilla/show_bug.cgi?id=25694
local no_textrels=""
;;
*)
# set -z text by default
# this is the default for linkers such as ld.lld too
local no_textrels="--enable-textrel-check=error"
;;
esac
if [ "$CHOST" != "$CTARGET" ]; then
_sysroot="$CBUILDROOT"
_cross_configure="--disable-install-libiberty"
_plugin_configure="--disable-plugins"
fi
if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then
_gold_configure="--enable-gold"
fi
if [ "$CTARGET_ARCH" = "x86_64" ]; then
_arch_configure="--enable-targets=x86_64-pep"
fi
if [ "$CTARGET_ARCH" = "riscv64" ]; then
_gold_configure="--disable-gold"
fi
case "$CTARGET_ARCH" in
mips*) _hash_style_configure="--enable-default-hash-style=sysv" ;;
*) _hash_style_configure="--enable-default-hash-style=gnu" ;;
esac
./configure \
--build=$CBUILD \
--host=$CHOST \
--target=$CTARGET \
--with-build-sysroot="$CBUILDROOT" \
--with-sysroot=$_sysroot \
--prefix=/usr \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--disable-multilib \
--disable-gprofng \
--enable-ld=default \
$_gold_configure \
--enable-64-bit-bfd \
$_plugin_configure \
--enable-relro \
--enable-deterministic-archives \
--enable-default-execstack=no \
$_cross_configure \
$_arch_configure \
$_hash_style_configure \
$no_textrels \
--with-pic \
--disable-werror \
--disable-nls \
--with-mmap \
--with-system-zlib
make
}
package() {
make install DESTDIR="$pkgdir"
if [ -d "$pkgdir"/usr/lib64 ]; then
mv "$pkgdir"/usr/lib64/* "$pkgdir"/usr/lib/
rmdir "$pkgdir"/usr/lib64
fi
if [ "$CHOST" != "$CTARGET" ]; then
# creating cross tools: remove any files that would conflict
# with the native tools, or other cross tools
rm -r "${pkgdir:?}"/usr/share
rm -f "$pkgdir"/usr/lib/libiberty.a
rm -r "${pkgdir:?}"/usr/lib/bfd-plugins
fi
}
libs() {
pkgdesc="Runtime libraries from binutils - libbfd and libopcodes"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/lib*.so "$subpkgdir"/usr/lib/
}
gold() {
pkgdesc="GNU binutils - gold linker"
if [ -e "$pkgdir"/usr/bin/ld.gold ]; then
mkdir -p "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/ld.gold "$subpkgdir"/usr/bin
fi
mkdir -p "$subpkgdir"/usr/$CTARGET/bin
mv "$pkgdir"/usr/$CTARGET/bin/ld.gold "$subpkgdir"/usr/$CTARGET/bin/ld.gold
}
sha512sums="
68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3 binutils-2.39.tar.xz
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch
314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch
70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
609cd90d8b334eb309f586b17b9d335a08d3dbb6def7c3eb5c010028fcb681674031e5b9d853aa7a39a50304356a86afc184b85562b3f228f8197f4d29395c8f binutils-mips-disable-assert.patch
631726e557524633ace39c597acbc5ac39bfd25f7b292eee1f0b2a80a503f4ff799f027757d12d5a24b2fa3c07c7e14602d8a86d96e19876d6d0d5d1a02817e7 CVE-2022-38533.patch
"
@@ -0,0 +1,22 @@
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=bfd%2Fcoffcode.h;h=52027981c3f052d98e043cd0c877f0bb5da97c7f;hp=67aaf158ca1829fe63f0065f31a0b1009b227b36;hb=ef186fe54aa6d281a3ff8a9528417e5cc614c797;hpb=80075150727d653c39e9d037e15c6b87dcef08cd
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 67aaf158ca1..52027981c3f 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -4302,10 +4302,13 @@ coff_set_section_contents (bfd * abfd,
rec = (bfd_byte *) location;
recend = rec + count;
- while (rec < recend)
+ while (recend - rec >= 4)
{
+ size_t len = bfd_get_32 (abfd, rec);
+ if (len == 0 || len > (size_t) (recend - rec) / 4)
+ break;
+ rec += len * 4;
++section->lma;
- rec += bfd_get_32 (abfd, rec) * 4;
}
BFD_ASSERT (rec == recend);
@@ -0,0 +1,46 @@
This fixes static linking for our hardened toolchain
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
index e8126cb..9532bfb 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
@@ -235,8 +235,8 @@ test "${LARGE_SECTIONS}" = "yes" && LARGE_SECTIONS="
if test "${ENABLE_INITFINI_ARRAY}" = "yes"; then
SORT_INIT_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))"
SORT_FINI_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))"
- CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors"
- DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors"
+ CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .ctors"
+ DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .dtors"
else
SORT_INIT_ARRAY="KEEP (*(SORT(.init_array.*)))"
SORT_FINI_ARRAY="KEEP (*(SORT(.fini_array.*)))"
@@ -270,15 +270,14 @@ CTOR=".ctors ${CONSTRUCTING-0} :
doesn't matter which directory crtbegin.o
is in. */
- KEEP (*crtbegin.o(.ctors))
- KEEP (*crtbegin?.o(.ctors))
+ KEEP (*crtbegin*.o(.ctors))
/* We don't want to include the .ctor section from
the crtend.o file until after the sorted ctors.
The .ctor section from the crtend file contains the
end of ctors marker and it must be last */
- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
${CONSTRUCTING+${CTOR_END}}
@@ -286,9 +285,8 @@ CTOR=".ctors ${CONSTRUCTING-0} :
DTOR=".dtors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+${DTOR_START}}
- KEEP (*crtbegin.o(.dtors))
- KEEP (*crtbegin?.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))
+ KEEP (*crtbegin*.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
${CONSTRUCTING+${DTOR_END}}
@@ -0,0 +1,14 @@
diff -urN binutils-2.35.2.orig/bfd/elfxx-mips.c binutils-2.35.2/bfd/elfxx-mips.c
--- binutils-2.35.2.orig/bfd/elfxx-mips.c 2021-01-30 01:38:03.000000000 -0700
+++ binutils-2.35.2/bfd/elfxx-mips.c 2021-05-13 17:35:34.706913601 -0600
@@ -6744,8 +6744,10 @@
in the relocation. */
if (h != NULL && ! SYMBOL_REFERENCES_LOCAL (info, &h->root))
{
+#if 0
BFD_ASSERT (htab->root.target_os == is_vxworks
|| h->global_got_area != GGA_NONE);
+#endif
indx = h->root.dynindx;
if (SGI_COMPAT (output_bfd))
defined_p = h->root.def_regular;
+39
View File
@@ -0,0 +1,39 @@
# DP: Fix gold on mips64 targets.
gold/
2016-08-09 Aurelien Jarno <aurelien@aurel32.net>
* configure.tgt: Add mips64el*-*-*|mips64le*-*-* and mips64*-*-*.
--- a/gold/configure.tgt
+++ b/gold/configure.tgt
@@ -153,6 +153,13 @@ aarch64*-*)
targ_big_endian=false
targ_extra_big_endian=true
;;
+mips*64*el*-*-*|mips*64*le*-*-*)
+ targ_obj=mips
+ targ_machine=EM_MIPS_RS3_LE
+ targ_size=64
+ targ_big_endian=false
+ targ_extra_big_endian=true
+ ;;
mips*el*-*-*|mips*le*-*-*)
targ_obj=mips
targ_machine=EM_MIPS_RS3_LE
@@ -160,6 +167,13 @@ mips*el*-*-*|mips*le*-*-*)
targ_big_endian=false
targ_extra_big_endian=true
;;
+mips*64*-*-*)
+ targ_obj=mips
+ targ_machine=EM_MIPS
+ targ_size=64
+ targ_big_endian=true
+ targ_extra_big_endian=false
+ ;;
mips*-*-*)
targ_obj=mips
targ_machine=EM_MIPS
+19
View File
@@ -0,0 +1,19 @@
--- ./ld/configure.tgt.orig
+++ ./ld/configure.tgt
@@ -541,12 +541,12 @@
;;
mips*-*-windiss) targ_emul=elf32mipswindiss
;;
-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
+mips64*el-*-linux-*) targ_emul=elf64ltsmip
+ targ_extra_emuls="elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
targ_extra_libpath=$targ_extra_emuls
;;
-mips64*-*-linux-*) targ_emul=elf32btsmipn32
- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
+mips64*-*-linux-*) targ_emul=elf64btsmip
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
targ_extra_libpath=$targ_extra_emuls
;;
mips*el-*-linux-*) targ_emul=elf32ltsmip
+2 -2
View File
@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-aarch64
pkgver=1.35.0
pkgrel=24
pkgrel=30
_arch="aarch64"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
c8a27c516cd9651250f520c3c0fd582fa8a1144c5e971d81c6054b2b37639390f62d40d95181b081deeba2654b7c23606fa62751d1fcb75b0616b9fd19daf0d8 busybox-static-1.35.0-r24-aarch64-edge.apk
d34c0d16d77bd18548e4b2764ab4bde59611480aaaab5a47f585158a91fad413ccfb7954d5ebcf4aa6e04fdda4621832f46e8b13e313ce1fd7b4b96b3298d425 busybox-static-1.35.0-r30-aarch64-edge.apk
"
+2 -2
View File
@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-armhf
pkgver=1.35.0
pkgrel=24
pkgrel=30
_arch="armhf"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
cd9f427ee34c435d23d105a34018ed509ff434c5f3aeed1c1c4233d5191150c6a8f39ae1399bd93f0f4300ed93334ed0114fdd48503c122bd4d57ecded099783 busybox-static-1.35.0-r24-armhf-edge.apk
805bcf5416d70db8a68a90e85dbf9728213f4e996862ce9d4af3eea35ac25bc1bf6ecddb7dc18d2881dfda59ecfbc64bfbaf148022209f26eb034a10e65494aa busybox-static-1.35.0-r30-armhf-edge.apk
"
+2 -2
View File
@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-armv7
pkgver=1.35.0
pkgrel=24
pkgrel=30
_arch="armv7"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
45bf57f2d3815d52ea702f99b08d947978f85148c4b6800f7ebf57885697118070c2f872c56fe215ccc5a20c02527e605c020e068a91d1c93d7e77a79d026bb0 busybox-static-1.35.0-r24-armv7-edge.apk
1beffa9f0b7a93d72b793c3ebac99a6243ca1a385064388fe6189753210775ff65bd4be30a540b5e0fa85ea795b7e3ad42cf4f9446c52ca1db285eea59a84c1a busybox-static-1.35.0-r30-armv7-edge.apk
"
@@ -1,26 +0,0 @@
From 7feb681596c4cfa34c769505058aa5bdf31c5131 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Sun, 30 Aug 2020 17:59:45 +0200
Subject: [PATCH] gcc-go: Fix handling of signal 34 on musl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Taken from Adélie Linux.
---
libgo/mksigtab.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh
index bea8739957e..3876002efab 100644
--- a/libgo/mksigtab.sh
+++ b/libgo/mksigtab.sh
@@ -86,7 +86,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
-checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
@@ -1,24 +0,0 @@
From b6885cf73989161b1b6893b5ae0dafed006d5f13 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 25 Nov 2021 01:47:03 +0000
Subject: [PATCH] There are more than one st_{a,m,c}tim fields in struct stat
on time64 machines.
Run the Go-isation on all of them.
---
libgo/mksysinfo.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
index 0c52ea5d71a..6fef104cc1c 100755
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -510,7 +510,7 @@ fi
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
# stat_t's time fields on NetBSD.
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
if test "${GOOS}" = "netbsd"; then
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
fi
@@ -1,24 +0,0 @@
From c7a22e42ae403154a0c0158495b04b0205102041 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 30 Aug 2020 19:27:51 +0200
Subject: [PATCH] gcc-go: undef SETCONTEXT_CLOBBERS_TLS in proc.c
---
libgo/runtime/proc.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
index 3a30748d329..a987678fa84 100644
--- a/libgo/runtime/proc.c
+++ b/libgo/runtime/proc.c
@@ -66,6 +66,10 @@ static void gscanstack(G*);
__thread G *g __asm__(GOSYM_PREFIX "runtime.g");
+/* libucontext does not seem to support tlsbase, undef the macro
+ * here to make sure we define initcontext and fixcontext as dummies. */
+#undef SETCONTEXT_CLOBBERS_TLS
+
#ifndef SETCONTEXT_CLOBBERS_TLS
static inline void
@@ -1,22 +1,101 @@
From ef9df74e0c1059e51bb76b1f6d9d4746949d4d34 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Mon, 31 Aug 2020 08:59:40 +0200
Subject: [PATCH] gcc-go: link to libucontext
From ecc2a2e70e44fa76a75b12d0893bc1702b72a1b4 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Mon, 19 Dec 2022 10:37:06 -0800
Subject: [PATCH] libgo: check for makecontext in -lucontext
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Patch from Sören Tempel.
Change-Id: I74b4052cc7aca19224afd6d9a2739c3fae46b722
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/458396
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
libgo/configure | 57 ++++++++++++++++++++++++++++++++++++++++++++++
libgo/configure.ac | 3 +++
2 files changed, 60 insertions(+)
diff --git a/Makefile.in b/Makefile.in
index b96f60e33e2..b564ddbf792 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -52802,7 +52802,7 @@ configure-target-libgo:
esac; \
module_srcdir=libgo; \
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} \
diff --git a/libgo/configure b/libgo/configure
index 460fdad7..a607dbff 100755
--- a/libgo/configure
+++ b/libgo/configure
@@ -14818,6 +14818,63 @@ fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing makecontext" >&5
+$as_echo_n "checking for library containing makecontext... " >&6; }
+if ${ac_cv_search_makecontext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char makecontext ();
+int
+main ()
+{
+return makecontext ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' ucontext; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_makecontext=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_makecontext+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_makecontext+:} false; then :
+
+else
+ ac_cv_search_makecontext=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_makecontext" >&5
+$as_echo "$ac_cv_search_makecontext" >&6; }
+ac_res=$ac_cv_search_makecontext
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sched_yield" >&5
$as_echo_n "checking for library containing sched_yield... " >&6; }
if ${ac_cv_search_sched_yield+:} false; then :
diff --git a/libgo/configure.ac b/libgo/configure.ac
index 09554a37..a59aa091 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -570,6 +570,9 @@ PTHREAD_LIBS=
AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS=-lpthread)
AC_SUBST(PTHREAD_LIBS)
+dnl Test if -lucontext is required for makecontext.
+AC_SEARCH_LIBS([makecontext], [ucontext])
+
dnl Test if -lrt is required for sched_yield or nanosleep or clock_gettime.
AC_SEARCH_LIBS([sched_yield], [rt])
AC_SEARCH_LIBS([nanosleep], [rt])
@@ -1,45 +1,204 @@
From 5093aa99f9cdded2e1ddf67b7139da6fac36b0a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 19 Apr 2021 07:21:41 +0200
Subject: [PATCH] Use generic errstr.go implementation on musl
From b3840bdcc0eee2a4d099a9af52199944ade7acb9 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Tue, 29 Nov 2022 17:28:44 -0800
Subject: [PATCH] syscall, runtime: always call XSI strerror_r
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
glibc provides two version of strerror_r() depending on a feature test
macro. The first is the XSI-compliant version which returns an int, the
second is GNU-specific and returns a char pointer.
This does the right thing for either glibc or musl on GNU/Linux.
Similarity, gcc's libgo provides two implementations of Errstr() both of
which use strerror_r(). On Linux, it is assumed that the GNU-specific
strerror_r version is used. However, musl only provides the
XSI-compliant version of strerror_r. This patch enables the generic
Errstr() implementation which also uses the XSI-compliant version of
strerror_r.
Based on patch by Sören Tempel.
Change-Id: If2969e131f0fae456d58b35d839d8abe191fcc59
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/454176
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Bypass: Ian Lance Taylor <iant@google.com>
---
libgo/go/syscall/errstr.go | 1 -
libgo/go/syscall/errstr_glibc.go | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
libgo/Makefile.am | 1 +
libgo/Makefile.in | 6 +++++-
libgo/go/syscall/errstr.go | 22 ++++++++-----------
libgo/go/syscall/errstr_glibc.go | 33 ----------------------------
libgo/runtime/go-strerror.c | 37 ++++++++++++++++++++++++++++++++
5 files changed, 52 insertions(+), 47 deletions(-)
delete mode 100644 libgo/go/syscall/errstr_glibc.go
create mode 100644 libgo/runtime/go-strerror.c
diff --git a/libgo/Makefile.am b/libgo/Makefile.am
index e0a1eec5..df568743 100644
--- a/libgo/Makefile.am
+++ b/libgo/Makefile.am
@@ -465,6 +465,7 @@ runtime_files = \
runtime/go-nanotime.c \
runtime/go-now.c \
runtime/go-nosys.c \
+ runtime/go-strerror.c \
runtime/go-reflect-call.c \
runtime/go-setenv.c \
runtime/go-signal.c \
diff --git a/libgo/Makefile.in b/libgo/Makefile.in
index 7bef5df9..f2f3f0fc 100644
--- a/libgo/Makefile.in
+++ b/libgo/Makefile.in
@@ -247,7 +247,7 @@ am__objects_4 = runtime/aeshash.lo runtime/go-assert.lo \
runtime/go-fieldtrack.lo runtime/go-matherr.lo \
runtime/go-memclr.lo runtime/go-memmove.lo \
runtime/go-memequal.lo runtime/go-nanotime.lo \
- runtime/go-now.lo runtime/go-nosys.lo \
+ runtime/go-now.lo runtime/go-nosys.lo runtime/go-strerror.lo \
runtime/go-reflect-call.lo runtime/go-setenv.lo \
runtime/go-signal.lo runtime/go-unsafe-pointer.lo \
runtime/go-unsetenv.lo runtime/go-unwind.lo \
@@ -917,6 +917,7 @@ runtime_files = \
runtime/go-nanotime.c \
runtime/go-now.c \
runtime/go-nosys.c \
+ runtime/go-strerror.c \
runtime/go-reflect-call.c \
runtime/go-setenv.c \
runtime/go-signal.c \
@@ -1390,6 +1391,8 @@ runtime/go-now.lo: runtime/$(am__dirstamp) \
runtime/$(DEPDIR)/$(am__dirstamp)
runtime/go-nosys.lo: runtime/$(am__dirstamp) \
runtime/$(DEPDIR)/$(am__dirstamp)
+runtime/go-strerror.lo: runtime/$(am__dirstamp) \
+ runtime/$(DEPDIR)/$(am__dirstamp)
runtime/go-reflect-call.lo: runtime/$(am__dirstamp) \
runtime/$(DEPDIR)/$(am__dirstamp)
runtime/go-setenv.lo: runtime/$(am__dirstamp) \
@@ -1457,6 +1460,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-reflect-call.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-setenv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-signal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-strerror.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-unsafe-pointer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-unsetenv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-unwind.Plo@am__quote@
diff --git a/libgo/go/syscall/errstr.go b/libgo/go/syscall/errstr.go
index 6c2441d364d..8f7c5538163 100644
index 6c2441d3..9f688e2a 100644
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -4,23 +4,19 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build !hurd
-// +build !hurd
-// +build !linux
-
package syscall
-//sysnb strerror_r(errnum int, buf []byte) (err Errno)
-//strerror_r(errnum _C_int, buf *byte, buflen Size_t) _C_int
+import "internal/bytealg"
+
+//extern go_strerror
+func go_strerror(_C_int, *byte, Size_t) _C_int
func Errstr(errnum int) string {
- for len := 128; ; len *= 2 {
- b := make([]byte, len)
- errno := strerror_r(errnum, b)
+ for size := 128; ; size *= 2 {
+ b := make([]byte, size)
+ errno := go_strerror(_C_int(errnum), &b[0], Size_t(len(b)))
if errno == 0 {
- i := 0
- for b[i] != 0 {
- i++
- }
+ i := bytealg.IndexByte(b, 0)
// Lowercase first letter: Bad -> bad, but
// STREAM -> STREAM.
if i > 1 && 'A' <= b[0] && b[0] <= 'Z' && 'a' <= b[1] && b[1] <= 'z' {
@@ -29,7 +25,7 @@ func Errstr(errnum int) string {
return string(b[:i])
}
if errno != ERANGE {
- return "errstr failure"
+ return "strerror_r failure"
}
}
}
diff --git a/libgo/go/syscall/errstr_glibc.go b/libgo/go/syscall/errstr_glibc.go
index 5b19e6f202d..8dc60172186 100644
deleted file mode 100644
index 5b19e6f2..00000000
--- a/libgo/go/syscall/errstr_glibc.go
+++ b/libgo/go/syscall/errstr_glibc.go
@@ -7,7 +7,7 @@
// We use this rather than errstr.go because on GNU/Linux sterror_r
// returns a pointer to the error message, and may not use buf at all.
+++ /dev/null
@@ -1,33 +0,0 @@
-// errstr_glibc.go -- GNU/Linux and GNU/Hurd specific error strings.
-
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// We use this rather than errstr.go because on GNU/Linux sterror_r
-// returns a pointer to the error message, and may not use buf at all.
-
-// +build hurd linux
+// +build hurd !linux
package syscall
-
-package syscall
-
-import "unsafe"
-
-//sysnb strerror_r(errnum int, b []byte) (errstr *byte)
-//strerror_r(errnum _C_int, b *byte, len Size_t) *byte
-
-func Errstr(errnum int) string {
- a := make([]byte, 128)
- p := strerror_r(errnum, a)
- b := (*[1000]byte)(unsafe.Pointer(p))
- i := 0
- for b[i] != 0 {
- i++
- }
- // Lowercase first letter: Bad -> bad, but STREAM -> STREAM.
- if i > 1 && 'A' <= b[0] && b[0] <= 'Z' && 'a' <= b[1] && b[1] <= 'z' {
- c := b[0] + 'a' - 'A'
- return string(c) + string(b[1:i])
- }
- return string(b[:i])
-}
diff --git a/libgo/runtime/go-strerror.c b/libgo/runtime/go-strerror.c
new file mode 100644
index 00000000..13d1d91d
--- /dev/null
+++ b/libgo/runtime/go-strerror.c
@@ -0,0 +1,37 @@
+/* go-strerror.c -- wrapper around XSI-compliant strerror_r.
+
+ Copyright 2022 The Go Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style
+ license that can be found in the LICENSE file. */
+
+/* There are two version of strerror_r on GNU/Linux: a GNU-specific
+ and an XSI-compliant version. The former version is only available
+ on glibc. Since glibc 2.13, the XSI-compliant version is also
+ provided by glibc if _GNU_SOURCE is not defined. Since the
+ entirety of gofrontend is compiled with _GNU_SOURCE, this file
+ exists to selectively undefine it and provides an alias to the
+ XSI-compliant version of strerror_r(3). */
+
+#ifdef __linux__
+
+/* Force selection of XSI-compliant strerror_r by glibc. */
+#undef XOPEN_SOURCE
+#define XOPEN_SOURCE 600
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 200112L
+#undef _GNU_SOURCE
+
+#endif /* __linux__ */
+
+#include <string.h>
+
+#ifndef HAVE_STRERROR_R
+// Provided by go-nosys.c if not provided by libc itself.
+extern int strerror_r (int, char *, size_t);
+#endif
+
+int
+go_strerror (int errnum, char *buf, size_t buflen)
+{
+ return strerror_r (errnum, buf, buflen);
+}
@@ -1,81 +1,199 @@
From 4655244d80aa67904a88d620361f2d37ea4c8576 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 28 Nov 2021 00:54:37 +0100
Subject: [PATCH] libgo: Recognize off64_t and loff_t definitions of musl libc
From 3b9243b891cc06373639a23ed5717b0d1c2d8ea6 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Tue, 14 Jun 2022 06:13:43 -0700
Subject: [PATCH] libgo: permit loff_t and off_t to be macros
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Without this patch, both off64_t and loff_t are not recognized by
-fdump-go-spec which causes a variety Go-related compilation errors on
musl libc since the gcc-go frontend expects both off64_t and loff_t to
be present.
They are macros in musl libc, rather than typedefs, and -fgo-dump-spec
doesn't handle that case.
Also make sure that autoconf recognizes support for loff_t on musl, by
compiling the relevant feature test code with -D_GNU_SOURCE and making
it include fcntl.h which defines loff_t on musl.
Based on patch by Sören Tempel.
Change-Id: Ic9a608fd964a6f78e754aa8e3100aff06ab3dade
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/412075
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
libgo: #include <sys/types.h> when checking for loff_t
Fixes https://gcc.gnu.org/PR106033
Fixes golang/go#53469
Change-Id: I060021b7bb9334949b567442448abb6822fd6d35
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/413214
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
libgo/configure | 4 +++-
libgo/configure.ac | 4 +++-
libgo/sysinfo.c | 21 +++++++++++++++++++++
3 files changed, 27 insertions(+), 2 deletions(-)
libgo/config.h.in | 3 +++
libgo/configure | 12 ++++++++++--
libgo/configure.ac | 11 +++++++++--
libgo/go/syscall/libcall_linux.go | 17 +++++++++--------
libgo/mksysinfo.sh | 6 +-----
libgo/sysinfo.c | 15 ++++++++++++++-
6 files changed, 46 insertions(+), 18 deletions(-)
diff --git a/libgo/config.h.in b/libgo/config.h.in
index 25b8ab8f9ee..2c3c7469675 100644
--- a/libgo/config.h.in
+++ b/libgo/config.h.in
@@ -70,6 +70,9 @@
/* Define to 1 if you have the `fchownat' function. */
#undef HAVE_FCHOWNAT
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
/* Define to 1 if you have the `futimesat' function. */
#undef HAVE_FUTIMESAT
diff --git a/libgo/configure b/libgo/configure
index ffe17c9be55..c2dbecef98c 100755
index ffe17c9be55..61a49947eb9 100755
--- a/libgo/configure
+++ b/libgo/configure
@@ -15546,7 +15546,9 @@ _ACEOF
@@ -15249,7 +15249,7 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
fi
-for ac_header in port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
+for ac_header in fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -15546,7 +15546,14 @@ _ACEOF
fi
-ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "$ac_includes_default"
+CFLAGS_hold=$CFLAGS
+CFLAGS="$CFLAGS -D_GNU_SOURCE"
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "#include <fcntl.h>"
+
+CFLAGS_hold="$CFLAGS"
+CFLAGS="$OSCFLAGS $CFLAGS"
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "
+#include <sys/types.h>
+#include <fcntl.h>
+
+"
if test "x$ac_cv_type_loff_t" = xyes; then :
cat >>confdefs.h <<_ACEOF
@@ -15556,6 +15563,7 @@ _ACEOF
fi
+CFLAGS="$CFLAGS_hold"
LIBS_hold="$LIBS"
LIBS="$LIBS -lm"
diff --git a/libgo/configure.ac b/libgo/configure.ac
index 7e2b98ba67c..667feae3c03 100644
index 7e2b98ba67c..274fcfc35c7 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -601,7 +601,9 @@ AC_STRUCT_DIRENT_D_TYPE
@@ -579,7 +579,7 @@ AC_C_BIGENDIAN
GCC_CHECK_UNWIND_GETIPINFO
-AC_CHECK_HEADERS(port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
+AC_CHECK_HEADERS(fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
AC_CHECK_HEADERS([netinet/icmp6.h], [], [],
[#include <netinet/in.h>
@@ -601,7 +601,14 @@ AC_STRUCT_DIRENT_D_TYPE
AC_CHECK_FUNCS(accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat open64 openat pipe2 removexattr renameat setxattr sync_file_range splice syscall tee unlinkat unshare utimensat)
AC_TYPE_OFF_T
-AC_CHECK_TYPES([loff_t])
+CFLAGS_hold=$CFLAGS
+CFLAGS="$CFLAGS -D_GNU_SOURCE" # musl does not define loff_t without this
+AC_CHECK_TYPES([loff_t], [], [], [[#include <fcntl.h>]])
+
+CFLAGS_hold="$CFLAGS"
+CFLAGS="$OSCFLAGS $CFLAGS"
+AC_CHECK_TYPES([loff_t], [], [], [[
+#include <sys/types.h>
+#include <fcntl.h>
+]])
+CFLAGS="$CFLAGS_hold"
LIBS_hold="$LIBS"
LIBS="$LIBS -lm"
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
index 96974bd3269..65eb1a745f7 100644
--- a/libgo/go/syscall/libcall_linux.go
+++ b/libgo/go/syscall/libcall_linux.go
@@ -209,19 +209,20 @@ func Gettid() (tid int) {
//sys Setxattr(path string, attr string, data []byte, flags int) (err error)
//setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int
-//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
-//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
+//sys splice(rfd int, roff *_libgo_loff_t_type, wfd int, woff *_libgo_loff_t_type, len int, flags int) (n int64, err error)
+//splice(rfd _C_int, roff *_libgo_loff_t_type, wfd _C_int, woff *_libgo_loff_t_type, len Size_t, flags _C_uint) Ssize_t
+
func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
- var lroff _loff_t
- var plroff *_loff_t
+ var lroff _libgo_loff_t_type
+ var plroff *_libgo_loff_t_type
if roff != nil {
- lroff = _loff_t(*roff)
+ lroff = _libgo_loff_t_type(*roff)
plroff = &lroff
}
- var lwoff _loff_t
- var plwoff *_loff_t
+ var lwoff _libgo_loff_t_type
+ var plwoff *_libgo_loff_t_type
if woff != nil {
- lwoff = _loff_t(*woff)
+ lwoff = _libgo_loff_t_type(*woff)
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
index 0c52ea5d71a..5aa309155c3 100755
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -403,11 +403,7 @@ fi
# Some basic types.
echo 'type Size_t _size_t' >> ${OUT}
echo "type Ssize_t _ssize_t" >> ${OUT}
-if grep '^const _HAVE_OFF64_T = ' gen-sysinfo.go > /dev/null 2>&1; then
- echo "type Offset_t _off64_t" >> ${OUT}
-else
- echo "type Offset_t _off_t" >> ${OUT}
-fi
+echo "type Offset_t _libgo_off_t_type" >> ${OUT}
echo "type Mode_t _mode_t" >> ${OUT}
echo "type Pid_t _pid_t" >> ${OUT}
echo "type Uid_t _uid_t" >> ${OUT}
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
index 8ce061e2f5f..b85add15a7b 100644
index 336a5983750..fc0210992fa 100644
--- a/libgo/sysinfo.c
+++ b/libgo/sysinfo.c
@@ -343,6 +343,27 @@ enum {
#endif
@@ -354,6 +354,18 @@ enum {
};
#endif
+// musl libc has both off64_t and loff_t. However, both of these types
+// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
+// -fdump-go-spec option, which is responsible for generating type
+// definitions for Go based on this file, only recognizes types defined
+// through typedefs.
+//
+// For this reason, we check here if either off64_t or loff_t are
+// defined as CPP macros and if so, we redefine them using a C typedef.
+#if defined(HAVE_OFF64_T) && defined(off64_t)
+typedef off64_t __musl_off64_t;
+#undef off64_t
+typedef __musl_off64_t off64_t;
+#if defined(HAVE_LOFF_T)
+// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
+// see a typedef.
+typedef loff_t libgo_loff_t_type;
+#endif
+
+// See comment regarding musl libc above.
+#if defined(HAVE_LOFF_T) && defined(loff_t)
+typedef loff_t __musl_loff_t;
+#undef loff_t
+typedef __musl_loff_t loff_t;
+#if defined(HAVE_OFF64_T)
+typedef off64_t libgo_off_t_type;
+#else
+typedef off_t libgo_off_t_type;
+#endif
+
// SIOCGIFMTU can't be added in the above enum as it might
// be signed in some OSes.
#ifdef SIOCGIFMTU
// The following section introduces explicit references to types and
// constants of interest to support bootstrapping libgo using a
// compiler that doesn't support -fdump-go-spec (e.g., clang), via
@@ -534,7 +546,8 @@ SREF(timex);
// From sys/types.h
TREF(pid_t);
TREF(off_t);
-TREF(loff_t);
+TREF(libgo_loff_t_type);
+TREF(libgo_off_t_type);
TREF(size_t);
TREF(ssize_t);
TREF(mode_t);
@@ -1,43 +1,26 @@
From 76c13560bba3534bff335e5bb571a8b95d50d4ba Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Sun, 30 Aug 2020 18:33:49 +0200
Subject: [PATCH] gcc-go: Use int64 type as offset argument for mmap
From 5e658f4659c551330ea68f5667e4f951b218f32d Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Wed, 26 Oct 2022 17:23:42 -0700
Subject: [PATCH] runtime: use _libgo_off_t_type when calling C mmap
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Without this patch, Go run-time memory allocation fails on 32-bit architectures:
The last argument to the C mmap function is type off_t, not uintptr.
On some 32-bit systems, off_t is larger than uintptr.
fatal error: runtime: cannot allocate memory
runtime stack:
runtime.dopanic__m
:0
runtime.throw
:0
:0
:0
runtime.systemstack
:0
runtime.addrRanges.init
:0
runtime.pageAlloc.init
:0
runtime.mheap.init
:0
runtime.schedinit
:0
:0
:0
Based on patch by Sören Tempel.
Taken from Adélie Linux [1].
[1]: https://git.adelielinux.org/adelie/packages/-/commit/63b5fb12c3d75e460799c672bbbdd5d29c3cc33c
Change-Id: Ib6f9d5bcd4734f99a72889e2282b97ec3c8fbd34
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/445735
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
libgo/go/runtime/mem_gccgo.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
libgo/go/runtime/mem_gccgo.go | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libgo/go/runtime/mem_gccgo.go b/libgo/go/runtime/mem_gccgo.go
index fa3389d857e..57bed97c710 100644
index fa3389d8..1e84f4f5 100644
--- a/libgo/go/runtime/mem_gccgo.go
+++ b/libgo/go/runtime/mem_gccgo.go
@@ -15,7 +15,7 @@ import (
@@ -45,16 +28,32 @@ index fa3389d857e..57bed97c710 100644
//extern mmap
-func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) unsafe.Pointer
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) unsafe.Pointer
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off _libgo_off_t_type) unsafe.Pointer
//extern munmap
func munmap(addr unsafe.Pointer, length uintptr) int32
@@ -37,7 +37,7 @@ func init() {
}
@@ -38,7 +38,7 @@ func init() {
}
-func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
+func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) (unsafe.Pointer, int) {
p := sysMmap(addr, n, prot, flags, fd, off)
func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
- p := sysMmap(addr, n, prot, flags, fd, off)
+ p := sysMmap(addr, n, prot, flags, fd, _libgo_off_t_type(off))
if uintptr(p) == _MAP_FAILED {
return nil, errno()
}
@@ -47,6 +47,7 @@ func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (u
// Don't split the stack as this method may be invoked without a valid G, which
// prevents us from allocating more stack.
+//
//go:nosplit
func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer {
p, err := mmap(nil, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_PRIVATE, mmapFD, 0)
@@ -165,6 +166,7 @@ func sysHugePage(v unsafe.Pointer, n uintptr) {
// Don't split the stack as this function may be invoked without a valid G,
// which prevents us from allocating more stack.
+//
//go:nosplit
func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) {
sysStat.add(-int64(n))
@@ -1,55 +0,0 @@
From cf41d579088e1c0b5c33c93657ad041e797b5905 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
Date: Sun, 2 Jan 2022 01:07:03 +0100
Subject: [PATCH] libgo: include asm/ptrace.h for pt_regs definition on PowerPC
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Both glibc and musl libc declare pt_regs as an incomplete type. This
type has to be completed by inclusion of another header. On Linux, the
asm/ptrace.h header file provides this type definition. Without
including this header file, it is not possible to access the regs member
of the mcontext_t struct as done in libgo/runtime/go-signal.c. On glibc,
other headers (e.g. sys/user.h) include asm/ptrace.h but on musl
asm/ptrace.h is not included by other headers and thus the
aforementioned files do not compile without an explicit include of
asm/ptrace.h:
libgo/runtime/go-signal.c: In function 'getSiginfo':
libgo/runtime/go-signal.c:227:63: error: invalid use of undefined type 'struct pt_regs'
227 | ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
|
Instead of including the asm/ptrace.h header conditionally on PowerPC
only it would alternatively also be possible to include it
unconditionally.
See also:
* https://git.musl-libc.org/cgit/musl/commit/?id=c2518a8efb6507f1b41c3b12e03b06f8f2317a1f
* https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d57cb31910ca5c200e4172276749a7f8bd17ae3c
* https://github.com/kaniini/libucontext/issues/36
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
---
libgo/runtime/go-signal.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
index 528d9b6d9fe..c67503f0a79 100644
--- a/libgo/runtime/go-signal.c
+++ b/libgo/runtime/go-signal.c
@@ -10,6 +10,12 @@
#include <sys/time.h>
#include <ucontext.h>
+// On PowerPC, ucontext.h uses a pt_regs struct as an incomplete
+// type. This type must be completed by including asm/ptrace.h.
+#ifdef __PPC__
+#include <asm/ptrace.h>
+#endif
+
#include "runtime.h"
#ifndef SA_RESTART
@@ -1,30 +1,71 @@
From fbc8240ac15225ede8416a27c9978559b85d6877 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Mon, 21 Feb 2022 10:04:47 +0000
Subject: [PATCH] go/gospec: forcibly disable -fsplit-stack support
From c86b726c048eddc1be320c0bf64a897658bee13d Mon Sep 17 00:00:00 2001
From: Uros Bizjak <ubizjak@gmail.com>
Date: Wed, 18 May 2022 20:03:26 +0200
Subject: [PATCH] x86: Fix -fsplit-stack feature detection via
TARGET_CAN_SPLIT_STACK
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
for some reason, TARGET_CAN_SPLIT_STACK still gets defined on 32-bit x86,
so hackfix it for now
Since commit c163647ffbc9a20c8feb6e079dbecccfe016c82e -fsplit-stack
is only supported on glibc targets. However, this original commit
required some fixups. As part of the fixup, the changes to the
gnu-user-common.h and gnu.h were partially reverted in commit
60953a23d57b13a672f751bec0c6eefc059eb1ab thus causing TARGET_CAN_SPLIT_STACK
to be defined for non-glibc targets even though -fsplit-stack is
actually not supported and attempting to use it causes a runtime error.
This causes gcc internal code, such as ./gcc/go/gospec.c to not
correctly detect that -fsplit-stack is not supported and thus causes
gccgo to fail compilation on non-glibc targets.
This commit ensures that TARGET_CAN_SPLIT_STACK is only set if the
default libc is glibc. It is presently unclear to me if there is a
better way to detect glibc at pre-processor time.
The proposed changes have been tested on x86 and x86_64 Alpine Linux
(which uses musl libc) and fix compilation of gccgo for this target.
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
gcc/ChangeLog:
* config/i386/gnu-user-common.h (defined): Only define
TARGET_CAN_SPLIT_STACK for glibc targets.
* config/i386/gnu.h (defined): Ditto.
---
gcc/go/gospec.cc | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
gcc/config/i386/gnu-user-common.h | 5 +++--
gcc/config/i386/gnu.h | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/gcc/go/gospec.cc b/gcc/go/gospec.cc
index df92b62d8e6..cf168beb4cf 100644
--- a/gcc/go/gospec.cc
+++ b/gcc/go/gospec.cc
@@ -269,11 +269,12 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
/* Copy the 0th argument, i.e., the name of the program itself. */
new_decoded_options[j++] = decoded_options[i++];
diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
index 23b54c5be52..cab9be2bfb7 100644
--- a/gcc/config/i386/gnu-user-common.h
+++ b/gcc/config/i386/gnu-user-common.h
@@ -66,7 +66,8 @@ along with GCC; see the file COPYING3. If not see
#define STACK_CHECK_STATIC_BUILTIN 1
-#ifdef TARGET_CAN_SPLIT_STACK
+ /* Hackfix: we never support split stack on Alpine GCC */
+#if 0
supports_split_stack = 1;
/* We only build the -fsplit-stack support in libgcc if the
- assembler has full support for the CFI directives. */
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
+ assembler has full support for the CFI directives. Also
+ we only support -fsplit-stack on glibc targets. */
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
#define TARGET_CAN_SPLIT_STACK
#endif
diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
index 401e60c9a02..fb8d69a97d8 100644
--- a/gcc/config/i386/gnu.h
+++ b/gcc/config/i386/gnu.h
@@ -41,8 +41,9 @@ along with GCC. If not, see <http://www.gnu.org/licenses/>.
#define TARGET_THREAD_SSP_OFFSET 0x14
-#ifdef TARGET_CAN_SPLIT_STACK_64BIT
+#if 0
if (is_m64)
supports_split_stack = 1;
/* We only build the -fsplit-stack support in libgcc if the
- assembler has full support for the CFI directives. */
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
+ assembler has full support for the CFI directives. Also
+ we only support -fsplit-stack on glibc targets. */
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
#define TARGET_CAN_SPLIT_STACK
#endif
/* We steal the last transactional memory word. */
@@ -1,31 +1,41 @@
From 38270192ea355d8035d9f1b5fe50e36ca3fa3708 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 30 Jun 2022 17:04:23 +0000
Subject: [PATCH] gcc-go: fix build error with SYS_SECCOMP
From 548720bca6bff21ebc9aba22249d9ce45bbd90c7 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Wed, 29 Jun 2022 15:32:04 -0700
Subject: [PATCH] libgo: handle stat st_atim32 field and SYS_SECCOMP
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
fix the build error:
sysinfo.go:6606:7: error: redefinition of 'SYS_SECCOMP'
6606 | const SYS_SECCOMP = _SYS_SECCOMP
| ^
sysinfo.go:6600:7: note: previous definition of 'SYS_SECCOMP' was here
6600 | const SYS_SECCOMP = _SYS_seccomp
| ^
Patches for musl support, from Sören Tempel.
Upstream report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105225
Fixes https://gcc.gnu.org/PR105225
Change-Id: If396877d4a4c7d27962226d7a6e3bb91b1344413
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/415294
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
---
libgo/mksysinfo.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
libgo/mksysinfo.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
index 6fef104cc1c..06289a43bdf 100755
index 5aa30915..ea1fa17d 100755
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -126,7 +126,7 @@ if ! grep '^const SIGCLD ' ${OUT} >/dev/null 2>&1; then
fi
@@ -127,6 +127,7 @@ fi
# The syscall numbers. We force the names to upper case.
-grep '^const _SYS_' gen-sysinfo.go | \
+grep '^const _SYS_[a-z]' gen-sysinfo.go | \
grep '^const _SYS_' gen-sysinfo.go | \
+ grep -v '^const _SYS_SECCOMP = ' | \
sed -e 's/const _\(SYS_[^= ]*\).*$/\1/' | \
while read sys; do
sup=`echo $sys | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
@@ -506,7 +507,7 @@ fi
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
# stat_t's time fields on NetBSD.
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
if test "${GOOS}" = "netbsd"; then
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
fi
@@ -1,107 +0,0 @@
From 9cef407678b40c20ecc39850c7e43346ad92a60b Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <siarheit@google.com>
Date: Mon, 27 Jun 2022 03:31:45 +0100
Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
it indirectly and exposes use of poisoned calloc() when module code
is built:
/build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
....
from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
/<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
84 | void *calloc(size_t, size_t);
| ^
/<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
| ^
gcc/cp/
PR c++/106102
* mapper-client.cc: Include <memory> via "system.h".
* mapper-resolver.cc: Ditto.
* module.cc: Ditto.
libcc1/
PR c++/106102
* libcc1plugin.cc: Include <memory> via "system.h".
* libcp1plugin.cc: Ditto.
(cherry picked from commit 3b21c21f3f5726823e19728fdd1571a14aae0fb3)
---
gcc/cp/mapper-client.cc | 1 +
gcc/cp/mapper-resolver.cc | 1 +
gcc/cp/module.cc | 1 +
libcc1/libcc1plugin.cc | 1 +
libcc1/libcp1plugin.cc | 1 +
5 files changed, 5 insertions(+)
diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
index 8603a886a09..fe9544b5ba4 100644
--- a/gcc/cp/mapper-client.cc
+++ b/gcc/cp/mapper-client.cc
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#define INCLUDE_STRING
#define INCLUDE_VECTOR
#define INCLUDE_MAP
+#define INCLUDE_MEMORY
#include "system.h"
#include "line-map.h"
diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
index e3d29fb5ada..e70d1b4ae2c 100644
--- a/gcc/cp/mapper-resolver.cc
+++ b/gcc/cp/mapper-resolver.cc
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#define INCLUDE_VECTOR
#define INCLUDE_ALGORITHM
#define INCLUDE_MAP
+#define INCLUDE_MEMORY
#include "system.h"
// We don't want or need to be aware of networking
diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index cebf9c35c1d..5c5d02bb523 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -202,6 +202,7 @@ Classes used:
#define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available. */
#include "config.h"
+#define INCLUDE_MEMORY
#define INCLUDE_STRING
#define INCLUDE_VECTOR
#include "system.h"
diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
index 12ab5a57c8d..bdd0bdabe77 100644
--- a/libcc1/libcc1plugin.cc
+++ b/libcc1/libcc1plugin.cc
@@ -31,6 +31,7 @@
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
+#define INCLUDE_MEMORY
#include "gcc-plugin.h"
#include "system.h"
#include "coretypes.h"
diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
index 83dab7f58b1..e2d5039a0a1 100644
--- a/libcc1/libcp1plugin.cc
+++ b/libcc1/libcp1plugin.cc
@@ -32,6 +32,7 @@
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
+#define INCLUDE_MEMORY
#include "gcc-plugin.h"
#include "system.h"
#include "coretypes.h"
@@ -1,117 +0,0 @@
From f982c816d8f52a65231544b838160484b5ed4c71 Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <siarheit@google.com>
Date: Mon, 27 Jun 2022 14:44:48 +0100
Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
it directly and exposes use of poisoned calloc():
/build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
/<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
84 | void *calloc(size_t, size_t);
| ^
/<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
| ^
The change moves <pthread.h> inclusion to "system.h" under new
INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
gcc/
PR c++/106102
* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
gcc/jit/
PR c++/106102
* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
poisoning.
* jit-recording.cc: Ditto.
* libgccjit.cc: Ditto.
(cherry picked from commit 49d508065bdd36fb1a9b6aad9666b1edb5e06474)
---
gcc/jit/jit-playback.cc | 3 +--
gcc/jit/jit-recording.cc | 2 +-
gcc/jit/libgccjit.cc | 2 +-
gcc/system.h | 4 ++++
4 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
index 6be6bdf8dea..79714132b91 100644
--- a/gcc/jit/jit-playback.cc
+++ b/gcc/jit/jit-playback.cc
@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
+#define INCLUDE_PTHREAD_H
#include "system.h"
#include "coretypes.h"
#include "target.h"
@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic.h"
#include "stmt.h"
-#include <pthread.h>
-
#include "jit-playback.h"
#include "jit-result.h"
#include "jit-builtins.h"
diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
index a31720f043e..5556b9c4905 100644
--- a/gcc/jit/jit-recording.cc
+++ b/gcc/jit/jit-recording.cc
@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
+#define INCLUDE_PTHREAD_H
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "pretty-print.h"
#include "toplev.h"
-#include <pthread.h>
#include "jit-builtins.h"
#include "jit-recording.h"
diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
index cc6486c9cad..4c991e5436b 100644
--- a/gcc/jit/libgccjit.cc
+++ b/gcc/jit/libgccjit.cc
@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
+#define INCLUDE_PTHREAD_H
#include "system.h"
#include "coretypes.h"
#include "timevar.h"
#include "typed-splay-tree.h"
#include "cppbuiltin.h"
-#include <pthread.h>
#include "libgccjit.h"
#include "jit-recording.h"
diff --git a/gcc/system.h b/gcc/system.h
index c5562cc49a3..e10c34f70ec 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -750,6 +750,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
#endif
#endif
+#ifdef INCLUDE_PTHREAD_H
+#include <pthread.h>
+#endif
+
#ifdef INCLUDE_ISL
#ifdef HAVE_isl
#include <isl/options.h>
@@ -1,28 +1,108 @@
From d54419ddcc14f52517017147201560da5353c436 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 17 Jul 2022 02:52:13 +0200
Subject: [PATCH] libgo: adjust name of union in sigevent struct
From 8f1a91aeff400d572857895b7f5e863ec5a4d93e Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Mon, 26 Sep 2022 15:03:53 -0400
Subject: [PATCH] runtime: portable access to sigev_notify_thread_id
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The union in struct sigevent is named __sev_fields on musl but
_sigev_un on glibc. Not sure what this code actually does and
how this works if the union layout is different…
Previously, libgo relied on the _sigev_un implementation-specific
field in struct sigevent, which is only available on glibc.
This patch uses the sigev_notify_thread_id macro instead which is
mandated by timer_create(2). In theory, this should work with any libc
implementation for Linux. Unfortunately, there is an open glibc bug
as glibc does not define this macro. For this reason, a glibc-specific
workaround is required. Other libcs (such as musl) define the macro
and don't require the workaround.
See https://sourceware.org/bugzilla/show_bug.cgi?id=27417
This makes libgo compatible with musl libc.
Based on patch by Sören Tempel.
Change-Id: I0924a53d5212730ebc395ecf9199f85967be8cc6
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/434755
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
libgo/go/runtime/os_linux.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
libgo/go/runtime/os_linux.go | 12 +++++++++++-
libgo/runtime/go-signal.c | 18 ++++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/libgo/go/runtime/os_linux.go b/libgo/go/runtime/os_linux.go
index 96fb178870e..a75a2dd703f 100644
index 96fb1788..2b2d827c 100644
--- a/libgo/go/runtime/os_linux.go
+++ b/libgo/go/runtime/os_linux.go
@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
@@ -22,6 +22,12 @@ type mOS struct {
profileTimerValid uint32
}
+// setSigeventTID is written in C to set the sigev_notify_thread_id
+// field of a sigevent struct.
+//
+//go:noescape
+func setSigeventTID(*_sigevent, int32)
+
func getProcID() uint64 {
return uint64(gettid())
}
@@ -52,9 +58,12 @@ const (
)
// Atomically,
+//
// if(*addr == val) sleep
+//
// Might be woken up spuriously; that's allowed.
// Don't sleep longer than ns; ns < 0 means forever.
+//
//go:nosplit
func futexsleep(addr *uint32, val uint32, ns int64) {
// Some Linux kernels have a bug where futex of
@@ -73,6 +82,7 @@ func futexsleep(addr *uint32, val uint32, ns int64) {
}
// If any procs are sleeping on addr, wake up at most cnt.
+//
//go:nosplit
func futexwakeup(addr *uint32, cnt uint32) {
ret := futex(unsafe.Pointer(addr), _FUTEX_WAKE_PRIVATE, cnt, nil, nil, 0)
@@ -365,7 +375,7 @@ func setThreadCPUProfiler(hz int32) {
var sevp _sigevent
sevp.sigev_notify = _SIGEV_THREAD_ID
sevp.sigev_signo = _SIGPROF
- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
+ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
+ setSigeventTID(&sevp, int32(mp.procid))
ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
if ret != 0 {
// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
index 528d9b6d..aa1b6305 100644
--- a/libgo/runtime/go-signal.c
+++ b/libgo/runtime/go-signal.c
@@ -183,6 +183,24 @@ setSigactionHandler(struct sigaction* sa, uintptr handler)
sa->sa_sigaction = (void*)(handler);
}
+#ifdef __linux__
+
+// Workaround for https://sourceware.org/bugzilla/show_bug.cgi?id=27417
+#ifndef sigev_notify_thread_id
+ #define sigev_notify_thread_id _sigev_un._tid
+#endif
+
+void setSigeventTID(struct sigevent*, int32_t)
+ __asm__ (GOSYM_PREFIX "runtime.setSigeventTID");
+
+void
+setSigeventTID(struct sigevent *sev, int32_t v)
+{
+ sev->sigev_notify_thread_id = v;
+}
+
+#endif // defined(__linux__)
+
// C code to fetch values from the siginfo_t and ucontext_t pointers
// passed to a signal handler.
@@ -1,36 +1,36 @@
From 3825632cf4007ac93d8e44705a6da042c496318b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 18 Jul 2022 20:34:39 +0200
Subject: [PATCH] libgo: Explicitly define SYS_timer_settime for 32-bit musl
arches
From d53e8a0e94e34dc609e34dd5e404debda2640cfb Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Sat, 30 Jul 2022 07:29:28 -0700
Subject: [PATCH] libgo: use SYS_timer_settime32
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On 32-bit systems musl only defines SYS_timer_settime32 not
SYS_timer_settime. This causes the following compilation error:
Musl defines SYS_timer_settime32, not SYS_timer_settime, on 32-bit systems.
os_linux.go:251:30: error: reference to undefined name '_SYS_timer_settime'
251 | return int32(syscall(_SYS_timer_settime, uintptr(timerid), uintptr(flags), uintptr(unsafe.Pointer(new)), uintptr(unsafe.Pointer(old)), 0, 0))
| ^
Based on patch by Sören Tempel.
This commit fixes this error by defining SYS_timer_settime to
SYS_timer_settime32 if the latter is defined.
Change-Id: I1f3485028d132ceca1aba595325af24b4d72b894
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/420222
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
---
libgo/sysinfo.c | 6 ++++++
1 file changed, 6 insertions(+)
libgo/sysinfo.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
index b85add15a7b..ff04706a993 100644
index fc021099..180f5c31 100644
--- a/libgo/sysinfo.c
+++ b/libgo/sysinfo.c
@@ -343,6 +343,12 @@ enum {
#endif
@@ -354,6 +354,11 @@ enum {
};
#endif
+// musl libc does not have SYS_timer_settime on 32-bit platforms
+// but defines SYS_timer_settime32 instead, alias accordingly.
+#ifdef SYS_timer_settime32
+#if !defined(SYS_timer_settime) && defined(SYS_timer_settime32)
+// musl defines SYS_timer_settim32 on 32-bit systems.
+#define SYS_timer_settime SYS_timer_settime32
+#endif
+
// musl libc has both off64_t and loff_t. However, both of these types
// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
// -fdump-go-spec option, which is responsible for generating type
#if defined(HAVE_LOFF_T)
// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
// see a typedef.
@@ -1,20 +1,29 @@
From 75a430f66760802bf1ac5afcd716613e3cf8c77d 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 07:15:25 +0200
Subject: [PATCH] libgo: make match.sh POSIX-shell compatible
From a62f20ae78ddd41be682dde8cab075ca4f5dbb2a Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Fri, 22 Jul 2022 11:38:20 -0700
Subject: [PATCH] libgo: use POSIX shell arithmetic expansion
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The `(( expression ))` syntax is a Bash extension. However, the
arithmetic expressions used by the gobuild() function can also
be expressed using Arithmetic POSIX Expansion with `$(( expression ))`.
Contrary to the Bash expression, the Arithmetic Expansion doesn't set
the return value if the expression is non-zero but instead just prints
the expression result. Hence, the expression also needs to be negated.
Avoid bash-specific ((expression)) syntax. As the bash syntax
converts a non-zero value to a zero status (and a zero value to a 1
status), and POSIX arithmetic expansion does not, we have to negate
the result.
Based on patch by Sören Tempel.
Change-Id: I4c64fa15de3994a1a5c7c5ec0de6a82ddd858917
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/419154
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
---
libgo/match.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
libgo/match.sh | 2 +-
libgo/testsuite/gotest | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgo/match.sh b/libgo/match.sh
index 7ed587ff794..b355d47429a 100755
index 7ed587ff..e5ed98de 100755
--- a/libgo/match.sh
+++ b/libgo/match.sh
@@ -111,7 +111,7 @@ gobuild() {
@@ -22,7 +31,20 @@ index 7ed587ff794..b355d47429a 100755
line=$(echo "$line" | sed -e "s/\\(${wrap}\\)386\\(${wrap}\\)/\10\2/g")
fi
- (($line))
+ return $((! ( line )))
+ return $((!($line)))
}
matched=
diff --git a/libgo/testsuite/gotest b/libgo/testsuite/gotest
index 04e4267f..0a0a7e14 100755
--- a/libgo/testsuite/gotest
+++ b/libgo/testsuite/gotest
@@ -302,7 +302,7 @@ gobuild() {
if test "$goarch" != "386"; then
line=$(echo "$line" | sed -e "s/\\(${wrap}\\)386\\(${wrap}\\)/\10\2/g")
fi
- (($line))
+ return $((!($line)))
}
case "x$gofiles" in
@@ -0,0 +1,65 @@
From 7b8400f902ef25ea71ed460716c1afedca357a61 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 2 Nov 2022 12:31:36 +0100
Subject: [PATCH] libphobos: fix undefined reference to `__cmsg_nxthdr' with
musl
Ported fix from upstream.
Upstream: https://github.com/dlang/dmd/commit/54544260a848c8ebad5582e27ac1e09627cdfb17
Bug-URL: https://issues.dlang.org/show_bug.cgi?id=23157
---
.../libdruntime/core/sys/posix/sys/socket.d | 36 +++++++++++++++++--
1 file changed, 33 insertions(+), 3 deletions(-)
diff --git a/libphobos/libdruntime/core/sys/posix/sys/socket.d b/libphobos/libdruntime/core/sys/posix/sys/socket.d
index c1309a68c9c..e3b536d87e7 100644
--- a/libphobos/libdruntime/core/sys/posix/sys/socket.d
+++ b/libphobos/libdruntime/core/sys/posix/sys/socket.d
@@ -188,10 +188,40 @@ version (linux)
extern (D) inout(ubyte)* CMSG_DATA( return scope inout(cmsghdr)* cmsg ) pure nothrow @nogc { return cast(ubyte*)( cmsg + 1 ); }
- private inout(cmsghdr)* __cmsg_nxthdr(inout(msghdr)*, inout(cmsghdr)*) pure nothrow @nogc;
- extern (D) inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
+ version (CRuntime_Musl)
{
- return __cmsg_nxthdr(msg, cmsg);
+ extern (D)
+ {
+ private size_t __CMSG_LEN(inout(cmsghdr)* cmsg) pure nothrow @nogc
+ {
+ return (cmsg.cmsg_len + size_t.sizeof -1) & cast(size_t)(~(size_t.sizeof - 1));
+ }
+
+ private inout(cmsghdr)* __CMSG_NEXT(inout(cmsghdr)* cmsg) pure nothrow @nogc
+ {
+ return cmsg + __CMSG_LEN(cmsg);
+ }
+
+ private inout(msghdr)* __MHDR_END(inout(msghdr)* mhdr) pure nothrow @nogc
+ {
+ return cast(inout(msghdr)*)(mhdr.msg_control + mhdr.msg_controllen);
+ }
+
+ inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
+ {
+ return cmsg.cmsg_len < cmsghdr.sizeof ||
+ __CMSG_LEN(cmsg) + cmsghdr.sizeof >= __MHDR_END(msg) - cast(inout(msghdr)*)(cmsg)
+ ? cast(inout(cmsghdr)*) null : cast(inout(cmsghdr)*) __CMSG_NEXT(cmsg);
+ }
+ }
+ }
+ else
+ {
+ private inout(cmsghdr)* __cmsg_nxthdr(inout(msghdr)*, inout(cmsghdr)*) pure nothrow @nogc;
+ extern (D) inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
+ {
+ return __cmsg_nxthdr(msg, cmsg);
+ }
}
extern (D) inout(cmsghdr)* CMSG_FIRSTHDR( inout(msghdr)* mhdr ) pure nothrow @nogc
--
2.38.1
+43 -48
View File
@@ -10,7 +10,7 @@ LANG_JAVA=false
LANG_GO=false
LANG_FORTRAN=false
LANG_ADA=false
options="!strip !tracedeps"
options="!strip"
# abuild doesn't try to tries to install "build-base-$CTARGET_ARCH"
# when this variable matches "no*"
@@ -24,14 +24,15 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
pkgname=gcc-aarch64
_pkgbase=12.1.1
pkgver=12.1.1_git20220630
_pkgbase=12.2.1 # must match gcc/BASE-VER
_pkgsnap=20220924
pkgver=${_pkgbase}_git$_pkgsnap
[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2"
[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross=""
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-aarch64
pkgrel=5
pkgrel=8
pkgdesc="Stage2 cross-compiler for aarch64"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -40,7 +41,7 @@ _gccrel=$pkgver-r$pkgrel
depends="binutils-aarch64 mpc1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-aarch64 binutils-aarch64"
subpackages="g++-aarch64:gpp"
subpackages="g++-aarch64:gpp libstdc++-dev-aarch64:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_target"
replaces="libstdc++ binutils"
@@ -53,7 +54,7 @@ replaces="libstdc++ binutils"
: "${LANG_JIT:=true}"
_libgomp=true
_libgcc=true
_libgcc=false
_libatomic=true
_libitm=true
@@ -204,11 +205,14 @@ makedepends="$makedepends_build $makedepends_host"
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
#
# right now, we are using a git snapshot.
# 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/~nenolod/gcc-${pkgver}.tar.xz
source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-$_pkgsnap/gcc-${_pkgbase%%.*}-$_pkgsnap.tar.xz
0001-posix_memalign.patch
0002-gcc-poison-system-directories.patch
0003-specs-turn-on-Wl-z-now-by-default.patch
@@ -238,32 +242,27 @@ source="https://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz
0027-always-build-libgcc_eh.a.patch
0028-ada-libgnarl-compatibility-for-musl.patch
0029-ada-musl-support-fixes.patch
0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch
0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
0033-gcc-go-link-to-libucontext.patch
0034-Use-generic-errstr.go-implementation-on-musl.patch
0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
0036-configure-fix-detection-of-atomic-builtins-in-libato.patch
0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
0044-gdc-unconditionally-link-libgphobos-against-libucont.patch
0045-druntime-link-against-libucontext-on-all-platforms.patch
0046-c-avoid-memory-poisoning-on-musl-PR106102.patch
0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch
0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch
0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
0053-libgo-make-match.sh-POSIX-shell-compatible.patch
0054-libphobos-fix-undefined-reference-to-__cmsg_nxthdr-w.patch
"
# we build out-of-tree
_gccdir="$srcdir"/gcc-$pkgver
_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
@@ -324,10 +323,9 @@ build() {
case "$CTARGET_LIBC" in
musl)
# musl does not support mudflap, or libsanitizer
# libmpx uses secure_getenv and struct _libc_fpstate not present in musl
# musl does not support libsanitizer
# alpine musl provides libssp_nonshared.a, so we don't need libssp either
_libc_configure="--disable-libssp --disable-libmpx --disable-libmudflap --disable-libsanitizer"
_libc_configure="--disable-libssp --disable-libsanitizer"
_symvers="--disable-symvers"
export libat_cv_have_ifunc=no
;;
@@ -368,9 +366,9 @@ build() {
--prefix=/usr
--mandir=/usr/share/man
--infodir=/usr/share/info
--build=${CBUILD}
--host=${CHOST}
--target=${CTARGET}
--build=$CBUILD
--host=$CHOST
--target=$CTARGET
--enable-checking=release
--disable-fixed-point
--disable-libstdcxx-pch
@@ -381,7 +379,6 @@ build() {
--enable-__cxa_atexit
--enable-default-pie
--enable-default-ssp
--enable-cloog-backend
--enable-languages=$_languages
$_arch_configure
$_libc_configure
@@ -437,12 +434,11 @@ package() {
# 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 libmudflap.a -o -name libmudflapth.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 {} +
-exec $STRIP_FOR_TARGET -g {} +
if $_libgomp; then
mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir
@@ -555,16 +551,16 @@ libcxx_dev() {
depends=
replaces="g++"
amove usr/lib/libstdc++.a \
usr/lib/libstdc++.so \
usr/lib/libstdc++fs.a \
usr/lib/libsupc++.a \
usr/include/c++
amove usr/${_target:+$CTARGET/}lib/libstdc++.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++=$_gccrel libstdc++-dev=$_gccrel gcc=$_gccrel libc-dev"
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/usr/bin \
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
@@ -659,7 +655,6 @@ gdc() {
mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/
}
libgo() {
pkgdesc="Go runtime library for GCC"
depends=
@@ -669,8 +664,13 @@ libgo() {
}
go() {
pkgdesc="Go support for GCC"
pkgdesc="GCC Go frontend (intended for bootstrapping community/go)"
depends="gcc=$_gccrel libgo=$_gccrel !go"
install="$pkgname-go.post-install"
# See https://lists.alpinelinux.org/~alpine/devel/%3C33KG0XO61I4IL.2Z7RTAZ5J3SY6%408pit.net%3E
provides="go-bootstrap"
provider_priority=1 # lowest, see community/go
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/usr/lib \
@@ -763,7 +763,7 @@ gnat() {
}
sha512sums="
43de66dfed7b5351bb543f7f2e8253e63d1e544e5bd293829e8ec7bffe60925cabcf8f6972fe8825100b1f1d7839e41d9314ec650c1320150c09317e2be24aa9 gcc-12.1.1_git20220630.tar.xz
ba4d9e73d108088da26fbefe18d9b245b76771ffe752c2b4b31bdf38a2d0b638fbc115c377526c27311d4d7ffd4e0d236a5af5016bd364ccaa11a4989d1401e8 gcc-12-20220924.tar.xz
41cbb4d69218006cf9e0cdb6c86212ef451f8decd52a50a7dbb4d34726009da7a4e0261c852b46cb584db253a4bae2f31dc485c506cb545e64a7d26e0ba6c2b6 0001-posix_memalign.patch
531155055cda7f119bcac6479bcae73af9201cd596af9cf1616850bbcf4393b91c5de9f2fbbc1cde6e158fb4df7237b033146f662dff5fa0ea12151cc514adb8 0002-gcc-poison-system-directories.patch
c1275d77b5269386a2ec683933570810f5a2ba1208c161ed887797eb9aee3cb82ef08a8964635902614e6a6e83f3065ba0801c9355d85dd8d60cb1fa20bdf687 0003-specs-turn-on-Wl-z-now-by-default.patch
@@ -793,26 +793,21 @@ b40d7e4712c035674c993bbb55475290ec14523b3f0fd05493514bac4e9adaa6641faf815fc40ffc
674360ce2ee9f704d0632cc98756f9fe8dd8ca30064fb9d3423b437f7e679c1c51e765b15e535dcb278cd2769583690acb3395b91e4fd5f6f4e3b97879fcc313 0027-always-build-libgcc_eh.a.patch
f060687adcd5297124e4000f1ba1e3fd5d7d124da04d948cbd0d4a6c69a90a2b29a4a0dbbe13a83ab6950724f434de012b681bdbcdf53c0100b40fe3d00f2f2f 0028-ada-libgnarl-compatibility-for-musl.patch
5160bae68e20a1966c1f6d655ee98af759e9b9ee842718ae6007d467b418e1cf3b307528a0841477b5259671ce868521b06c0f2e947b7b8f3a398c53dd978252 0029-ada-musl-support-fixes.patch
74c70a752ff24f231b45c69ca1d86ebf261bca643334cb6ba518ac204986ccd7fa84f4df4fdb38bbc0bb61832514b0100b2d2ba069fb1842929369d073220f24 0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch
9786711f308d5f93f2f5a45862f340d4741e1d8aef116d696b85a6debb6149d3772b0cfab4d9ef8782172b102664d9acdd27021af433b504c5918f379b1dd978 0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
4ffd2f279fbcf5abb1ac8cc6435204e48a776e7ef3742f2120eef1a1bdca2d0a01d30c481fd1495926c9166daaf127f9013fda0efefe3ed7bf6e660915cc1b49 0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
0ad15e78806031cef68da6577f7ce9be178533b3768ca42fff7f12816d61fa745acc77be2e047ac1c5bfdbc04e999202e5cefd04042bca798177197236b79954 0033-gcc-go-link-to-libucontext.patch
699dc3641099da6136dd3689f06c6553c03b3a85acf83a3fce1beb5425065b3e378535ca9e9100a120fdbafc34871d61c063fd5328a49cd87a15a989ed51706d 0034-Use-generic-errstr.go-implementation-on-musl.patch
72631fbef4843d6ada52f3173b257e027605866a3faf1d8e34438cbf2581952f97bf6f9569ee44fcd7c4b3b337612eaeb0612fb2e6451903f219e4d99bf719db 0033-gcc-go-link-to-libucontext.patch
141c0428f988cbd102000d4db8d4150485f6da5c064469493ea378cd579bed99330658f41fe106c0d07d1c1aa436ec3f864403ed1ba79f791a1d727b42d46910 0034-Use-generic-errstr.go-implementation-on-musl.patch
d9ba710f770e053c8f212e821817c188091a829658050b9ab5906388553ec60fec37943ea43c270e92a9014902949f3c98fc4639032d92b8145b375bb29e193e 0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
ab90d8fdd977d6cd3da096a1c76d77be3e89a020b2127247771711a32eb608cceed21834ef488ab4b69bb0f408b098fdfb61630819e3d1a1e57d5af67800ee74 0036-configure-fix-detection-of-atomic-builtins-in-libato.patch
7b356e11f66877bee864e2b1f81ae4be6c6c586040afb3ac220ff902f694efd60dcb4647cc7a37890c91dd539535b9992d463b785d3158205dbf9369b17c8ab7 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
5905e4309670cfa4a5883aa21f744391ee2107731795817e0ffcccfaa22b0c21df883038c86362b091e7b35730aa4de6dce827c908ea398a161add851df5c31e 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
570e084d223671fa29cb460b1b536a216920a7bcdfcdad21fe8cd7610e13f6942c1b1dd34ec861e9e3d830b9fe1f0e02e305c50c54d83aaf20526be09ca2256c 0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
a8b53c7d6e0d6d19c655844cab074f49b8f14c54a7af920b5792303f73713fdc69b723a0a6041548d227dfaa98ef63641460ea355487619eb29f9fec4a1e301b 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
15c93c9f2d68b19d00c6e82748e5f14470a120a3996f64d1ce91f17a65a5334cca478b4a6eba7d2d0a1d6d22206407ac3b1b5255987cc1144f5177bbb68153c8 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
8bc6823f0b3c66f7b73d7ddb64ffa6930463285c2e9a14a2bc1882bcc4271144eaa1107d713294699caf9481648163cbf43921a2b8e4ac0d55c78a804bae8a3d 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
f0744c01859e67deed404c97e1870b2876935fdc467e51980373744936574c314d5d21134734c5d515e7f3cd3483ef98045b9bbcd81c568c6038fac96ffb5fa0 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
d6dc1bfb881a313d167aaa5658790b0f55eea4336c408cfc6613dd5783440dafd0d37c43031a5f3e69be40f632e38371cd4fb6e5f0494ac4ea4d7d5025d2ae02 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
684c6a6d52512b973429b6e709966439ac1e174f9e79a33d4a638b452245b457b34752b4b4034ba983f6a712f86522e7adf715bab00a6603f64a12139c5b1e39 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
25014dfa99d96ee70ce0ad22e9f7974f0a51cc50b3b9c2db49df50774c8cd29e497ceed120486bee50be83bfb07f2009ed310eb9b0543f2795bd7359b87eadd2 0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
75fd83ac05ab0a08d5f48547b08810f9934209bc78b5db59d65f33887b382af7ec24d8a29d40f86325c05af40c1ae1ec6466c839f646af90afc895a13073d07b 0044-gdc-unconditionally-link-libgphobos-against-libucont.patch
13e047153076d6e1fc40c9f5b6bfe5699c0e5460248f3d2b35ae36677cb960525af7b0b025997e5000a8492cec5e77a86828d66b4058c0d7f89fde0ab3890142 0045-druntime-link-against-libucontext-on-all-platforms.patch
ba87d4b4433e5f018071ce933ae523c62334574be2e46881a8945c9dc7ecc0fadfed3aaf837f13f93fd4c0d6d33feb24cb67c77d9c0adb40b62637991fed4374 0046-c-avoid-memory-poisoning-on-musl-PR106102.patch
03e7c0caf59ee7c7d13a840178befb378b734f18a5c36ec4bbfad3f78253f0afab80864ea0905b58454178c8c31b2441622dd38668dd54e6550e30e6249e882b 0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch
be7688a44707991c31337bff24245394aa385e7b4ba151f18e21e734a4bbb151348458f413965e5cba50185ab8e0aba8b793eba04c0802dc563b148ed490f26d 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
c33ca2553642c2dbd1c65cd97046548f08775785a3db06d761e3bbe61398c37bc382fe132c0c3fa2101dfd4eea2a6d48bf4fae899a0ddb811c81abd7be35c122 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
179cd15d629884a66e954fd76066675efa594686b970facbb12ad50769e5d70b5530d7f61e77120e26d1c3dfc701cfc5295f341f635db998df73c41bc8e62172 0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch
d7592589cbf982f4518cb07572f96131278c7d2fd8fbbcd7fcb47f6628529ae9a5fc22b2dfe929be06845d137e1c5d2efeb6f63b1c2fb9c36cd6bdb97d41c65f 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
c82d7c8d340a76df3d796565a79b0ccc04ddffef39927620e1f3719bf2dc1db101ba13aef24b46c5bc95b7bf1e31c8bda4ab0936ba4c9c5e5047ba08826c982c 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
eb403d8ea665fd5dc2c11faf43b055e6a3bf480a397ceee3e0ca1e38ec7d2392315f2694ed9a34ffbc99e464f2873fbbf91be8646ea4dea5d3636e3ea22fefa0 0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
29c4fe28e5bf232e01b44106b2f8a3e50b5e00fc4302a69d3f5f90695e43ef07721a917b51d49dc40ae0543d8d97d432cb475834059c92176b73d326af9496e3 0053-libgo-make-match.sh-POSIX-shell-compatible.patch
22fb6edf1ed0387e2b93839ffe6e82a7fee420950af90e91199c3488d966702fdeb1a3396d22be0c73a4051525da9349c93d070a0d83b724c83f2b268da6483f 0053-libgo-make-match.sh-POSIX-shell-compatible.patch
9b74d0a0e4140b597708a295bcf51b93944782698470e2ba9bc0f0d4a830fc418da9624eccc85f3d65ff6d50b8ebf40cecd34d5b045db9e6c29614e981e93f92 0054-libphobos-fix-undefined-reference-to-__cmsg_nxthdr-w.patch
"
+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
@@ -1,26 +0,0 @@
From 7feb681596c4cfa34c769505058aa5bdf31c5131 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Sun, 30 Aug 2020 17:59:45 +0200
Subject: [PATCH] gcc-go: Fix handling of signal 34 on musl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Taken from Adélie Linux.
---
libgo/mksigtab.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh
index bea8739957e..3876002efab 100644
--- a/libgo/mksigtab.sh
+++ b/libgo/mksigtab.sh
@@ -86,7 +86,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
-checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
@@ -1,24 +0,0 @@
From b6885cf73989161b1b6893b5ae0dafed006d5f13 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 25 Nov 2021 01:47:03 +0000
Subject: [PATCH] There are more than one st_{a,m,c}tim fields in struct stat
on time64 machines.
Run the Go-isation on all of them.
---
libgo/mksysinfo.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
index 0c52ea5d71a..6fef104cc1c 100755
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -510,7 +510,7 @@ fi
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
# stat_t's time fields on NetBSD.
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
if test "${GOOS}" = "netbsd"; then
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
fi
@@ -1,24 +0,0 @@
From c7a22e42ae403154a0c0158495b04b0205102041 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 30 Aug 2020 19:27:51 +0200
Subject: [PATCH] gcc-go: undef SETCONTEXT_CLOBBERS_TLS in proc.c
---
libgo/runtime/proc.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
index 3a30748d329..a987678fa84 100644
--- a/libgo/runtime/proc.c
+++ b/libgo/runtime/proc.c
@@ -66,6 +66,10 @@ static void gscanstack(G*);
__thread G *g __asm__(GOSYM_PREFIX "runtime.g");
+/* libucontext does not seem to support tlsbase, undef the macro
+ * here to make sure we define initcontext and fixcontext as dummies. */
+#undef SETCONTEXT_CLOBBERS_TLS
+
#ifndef SETCONTEXT_CLOBBERS_TLS
static inline void
@@ -1,22 +1,101 @@
From ef9df74e0c1059e51bb76b1f6d9d4746949d4d34 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Mon, 31 Aug 2020 08:59:40 +0200
Subject: [PATCH] gcc-go: link to libucontext
From ecc2a2e70e44fa76a75b12d0893bc1702b72a1b4 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Mon, 19 Dec 2022 10:37:06 -0800
Subject: [PATCH] libgo: check for makecontext in -lucontext
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Patch from Sören Tempel.
Change-Id: I74b4052cc7aca19224afd6d9a2739c3fae46b722
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/458396
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
libgo/configure | 57 ++++++++++++++++++++++++++++++++++++++++++++++
libgo/configure.ac | 3 +++
2 files changed, 60 insertions(+)
diff --git a/Makefile.in b/Makefile.in
index b96f60e33e2..b564ddbf792 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -52802,7 +52802,7 @@ configure-target-libgo:
esac; \
module_srcdir=libgo; \
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} \
diff --git a/libgo/configure b/libgo/configure
index 460fdad7..a607dbff 100755
--- a/libgo/configure
+++ b/libgo/configure
@@ -14818,6 +14818,63 @@ fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing makecontext" >&5
+$as_echo_n "checking for library containing makecontext... " >&6; }
+if ${ac_cv_search_makecontext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char makecontext ();
+int
+main ()
+{
+return makecontext ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' ucontext; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_makecontext=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_makecontext+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_makecontext+:} false; then :
+
+else
+ ac_cv_search_makecontext=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_makecontext" >&5
+$as_echo "$ac_cv_search_makecontext" >&6; }
+ac_res=$ac_cv_search_makecontext
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sched_yield" >&5
$as_echo_n "checking for library containing sched_yield... " >&6; }
if ${ac_cv_search_sched_yield+:} false; then :
diff --git a/libgo/configure.ac b/libgo/configure.ac
index 09554a37..a59aa091 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -570,6 +570,9 @@ PTHREAD_LIBS=
AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS=-lpthread)
AC_SUBST(PTHREAD_LIBS)
+dnl Test if -lucontext is required for makecontext.
+AC_SEARCH_LIBS([makecontext], [ucontext])
+
dnl Test if -lrt is required for sched_yield or nanosleep or clock_gettime.
AC_SEARCH_LIBS([sched_yield], [rt])
AC_SEARCH_LIBS([nanosleep], [rt])
@@ -1,45 +1,204 @@
From 5093aa99f9cdded2e1ddf67b7139da6fac36b0a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 19 Apr 2021 07:21:41 +0200
Subject: [PATCH] Use generic errstr.go implementation on musl
From b3840bdcc0eee2a4d099a9af52199944ade7acb9 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Tue, 29 Nov 2022 17:28:44 -0800
Subject: [PATCH] syscall, runtime: always call XSI strerror_r
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
glibc provides two version of strerror_r() depending on a feature test
macro. The first is the XSI-compliant version which returns an int, the
second is GNU-specific and returns a char pointer.
This does the right thing for either glibc or musl on GNU/Linux.
Similarity, gcc's libgo provides two implementations of Errstr() both of
which use strerror_r(). On Linux, it is assumed that the GNU-specific
strerror_r version is used. However, musl only provides the
XSI-compliant version of strerror_r. This patch enables the generic
Errstr() implementation which also uses the XSI-compliant version of
strerror_r.
Based on patch by Sören Tempel.
Change-Id: If2969e131f0fae456d58b35d839d8abe191fcc59
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/454176
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Bypass: Ian Lance Taylor <iant@google.com>
---
libgo/go/syscall/errstr.go | 1 -
libgo/go/syscall/errstr_glibc.go | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
libgo/Makefile.am | 1 +
libgo/Makefile.in | 6 +++++-
libgo/go/syscall/errstr.go | 22 ++++++++-----------
libgo/go/syscall/errstr_glibc.go | 33 ----------------------------
libgo/runtime/go-strerror.c | 37 ++++++++++++++++++++++++++++++++
5 files changed, 52 insertions(+), 47 deletions(-)
delete mode 100644 libgo/go/syscall/errstr_glibc.go
create mode 100644 libgo/runtime/go-strerror.c
diff --git a/libgo/Makefile.am b/libgo/Makefile.am
index e0a1eec5..df568743 100644
--- a/libgo/Makefile.am
+++ b/libgo/Makefile.am
@@ -465,6 +465,7 @@ runtime_files = \
runtime/go-nanotime.c \
runtime/go-now.c \
runtime/go-nosys.c \
+ runtime/go-strerror.c \
runtime/go-reflect-call.c \
runtime/go-setenv.c \
runtime/go-signal.c \
diff --git a/libgo/Makefile.in b/libgo/Makefile.in
index 7bef5df9..f2f3f0fc 100644
--- a/libgo/Makefile.in
+++ b/libgo/Makefile.in
@@ -247,7 +247,7 @@ am__objects_4 = runtime/aeshash.lo runtime/go-assert.lo \
runtime/go-fieldtrack.lo runtime/go-matherr.lo \
runtime/go-memclr.lo runtime/go-memmove.lo \
runtime/go-memequal.lo runtime/go-nanotime.lo \
- runtime/go-now.lo runtime/go-nosys.lo \
+ runtime/go-now.lo runtime/go-nosys.lo runtime/go-strerror.lo \
runtime/go-reflect-call.lo runtime/go-setenv.lo \
runtime/go-signal.lo runtime/go-unsafe-pointer.lo \
runtime/go-unsetenv.lo runtime/go-unwind.lo \
@@ -917,6 +917,7 @@ runtime_files = \
runtime/go-nanotime.c \
runtime/go-now.c \
runtime/go-nosys.c \
+ runtime/go-strerror.c \
runtime/go-reflect-call.c \
runtime/go-setenv.c \
runtime/go-signal.c \
@@ -1390,6 +1391,8 @@ runtime/go-now.lo: runtime/$(am__dirstamp) \
runtime/$(DEPDIR)/$(am__dirstamp)
runtime/go-nosys.lo: runtime/$(am__dirstamp) \
runtime/$(DEPDIR)/$(am__dirstamp)
+runtime/go-strerror.lo: runtime/$(am__dirstamp) \
+ runtime/$(DEPDIR)/$(am__dirstamp)
runtime/go-reflect-call.lo: runtime/$(am__dirstamp) \
runtime/$(DEPDIR)/$(am__dirstamp)
runtime/go-setenv.lo: runtime/$(am__dirstamp) \
@@ -1457,6 +1460,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-reflect-call.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-setenv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-signal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-strerror.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-unsafe-pointer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-unsetenv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-unwind.Plo@am__quote@
diff --git a/libgo/go/syscall/errstr.go b/libgo/go/syscall/errstr.go
index 6c2441d364d..8f7c5538163 100644
index 6c2441d3..9f688e2a 100644
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -4,23 +4,19 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build !hurd
-// +build !hurd
-// +build !linux
-
package syscall
-//sysnb strerror_r(errnum int, buf []byte) (err Errno)
-//strerror_r(errnum _C_int, buf *byte, buflen Size_t) _C_int
+import "internal/bytealg"
+
+//extern go_strerror
+func go_strerror(_C_int, *byte, Size_t) _C_int
func Errstr(errnum int) string {
- for len := 128; ; len *= 2 {
- b := make([]byte, len)
- errno := strerror_r(errnum, b)
+ for size := 128; ; size *= 2 {
+ b := make([]byte, size)
+ errno := go_strerror(_C_int(errnum), &b[0], Size_t(len(b)))
if errno == 0 {
- i := 0
- for b[i] != 0 {
- i++
- }
+ i := bytealg.IndexByte(b, 0)
// Lowercase first letter: Bad -> bad, but
// STREAM -> STREAM.
if i > 1 && 'A' <= b[0] && b[0] <= 'Z' && 'a' <= b[1] && b[1] <= 'z' {
@@ -29,7 +25,7 @@ func Errstr(errnum int) string {
return string(b[:i])
}
if errno != ERANGE {
- return "errstr failure"
+ return "strerror_r failure"
}
}
}
diff --git a/libgo/go/syscall/errstr_glibc.go b/libgo/go/syscall/errstr_glibc.go
index 5b19e6f202d..8dc60172186 100644
deleted file mode 100644
index 5b19e6f2..00000000
--- a/libgo/go/syscall/errstr_glibc.go
+++ b/libgo/go/syscall/errstr_glibc.go
@@ -7,7 +7,7 @@
// We use this rather than errstr.go because on GNU/Linux sterror_r
// returns a pointer to the error message, and may not use buf at all.
+++ /dev/null
@@ -1,33 +0,0 @@
-// errstr_glibc.go -- GNU/Linux and GNU/Hurd specific error strings.
-
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// We use this rather than errstr.go because on GNU/Linux sterror_r
-// returns a pointer to the error message, and may not use buf at all.
-
-// +build hurd linux
+// +build hurd !linux
package syscall
-
-package syscall
-
-import "unsafe"
-
-//sysnb strerror_r(errnum int, b []byte) (errstr *byte)
-//strerror_r(errnum _C_int, b *byte, len Size_t) *byte
-
-func Errstr(errnum int) string {
- a := make([]byte, 128)
- p := strerror_r(errnum, a)
- b := (*[1000]byte)(unsafe.Pointer(p))
- i := 0
- for b[i] != 0 {
- i++
- }
- // Lowercase first letter: Bad -> bad, but STREAM -> STREAM.
- if i > 1 && 'A' <= b[0] && b[0] <= 'Z' && 'a' <= b[1] && b[1] <= 'z' {
- c := b[0] + 'a' - 'A'
- return string(c) + string(b[1:i])
- }
- return string(b[:i])
-}
diff --git a/libgo/runtime/go-strerror.c b/libgo/runtime/go-strerror.c
new file mode 100644
index 00000000..13d1d91d
--- /dev/null
+++ b/libgo/runtime/go-strerror.c
@@ -0,0 +1,37 @@
+/* go-strerror.c -- wrapper around XSI-compliant strerror_r.
+
+ Copyright 2022 The Go Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style
+ license that can be found in the LICENSE file. */
+
+/* There are two version of strerror_r on GNU/Linux: a GNU-specific
+ and an XSI-compliant version. The former version is only available
+ on glibc. Since glibc 2.13, the XSI-compliant version is also
+ provided by glibc if _GNU_SOURCE is not defined. Since the
+ entirety of gofrontend is compiled with _GNU_SOURCE, this file
+ exists to selectively undefine it and provides an alias to the
+ XSI-compliant version of strerror_r(3). */
+
+#ifdef __linux__
+
+/* Force selection of XSI-compliant strerror_r by glibc. */
+#undef XOPEN_SOURCE
+#define XOPEN_SOURCE 600
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 200112L
+#undef _GNU_SOURCE
+
+#endif /* __linux__ */
+
+#include <string.h>
+
+#ifndef HAVE_STRERROR_R
+// Provided by go-nosys.c if not provided by libc itself.
+extern int strerror_r (int, char *, size_t);
+#endif
+
+int
+go_strerror (int errnum, char *buf, size_t buflen)
+{
+ return strerror_r (errnum, buf, buflen);
+}
@@ -1,81 +1,199 @@
From 4655244d80aa67904a88d620361f2d37ea4c8576 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 28 Nov 2021 00:54:37 +0100
Subject: [PATCH] libgo: Recognize off64_t and loff_t definitions of musl libc
From 3b9243b891cc06373639a23ed5717b0d1c2d8ea6 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Tue, 14 Jun 2022 06:13:43 -0700
Subject: [PATCH] libgo: permit loff_t and off_t to be macros
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Without this patch, both off64_t and loff_t are not recognized by
-fdump-go-spec which causes a variety Go-related compilation errors on
musl libc since the gcc-go frontend expects both off64_t and loff_t to
be present.
They are macros in musl libc, rather than typedefs, and -fgo-dump-spec
doesn't handle that case.
Also make sure that autoconf recognizes support for loff_t on musl, by
compiling the relevant feature test code with -D_GNU_SOURCE and making
it include fcntl.h which defines loff_t on musl.
Based on patch by Sören Tempel.
Change-Id: Ic9a608fd964a6f78e754aa8e3100aff06ab3dade
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/412075
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
libgo: #include <sys/types.h> when checking for loff_t
Fixes https://gcc.gnu.org/PR106033
Fixes golang/go#53469
Change-Id: I060021b7bb9334949b567442448abb6822fd6d35
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/413214
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
libgo/configure | 4 +++-
libgo/configure.ac | 4 +++-
libgo/sysinfo.c | 21 +++++++++++++++++++++
3 files changed, 27 insertions(+), 2 deletions(-)
libgo/config.h.in | 3 +++
libgo/configure | 12 ++++++++++--
libgo/configure.ac | 11 +++++++++--
libgo/go/syscall/libcall_linux.go | 17 +++++++++--------
libgo/mksysinfo.sh | 6 +-----
libgo/sysinfo.c | 15 ++++++++++++++-
6 files changed, 46 insertions(+), 18 deletions(-)
diff --git a/libgo/config.h.in b/libgo/config.h.in
index 25b8ab8f9ee..2c3c7469675 100644
--- a/libgo/config.h.in
+++ b/libgo/config.h.in
@@ -70,6 +70,9 @@
/* Define to 1 if you have the `fchownat' function. */
#undef HAVE_FCHOWNAT
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
/* Define to 1 if you have the `futimesat' function. */
#undef HAVE_FUTIMESAT
diff --git a/libgo/configure b/libgo/configure
index ffe17c9be55..c2dbecef98c 100755
index ffe17c9be55..61a49947eb9 100755
--- a/libgo/configure
+++ b/libgo/configure
@@ -15546,7 +15546,9 @@ _ACEOF
@@ -15249,7 +15249,7 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
fi
-for ac_header in port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
+for ac_header in fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -15546,7 +15546,14 @@ _ACEOF
fi
-ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "$ac_includes_default"
+CFLAGS_hold=$CFLAGS
+CFLAGS="$CFLAGS -D_GNU_SOURCE"
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "#include <fcntl.h>"
+
+CFLAGS_hold="$CFLAGS"
+CFLAGS="$OSCFLAGS $CFLAGS"
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "
+#include <sys/types.h>
+#include <fcntl.h>
+
+"
if test "x$ac_cv_type_loff_t" = xyes; then :
cat >>confdefs.h <<_ACEOF
@@ -15556,6 +15563,7 @@ _ACEOF
fi
+CFLAGS="$CFLAGS_hold"
LIBS_hold="$LIBS"
LIBS="$LIBS -lm"
diff --git a/libgo/configure.ac b/libgo/configure.ac
index 7e2b98ba67c..667feae3c03 100644
index 7e2b98ba67c..274fcfc35c7 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -601,7 +601,9 @@ AC_STRUCT_DIRENT_D_TYPE
@@ -579,7 +579,7 @@ AC_C_BIGENDIAN
GCC_CHECK_UNWIND_GETIPINFO
-AC_CHECK_HEADERS(port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
+AC_CHECK_HEADERS(fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
AC_CHECK_HEADERS([netinet/icmp6.h], [], [],
[#include <netinet/in.h>
@@ -601,7 +601,14 @@ AC_STRUCT_DIRENT_D_TYPE
AC_CHECK_FUNCS(accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat open64 openat pipe2 removexattr renameat setxattr sync_file_range splice syscall tee unlinkat unshare utimensat)
AC_TYPE_OFF_T
-AC_CHECK_TYPES([loff_t])
+CFLAGS_hold=$CFLAGS
+CFLAGS="$CFLAGS -D_GNU_SOURCE" # musl does not define loff_t without this
+AC_CHECK_TYPES([loff_t], [], [], [[#include <fcntl.h>]])
+
+CFLAGS_hold="$CFLAGS"
+CFLAGS="$OSCFLAGS $CFLAGS"
+AC_CHECK_TYPES([loff_t], [], [], [[
+#include <sys/types.h>
+#include <fcntl.h>
+]])
+CFLAGS="$CFLAGS_hold"
LIBS_hold="$LIBS"
LIBS="$LIBS -lm"
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
index 96974bd3269..65eb1a745f7 100644
--- a/libgo/go/syscall/libcall_linux.go
+++ b/libgo/go/syscall/libcall_linux.go
@@ -209,19 +209,20 @@ func Gettid() (tid int) {
//sys Setxattr(path string, attr string, data []byte, flags int) (err error)
//setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int
-//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
-//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
+//sys splice(rfd int, roff *_libgo_loff_t_type, wfd int, woff *_libgo_loff_t_type, len int, flags int) (n int64, err error)
+//splice(rfd _C_int, roff *_libgo_loff_t_type, wfd _C_int, woff *_libgo_loff_t_type, len Size_t, flags _C_uint) Ssize_t
+
func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
- var lroff _loff_t
- var plroff *_loff_t
+ var lroff _libgo_loff_t_type
+ var plroff *_libgo_loff_t_type
if roff != nil {
- lroff = _loff_t(*roff)
+ lroff = _libgo_loff_t_type(*roff)
plroff = &lroff
}
- var lwoff _loff_t
- var plwoff *_loff_t
+ var lwoff _libgo_loff_t_type
+ var plwoff *_libgo_loff_t_type
if woff != nil {
- lwoff = _loff_t(*woff)
+ lwoff = _libgo_loff_t_type(*woff)
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
index 0c52ea5d71a..5aa309155c3 100755
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -403,11 +403,7 @@ fi
# Some basic types.
echo 'type Size_t _size_t' >> ${OUT}
echo "type Ssize_t _ssize_t" >> ${OUT}
-if grep '^const _HAVE_OFF64_T = ' gen-sysinfo.go > /dev/null 2>&1; then
- echo "type Offset_t _off64_t" >> ${OUT}
-else
- echo "type Offset_t _off_t" >> ${OUT}
-fi
+echo "type Offset_t _libgo_off_t_type" >> ${OUT}
echo "type Mode_t _mode_t" >> ${OUT}
echo "type Pid_t _pid_t" >> ${OUT}
echo "type Uid_t _uid_t" >> ${OUT}
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
index 8ce061e2f5f..b85add15a7b 100644
index 336a5983750..fc0210992fa 100644
--- a/libgo/sysinfo.c
+++ b/libgo/sysinfo.c
@@ -343,6 +343,27 @@ enum {
#endif
@@ -354,6 +354,18 @@ enum {
};
#endif
+// musl libc has both off64_t and loff_t. However, both of these types
+// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
+// -fdump-go-spec option, which is responsible for generating type
+// definitions for Go based on this file, only recognizes types defined
+// through typedefs.
+//
+// For this reason, we check here if either off64_t or loff_t are
+// defined as CPP macros and if so, we redefine them using a C typedef.
+#if defined(HAVE_OFF64_T) && defined(off64_t)
+typedef off64_t __musl_off64_t;
+#undef off64_t
+typedef __musl_off64_t off64_t;
+#if defined(HAVE_LOFF_T)
+// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
+// see a typedef.
+typedef loff_t libgo_loff_t_type;
+#endif
+
+// See comment regarding musl libc above.
+#if defined(HAVE_LOFF_T) && defined(loff_t)
+typedef loff_t __musl_loff_t;
+#undef loff_t
+typedef __musl_loff_t loff_t;
+#if defined(HAVE_OFF64_T)
+typedef off64_t libgo_off_t_type;
+#else
+typedef off_t libgo_off_t_type;
+#endif
+
// SIOCGIFMTU can't be added in the above enum as it might
// be signed in some OSes.
#ifdef SIOCGIFMTU
// The following section introduces explicit references to types and
// constants of interest to support bootstrapping libgo using a
// compiler that doesn't support -fdump-go-spec (e.g., clang), via
@@ -534,7 +546,8 @@ SREF(timex);
// From sys/types.h
TREF(pid_t);
TREF(off_t);
-TREF(loff_t);
+TREF(libgo_loff_t_type);
+TREF(libgo_off_t_type);
TREF(size_t);
TREF(ssize_t);
TREF(mode_t);
@@ -1,43 +1,26 @@
From 76c13560bba3534bff335e5bb571a8b95d50d4ba Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Sun, 30 Aug 2020 18:33:49 +0200
Subject: [PATCH] gcc-go: Use int64 type as offset argument for mmap
From 5e658f4659c551330ea68f5667e4f951b218f32d Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Wed, 26 Oct 2022 17:23:42 -0700
Subject: [PATCH] runtime: use _libgo_off_t_type when calling C mmap
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Without this patch, Go run-time memory allocation fails on 32-bit architectures:
The last argument to the C mmap function is type off_t, not uintptr.
On some 32-bit systems, off_t is larger than uintptr.
fatal error: runtime: cannot allocate memory
runtime stack:
runtime.dopanic__m
:0
runtime.throw
:0
:0
:0
runtime.systemstack
:0
runtime.addrRanges.init
:0
runtime.pageAlloc.init
:0
runtime.mheap.init
:0
runtime.schedinit
:0
:0
:0
Based on patch by Sören Tempel.
Taken from Adélie Linux [1].
[1]: https://git.adelielinux.org/adelie/packages/-/commit/63b5fb12c3d75e460799c672bbbdd5d29c3cc33c
Change-Id: Ib6f9d5bcd4734f99a72889e2282b97ec3c8fbd34
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/445735
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
libgo/go/runtime/mem_gccgo.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
libgo/go/runtime/mem_gccgo.go | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libgo/go/runtime/mem_gccgo.go b/libgo/go/runtime/mem_gccgo.go
index fa3389d857e..57bed97c710 100644
index fa3389d8..1e84f4f5 100644
--- a/libgo/go/runtime/mem_gccgo.go
+++ b/libgo/go/runtime/mem_gccgo.go
@@ -15,7 +15,7 @@ import (
@@ -45,16 +28,32 @@ index fa3389d857e..57bed97c710 100644
//extern mmap
-func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) unsafe.Pointer
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) unsafe.Pointer
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off _libgo_off_t_type) unsafe.Pointer
//extern munmap
func munmap(addr unsafe.Pointer, length uintptr) int32
@@ -37,7 +37,7 @@ func init() {
}
@@ -38,7 +38,7 @@ func init() {
}
-func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
+func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) (unsafe.Pointer, int) {
p := sysMmap(addr, n, prot, flags, fd, off)
func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
- p := sysMmap(addr, n, prot, flags, fd, off)
+ p := sysMmap(addr, n, prot, flags, fd, _libgo_off_t_type(off))
if uintptr(p) == _MAP_FAILED {
return nil, errno()
}
@@ -47,6 +47,7 @@ func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (u
// Don't split the stack as this method may be invoked without a valid G, which
// prevents us from allocating more stack.
+//
//go:nosplit
func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer {
p, err := mmap(nil, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_PRIVATE, mmapFD, 0)
@@ -165,6 +166,7 @@ func sysHugePage(v unsafe.Pointer, n uintptr) {
// Don't split the stack as this function may be invoked without a valid G,
// which prevents us from allocating more stack.
+//
//go:nosplit
func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) {
sysStat.add(-int64(n))
@@ -1,55 +0,0 @@
From cf41d579088e1c0b5c33c93657ad041e797b5905 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
Date: Sun, 2 Jan 2022 01:07:03 +0100
Subject: [PATCH] libgo: include asm/ptrace.h for pt_regs definition on PowerPC
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Both glibc and musl libc declare pt_regs as an incomplete type. This
type has to be completed by inclusion of another header. On Linux, the
asm/ptrace.h header file provides this type definition. Without
including this header file, it is not possible to access the regs member
of the mcontext_t struct as done in libgo/runtime/go-signal.c. On glibc,
other headers (e.g. sys/user.h) include asm/ptrace.h but on musl
asm/ptrace.h is not included by other headers and thus the
aforementioned files do not compile without an explicit include of
asm/ptrace.h:
libgo/runtime/go-signal.c: In function 'getSiginfo':
libgo/runtime/go-signal.c:227:63: error: invalid use of undefined type 'struct pt_regs'
227 | ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
|
Instead of including the asm/ptrace.h header conditionally on PowerPC
only it would alternatively also be possible to include it
unconditionally.
See also:
* https://git.musl-libc.org/cgit/musl/commit/?id=c2518a8efb6507f1b41c3b12e03b06f8f2317a1f
* https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d57cb31910ca5c200e4172276749a7f8bd17ae3c
* https://github.com/kaniini/libucontext/issues/36
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
---
libgo/runtime/go-signal.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
index 528d9b6d9fe..c67503f0a79 100644
--- a/libgo/runtime/go-signal.c
+++ b/libgo/runtime/go-signal.c
@@ -10,6 +10,12 @@
#include <sys/time.h>
#include <ucontext.h>
+// On PowerPC, ucontext.h uses a pt_regs struct as an incomplete
+// type. This type must be completed by including asm/ptrace.h.
+#ifdef __PPC__
+#include <asm/ptrace.h>
+#endif
+
#include "runtime.h"
#ifndef SA_RESTART
@@ -1,30 +1,71 @@
From fbc8240ac15225ede8416a27c9978559b85d6877 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Mon, 21 Feb 2022 10:04:47 +0000
Subject: [PATCH] go/gospec: forcibly disable -fsplit-stack support
From c86b726c048eddc1be320c0bf64a897658bee13d Mon Sep 17 00:00:00 2001
From: Uros Bizjak <ubizjak@gmail.com>
Date: Wed, 18 May 2022 20:03:26 +0200
Subject: [PATCH] x86: Fix -fsplit-stack feature detection via
TARGET_CAN_SPLIT_STACK
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
for some reason, TARGET_CAN_SPLIT_STACK still gets defined on 32-bit x86,
so hackfix it for now
Since commit c163647ffbc9a20c8feb6e079dbecccfe016c82e -fsplit-stack
is only supported on glibc targets. However, this original commit
required some fixups. As part of the fixup, the changes to the
gnu-user-common.h and gnu.h were partially reverted in commit
60953a23d57b13a672f751bec0c6eefc059eb1ab thus causing TARGET_CAN_SPLIT_STACK
to be defined for non-glibc targets even though -fsplit-stack is
actually not supported and attempting to use it causes a runtime error.
This causes gcc internal code, such as ./gcc/go/gospec.c to not
correctly detect that -fsplit-stack is not supported and thus causes
gccgo to fail compilation on non-glibc targets.
This commit ensures that TARGET_CAN_SPLIT_STACK is only set if the
default libc is glibc. It is presently unclear to me if there is a
better way to detect glibc at pre-processor time.
The proposed changes have been tested on x86 and x86_64 Alpine Linux
(which uses musl libc) and fix compilation of gccgo for this target.
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
gcc/ChangeLog:
* config/i386/gnu-user-common.h (defined): Only define
TARGET_CAN_SPLIT_STACK for glibc targets.
* config/i386/gnu.h (defined): Ditto.
---
gcc/go/gospec.cc | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
gcc/config/i386/gnu-user-common.h | 5 +++--
gcc/config/i386/gnu.h | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/gcc/go/gospec.cc b/gcc/go/gospec.cc
index df92b62d8e6..cf168beb4cf 100644
--- a/gcc/go/gospec.cc
+++ b/gcc/go/gospec.cc
@@ -269,11 +269,12 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
/* Copy the 0th argument, i.e., the name of the program itself. */
new_decoded_options[j++] = decoded_options[i++];
diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
index 23b54c5be52..cab9be2bfb7 100644
--- a/gcc/config/i386/gnu-user-common.h
+++ b/gcc/config/i386/gnu-user-common.h
@@ -66,7 +66,8 @@ along with GCC; see the file COPYING3. If not see
#define STACK_CHECK_STATIC_BUILTIN 1
-#ifdef TARGET_CAN_SPLIT_STACK
+ /* Hackfix: we never support split stack on Alpine GCC */
+#if 0
supports_split_stack = 1;
/* We only build the -fsplit-stack support in libgcc if the
- assembler has full support for the CFI directives. */
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
+ assembler has full support for the CFI directives. Also
+ we only support -fsplit-stack on glibc targets. */
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
#define TARGET_CAN_SPLIT_STACK
#endif
diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
index 401e60c9a02..fb8d69a97d8 100644
--- a/gcc/config/i386/gnu.h
+++ b/gcc/config/i386/gnu.h
@@ -41,8 +41,9 @@ along with GCC. If not, see <http://www.gnu.org/licenses/>.
#define TARGET_THREAD_SSP_OFFSET 0x14
-#ifdef TARGET_CAN_SPLIT_STACK_64BIT
+#if 0
if (is_m64)
supports_split_stack = 1;
/* We only build the -fsplit-stack support in libgcc if the
- assembler has full support for the CFI directives. */
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
+ assembler has full support for the CFI directives. Also
+ we only support -fsplit-stack on glibc targets. */
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
#define TARGET_CAN_SPLIT_STACK
#endif
/* We steal the last transactional memory word. */
@@ -1,31 +1,41 @@
From 38270192ea355d8035d9f1b5fe50e36ca3fa3708 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 30 Jun 2022 17:04:23 +0000
Subject: [PATCH] gcc-go: fix build error with SYS_SECCOMP
From 548720bca6bff21ebc9aba22249d9ce45bbd90c7 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Wed, 29 Jun 2022 15:32:04 -0700
Subject: [PATCH] libgo: handle stat st_atim32 field and SYS_SECCOMP
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
fix the build error:
sysinfo.go:6606:7: error: redefinition of 'SYS_SECCOMP'
6606 | const SYS_SECCOMP = _SYS_SECCOMP
| ^
sysinfo.go:6600:7: note: previous definition of 'SYS_SECCOMP' was here
6600 | const SYS_SECCOMP = _SYS_seccomp
| ^
Patches for musl support, from Sören Tempel.
Upstream report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105225
Fixes https://gcc.gnu.org/PR105225
Change-Id: If396877d4a4c7d27962226d7a6e3bb91b1344413
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/415294
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
---
libgo/mksysinfo.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
libgo/mksysinfo.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
index 6fef104cc1c..06289a43bdf 100755
index 5aa30915..ea1fa17d 100755
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -126,7 +126,7 @@ if ! grep '^const SIGCLD ' ${OUT} >/dev/null 2>&1; then
fi
@@ -127,6 +127,7 @@ fi
# The syscall numbers. We force the names to upper case.
-grep '^const _SYS_' gen-sysinfo.go | \
+grep '^const _SYS_[a-z]' gen-sysinfo.go | \
grep '^const _SYS_' gen-sysinfo.go | \
+ grep -v '^const _SYS_SECCOMP = ' | \
sed -e 's/const _\(SYS_[^= ]*\).*$/\1/' | \
while read sys; do
sup=`echo $sys | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
@@ -506,7 +507,7 @@ fi
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
# stat_t's time fields on NetBSD.
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
if test "${GOOS}" = "netbsd"; then
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
fi
@@ -1,107 +0,0 @@
From 9cef407678b40c20ecc39850c7e43346ad92a60b Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <siarheit@google.com>
Date: Mon, 27 Jun 2022 03:31:45 +0100
Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
it indirectly and exposes use of poisoned calloc() when module code
is built:
/build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
....
from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
/<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
84 | void *calloc(size_t, size_t);
| ^
/<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
| ^
gcc/cp/
PR c++/106102
* mapper-client.cc: Include <memory> via "system.h".
* mapper-resolver.cc: Ditto.
* module.cc: Ditto.
libcc1/
PR c++/106102
* libcc1plugin.cc: Include <memory> via "system.h".
* libcp1plugin.cc: Ditto.
(cherry picked from commit 3b21c21f3f5726823e19728fdd1571a14aae0fb3)
---
gcc/cp/mapper-client.cc | 1 +
gcc/cp/mapper-resolver.cc | 1 +
gcc/cp/module.cc | 1 +
libcc1/libcc1plugin.cc | 1 +
libcc1/libcp1plugin.cc | 1 +
5 files changed, 5 insertions(+)
diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
index 8603a886a09..fe9544b5ba4 100644
--- a/gcc/cp/mapper-client.cc
+++ b/gcc/cp/mapper-client.cc
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#define INCLUDE_STRING
#define INCLUDE_VECTOR
#define INCLUDE_MAP
+#define INCLUDE_MEMORY
#include "system.h"
#include "line-map.h"
diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
index e3d29fb5ada..e70d1b4ae2c 100644
--- a/gcc/cp/mapper-resolver.cc
+++ b/gcc/cp/mapper-resolver.cc
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#define INCLUDE_VECTOR
#define INCLUDE_ALGORITHM
#define INCLUDE_MAP
+#define INCLUDE_MEMORY
#include "system.h"
// We don't want or need to be aware of networking
diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index cebf9c35c1d..5c5d02bb523 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -202,6 +202,7 @@ Classes used:
#define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available. */
#include "config.h"
+#define INCLUDE_MEMORY
#define INCLUDE_STRING
#define INCLUDE_VECTOR
#include "system.h"
diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
index 12ab5a57c8d..bdd0bdabe77 100644
--- a/libcc1/libcc1plugin.cc
+++ b/libcc1/libcc1plugin.cc
@@ -31,6 +31,7 @@
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
+#define INCLUDE_MEMORY
#include "gcc-plugin.h"
#include "system.h"
#include "coretypes.h"
diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
index 83dab7f58b1..e2d5039a0a1 100644
--- a/libcc1/libcp1plugin.cc
+++ b/libcc1/libcp1plugin.cc
@@ -32,6 +32,7 @@
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
+#define INCLUDE_MEMORY
#include "gcc-plugin.h"
#include "system.h"
#include "coretypes.h"
@@ -1,117 +0,0 @@
From f982c816d8f52a65231544b838160484b5ed4c71 Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <siarheit@google.com>
Date: Mon, 27 Jun 2022 14:44:48 +0100
Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
it directly and exposes use of poisoned calloc():
/build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
/<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
84 | void *calloc(size_t, size_t);
| ^
/<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
| ^
The change moves <pthread.h> inclusion to "system.h" under new
INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
gcc/
PR c++/106102
* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
gcc/jit/
PR c++/106102
* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
poisoning.
* jit-recording.cc: Ditto.
* libgccjit.cc: Ditto.
(cherry picked from commit 49d508065bdd36fb1a9b6aad9666b1edb5e06474)
---
gcc/jit/jit-playback.cc | 3 +--
gcc/jit/jit-recording.cc | 2 +-
gcc/jit/libgccjit.cc | 2 +-
gcc/system.h | 4 ++++
4 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
index 6be6bdf8dea..79714132b91 100644
--- a/gcc/jit/jit-playback.cc
+++ b/gcc/jit/jit-playback.cc
@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
+#define INCLUDE_PTHREAD_H
#include "system.h"
#include "coretypes.h"
#include "target.h"
@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic.h"
#include "stmt.h"
-#include <pthread.h>
-
#include "jit-playback.h"
#include "jit-result.h"
#include "jit-builtins.h"
diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
index a31720f043e..5556b9c4905 100644
--- a/gcc/jit/jit-recording.cc
+++ b/gcc/jit/jit-recording.cc
@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
+#define INCLUDE_PTHREAD_H
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "pretty-print.h"
#include "toplev.h"
-#include <pthread.h>
#include "jit-builtins.h"
#include "jit-recording.h"
diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
index cc6486c9cad..4c991e5436b 100644
--- a/gcc/jit/libgccjit.cc
+++ b/gcc/jit/libgccjit.cc
@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
+#define INCLUDE_PTHREAD_H
#include "system.h"
#include "coretypes.h"
#include "timevar.h"
#include "typed-splay-tree.h"
#include "cppbuiltin.h"
-#include <pthread.h>
#include "libgccjit.h"
#include "jit-recording.h"
diff --git a/gcc/system.h b/gcc/system.h
index c5562cc49a3..e10c34f70ec 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -750,6 +750,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
#endif
#endif
+#ifdef INCLUDE_PTHREAD_H
+#include <pthread.h>
+#endif
+
#ifdef INCLUDE_ISL
#ifdef HAVE_isl
#include <isl/options.h>
@@ -1,28 +1,108 @@
From d54419ddcc14f52517017147201560da5353c436 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 17 Jul 2022 02:52:13 +0200
Subject: [PATCH] libgo: adjust name of union in sigevent struct
From 8f1a91aeff400d572857895b7f5e863ec5a4d93e Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Mon, 26 Sep 2022 15:03:53 -0400
Subject: [PATCH] runtime: portable access to sigev_notify_thread_id
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The union in struct sigevent is named __sev_fields on musl but
_sigev_un on glibc. Not sure what this code actually does and
how this works if the union layout is different…
Previously, libgo relied on the _sigev_un implementation-specific
field in struct sigevent, which is only available on glibc.
This patch uses the sigev_notify_thread_id macro instead which is
mandated by timer_create(2). In theory, this should work with any libc
implementation for Linux. Unfortunately, there is an open glibc bug
as glibc does not define this macro. For this reason, a glibc-specific
workaround is required. Other libcs (such as musl) define the macro
and don't require the workaround.
See https://sourceware.org/bugzilla/show_bug.cgi?id=27417
This makes libgo compatible with musl libc.
Based on patch by Sören Tempel.
Change-Id: I0924a53d5212730ebc395ecf9199f85967be8cc6
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/434755
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
libgo/go/runtime/os_linux.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
libgo/go/runtime/os_linux.go | 12 +++++++++++-
libgo/runtime/go-signal.c | 18 ++++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/libgo/go/runtime/os_linux.go b/libgo/go/runtime/os_linux.go
index 96fb178870e..a75a2dd703f 100644
index 96fb1788..2b2d827c 100644
--- a/libgo/go/runtime/os_linux.go
+++ b/libgo/go/runtime/os_linux.go
@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
@@ -22,6 +22,12 @@ type mOS struct {
profileTimerValid uint32
}
+// setSigeventTID is written in C to set the sigev_notify_thread_id
+// field of a sigevent struct.
+//
+//go:noescape
+func setSigeventTID(*_sigevent, int32)
+
func getProcID() uint64 {
return uint64(gettid())
}
@@ -52,9 +58,12 @@ const (
)
// Atomically,
+//
// if(*addr == val) sleep
+//
// Might be woken up spuriously; that's allowed.
// Don't sleep longer than ns; ns < 0 means forever.
+//
//go:nosplit
func futexsleep(addr *uint32, val uint32, ns int64) {
// Some Linux kernels have a bug where futex of
@@ -73,6 +82,7 @@ func futexsleep(addr *uint32, val uint32, ns int64) {
}
// If any procs are sleeping on addr, wake up at most cnt.
+//
//go:nosplit
func futexwakeup(addr *uint32, cnt uint32) {
ret := futex(unsafe.Pointer(addr), _FUTEX_WAKE_PRIVATE, cnt, nil, nil, 0)
@@ -365,7 +375,7 @@ func setThreadCPUProfiler(hz int32) {
var sevp _sigevent
sevp.sigev_notify = _SIGEV_THREAD_ID
sevp.sigev_signo = _SIGPROF
- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
+ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
+ setSigeventTID(&sevp, int32(mp.procid))
ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
if ret != 0 {
// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
index 528d9b6d..aa1b6305 100644
--- a/libgo/runtime/go-signal.c
+++ b/libgo/runtime/go-signal.c
@@ -183,6 +183,24 @@ setSigactionHandler(struct sigaction* sa, uintptr handler)
sa->sa_sigaction = (void*)(handler);
}
+#ifdef __linux__
+
+// Workaround for https://sourceware.org/bugzilla/show_bug.cgi?id=27417
+#ifndef sigev_notify_thread_id
+ #define sigev_notify_thread_id _sigev_un._tid
+#endif
+
+void setSigeventTID(struct sigevent*, int32_t)
+ __asm__ (GOSYM_PREFIX "runtime.setSigeventTID");
+
+void
+setSigeventTID(struct sigevent *sev, int32_t v)
+{
+ sev->sigev_notify_thread_id = v;
+}
+
+#endif // defined(__linux__)
+
// C code to fetch values from the siginfo_t and ucontext_t pointers
// passed to a signal handler.
@@ -1,36 +1,36 @@
From 3825632cf4007ac93d8e44705a6da042c496318b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 18 Jul 2022 20:34:39 +0200
Subject: [PATCH] libgo: Explicitly define SYS_timer_settime for 32-bit musl
arches
From d53e8a0e94e34dc609e34dd5e404debda2640cfb Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Sat, 30 Jul 2022 07:29:28 -0700
Subject: [PATCH] libgo: use SYS_timer_settime32
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On 32-bit systems musl only defines SYS_timer_settime32 not
SYS_timer_settime. This causes the following compilation error:
Musl defines SYS_timer_settime32, not SYS_timer_settime, on 32-bit systems.
os_linux.go:251:30: error: reference to undefined name '_SYS_timer_settime'
251 | return int32(syscall(_SYS_timer_settime, uintptr(timerid), uintptr(flags), uintptr(unsafe.Pointer(new)), uintptr(unsafe.Pointer(old)), 0, 0))
| ^
Based on patch by Sören Tempel.
This commit fixes this error by defining SYS_timer_settime to
SYS_timer_settime32 if the latter is defined.
Change-Id: I1f3485028d132ceca1aba595325af24b4d72b894
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/420222
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
---
libgo/sysinfo.c | 6 ++++++
1 file changed, 6 insertions(+)
libgo/sysinfo.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
index b85add15a7b..ff04706a993 100644
index fc021099..180f5c31 100644
--- a/libgo/sysinfo.c
+++ b/libgo/sysinfo.c
@@ -343,6 +343,12 @@ enum {
#endif
@@ -354,6 +354,11 @@ enum {
};
#endif
+// musl libc does not have SYS_timer_settime on 32-bit platforms
+// but defines SYS_timer_settime32 instead, alias accordingly.
+#ifdef SYS_timer_settime32
+#if !defined(SYS_timer_settime) && defined(SYS_timer_settime32)
+// musl defines SYS_timer_settim32 on 32-bit systems.
+#define SYS_timer_settime SYS_timer_settime32
+#endif
+
// musl libc has both off64_t and loff_t. However, both of these types
// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
// -fdump-go-spec option, which is responsible for generating type
#if defined(HAVE_LOFF_T)
// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
// see a typedef.
@@ -1,20 +1,29 @@
From 75a430f66760802bf1ac5afcd716613e3cf8c77d 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 07:15:25 +0200
Subject: [PATCH] libgo: make match.sh POSIX-shell compatible
From a62f20ae78ddd41be682dde8cab075ca4f5dbb2a Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Fri, 22 Jul 2022 11:38:20 -0700
Subject: [PATCH] libgo: use POSIX shell arithmetic expansion
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The `(( expression ))` syntax is a Bash extension. However, the
arithmetic expressions used by the gobuild() function can also
be expressed using Arithmetic POSIX Expansion with `$(( expression ))`.
Contrary to the Bash expression, the Arithmetic Expansion doesn't set
the return value if the expression is non-zero but instead just prints
the expression result. Hence, the expression also needs to be negated.
Avoid bash-specific ((expression)) syntax. As the bash syntax
converts a non-zero value to a zero status (and a zero value to a 1
status), and POSIX arithmetic expansion does not, we have to negate
the result.
Based on patch by Sören Tempel.
Change-Id: I4c64fa15de3994a1a5c7c5ec0de6a82ddd858917
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/419154
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
---
libgo/match.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
libgo/match.sh | 2 +-
libgo/testsuite/gotest | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgo/match.sh b/libgo/match.sh
index 7ed587ff794..b355d47429a 100755
index 7ed587ff..e5ed98de 100755
--- a/libgo/match.sh
+++ b/libgo/match.sh
@@ -111,7 +111,7 @@ gobuild() {
@@ -22,7 +31,20 @@ index 7ed587ff794..b355d47429a 100755
line=$(echo "$line" | sed -e "s/\\(${wrap}\\)386\\(${wrap}\\)/\10\2/g")
fi
- (($line))
+ return $((! ( line )))
+ return $((!($line)))
}
matched=
diff --git a/libgo/testsuite/gotest b/libgo/testsuite/gotest
index 04e4267f..0a0a7e14 100755
--- a/libgo/testsuite/gotest
+++ b/libgo/testsuite/gotest
@@ -302,7 +302,7 @@ gobuild() {
if test "$goarch" != "386"; then
line=$(echo "$line" | sed -e "s/\\(${wrap}\\)386\\(${wrap}\\)/\10\2/g")
fi
- (($line))
+ return $((!($line)))
}
case "x$gofiles" in
@@ -0,0 +1,65 @@
From 7b8400f902ef25ea71ed460716c1afedca357a61 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 2 Nov 2022 12:31:36 +0100
Subject: [PATCH] libphobos: fix undefined reference to `__cmsg_nxthdr' with
musl
Ported fix from upstream.
Upstream: https://github.com/dlang/dmd/commit/54544260a848c8ebad5582e27ac1e09627cdfb17
Bug-URL: https://issues.dlang.org/show_bug.cgi?id=23157
---
.../libdruntime/core/sys/posix/sys/socket.d | 36 +++++++++++++++++--
1 file changed, 33 insertions(+), 3 deletions(-)
diff --git a/libphobos/libdruntime/core/sys/posix/sys/socket.d b/libphobos/libdruntime/core/sys/posix/sys/socket.d
index c1309a68c9c..e3b536d87e7 100644
--- a/libphobos/libdruntime/core/sys/posix/sys/socket.d
+++ b/libphobos/libdruntime/core/sys/posix/sys/socket.d
@@ -188,10 +188,40 @@ version (linux)
extern (D) inout(ubyte)* CMSG_DATA( return scope inout(cmsghdr)* cmsg ) pure nothrow @nogc { return cast(ubyte*)( cmsg + 1 ); }
- private inout(cmsghdr)* __cmsg_nxthdr(inout(msghdr)*, inout(cmsghdr)*) pure nothrow @nogc;
- extern (D) inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
+ version (CRuntime_Musl)
{
- return __cmsg_nxthdr(msg, cmsg);
+ extern (D)
+ {
+ private size_t __CMSG_LEN(inout(cmsghdr)* cmsg) pure nothrow @nogc
+ {
+ return (cmsg.cmsg_len + size_t.sizeof -1) & cast(size_t)(~(size_t.sizeof - 1));
+ }
+
+ private inout(cmsghdr)* __CMSG_NEXT(inout(cmsghdr)* cmsg) pure nothrow @nogc
+ {
+ return cmsg + __CMSG_LEN(cmsg);
+ }
+
+ private inout(msghdr)* __MHDR_END(inout(msghdr)* mhdr) pure nothrow @nogc
+ {
+ return cast(inout(msghdr)*)(mhdr.msg_control + mhdr.msg_controllen);
+ }
+
+ inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
+ {
+ return cmsg.cmsg_len < cmsghdr.sizeof ||
+ __CMSG_LEN(cmsg) + cmsghdr.sizeof >= __MHDR_END(msg) - cast(inout(msghdr)*)(cmsg)
+ ? cast(inout(cmsghdr)*) null : cast(inout(cmsghdr)*) __CMSG_NEXT(cmsg);
+ }
+ }
+ }
+ else
+ {
+ private inout(cmsghdr)* __cmsg_nxthdr(inout(msghdr)*, inout(cmsghdr)*) pure nothrow @nogc;
+ extern (D) inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
+ {
+ return __cmsg_nxthdr(msg, cmsg);
+ }
}
extern (D) inout(cmsghdr)* CMSG_FIRSTHDR( inout(msghdr)* mhdr ) pure nothrow @nogc
--
2.38.1
+43 -48
View File
@@ -10,7 +10,7 @@ LANG_JAVA=false
LANG_GO=false
LANG_FORTRAN=false
LANG_ADA=false
options="!strip !tracedeps"
options="!strip"
# abuild doesn't try to tries to install "build-base-$CTARGET_ARCH"
# when this variable matches "no*"
@@ -24,14 +24,15 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
pkgname=gcc-armhf
_pkgbase=12.1.1
pkgver=12.1.1_git20220630
_pkgbase=12.2.1 # must match gcc/BASE-VER
_pkgsnap=20220924
pkgver=${_pkgbase}_git$_pkgsnap
[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2"
[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross=""
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armhf
pkgrel=5
pkgrel=8
pkgdesc="Stage2 cross-compiler for armhf"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -40,7 +41,7 @@ _gccrel=$pkgver-r$pkgrel
depends="binutils-armhf mpc1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armhf binutils-armhf"
subpackages="g++-armhf:gpp"
subpackages="g++-armhf:gpp libstdc++-dev-armhf:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_target"
replaces="libstdc++ binutils"
@@ -53,7 +54,7 @@ replaces="libstdc++ binutils"
: "${LANG_JIT:=true}"
_libgomp=true
_libgcc=true
_libgcc=false
_libatomic=true
_libitm=true
@@ -204,11 +205,14 @@ makedepends="$makedepends_build $makedepends_host"
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
#
# right now, we are using a git snapshot.
# 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/~nenolod/gcc-${pkgver}.tar.xz
source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-$_pkgsnap/gcc-${_pkgbase%%.*}-$_pkgsnap.tar.xz
0001-posix_memalign.patch
0002-gcc-poison-system-directories.patch
0003-specs-turn-on-Wl-z-now-by-default.patch
@@ -238,32 +242,27 @@ source="https://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz
0027-always-build-libgcc_eh.a.patch
0028-ada-libgnarl-compatibility-for-musl.patch
0029-ada-musl-support-fixes.patch
0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch
0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
0033-gcc-go-link-to-libucontext.patch
0034-Use-generic-errstr.go-implementation-on-musl.patch
0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
0036-configure-fix-detection-of-atomic-builtins-in-libato.patch
0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
0044-gdc-unconditionally-link-libgphobos-against-libucont.patch
0045-druntime-link-against-libucontext-on-all-platforms.patch
0046-c-avoid-memory-poisoning-on-musl-PR106102.patch
0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch
0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch
0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
0053-libgo-make-match.sh-POSIX-shell-compatible.patch
0054-libphobos-fix-undefined-reference-to-__cmsg_nxthdr-w.patch
"
# we build out-of-tree
_gccdir="$srcdir"/gcc-$pkgver
_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
@@ -324,10 +323,9 @@ build() {
case "$CTARGET_LIBC" in
musl)
# musl does not support mudflap, or libsanitizer
# libmpx uses secure_getenv and struct _libc_fpstate not present in musl
# musl does not support libsanitizer
# alpine musl provides libssp_nonshared.a, so we don't need libssp either
_libc_configure="--disable-libssp --disable-libmpx --disable-libmudflap --disable-libsanitizer"
_libc_configure="--disable-libssp --disable-libsanitizer"
_symvers="--disable-symvers"
export libat_cv_have_ifunc=no
;;
@@ -368,9 +366,9 @@ build() {
--prefix=/usr
--mandir=/usr/share/man
--infodir=/usr/share/info
--build=${CBUILD}
--host=${CHOST}
--target=${CTARGET}
--build=$CBUILD
--host=$CHOST
--target=$CTARGET
--enable-checking=release
--disable-fixed-point
--disable-libstdcxx-pch
@@ -381,7 +379,6 @@ build() {
--enable-__cxa_atexit
--enable-default-pie
--enable-default-ssp
--enable-cloog-backend
--enable-languages=$_languages
$_arch_configure
$_libc_configure
@@ -437,12 +434,11 @@ package() {
# 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 libmudflap.a -o -name libmudflapth.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 {} +
-exec $STRIP_FOR_TARGET -g {} +
if $_libgomp; then
mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir
@@ -555,16 +551,16 @@ libcxx_dev() {
depends=
replaces="g++"
amove usr/lib/libstdc++.a \
usr/lib/libstdc++.so \
usr/lib/libstdc++fs.a \
usr/lib/libsupc++.a \
usr/include/c++
amove usr/${_target:+$CTARGET/}lib/libstdc++.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++=$_gccrel libstdc++-dev=$_gccrel gcc=$_gccrel libc-dev"
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/usr/bin \
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
@@ -659,7 +655,6 @@ gdc() {
mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/
}
libgo() {
pkgdesc="Go runtime library for GCC"
depends=
@@ -669,8 +664,13 @@ libgo() {
}
go() {
pkgdesc="Go support for GCC"
pkgdesc="GCC Go frontend (intended for bootstrapping community/go)"
depends="gcc=$_gccrel libgo=$_gccrel !go"
install="$pkgname-go.post-install"
# See https://lists.alpinelinux.org/~alpine/devel/%3C33KG0XO61I4IL.2Z7RTAZ5J3SY6%408pit.net%3E
provides="go-bootstrap"
provider_priority=1 # lowest, see community/go
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/usr/lib \
@@ -763,7 +763,7 @@ gnat() {
}
sha512sums="
43de66dfed7b5351bb543f7f2e8253e63d1e544e5bd293829e8ec7bffe60925cabcf8f6972fe8825100b1f1d7839e41d9314ec650c1320150c09317e2be24aa9 gcc-12.1.1_git20220630.tar.xz
ba4d9e73d108088da26fbefe18d9b245b76771ffe752c2b4b31bdf38a2d0b638fbc115c377526c27311d4d7ffd4e0d236a5af5016bd364ccaa11a4989d1401e8 gcc-12-20220924.tar.xz
41cbb4d69218006cf9e0cdb6c86212ef451f8decd52a50a7dbb4d34726009da7a4e0261c852b46cb584db253a4bae2f31dc485c506cb545e64a7d26e0ba6c2b6 0001-posix_memalign.patch
531155055cda7f119bcac6479bcae73af9201cd596af9cf1616850bbcf4393b91c5de9f2fbbc1cde6e158fb4df7237b033146f662dff5fa0ea12151cc514adb8 0002-gcc-poison-system-directories.patch
c1275d77b5269386a2ec683933570810f5a2ba1208c161ed887797eb9aee3cb82ef08a8964635902614e6a6e83f3065ba0801c9355d85dd8d60cb1fa20bdf687 0003-specs-turn-on-Wl-z-now-by-default.patch
@@ -793,26 +793,21 @@ b40d7e4712c035674c993bbb55475290ec14523b3f0fd05493514bac4e9adaa6641faf815fc40ffc
674360ce2ee9f704d0632cc98756f9fe8dd8ca30064fb9d3423b437f7e679c1c51e765b15e535dcb278cd2769583690acb3395b91e4fd5f6f4e3b97879fcc313 0027-always-build-libgcc_eh.a.patch
f060687adcd5297124e4000f1ba1e3fd5d7d124da04d948cbd0d4a6c69a90a2b29a4a0dbbe13a83ab6950724f434de012b681bdbcdf53c0100b40fe3d00f2f2f 0028-ada-libgnarl-compatibility-for-musl.patch
5160bae68e20a1966c1f6d655ee98af759e9b9ee842718ae6007d467b418e1cf3b307528a0841477b5259671ce868521b06c0f2e947b7b8f3a398c53dd978252 0029-ada-musl-support-fixes.patch
74c70a752ff24f231b45c69ca1d86ebf261bca643334cb6ba518ac204986ccd7fa84f4df4fdb38bbc0bb61832514b0100b2d2ba069fb1842929369d073220f24 0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch
9786711f308d5f93f2f5a45862f340d4741e1d8aef116d696b85a6debb6149d3772b0cfab4d9ef8782172b102664d9acdd27021af433b504c5918f379b1dd978 0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
4ffd2f279fbcf5abb1ac8cc6435204e48a776e7ef3742f2120eef1a1bdca2d0a01d30c481fd1495926c9166daaf127f9013fda0efefe3ed7bf6e660915cc1b49 0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
0ad15e78806031cef68da6577f7ce9be178533b3768ca42fff7f12816d61fa745acc77be2e047ac1c5bfdbc04e999202e5cefd04042bca798177197236b79954 0033-gcc-go-link-to-libucontext.patch
699dc3641099da6136dd3689f06c6553c03b3a85acf83a3fce1beb5425065b3e378535ca9e9100a120fdbafc34871d61c063fd5328a49cd87a15a989ed51706d 0034-Use-generic-errstr.go-implementation-on-musl.patch
72631fbef4843d6ada52f3173b257e027605866a3faf1d8e34438cbf2581952f97bf6f9569ee44fcd7c4b3b337612eaeb0612fb2e6451903f219e4d99bf719db 0033-gcc-go-link-to-libucontext.patch
141c0428f988cbd102000d4db8d4150485f6da5c064469493ea378cd579bed99330658f41fe106c0d07d1c1aa436ec3f864403ed1ba79f791a1d727b42d46910 0034-Use-generic-errstr.go-implementation-on-musl.patch
d9ba710f770e053c8f212e821817c188091a829658050b9ab5906388553ec60fec37943ea43c270e92a9014902949f3c98fc4639032d92b8145b375bb29e193e 0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
ab90d8fdd977d6cd3da096a1c76d77be3e89a020b2127247771711a32eb608cceed21834ef488ab4b69bb0f408b098fdfb61630819e3d1a1e57d5af67800ee74 0036-configure-fix-detection-of-atomic-builtins-in-libato.patch
7b356e11f66877bee864e2b1f81ae4be6c6c586040afb3ac220ff902f694efd60dcb4647cc7a37890c91dd539535b9992d463b785d3158205dbf9369b17c8ab7 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
5905e4309670cfa4a5883aa21f744391ee2107731795817e0ffcccfaa22b0c21df883038c86362b091e7b35730aa4de6dce827c908ea398a161add851df5c31e 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
570e084d223671fa29cb460b1b536a216920a7bcdfcdad21fe8cd7610e13f6942c1b1dd34ec861e9e3d830b9fe1f0e02e305c50c54d83aaf20526be09ca2256c 0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
a8b53c7d6e0d6d19c655844cab074f49b8f14c54a7af920b5792303f73713fdc69b723a0a6041548d227dfaa98ef63641460ea355487619eb29f9fec4a1e301b 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
15c93c9f2d68b19d00c6e82748e5f14470a120a3996f64d1ce91f17a65a5334cca478b4a6eba7d2d0a1d6d22206407ac3b1b5255987cc1144f5177bbb68153c8 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
8bc6823f0b3c66f7b73d7ddb64ffa6930463285c2e9a14a2bc1882bcc4271144eaa1107d713294699caf9481648163cbf43921a2b8e4ac0d55c78a804bae8a3d 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
f0744c01859e67deed404c97e1870b2876935fdc467e51980373744936574c314d5d21134734c5d515e7f3cd3483ef98045b9bbcd81c568c6038fac96ffb5fa0 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
d6dc1bfb881a313d167aaa5658790b0f55eea4336c408cfc6613dd5783440dafd0d37c43031a5f3e69be40f632e38371cd4fb6e5f0494ac4ea4d7d5025d2ae02 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
684c6a6d52512b973429b6e709966439ac1e174f9e79a33d4a638b452245b457b34752b4b4034ba983f6a712f86522e7adf715bab00a6603f64a12139c5b1e39 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
25014dfa99d96ee70ce0ad22e9f7974f0a51cc50b3b9c2db49df50774c8cd29e497ceed120486bee50be83bfb07f2009ed310eb9b0543f2795bd7359b87eadd2 0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
75fd83ac05ab0a08d5f48547b08810f9934209bc78b5db59d65f33887b382af7ec24d8a29d40f86325c05af40c1ae1ec6466c839f646af90afc895a13073d07b 0044-gdc-unconditionally-link-libgphobos-against-libucont.patch
13e047153076d6e1fc40c9f5b6bfe5699c0e5460248f3d2b35ae36677cb960525af7b0b025997e5000a8492cec5e77a86828d66b4058c0d7f89fde0ab3890142 0045-druntime-link-against-libucontext-on-all-platforms.patch
ba87d4b4433e5f018071ce933ae523c62334574be2e46881a8945c9dc7ecc0fadfed3aaf837f13f93fd4c0d6d33feb24cb67c77d9c0adb40b62637991fed4374 0046-c-avoid-memory-poisoning-on-musl-PR106102.patch
03e7c0caf59ee7c7d13a840178befb378b734f18a5c36ec4bbfad3f78253f0afab80864ea0905b58454178c8c31b2441622dd38668dd54e6550e30e6249e882b 0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch
be7688a44707991c31337bff24245394aa385e7b4ba151f18e21e734a4bbb151348458f413965e5cba50185ab8e0aba8b793eba04c0802dc563b148ed490f26d 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
c33ca2553642c2dbd1c65cd97046548f08775785a3db06d761e3bbe61398c37bc382fe132c0c3fa2101dfd4eea2a6d48bf4fae899a0ddb811c81abd7be35c122 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
179cd15d629884a66e954fd76066675efa594686b970facbb12ad50769e5d70b5530d7f61e77120e26d1c3dfc701cfc5295f341f635db998df73c41bc8e62172 0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch
d7592589cbf982f4518cb07572f96131278c7d2fd8fbbcd7fcb47f6628529ae9a5fc22b2dfe929be06845d137e1c5d2efeb6f63b1c2fb9c36cd6bdb97d41c65f 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
c82d7c8d340a76df3d796565a79b0ccc04ddffef39927620e1f3719bf2dc1db101ba13aef24b46c5bc95b7bf1e31c8bda4ab0936ba4c9c5e5047ba08826c982c 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
eb403d8ea665fd5dc2c11faf43b055e6a3bf480a397ceee3e0ca1e38ec7d2392315f2694ed9a34ffbc99e464f2873fbbf91be8646ea4dea5d3636e3ea22fefa0 0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
29c4fe28e5bf232e01b44106b2f8a3e50b5e00fc4302a69d3f5f90695e43ef07721a917b51d49dc40ae0543d8d97d432cb475834059c92176b73d326af9496e3 0053-libgo-make-match.sh-POSIX-shell-compatible.patch
22fb6edf1ed0387e2b93839ffe6e82a7fee420950af90e91199c3488d966702fdeb1a3396d22be0c73a4051525da9349c93d070a0d83b724c83f2b268da6483f 0053-libgo-make-match.sh-POSIX-shell-compatible.patch
9b74d0a0e4140b597708a295bcf51b93944782698470e2ba9bc0f0d4a830fc418da9624eccc85f3d65ff6d50b8ebf40cecd34d5b045db9e6c29614e981e93f92 0054-libphobos-fix-undefined-reference-to-__cmsg_nxthdr-w.patch
"
+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
@@ -1,26 +0,0 @@
From 7feb681596c4cfa34c769505058aa5bdf31c5131 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Sun, 30 Aug 2020 17:59:45 +0200
Subject: [PATCH] gcc-go: Fix handling of signal 34 on musl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Taken from Adélie Linux.
---
libgo/mksigtab.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh
index bea8739957e..3876002efab 100644
--- a/libgo/mksigtab.sh
+++ b/libgo/mksigtab.sh
@@ -86,7 +86,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
-checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
@@ -1,24 +0,0 @@
From b6885cf73989161b1b6893b5ae0dafed006d5f13 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 25 Nov 2021 01:47:03 +0000
Subject: [PATCH] There are more than one st_{a,m,c}tim fields in struct stat
on time64 machines.
Run the Go-isation on all of them.
---
libgo/mksysinfo.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
index 0c52ea5d71a..6fef104cc1c 100755
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -510,7 +510,7 @@ fi
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
# stat_t's time fields on NetBSD.
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
if test "${GOOS}" = "netbsd"; then
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
fi
@@ -1,24 +0,0 @@
From c7a22e42ae403154a0c0158495b04b0205102041 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 30 Aug 2020 19:27:51 +0200
Subject: [PATCH] gcc-go: undef SETCONTEXT_CLOBBERS_TLS in proc.c
---
libgo/runtime/proc.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
index 3a30748d329..a987678fa84 100644
--- a/libgo/runtime/proc.c
+++ b/libgo/runtime/proc.c
@@ -66,6 +66,10 @@ static void gscanstack(G*);
__thread G *g __asm__(GOSYM_PREFIX "runtime.g");
+/* libucontext does not seem to support tlsbase, undef the macro
+ * here to make sure we define initcontext and fixcontext as dummies. */
+#undef SETCONTEXT_CLOBBERS_TLS
+
#ifndef SETCONTEXT_CLOBBERS_TLS
static inline void
@@ -1,22 +1,101 @@
From ef9df74e0c1059e51bb76b1f6d9d4746949d4d34 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Mon, 31 Aug 2020 08:59:40 +0200
Subject: [PATCH] gcc-go: link to libucontext
From ecc2a2e70e44fa76a75b12d0893bc1702b72a1b4 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Mon, 19 Dec 2022 10:37:06 -0800
Subject: [PATCH] libgo: check for makecontext in -lucontext
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Patch from Sören Tempel.
Change-Id: I74b4052cc7aca19224afd6d9a2739c3fae46b722
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/458396
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
libgo/configure | 57 ++++++++++++++++++++++++++++++++++++++++++++++
libgo/configure.ac | 3 +++
2 files changed, 60 insertions(+)
diff --git a/Makefile.in b/Makefile.in
index b96f60e33e2..b564ddbf792 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -52802,7 +52802,7 @@ configure-target-libgo:
esac; \
module_srcdir=libgo; \
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} \
diff --git a/libgo/configure b/libgo/configure
index 460fdad7..a607dbff 100755
--- a/libgo/configure
+++ b/libgo/configure
@@ -14818,6 +14818,63 @@ fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing makecontext" >&5
+$as_echo_n "checking for library containing makecontext... " >&6; }
+if ${ac_cv_search_makecontext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char makecontext ();
+int
+main ()
+{
+return makecontext ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' ucontext; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_makecontext=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_makecontext+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_makecontext+:} false; then :
+
+else
+ ac_cv_search_makecontext=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_makecontext" >&5
+$as_echo "$ac_cv_search_makecontext" >&6; }
+ac_res=$ac_cv_search_makecontext
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sched_yield" >&5
$as_echo_n "checking for library containing sched_yield... " >&6; }
if ${ac_cv_search_sched_yield+:} false; then :
diff --git a/libgo/configure.ac b/libgo/configure.ac
index 09554a37..a59aa091 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -570,6 +570,9 @@ PTHREAD_LIBS=
AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS=-lpthread)
AC_SUBST(PTHREAD_LIBS)
+dnl Test if -lucontext is required for makecontext.
+AC_SEARCH_LIBS([makecontext], [ucontext])
+
dnl Test if -lrt is required for sched_yield or nanosleep or clock_gettime.
AC_SEARCH_LIBS([sched_yield], [rt])
AC_SEARCH_LIBS([nanosleep], [rt])
@@ -1,45 +1,204 @@
From 5093aa99f9cdded2e1ddf67b7139da6fac36b0a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 19 Apr 2021 07:21:41 +0200
Subject: [PATCH] Use generic errstr.go implementation on musl
From b3840bdcc0eee2a4d099a9af52199944ade7acb9 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Tue, 29 Nov 2022 17:28:44 -0800
Subject: [PATCH] syscall, runtime: always call XSI strerror_r
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
glibc provides two version of strerror_r() depending on a feature test
macro. The first is the XSI-compliant version which returns an int, the
second is GNU-specific and returns a char pointer.
This does the right thing for either glibc or musl on GNU/Linux.
Similarity, gcc's libgo provides two implementations of Errstr() both of
which use strerror_r(). On Linux, it is assumed that the GNU-specific
strerror_r version is used. However, musl only provides the
XSI-compliant version of strerror_r. This patch enables the generic
Errstr() implementation which also uses the XSI-compliant version of
strerror_r.
Based on patch by Sören Tempel.
Change-Id: If2969e131f0fae456d58b35d839d8abe191fcc59
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/454176
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Bypass: Ian Lance Taylor <iant@google.com>
---
libgo/go/syscall/errstr.go | 1 -
libgo/go/syscall/errstr_glibc.go | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
libgo/Makefile.am | 1 +
libgo/Makefile.in | 6 +++++-
libgo/go/syscall/errstr.go | 22 ++++++++-----------
libgo/go/syscall/errstr_glibc.go | 33 ----------------------------
libgo/runtime/go-strerror.c | 37 ++++++++++++++++++++++++++++++++
5 files changed, 52 insertions(+), 47 deletions(-)
delete mode 100644 libgo/go/syscall/errstr_glibc.go
create mode 100644 libgo/runtime/go-strerror.c
diff --git a/libgo/Makefile.am b/libgo/Makefile.am
index e0a1eec5..df568743 100644
--- a/libgo/Makefile.am
+++ b/libgo/Makefile.am
@@ -465,6 +465,7 @@ runtime_files = \
runtime/go-nanotime.c \
runtime/go-now.c \
runtime/go-nosys.c \
+ runtime/go-strerror.c \
runtime/go-reflect-call.c \
runtime/go-setenv.c \
runtime/go-signal.c \
diff --git a/libgo/Makefile.in b/libgo/Makefile.in
index 7bef5df9..f2f3f0fc 100644
--- a/libgo/Makefile.in
+++ b/libgo/Makefile.in
@@ -247,7 +247,7 @@ am__objects_4 = runtime/aeshash.lo runtime/go-assert.lo \
runtime/go-fieldtrack.lo runtime/go-matherr.lo \
runtime/go-memclr.lo runtime/go-memmove.lo \
runtime/go-memequal.lo runtime/go-nanotime.lo \
- runtime/go-now.lo runtime/go-nosys.lo \
+ runtime/go-now.lo runtime/go-nosys.lo runtime/go-strerror.lo \
runtime/go-reflect-call.lo runtime/go-setenv.lo \
runtime/go-signal.lo runtime/go-unsafe-pointer.lo \
runtime/go-unsetenv.lo runtime/go-unwind.lo \
@@ -917,6 +917,7 @@ runtime_files = \
runtime/go-nanotime.c \
runtime/go-now.c \
runtime/go-nosys.c \
+ runtime/go-strerror.c \
runtime/go-reflect-call.c \
runtime/go-setenv.c \
runtime/go-signal.c \
@@ -1390,6 +1391,8 @@ runtime/go-now.lo: runtime/$(am__dirstamp) \
runtime/$(DEPDIR)/$(am__dirstamp)
runtime/go-nosys.lo: runtime/$(am__dirstamp) \
runtime/$(DEPDIR)/$(am__dirstamp)
+runtime/go-strerror.lo: runtime/$(am__dirstamp) \
+ runtime/$(DEPDIR)/$(am__dirstamp)
runtime/go-reflect-call.lo: runtime/$(am__dirstamp) \
runtime/$(DEPDIR)/$(am__dirstamp)
runtime/go-setenv.lo: runtime/$(am__dirstamp) \
@@ -1457,6 +1460,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-reflect-call.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-setenv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-signal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-strerror.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-unsafe-pointer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-unsetenv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@runtime/$(DEPDIR)/go-unwind.Plo@am__quote@
diff --git a/libgo/go/syscall/errstr.go b/libgo/go/syscall/errstr.go
index 6c2441d364d..8f7c5538163 100644
index 6c2441d3..9f688e2a 100644
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -4,23 +4,19 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build !hurd
-// +build !hurd
-// +build !linux
-
package syscall
-//sysnb strerror_r(errnum int, buf []byte) (err Errno)
-//strerror_r(errnum _C_int, buf *byte, buflen Size_t) _C_int
+import "internal/bytealg"
+
+//extern go_strerror
+func go_strerror(_C_int, *byte, Size_t) _C_int
func Errstr(errnum int) string {
- for len := 128; ; len *= 2 {
- b := make([]byte, len)
- errno := strerror_r(errnum, b)
+ for size := 128; ; size *= 2 {
+ b := make([]byte, size)
+ errno := go_strerror(_C_int(errnum), &b[0], Size_t(len(b)))
if errno == 0 {
- i := 0
- for b[i] != 0 {
- i++
- }
+ i := bytealg.IndexByte(b, 0)
// Lowercase first letter: Bad -> bad, but
// STREAM -> STREAM.
if i > 1 && 'A' <= b[0] && b[0] <= 'Z' && 'a' <= b[1] && b[1] <= 'z' {
@@ -29,7 +25,7 @@ func Errstr(errnum int) string {
return string(b[:i])
}
if errno != ERANGE {
- return "errstr failure"
+ return "strerror_r failure"
}
}
}
diff --git a/libgo/go/syscall/errstr_glibc.go b/libgo/go/syscall/errstr_glibc.go
index 5b19e6f202d..8dc60172186 100644
deleted file mode 100644
index 5b19e6f2..00000000
--- a/libgo/go/syscall/errstr_glibc.go
+++ b/libgo/go/syscall/errstr_glibc.go
@@ -7,7 +7,7 @@
// We use this rather than errstr.go because on GNU/Linux sterror_r
// returns a pointer to the error message, and may not use buf at all.
+++ /dev/null
@@ -1,33 +0,0 @@
-// errstr_glibc.go -- GNU/Linux and GNU/Hurd specific error strings.
-
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// We use this rather than errstr.go because on GNU/Linux sterror_r
-// returns a pointer to the error message, and may not use buf at all.
-
-// +build hurd linux
+// +build hurd !linux
package syscall
-
-package syscall
-
-import "unsafe"
-
-//sysnb strerror_r(errnum int, b []byte) (errstr *byte)
-//strerror_r(errnum _C_int, b *byte, len Size_t) *byte
-
-func Errstr(errnum int) string {
- a := make([]byte, 128)
- p := strerror_r(errnum, a)
- b := (*[1000]byte)(unsafe.Pointer(p))
- i := 0
- for b[i] != 0 {
- i++
- }
- // Lowercase first letter: Bad -> bad, but STREAM -> STREAM.
- if i > 1 && 'A' <= b[0] && b[0] <= 'Z' && 'a' <= b[1] && b[1] <= 'z' {
- c := b[0] + 'a' - 'A'
- return string(c) + string(b[1:i])
- }
- return string(b[:i])
-}
diff --git a/libgo/runtime/go-strerror.c b/libgo/runtime/go-strerror.c
new file mode 100644
index 00000000..13d1d91d
--- /dev/null
+++ b/libgo/runtime/go-strerror.c
@@ -0,0 +1,37 @@
+/* go-strerror.c -- wrapper around XSI-compliant strerror_r.
+
+ Copyright 2022 The Go Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style
+ license that can be found in the LICENSE file. */
+
+/* There are two version of strerror_r on GNU/Linux: a GNU-specific
+ and an XSI-compliant version. The former version is only available
+ on glibc. Since glibc 2.13, the XSI-compliant version is also
+ provided by glibc if _GNU_SOURCE is not defined. Since the
+ entirety of gofrontend is compiled with _GNU_SOURCE, this file
+ exists to selectively undefine it and provides an alias to the
+ XSI-compliant version of strerror_r(3). */
+
+#ifdef __linux__
+
+/* Force selection of XSI-compliant strerror_r by glibc. */
+#undef XOPEN_SOURCE
+#define XOPEN_SOURCE 600
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 200112L
+#undef _GNU_SOURCE
+
+#endif /* __linux__ */
+
+#include <string.h>
+
+#ifndef HAVE_STRERROR_R
+// Provided by go-nosys.c if not provided by libc itself.
+extern int strerror_r (int, char *, size_t);
+#endif
+
+int
+go_strerror (int errnum, char *buf, size_t buflen)
+{
+ return strerror_r (errnum, buf, buflen);
+}
@@ -1,81 +1,199 @@
From 4655244d80aa67904a88d620361f2d37ea4c8576 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 28 Nov 2021 00:54:37 +0100
Subject: [PATCH] libgo: Recognize off64_t and loff_t definitions of musl libc
From 3b9243b891cc06373639a23ed5717b0d1c2d8ea6 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Tue, 14 Jun 2022 06:13:43 -0700
Subject: [PATCH] libgo: permit loff_t and off_t to be macros
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Without this patch, both off64_t and loff_t are not recognized by
-fdump-go-spec which causes a variety Go-related compilation errors on
musl libc since the gcc-go frontend expects both off64_t and loff_t to
be present.
They are macros in musl libc, rather than typedefs, and -fgo-dump-spec
doesn't handle that case.
Also make sure that autoconf recognizes support for loff_t on musl, by
compiling the relevant feature test code with -D_GNU_SOURCE and making
it include fcntl.h which defines loff_t on musl.
Based on patch by Sören Tempel.
Change-Id: Ic9a608fd964a6f78e754aa8e3100aff06ab3dade
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/412075
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
libgo: #include <sys/types.h> when checking for loff_t
Fixes https://gcc.gnu.org/PR106033
Fixes golang/go#53469
Change-Id: I060021b7bb9334949b567442448abb6822fd6d35
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/413214
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
libgo/configure | 4 +++-
libgo/configure.ac | 4 +++-
libgo/sysinfo.c | 21 +++++++++++++++++++++
3 files changed, 27 insertions(+), 2 deletions(-)
libgo/config.h.in | 3 +++
libgo/configure | 12 ++++++++++--
libgo/configure.ac | 11 +++++++++--
libgo/go/syscall/libcall_linux.go | 17 +++++++++--------
libgo/mksysinfo.sh | 6 +-----
libgo/sysinfo.c | 15 ++++++++++++++-
6 files changed, 46 insertions(+), 18 deletions(-)
diff --git a/libgo/config.h.in b/libgo/config.h.in
index 25b8ab8f9ee..2c3c7469675 100644
--- a/libgo/config.h.in
+++ b/libgo/config.h.in
@@ -70,6 +70,9 @@
/* Define to 1 if you have the `fchownat' function. */
#undef HAVE_FCHOWNAT
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
/* Define to 1 if you have the `futimesat' function. */
#undef HAVE_FUTIMESAT
diff --git a/libgo/configure b/libgo/configure
index ffe17c9be55..c2dbecef98c 100755
index ffe17c9be55..61a49947eb9 100755
--- a/libgo/configure
+++ b/libgo/configure
@@ -15546,7 +15546,9 @@ _ACEOF
@@ -15249,7 +15249,7 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
fi
-for ac_header in port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
+for ac_header in fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -15546,7 +15546,14 @@ _ACEOF
fi
-ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "$ac_includes_default"
+CFLAGS_hold=$CFLAGS
+CFLAGS="$CFLAGS -D_GNU_SOURCE"
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "#include <fcntl.h>"
+
+CFLAGS_hold="$CFLAGS"
+CFLAGS="$OSCFLAGS $CFLAGS"
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "
+#include <sys/types.h>
+#include <fcntl.h>
+
+"
if test "x$ac_cv_type_loff_t" = xyes; then :
cat >>confdefs.h <<_ACEOF
@@ -15556,6 +15563,7 @@ _ACEOF
fi
+CFLAGS="$CFLAGS_hold"
LIBS_hold="$LIBS"
LIBS="$LIBS -lm"
diff --git a/libgo/configure.ac b/libgo/configure.ac
index 7e2b98ba67c..667feae3c03 100644
index 7e2b98ba67c..274fcfc35c7 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -601,7 +601,9 @@ AC_STRUCT_DIRENT_D_TYPE
@@ -579,7 +579,7 @@ AC_C_BIGENDIAN
GCC_CHECK_UNWIND_GETIPINFO
-AC_CHECK_HEADERS(port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
+AC_CHECK_HEADERS(fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
AC_CHECK_HEADERS([netinet/icmp6.h], [], [],
[#include <netinet/in.h>
@@ -601,7 +601,14 @@ AC_STRUCT_DIRENT_D_TYPE
AC_CHECK_FUNCS(accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat open64 openat pipe2 removexattr renameat setxattr sync_file_range splice syscall tee unlinkat unshare utimensat)
AC_TYPE_OFF_T
-AC_CHECK_TYPES([loff_t])
+CFLAGS_hold=$CFLAGS
+CFLAGS="$CFLAGS -D_GNU_SOURCE" # musl does not define loff_t without this
+AC_CHECK_TYPES([loff_t], [], [], [[#include <fcntl.h>]])
+
+CFLAGS_hold="$CFLAGS"
+CFLAGS="$OSCFLAGS $CFLAGS"
+AC_CHECK_TYPES([loff_t], [], [], [[
+#include <sys/types.h>
+#include <fcntl.h>
+]])
+CFLAGS="$CFLAGS_hold"
LIBS_hold="$LIBS"
LIBS="$LIBS -lm"
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
index 96974bd3269..65eb1a745f7 100644
--- a/libgo/go/syscall/libcall_linux.go
+++ b/libgo/go/syscall/libcall_linux.go
@@ -209,19 +209,20 @@ func Gettid() (tid int) {
//sys Setxattr(path string, attr string, data []byte, flags int) (err error)
//setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int
-//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
-//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
+//sys splice(rfd int, roff *_libgo_loff_t_type, wfd int, woff *_libgo_loff_t_type, len int, flags int) (n int64, err error)
+//splice(rfd _C_int, roff *_libgo_loff_t_type, wfd _C_int, woff *_libgo_loff_t_type, len Size_t, flags _C_uint) Ssize_t
+
func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
- var lroff _loff_t
- var plroff *_loff_t
+ var lroff _libgo_loff_t_type
+ var plroff *_libgo_loff_t_type
if roff != nil {
- lroff = _loff_t(*roff)
+ lroff = _libgo_loff_t_type(*roff)
plroff = &lroff
}
- var lwoff _loff_t
- var plwoff *_loff_t
+ var lwoff _libgo_loff_t_type
+ var plwoff *_libgo_loff_t_type
if woff != nil {
- lwoff = _loff_t(*woff)
+ lwoff = _libgo_loff_t_type(*woff)
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
index 0c52ea5d71a..5aa309155c3 100755
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -403,11 +403,7 @@ fi
# Some basic types.
echo 'type Size_t _size_t' >> ${OUT}
echo "type Ssize_t _ssize_t" >> ${OUT}
-if grep '^const _HAVE_OFF64_T = ' gen-sysinfo.go > /dev/null 2>&1; then
- echo "type Offset_t _off64_t" >> ${OUT}
-else
- echo "type Offset_t _off_t" >> ${OUT}
-fi
+echo "type Offset_t _libgo_off_t_type" >> ${OUT}
echo "type Mode_t _mode_t" >> ${OUT}
echo "type Pid_t _pid_t" >> ${OUT}
echo "type Uid_t _uid_t" >> ${OUT}
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
index 8ce061e2f5f..b85add15a7b 100644
index 336a5983750..fc0210992fa 100644
--- a/libgo/sysinfo.c
+++ b/libgo/sysinfo.c
@@ -343,6 +343,27 @@ enum {
#endif
@@ -354,6 +354,18 @@ enum {
};
#endif
+// musl libc has both off64_t and loff_t. However, both of these types
+// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
+// -fdump-go-spec option, which is responsible for generating type
+// definitions for Go based on this file, only recognizes types defined
+// through typedefs.
+//
+// For this reason, we check here if either off64_t or loff_t are
+// defined as CPP macros and if so, we redefine them using a C typedef.
+#if defined(HAVE_OFF64_T) && defined(off64_t)
+typedef off64_t __musl_off64_t;
+#undef off64_t
+typedef __musl_off64_t off64_t;
+#if defined(HAVE_LOFF_T)
+// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
+// see a typedef.
+typedef loff_t libgo_loff_t_type;
+#endif
+
+// See comment regarding musl libc above.
+#if defined(HAVE_LOFF_T) && defined(loff_t)
+typedef loff_t __musl_loff_t;
+#undef loff_t
+typedef __musl_loff_t loff_t;
+#if defined(HAVE_OFF64_T)
+typedef off64_t libgo_off_t_type;
+#else
+typedef off_t libgo_off_t_type;
+#endif
+
// SIOCGIFMTU can't be added in the above enum as it might
// be signed in some OSes.
#ifdef SIOCGIFMTU
// The following section introduces explicit references to types and
// constants of interest to support bootstrapping libgo using a
// compiler that doesn't support -fdump-go-spec (e.g., clang), via
@@ -534,7 +546,8 @@ SREF(timex);
// From sys/types.h
TREF(pid_t);
TREF(off_t);
-TREF(loff_t);
+TREF(libgo_loff_t_type);
+TREF(libgo_off_t_type);
TREF(size_t);
TREF(ssize_t);
TREF(mode_t);
@@ -1,43 +1,26 @@
From 76c13560bba3534bff335e5bb571a8b95d50d4ba Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Sun, 30 Aug 2020 18:33:49 +0200
Subject: [PATCH] gcc-go: Use int64 type as offset argument for mmap
From 5e658f4659c551330ea68f5667e4f951b218f32d Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Wed, 26 Oct 2022 17:23:42 -0700
Subject: [PATCH] runtime: use _libgo_off_t_type when calling C mmap
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Without this patch, Go run-time memory allocation fails on 32-bit architectures:
The last argument to the C mmap function is type off_t, not uintptr.
On some 32-bit systems, off_t is larger than uintptr.
fatal error: runtime: cannot allocate memory
runtime stack:
runtime.dopanic__m
:0
runtime.throw
:0
:0
:0
runtime.systemstack
:0
runtime.addrRanges.init
:0
runtime.pageAlloc.init
:0
runtime.mheap.init
:0
runtime.schedinit
:0
:0
:0
Based on patch by Sören Tempel.
Taken from Adélie Linux [1].
[1]: https://git.adelielinux.org/adelie/packages/-/commit/63b5fb12c3d75e460799c672bbbdd5d29c3cc33c
Change-Id: Ib6f9d5bcd4734f99a72889e2282b97ec3c8fbd34
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/445735
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
---
libgo/go/runtime/mem_gccgo.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
libgo/go/runtime/mem_gccgo.go | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libgo/go/runtime/mem_gccgo.go b/libgo/go/runtime/mem_gccgo.go
index fa3389d857e..57bed97c710 100644
index fa3389d8..1e84f4f5 100644
--- a/libgo/go/runtime/mem_gccgo.go
+++ b/libgo/go/runtime/mem_gccgo.go
@@ -15,7 +15,7 @@ import (
@@ -45,16 +28,32 @@ index fa3389d857e..57bed97c710 100644
//extern mmap
-func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) unsafe.Pointer
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) unsafe.Pointer
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off _libgo_off_t_type) unsafe.Pointer
//extern munmap
func munmap(addr unsafe.Pointer, length uintptr) int32
@@ -37,7 +37,7 @@ func init() {
}
@@ -38,7 +38,7 @@ func init() {
}
-func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
+func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) (unsafe.Pointer, int) {
p := sysMmap(addr, n, prot, flags, fd, off)
func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
- p := sysMmap(addr, n, prot, flags, fd, off)
+ p := sysMmap(addr, n, prot, flags, fd, _libgo_off_t_type(off))
if uintptr(p) == _MAP_FAILED {
return nil, errno()
}
@@ -47,6 +47,7 @@ func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (u
// Don't split the stack as this method may be invoked without a valid G, which
// prevents us from allocating more stack.
+//
//go:nosplit
func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer {
p, err := mmap(nil, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_PRIVATE, mmapFD, 0)
@@ -165,6 +166,7 @@ func sysHugePage(v unsafe.Pointer, n uintptr) {
// Don't split the stack as this function may be invoked without a valid G,
// which prevents us from allocating more stack.
+//
//go:nosplit
func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) {
sysStat.add(-int64(n))
@@ -1,55 +0,0 @@
From cf41d579088e1c0b5c33c93657ad041e797b5905 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
Date: Sun, 2 Jan 2022 01:07:03 +0100
Subject: [PATCH] libgo: include asm/ptrace.h for pt_regs definition on PowerPC
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Both glibc and musl libc declare pt_regs as an incomplete type. This
type has to be completed by inclusion of another header. On Linux, the
asm/ptrace.h header file provides this type definition. Without
including this header file, it is not possible to access the regs member
of the mcontext_t struct as done in libgo/runtime/go-signal.c. On glibc,
other headers (e.g. sys/user.h) include asm/ptrace.h but on musl
asm/ptrace.h is not included by other headers and thus the
aforementioned files do not compile without an explicit include of
asm/ptrace.h:
libgo/runtime/go-signal.c: In function 'getSiginfo':
libgo/runtime/go-signal.c:227:63: error: invalid use of undefined type 'struct pt_regs'
227 | ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
|
Instead of including the asm/ptrace.h header conditionally on PowerPC
only it would alternatively also be possible to include it
unconditionally.
See also:
* https://git.musl-libc.org/cgit/musl/commit/?id=c2518a8efb6507f1b41c3b12e03b06f8f2317a1f
* https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d57cb31910ca5c200e4172276749a7f8bd17ae3c
* https://github.com/kaniini/libucontext/issues/36
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
---
libgo/runtime/go-signal.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
index 528d9b6d9fe..c67503f0a79 100644
--- a/libgo/runtime/go-signal.c
+++ b/libgo/runtime/go-signal.c
@@ -10,6 +10,12 @@
#include <sys/time.h>
#include <ucontext.h>
+// On PowerPC, ucontext.h uses a pt_regs struct as an incomplete
+// type. This type must be completed by including asm/ptrace.h.
+#ifdef __PPC__
+#include <asm/ptrace.h>
+#endif
+
#include "runtime.h"
#ifndef SA_RESTART
@@ -1,30 +1,71 @@
From fbc8240ac15225ede8416a27c9978559b85d6877 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Mon, 21 Feb 2022 10:04:47 +0000
Subject: [PATCH] go/gospec: forcibly disable -fsplit-stack support
From c86b726c048eddc1be320c0bf64a897658bee13d Mon Sep 17 00:00:00 2001
From: Uros Bizjak <ubizjak@gmail.com>
Date: Wed, 18 May 2022 20:03:26 +0200
Subject: [PATCH] x86: Fix -fsplit-stack feature detection via
TARGET_CAN_SPLIT_STACK
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
for some reason, TARGET_CAN_SPLIT_STACK still gets defined on 32-bit x86,
so hackfix it for now
Since commit c163647ffbc9a20c8feb6e079dbecccfe016c82e -fsplit-stack
is only supported on glibc targets. However, this original commit
required some fixups. As part of the fixup, the changes to the
gnu-user-common.h and gnu.h were partially reverted in commit
60953a23d57b13a672f751bec0c6eefc059eb1ab thus causing TARGET_CAN_SPLIT_STACK
to be defined for non-glibc targets even though -fsplit-stack is
actually not supported and attempting to use it causes a runtime error.
This causes gcc internal code, such as ./gcc/go/gospec.c to not
correctly detect that -fsplit-stack is not supported and thus causes
gccgo to fail compilation on non-glibc targets.
This commit ensures that TARGET_CAN_SPLIT_STACK is only set if the
default libc is glibc. It is presently unclear to me if there is a
better way to detect glibc at pre-processor time.
The proposed changes have been tested on x86 and x86_64 Alpine Linux
(which uses musl libc) and fix compilation of gccgo for this target.
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
gcc/ChangeLog:
* config/i386/gnu-user-common.h (defined): Only define
TARGET_CAN_SPLIT_STACK for glibc targets.
* config/i386/gnu.h (defined): Ditto.
---
gcc/go/gospec.cc | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
gcc/config/i386/gnu-user-common.h | 5 +++--
gcc/config/i386/gnu.h | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/gcc/go/gospec.cc b/gcc/go/gospec.cc
index df92b62d8e6..cf168beb4cf 100644
--- a/gcc/go/gospec.cc
+++ b/gcc/go/gospec.cc
@@ -269,11 +269,12 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
/* Copy the 0th argument, i.e., the name of the program itself. */
new_decoded_options[j++] = decoded_options[i++];
diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
index 23b54c5be52..cab9be2bfb7 100644
--- a/gcc/config/i386/gnu-user-common.h
+++ b/gcc/config/i386/gnu-user-common.h
@@ -66,7 +66,8 @@ along with GCC; see the file COPYING3. If not see
#define STACK_CHECK_STATIC_BUILTIN 1
-#ifdef TARGET_CAN_SPLIT_STACK
+ /* Hackfix: we never support split stack on Alpine GCC */
+#if 0
supports_split_stack = 1;
/* We only build the -fsplit-stack support in libgcc if the
- assembler has full support for the CFI directives. */
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
+ assembler has full support for the CFI directives. Also
+ we only support -fsplit-stack on glibc targets. */
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
#define TARGET_CAN_SPLIT_STACK
#endif
diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
index 401e60c9a02..fb8d69a97d8 100644
--- a/gcc/config/i386/gnu.h
+++ b/gcc/config/i386/gnu.h
@@ -41,8 +41,9 @@ along with GCC. If not, see <http://www.gnu.org/licenses/>.
#define TARGET_THREAD_SSP_OFFSET 0x14
-#ifdef TARGET_CAN_SPLIT_STACK_64BIT
+#if 0
if (is_m64)
supports_split_stack = 1;
/* We only build the -fsplit-stack support in libgcc if the
- assembler has full support for the CFI directives. */
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
+ assembler has full support for the CFI directives. Also
+ we only support -fsplit-stack on glibc targets. */
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
#define TARGET_CAN_SPLIT_STACK
#endif
/* We steal the last transactional memory word. */
Loaded 100 of 1421 files, more files were not shown because too many files have changed in this diff. Show more